520c99d550333ed2167a16175bca624d1539b4f9
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-03-22  Kent Tamura  <tkent@chromium.org>
2
3         Expand RenderTextControlSingleLine::controlClipRect() to contain contentRect().
4         https://bugs.webkit.org/show_bug.cgi?id=81866
5
6         Reviewed by Hajime Morita.
7
8         We need to expand the controlClipRect because the existing shadow
9         tree of a text field can be wrapped by another shadow tree. e.g.
10
11         A current situation:
12
13         <input>
14           ┗ ShadowRoot
15              ┗ container element
16         ┌────────────┐<input>'s border box
17         │┌──────────┐│
18         ││container box       ││
19         │└──────────┘│
20         └────────────┘
21
22         Wrapped by another ShadowRoot:
23
24         <input>
25           ┗ New ShadowRoot
26              ┣ <shadow> represents the existing shadow tree
27              ┃  ┗ container element
28              ┗ D: an additional decoration element
29         ┌────────────┐<input>'s border box
30         │┌───────┬──┐│
31         ││container box │ D  ││
32         │└───────┴──┘│
33         └────────────┘
34         In this case, if we clip child renderers by container box, D is not
35         drawn. We should clip by the content box of the <input>.
36
37         A search field has an exceptional behavior. It can have the container
38         box of which height is taller than the content box height. The
39         controlClipRect should contain both of the container box and the content
40         box in this case. In other cases, the container box is equivalent to the
41         content box. So the code always unites them.
42
43         No new tests. This won't make any behavior change for now.
44
45         * rendering/RenderTextControlSingleLine.cpp:
46         (WebCore::RenderTextControlSingleLine::controlClipRect):
47
48 2012-03-22  Yoshifumi Inoue  <yosin@chromium.org>
49
50         [Forms] The option element should not be form associated element.
51         https://bugs.webkit.org/show_bug.cgi?id=79764
52
53         Reviewed by Kent Tamura.
54
55         This patch changes base class of HTMLOptionELement to HTMLElement
56         from HTMLFormControlElement for saving memory space and iteration
57         time of extra "option" elements in HTMLFormElement::m_formAssociatedElements
58         and matching the HTML5 specification for ease of maintenance.
59
60         This patch changes behavior of handling of CSS pseudo classes "invalid"
61         and "valid". The "option" elements no longer use these CSS pseudo classes
62         as HTML5 specification. This bug was filed in https://bugs.webkit.org/show_bug.cgi?id=80088
63
64         Changes of TextIterator is lead by usage of isFormControlElement. This
65         changes will be replaced with more meaningful predicate as part of
66         https://bugs.webkit.org/show_bug.cgi?id=80381
67
68         No new tests but updated select-live-pseudo-selectors.html test.
69
70         * css/CSSStyleSelector.cpp:
71         (WebCore::CSSStyleSelector::canShareStyleWithElement): Added checking of the "option" element and returns false as HTMLFormControlElement.
72         * css/SelectorChecker.cpp:
73         (WebCore::SelectorChecker::checkOneSelector): Removed isFormControlElement for PseudoDisabled and PseudoChecked.
74         * html/HTMLKeygenElement.cpp:
75         (WebCore::HTMLKeygenElement::HTMLKeygenElement): Removed form parameter of call site of HTMLOptionElement::create.
76         * html/HTMLOptionElement.cpp:
77         (WebCore::HTMLOptionElement::HTMLOptionElement): Removed form parameter which no longer needed. Changed base class in initialization list. Added m_disabled initialization.
78         (WebCore::HTMLOptionElement::create): Removed form parameter which no longer needed.
79         (WebCore::HTMLOptionElement::attach): Changeid base class.
80         (WebCore::HTMLOptionElement::detach): Changed base class.
81         (WebCore::HTMLOptionElement::parseAttribute): Changed base class. Added "disabled" attribute handling.
82         (WebCore::HTMLOptionElement::childrenChanged): Changed base class.
83         (WebCore::HTMLOptionElement::insertedIntoTree): Changed base class.
84         * html/HTMLOptionElement.h:
85         (HTMLOptionElement): Added new member variable m_disabled which was in HTMLFormControlElement.
86         (WebCore::HTMLOptionElement::ownElementDisabled): Changed for using m_disabled.
87         * html/HTMLTagNames.in: Removed constructorNeedsFormElement for the "option" element, which was used for passing form parameter to create function.
88
89 2012-03-21  Pavel Podivilov  <podivilov@chromium.org>
90
91         Web Inspector: rename ClosureCompilerSourceMapping to SourceMapParser and move it to CompilerScriptMapping.js.
92         https://bugs.webkit.org/show_bug.cgi?id=81780
93
94         Reviewed by Pavel Feldman.
95
96         * WebCore.gypi:
97         * WebCore.vcproj/WebCore.vcproj:
98         * inspector/compile-front-end.py:
99         * inspector/front-end/CompilerScriptMapping.js:
100         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
101         (WebInspector.SourceMapParserPayload):
102         (WebInspector.SourceMapParser):
103         (WebInspector.SourceMapParser.prototype.load):
104         (WebInspector.SourceMapParser.prototype.compiledLocationToSourceLocation):
105         (WebInspector.SourceMapParser.prototype.sourceLocationToCompiledLocation):
106         (WebInspector.SourceMapParser.prototype.sources):
107         (WebInspector.SourceMapParser.prototype.loadSourceCode):
108         (WebInspector.SourceMapParser.prototype._findMapping):
109         (WebInspector.SourceMapParser.prototype._parseMappingPayload):
110         (WebInspector.SourceMapParser.prototype._parseSections):
111         (WebInspector.SourceMapParser.prototype._parseMap):
112         (WebInspector.SourceMapParser.prototype._isSeparator):
113         (WebInspector.SourceMapParser.prototype._decodeVLQ):
114         (WebInspector.SourceMapParser.prototype._canonicalizeURL):
115         (WebInspector.SourceMapParser.StringCharIterator):
116         (WebInspector.SourceMapParser.StringCharIterator.prototype.next):
117         (WebInspector.SourceMapParser.StringCharIterator.prototype.peek):
118         (WebInspector.SourceMapParser.StringCharIterator.prototype.hasNext):
119         * inspector/front-end/CompilerSourceMapping.js: Removed.
120         * inspector/front-end/WebKit.qrc:
121         * inspector/front-end/inspector.html:
122
123 2012-03-21  Vsevolod Vlasov  <vsevik@chromium.org>
124
125         Web Inspector: IndexedDB transaction is not closed when requesting data.
126         https://bugs.webkit.org/show_bug.cgi?id=81837
127
128         Reviewed by Pavel Feldman.
129
130         * inspector/InspectorIndexedDBAgent.cpp: Added missing IDBCursorBackendInterface::postSuccessHandlerCallback() call.
131         (WebCore):
132
133 2012-03-21  Yury Semikhatsky  <yurys@chromium.org>
134
135         Web Inspector: event listeners section is broken for about:blank page
136         https://bugs.webkit.org/show_bug.cgi?id=81795
137
138         Parse about:blank as a valid URL.
139
140         Reviewed by Pavel Feldman.
141
142         Test: inspector/elements/event-listeners-about-blank.html
143
144         * inspector/front-end/utilities.js:
145         (String.prototype.asParsedURL):
146
147 2012-03-21  Dan Bernstein  <mitz@apple.com>
148
149         REGRESSION (r111635): Assertion failure in RenderFlexibleBox::layoutFlexItems() (!lineContexts.size()) in many flexbox tests
150         https://bugs.webkit.org/show_bug.cgi?id=81870
151
152         Reverted r111635, the fix for bug 81843.
153
154         * rendering/RenderFlexibleBox.cpp:
155         (WebCore::RenderFlexibleBox::WrapReverseContext::WrapReverseContext):
156         (WebCore::RenderFlexibleBox::WrapReverseContext::addCrossAxisOffset):
157         (RenderFlexibleBox::WrapReverseContext):
158         (WebCore::RenderFlexibleBox::WrapReverseContext::addNumberOfChildrenOnLine):
159         (WebCore::RenderFlexibleBox::WrapReverseContext::lineCrossAxisDelta):
160         (WebCore::RenderFlexibleBox::layoutFlexItems):
161         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
162         (WebCore::RenderFlexibleBox::alignChildren):
163         (WebCore::RenderFlexibleBox::flipForWrapReverse):
164         * rendering/RenderFlexibleBox.h:
165
166 2012-03-21  Emil A Eklund  <eae@chromium.org>
167
168         Unreviewed change touching CustomFilterProgram.h to try
169         to force the chromium-win bots to rebuilt it and pick up
170         on the fact that CSS_SHADERS is not set (since r111610). 
171
172         * platform/graphics/filters/CustomFilterProgram.h:
173
174 2012-03-21  Vangelis Kokkevis  <vangelis@chromium.org>
175
176         [chromium] FPS counter causes garbage to be displayed at top left corner
177         https://bugs.webkit.org/show_bug.cgi?id=81851
178
179         The HUD expects the PlatformCanvas it paints on to be cleared on creation which is
180         no longer true after http://src.chromium.org/viewvc/chrome?view=rev&revision=127196 .
181         This patch does an explicit clearRect before the HUD contents are painted.
182
183         Reviewed by Adrienne Walker.
184
185         TEST=Manually verified that --show-fps-counter and --show-composited-layer-tree work correctly.
186
187         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
188         (WebCore::CCHeadsUpDisplay::draw):
189
190 2012-03-21  Ryosuke Niwa  <rniwa@webkit.org>
191
192         Touch a file to make Chromium Windows bots happy.
193
194         * css/CSSValueKeywords.in:
195
196 2012-03-19  Igor Oliveira  <igor.o@sisa.samsung.com>
197
198         Every call to RenderObject::setAnimatableStyle() iterates through all m_compositeAnimations: potentially O(N^2)
199         https://bugs.webkit.org/show_bug.cgi?id=38025
200
201         Implement updateAnimationTimerForRender. This reduces unnecessary animation
202         steps on the current RenderObject by checking the value of timeToNextService
203         before starting a new timer.
204
205         Reviewed by Dean Jackson.
206
207         Test: animations/animation-welcome-safari.html
208
209         * page/animation/AnimationController.cpp:
210         (WebCore::AnimationControllerPrivate::updateAnimationTimerForRenderer):
211         (WebCore):
212         (WebCore::AnimationController::updateAnimations):
213         * page/animation/AnimationControllerPrivate.h:
214         (AnimationControllerPrivate):
215
216 2012-03-21  Sheriff Bot  <webkit.review.bot@gmail.com>
217
218         Unreviewed, rolling out r111616.
219         http://trac.webkit.org/changeset/111616
220         https://bugs.webkit.org/show_bug.cgi?id=81862
221
222         broke chromium mac (Requested by eae on #webkit).
223
224         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
225         (WebCore::CCLayerImpl::appendQuads):
226         * platform/graphics/chromium/cc/CCLayerImpl.h:
227         (CCLayerImpl):
228         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
229         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
230         (WebCore::CCLayerTreeHostImpl::drawLayers):
231         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
232         (CCLayerTreeHostImpl):
233         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
234         (WebCore::CCQuadCuller::append):
235         * platform/graphics/chromium/cc/CCQuadCuller.h:
236         (CCQuadCuller):
237         * platform/graphics/chromium/cc/CCRenderPass.cpp:
238         (WebCore::CCRenderPass::appendQuadsForLayer):
239         * platform/graphics/chromium/cc/CCRenderPass.h:
240         (CCRenderPass):
241         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
242         (WebCore::CCScrollbarLayerImpl::appendQuads):
243         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
244         (CCScrollbarLayerImpl):
245         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
246         (WebCore::CCSingleThreadProxy::doComposite):
247         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
248         (WebCore::CCSolidColorLayerImpl::appendQuads):
249         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
250         (CCSolidColorLayerImpl):
251         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
252         (WebCore::CCTextureLayerImpl::appendQuads):
253         * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
254         (CCTextureLayerImpl):
255         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
256         (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
257         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
258         (WebCore::CCTiledLayerImpl::appendQuads):
259         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
260         (CCTiledLayerImpl):
261         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
262         (WebCore::CCVideoLayerImpl::appendQuads):
263         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
264         (CCVideoLayerImpl):
265
266 2012-03-21  Beth Dakin  <bdakin@apple.com>
267
268         https://bugs.webkit.org/show_bug.cgi?id=80322
269         Implement image-set
270
271         Reviewed by Dean Jackson.
272
273         This initial implementation of -webkit-image-set. 
274         http://lists.w3.org/Archives/Public/www-style/2012Feb/1103.html
275         The idea behind the feature is to allow authors to provide multiple variants 
276         of the same image at differing resolutions, and to allow the User Agent to 
277         choose the resource that is most appropriate at the time. This patch will 
278         choose the most appropriate image based on device scale factor.
279
280         CSSImageSetValue inherits from CSSValueList and behaves a lot like 
281         CSSImageValue.
282         * WebCore.xcodeproj/project.pbxproj:
283         * css/CSSImageSetValue.h: Added.
284         (WebCore):
285         (CSSImageSetValue):
286         (WebCore::CSSImageSetValue::create):
287         (WebCore::CSSImageSetValue::isPending):
288         (ImageWithScale):
289         (WebCore::CSSImageSetValue::compareByScaleFactor):
290         * css/CSSImageSetValue.cpp: Added.
291         (WebCore):
292         (WebCore::CSSImageSetValue::CSSImageSetValue):
293         (WebCore::CSSImageSetValue::~CSSImageSetValue):
294         (WebCore::CSSImageSetValue::cachedOrPendingImageSet):
295         (WebCore::CSSImageSetValue::customCssText):
296
297         fillImageSet() iterates through the value list and turns the information into 
298         a sorted Vector of ImageWithScales (which is a struct containing image URLs 
299         and scale factors).
300         (WebCore::CSSImageSetValue::fillImageSet):
301
302         cachedImageSet() finds which image is most appropriate based on the device 
303         scale factor, and it loads only that image. In the future, additional scale 
304         factors will be taken into account.
305         (WebCore::CSSImageSetValue::bestImageForScaleFactor):
306         (WebCore::CSSImageSetValue::cachedImageSet):
307
308         parseImageSet() is called everywhere in the CSSParser that a regular image or 
309         generated image can be found.
310         * css/CSSParser.cpp:
311         (WebCore::CSSParser::parseValue):
312         (WebCore::CSSParser::parseContent):
313         (WebCore::CSSParser::parseFillImage):
314         (WebCore::CSSParser::parseBorderImage):
315         (WebCore):
316         (WebCore::CSSParser::parseImageSet):
317         * css/CSSParser.h:
318
319         Since CSSImageSetValue is implemented as a value list, 
320         ApplyPropertyFillLayer::applyValue() needs to be more specific when it's 
321         looking for a list of multiple URLs.
322         * css/CSSStyleApplyProperty.cpp:
323         (WebCore::ApplyPropertyFillLayer::applyValue):
324
325         Handle image-set as a valid image value.
326         * css/CSSStyleSelector.cpp:
327         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
328         * css/CSSStyleSelector.h:
329         (CSSStyleSelector):
330         * css/CSSValue.cpp:
331         (WebCore::CSSValue::cssText):
332         (WebCore::CSSValue::destroy):
333         * css/CSSValue.h:
334         (CSSValue):
335         (WebCore::CSSValue::isImageSetValue):
336
337         computeIntrinsicDimensions() now takes an optional scaleFactor parameter that represents the author-enforced "intrinsic" scale factor of the image.
338         * loader/cache/CachedImage.cpp:
339         (WebCore::CachedImage::computeIntrinsicDimensions):
340         * loader/cache/CachedImage.h:
341         (CachedImage):
342         * platform/graphics/GeneratedImage.h:
343         (GeneratedImage):
344         * platform/graphics/GeneratorGeneratedImage.cpp:
345         (WebCore::GeneratedImage::computeIntrinsicDimensions):
346         * platform/graphics/Image.cpp:
347         (WebCore::Image::computeIntrinsicDimensions):
348         * platform/graphics/Image.h:
349         (Image):
350         * platform/graphics/cg/PDFDocumentImage.cpp:
351         (WebCore::PDFDocumentImage::computeIntrinsicDimensions):
352         * platform/graphics/cg/PDFDocumentImage.h:
353         (PDFDocumentImage):
354         * svg/graphics/SVGImage.cpp:
355         (WebCore::SVGImage::computeIntrinsicDimensions):
356         * svg/graphics/SVGImage.h:
357         (SVGImage):
358
359         Inherits from StyleImage and returns a scaled size for imageSize() and 
360         computeIntrinsicDimensions().
361         * rendering/style/StyleCachedImageSet.cpp: Added.
362         (WebCore):
363         (WebCore::StyleCachedImageSet::StyleCachedImageSet):
364         (WebCore::StyleCachedImageSet::cssValue):
365         (WebCore::StyleCachedImageSet::canRender):
366         (WebCore::StyleCachedImageSet::isLoaded):
367         (WebCore::StyleCachedImageSet::errorOccurred):
368         (WebCore::StyleCachedImageSet::imageSize):
369         (WebCore::StyleCachedImageSet::imageHasRelativeWidth):
370         (WebCore::StyleCachedImageSet::imageHasRelativeHeight):
371         (WebCore::StyleCachedImageSet::computeIntrinsicDimensions):
372         (WebCore::StyleCachedImageSet::usesImageContainerSize):
373         (WebCore::StyleCachedImageSet::setContainerSizeForRenderer):
374         (WebCore::StyleCachedImageSet::addClient):
375         (WebCore::StyleCachedImageSet::removeClient):
376         (WebCore::StyleCachedImageSet::image):
377         * rendering/style/StyleCachedImageSet.h: Added.
378         (WebCore):
379         (StyleCachedImageSet):
380         (WebCore::StyleCachedImageSet::create):
381         (WebCore::StyleCachedImageSet::data):
382         (WebCore::StyleCachedImageSet::cachedImage):
383
384         Handle image-set.
385         * rendering/style/StyleImage.h:
386         (WebCore::StyleImage::isCachedImageSet):
387         (WebCore::StyleImage::StyleImage):
388         (StyleImage):
389         * rendering/style/StylePendingImage.h:
390         (StylePendingImage):
391         (WebCore::StylePendingImage::cssImageSetValue):
392
393 2012-03-21  David Barton  <dbarton@mathscribe.com>
394
395         MathML internals - improve naming in RenderMathMLSquareRoot.cpp and RenderMathMLRoot.cpp
396         https://bugs.webkit.org/show_bug.cgi?id=81850
397
398         Reviewed by Eric Seidel.
399
400         This prepares these files for bug fixes, and eventually combining their common code. To
401         understand this patch, I suggest you start with RenderMathMLSquareRoot.cpp, as it's
402         simpler than RenderMathMLRoot.cpp.
403
404         No new tests. LayoutTests/mathml/presentation/roots.xhtml is thorough enough for this.
405
406         * rendering/mathml/RenderMathMLRoot.cpp:
407         (WebCore):
408         (WebCore::RenderMathMLRoot::addChild):
409         (WebCore::RenderMathMLRoot::paint):
410         (WebCore::RenderMathMLRoot::layout):
411         * rendering/mathml/RenderMathMLRoot.h:
412         (WebCore):
413         (RenderMathMLRoot):
414         * rendering/mathml/RenderMathMLSquareRoot.cpp:
415         (WebCore):
416         (WebCore::RenderMathMLSquareRoot::paint):
417         (WebCore::RenderMathMLSquareRoot::layout):
418         * rendering/mathml/RenderMathMLSquareRoot.h:
419         (WebCore):
420         (RenderMathMLSquareRoot):
421         * rendering/mathml/RenderMathMLSubSup.h:
422         (WebCore):
423
424 2012-03-21  Tony Chang  <tony@chromium.org>
425
426         refactor flexbox in preparation for flex-line-pack
427         https://bugs.webkit.org/show_bug.cgi?id=81843
428
429         Reviewed by Ojan Vafai.
430
431         Replace WrapReverseContext with a vector of LineContexts that contain
432         the same information, plus values needed for flex-align.
433
434         alignChildren has been moved to after all the lines have been
435         positioned. We want to align children after flex-line-pack has changed
436         the size of each line to avoid unnecessary layouts.
437
438         No new tests, just refactoring.
439
440         * rendering/RenderFlexibleBox.cpp:
441         (WebCore::RenderFlexibleBox::LineContext::LineContext): New struct,
442         holds information needed for wrap-reverse and aligning children.
443         (RenderFlexibleBox::LineContext):
444         (WebCore::RenderFlexibleBox::layoutFlexItems): alignChildren after layout out all the lines rather than after each line.
445         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): don't alignChildren
446         (WebCore::RenderFlexibleBox::alignChildren): align all flex items, not just a line at a time.
447         (WebCore::RenderFlexibleBox::flipForWrapReverse): Update to use LineContext
448         * rendering/RenderFlexibleBox.h:
449
450 2012-03-21  Ryosuke Niwa  <rniwa@webkit.org>
451
452         BDI element should have dir=auto by default
453         https://bugs.webkit.org/show_bug.cgi?id=68773
454
455         Reviewed by Daniel Bates.
456
457         Treat bdi elements without dir content attribute as if they have dir=auto per spec:
458         http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-bdi-element
459
460         The patch tries to encapsulate the logic to look for dir content attribute and dir=auto.
461
462         It also adds HTMLBDIElement interface (binding remains to use HTMLElement) to set
463         selfOrAncestorHasDirAutoAttribute flag true by default, which is used by functions like
464         directionalityIfhasDirAutoAttribute to look for elements with dir=auto. Since dir=auto-ness of bdi
465         elements can be overridden by dir content attribute, we must change and only change the default value.
466
467         Tests: fast/text/international/bdi-dir-default-to-auto-expected.html
468                fast/text/international/bdi-dir-default-to-auto.html
469
470         * GNUmakefile.list.am:
471         * Target.pri:
472         * WebCore.gypi:
473         * WebCore.vcproj/WebCore.vcproj:
474         * WebCore.xcodeproj/project.pbxproj:
475         * css/CSSStyleSelector.cpp:
476         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
477         * html/HTMLBDIElement.h: Added.
478         (WebCore):
479         (HTMLBDIElement):
480         (WebCore::HTMLBDIElement::create):
481         (WebCore::HTMLBDIElement::HTMLBDIElement): Sets selfOrAncestorHasDirAutoAttribute to true because
482         bdi elements are treated as if it has dir=auto by default.
483         * html/HTMLElement.cpp:
484         (WebCore::elementAffectsDirectionality): Added. Checks if the specified element is bdi or
485         has dir content attribute.
486         (WebCore):
487         (WebCore::setHasDirAutoFlagRecursively):
488         (WebCore::HTMLElement::hasDirectionAuto): Added. Checks if the specified element should be treated
489         as if it has dir=auto (bdi or element with dir=auto).
490         (WebCore::HTMLElement::directionalityIfhasDirAutoAttribute):
491         (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildAttributeChanged):
492         (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged):
493         * html/HTMLElement.h:
494         (HTMLElement):
495         * html/HTMLTagNames.in: Use HTMLBDIElement instead of HTMLElement for constructing bdi element
496         to set selfOrAncestorHasDirAutoAttribute true but still use HTMLElement for binding.
497
498 2012-03-21  Luke Macpherson  <macpherson@chromium.org>
499
500         Use CSSPrimitiveValue::convertToLength() in a few places.
501         https://bugs.webkit.org/show_bug.cgi?id=81492
502
503         Reviewed by Eric Seidel.
504
505         No new tests - refactoring only.
506
507         CSSPrimitiveValue::convertToLength() provides the same functionality that is duplicated
508         in many places in CSSStyleSelector. This patch removes some of that code duplication.
509
510         * css/CSSStyleApplyProperty.cpp:
511         (WebCore::ApplyPropertyVerticalAlign::applyValue):
512         * css/CSSStyleSelector.cpp:
513         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
514
515 2012-03-21  Patrick Gansterer  <paroga@webkit.org>
516
517         Build fix for ENABLE(SVG) && !ENABLE(FILTERS) after r111601.
518
519         * rendering/svg/RenderSVGRoot.cpp:
520
521 2012-03-21  Patrick Gansterer  <paroga@webkit.org>
522
523         Build fix for !ENABLE(INSPECTOR) after r104831.
524
525         * bindings/js/ScriptDebugServer.cpp:
526         (WebCore::ScriptDebugServer::dispatchDidParseSource):
527
528 2012-03-21  Xiaomei Ji  <xji@chromium.org>
529
530         visual word movement: using cache to decrease the number of collectLeafBoxesInLogicalOrder on RootInlineBox
531         https://bugs.webkit.org/show_bug.cgi?id=81408
532
533         Reviewed by Ryosuke Niwa.
534
535         Cache logically ordered leaf boxes under a particular root box.
536         Also, move 'Vector<UChar, 1024> string' declared in visualWordPosition() to outside of loop (it is always
537         clear-ed before use).
538
539         * editing/visible_units.cpp:
540         (CachedLogicallyOrderedLeafBoxes): Add class to cache logically ordered leaf boxes under a particular root box.
541         (WebCore::CachedLogicallyOrderedLeafBoxes::size):
542         (WebCore::CachedLogicallyOrderedLeafBoxes::firstBox):
543         (WebCore):
544         (WebCore::CachedLogicallyOrderedLeafBoxes::CachedLogicallyOrderedLeafBoxes):
545         (WebCore::CachedLogicallyOrderedLeafBoxes::previousTextBox):
546         (WebCore::CachedLogicallyOrderedLeafBoxes::nextTextBox):
547         (WebCore::CachedLogicallyOrderedLeafBoxes::collectBoxes):
548         (WebCore::CachedLogicallyOrderedLeafBoxes::boxIndexInLeaves):
549         (WebCore::logicallyPreviousBox): Pass CachedLogicallyOrderedLeafBoxes object around.
550         (WebCore::logicallyNextBox):
551         (WebCore::wordBreakIteratorForMinOffsetBoundary):
552         (WebCore::wordBreakIteratorForMaxOffsetBoundary):
553         (WebCore::visualWordPosition):
554
555 2012-03-21  Dana Jansens  <danakj@chromium.org>
556
557         [chromium] Early out in a new prepareToDraw() step if checkerboarding an accelerated animation in order to skip the frame
558         https://bugs.webkit.org/show_bug.cgi?id=81437
559
560         Reviewed by Adrienne Walker.
561
562         Split CCLayerTreeHostImpl::drawLayers() into two phases:
563         prepareToDraw() and drawLayers().
564
565         When calculating a RenderPass, and we checkerboard a quad on a
566         layer, bubble this info back up to CCLayerTreeHostImpl. If the
567         layer is transforming in an animation, then abort the prepareToDraw()
568         phase and cause it to return false back to the thread proxy.
569
570         Unit test: CCLayerTreeHostImplTest.prepareToDrawFailsWhenAnimationUsesCheckerboard
571
572         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
573         (WebCore::CCLayerImpl::appendQuads):
574         * platform/graphics/chromium/cc/CCLayerImpl.h:
575         (CCLayerImpl):
576         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
577         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
578         (WebCore::CCLayerTreeHostImpl::prepareToDraw):
579         (WebCore):
580         (WebCore::CCLayerTreeHostImpl::drawLayers):
581         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
582         (CCLayerTreeHostImpl):
583         (FrameData):
584         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
585         (WebCore::CCQuadCuller::append):
586         * platform/graphics/chromium/cc/CCQuadCuller.h:
587         (CCQuadCuller):
588         * platform/graphics/chromium/cc/CCRenderPass.cpp:
589         (WebCore::CCRenderPass::appendQuadsForLayer):
590         * platform/graphics/chromium/cc/CCRenderPass.h:
591         (CCRenderPass):
592         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
593         (WebCore::CCScrollbarLayerImpl::appendQuads):
594         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
595         (CCScrollbarLayerImpl):
596         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
597         (WebCore::CCSingleThreadProxy::doComposite):
598         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
599         (WebCore::CCSolidColorLayerImpl::appendQuads):
600         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
601         (CCSolidColorLayerImpl):
602         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
603         (WebCore::CCTextureLayerImpl::appendQuads):
604         * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
605         (CCTextureLayerImpl):
606         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
607         (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
608         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
609         (WebCore::CCTiledLayerImpl::appendQuads):
610         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
611         (CCTiledLayerImpl):
612         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
613         (WebCore::CCVideoLayerImpl::appendQuads):
614         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
615         (CCVideoLayerImpl):
616
617 2012-03-21  Enrica Casucci  <enrica@apple.com>
618
619         WebKitURLWithTitles pasteboard format should support URLs containing Emoji characters.
620         https://bugs.webkit.org/show_bug.cgi?id=81835
621         <rdar://problem/11082749>
622
623         Reviewed by Brady Eidson.
624
625         When writing the URL in the pasteboard for the WebURLWithTitles format,
626         we use the user visible string instead of the original URL.
627         In case of URL with Unicode characters, we lose the encoding.
628         
629         Added TestWebKitAPI test.
630
631         * platform/mac/PasteboardMac.mm:
632         (WebCore::writeURLForTypes): Writes to the pasteboard the original URL.
633
634 2012-03-21  Levi Weintraub  <leviw@chromium.org>
635
636         Correct LayoutUnit usage in VisiblePosition.cpp
637         https://bugs.webkit.org/show_bug.cgi?id=81775
638
639         Reviewed by Eric Seidel.
640
641         Correcting a mismatch between the .h and .cpp for the definition of localCaretRect,
642         and properly using LayoutUnits for local coordinates.
643
644         No new tests. No change in behavior.
645
646         * editing/VisiblePosition.cpp:
647         (WebCore::VisiblePosition::localCaretRect): Switching to return a LayoutRect, as in the
648         header. Local coordinates are in LayoutUnits.
649         (WebCore::VisiblePosition::absoluteCaretBounds): Using LayoutRect for the localCaretRect.
650         (WebCore::VisiblePosition::lineDirectionPointForBlockDirectionNavigation): Ditto.
651
652 2012-03-21  Adam Klein  <adamk@chromium.org>
653
654         "this" argument for MutationCallbacks should be the MutationObserver
655         https://bugs.webkit.org/show_bug.cgi?id=81712
656
657         Reviewed by Adam Barth.
658
659         Test: fast/mutation/callback-arguments.html
660
661         * bindings/js/JSCallbackData.cpp:
662         (WebCore::JSCallbackData::invokeCallback): Add an overload that takes
663         an explicit this argument and have the old method call the new one.
664         * bindings/js/JSCallbackData.h:
665         (JSCallbackData):
666         * bindings/js/JSMutationCallbackCustom.cpp:
667         (WebCore::JSMutationCallback::handleEvent): Call the new overload.
668         * bindings/v8/custom/V8CustomVoidCallback.cpp:
669         (WebCore::invokeCallback): Add an overload that takes an explicit this
670         argument and have the old method call the new one.
671         * bindings/v8/custom/V8CustomVoidCallback.h:
672         (WebCore):
673         * bindings/v8/custom/V8MutationCallbackCustom.cpp:
674         (WebCore::V8MutationCallback::handleEvent): Call the new overload.
675
676 2012-03-21  Alexandru Chiculita  <achicu@adobe.com>
677
678         [CSS Shaders] Make CSS Shaders compile on Chromium
679         https://bugs.webkit.org/show_bug.cgi?id=81435
680
681         Reviewed by Stephen White.
682
683         This patch enables the CSS Shaders compile time flag, but keeps the runtime flag disabled.
684         The only way to test the functionality now is to use the overridePreference from dump render tree.
685
686         Also part of this patch I fix a layering violation: I removed the "Document" reference from the FECustomFilter.cpp and passed the
687         HostWindow directly. There should be no problem when the HostWindow changes, because the RenderLayer and the FECustomFilter
688         get recreated anyway.
689
690         No new tests. I've updated the existing custom filter tests to run under Chromium and added the expected results.
691         I've just added window.layoutTestController.overridePreference("WebKitCSSCustomFilterEnabled", "1") to force 
692         enable the feature at runtime. 
693
694         * loader/cache/CachedResource.cpp: Made CachedResource::ShaderResource report as ResourceRequest::TargetIsSubresource for Chromium.
695         (WebCore::cachedResourceTypeToTargetType):
696
697         * platform/graphics/filters/FECustomFilter.cpp:
698         (WebCore::FECustomFilter::FECustomFilter): Removed Document and just used the HostWindow directly.
699         (WebCore::FECustomFilter::create):
700         (WebCore::FECustomFilter::initializeContext):
701         (WebCore::FECustomFilter::bindVertexAttribute): There was a typo and instead of using the "size" parameter it always used 4 component attribute.
702         Other drivers didn't complain about it, but it was clearly a bug.
703         (WebCore::FECustomFilter::bindProgramAndBuffers): Reading the image back from GPU will flip vertically the framebuffer in Chromium. I've flipped the
704         projection matrix only on Chromium, so that we get the correct result.
705
706         * rendering/FilterEffectRenderer.cpp:
707         (WebCore::FilterEffectRenderer::build): Passing the HostWindow instead of the Document.
708
709 2012-03-21  Mark Pilgrim  <pilgrim@chromium.org>
710
711         Realphabetize about webaudio move
712         https://bugs.webkit.org/show_bug.cgi?id=81825
713
714         Reviewed by Adam Barth.
715
716         No new tests, all existing tests pass.
717
718         * CMakeLists.txt:
719
720 2012-03-21  Anders Carlsson  <andersca@apple.com>
721
722         Evict tiles from pages in background tabs
723         https://bugs.webkit.org/show_bug.cgi?id=81829
724         <rdar://problem/10866152>
725
726         Reviewed by Andreas Kling.
727
728         When the tile cache for a page is no longer in a window (which happens when it's moved to 
729         a background tab), schedule a tile revalidation after 4 seconds. This tile revalidation 
730         will ensure that tiles outside of the visible rect will be dropped.
731
732         * platform/graphics/ca/mac/TileCache.h:
733         (TileCache):
734         * platform/graphics/ca/mac/TileCache.mm:
735         (WebCore::TileCache::tileCacheLayerBoundsChanged):
736         (WebCore::TileCache::setIsInWindow):
737         (WebCore::TileCache::tileCoverageRect):
738         (WebCore):
739         (WebCore::TileCache::scheduleTileRevalidation):
740         (WebCore::TileCache::revalidateTiles):
741
742 2012-03-21  Stephen Chenney  <schenney@chromium.org>
743
744         SVG layout leaves objects still needing layout
745         https://bugs.webkit.org/show_bug.cgi?id=81006
746
747         Reviewed by Nikolas Zimmermann.
748
749         Change the layout of SVG objects such that resources that trigger
750         layout of other objects are handled in a distinct pass, and then
751         objects still requiring layout are laid out again.
752
753         Test: svg/custom/delete-text-innerText-crash.html
754
755         * rendering/svg/RenderSVGResourceContainer.cpp:
756         (WebCore::RenderSVGResourceContainer::layout):
757         * rendering/svg/RenderSVGResourceMarker.cpp:
758         (WebCore::RenderSVGResourceMarker::layout):
759         * rendering/svg/RenderSVGRoot.cpp:
760         (WebCore::RenderSVGRoot::layout):
761         (WebCore::RenderSVGRoot::addResourceForClientInvalidation):
762         (WebCore):
763         * rendering/svg/RenderSVGRoot.h:
764         (RenderSVGRoot):
765
766 2012-03-21  Tim Horton  <timothy_horton@apple.com>
767
768         Make use of CG rounded-rect primitives
769         https://bugs.webkit.org/show_bug.cgi?id=79932
770         <rdar://problem/9274953>
771
772         Reviewed by Simon Fraser.
773
774         Portions of patch by Nikolas Zimmermann and Mustafizur Rahaman.
775
776         Dispatch to potentially platform-specific rounded rectangle path
777         construction from addPathForRoundedRect. Make use of this to call
778         wkCGPathAddRoundedRect on Lion and above, as long as the rounded
779         corners are all equivalent.
780
781         The origin of the stroke dash differs between the bezier approach
782         and the path added by wkCGPathAddRoundedRect, so Path::addRoundedRect()
783         takes a new parameter allowing code which is sensitive to stroke dash
784         origin (i.e. SVG) to fall back to the old behavior if need be.
785
786         Make use of the new Path::addRoundedRect() parameter to fall back to
787         the old (bezier) rounded-rect behavior when constructing a dashed SVG path,
788         in order to continue complying with the spec.
789
790         No new tests, as this is covered by many that use rounded corners,
791         and is only a performance improvement.
792
793         * WebCore.exp.in:
794         * platform/graphics/Path.cpp:
795         (WebCore::Path::addRoundedRect):
796         (WebCore):
797         (WebCore::Path::addPathForRoundedRect):
798         * platform/graphics/Path.h:
799         (Path):
800         * platform/graphics/cg/PathCG.cpp:
801         (WebCore::Path::platformAddPathForRoundedRect):
802         (WebCore):
803         * platform/mac/WebCoreSystemInterface.h:
804         * platform/mac/WebCoreSystemInterface.mm:
805         * rendering/svg/SVGPathData.cpp:
806         (WebCore::updatePathFromRectElement):
807
808 2012-03-21  David Reveman  <reveman@chromium.org>
809
810         [Chromium] GL_EXT_occlusion_query_boolean and GL_CHROMIUM_command_buffer_query support.
811         https://bugs.webkit.org/show_bug.cgi?id=80988
812
813         Reviewed by Adrienne Walker.
814
815         Expose EXT_occlusion_query API to WebKit compositor. Add
816         GL_EXT_occlusion_query_boolean and GL_CHROMIUM_command_buffer_query
817         enums.
818
819         * platform/graphics/chromium/Extensions3DChromium.h:
820         (Extensions3DChromium):
821
822 2012-03-21  Tony Chang  <tony@chromium.org>
823
824         compute the sign of flexibility for new flexbox
825         https://bugs.webkit.org/show_bug.cgi?id=81722
826
827         Reviewed by Ojan Vafai.
828
829         This implements the computation of the sign of flexibility used by the
830         new flexing algorithm.
831         http://dev.w3.org/csswg/css3-flexbox/#resolve-the-flexible-lengths
832
833         No new tests, we don't use the sign of flexibility yet.
834
835         * rendering/RenderFlexibleBox.cpp:
836         (WebCore::RenderFlexibleBox::layoutFlexItems):
837         (WebCore::RenderFlexibleBox::computeNextFlexLine): Compute the size
838         adjusted for min/max as well as not adjusted.
839         (WebCore::RenderFlexibleBox::resolveFlexibleLengths): Renamed to match
840         spec text better.
841         * rendering/RenderFlexibleBox.h: Added enum for flex sign.
842
843 2012-03-21  Vsevolod Vlasov  <vsevik@chromium.org>
844
845         Web Inspector: Extract WebInspector.UIBreakpoint from WebInspector.Breakpoint.
846         https://bugs.webkit.org/show_bug.cgi?id=81669
847
848         Reviewed by Pavel Feldman.
849
850         * inspector/front-end/BreakpointManager.js:
851         (WebInspector.BreakpointManager.get for):
852         (WebInspector.BreakpointManager):
853         (WebInspector.BreakpointManager.prototype.uiSourceCodeAdded):
854         (WebInspector.BreakpointManager.prototype.uiSourceCodeRemoved):
855         (WebInspector.BreakpointManager.prototype.breakpointsForUISourceCode):
856         (WebInspector.BreakpointManager.prototype.setBreakpoint):
857         (WebInspector.BreakpointManager.prototype.removeBreakpoint):
858         (WebInspector.BreakpointManager.prototype._innerRemoveBreakpoint):
859         (WebInspector.BreakpointManager.prototype.removeAllBreakpoints):
860         (WebInspector.BreakpointManager.prototype._moveBreakpointInUI):
861         (WebInspector.BreakpointManager.prototype._uiBreakpoints.get this):
862         (WebInspector.BreakpointManager.prototype._uiBreakpoints):
863         (WebInspector.BreakpointManager.prototype.get _uiBreakpoint):
864         (WebInspector.BreakpointManager.prototype._addBreakpointToUI):
865         (WebInspector.BreakpointManager.prototype._removeBreakpointFromUI):
866         (WebInspector.BreakpointManager.prototype._breakpoints):
867         (WebInspector.BreakpointManager.prototype._breakpoint):
868         (WebInspector.BreakpointManager.prototype._addBreakpointToModel):
869         (WebInspector.BreakpointManager.prototype._removeBreakpointFromModel):
870         (WebInspector.BreakpointManager.prototype._forEachBreakpoint):
871         (WebInspector.BreakpointManager.prototype._setBreakpointInDebugger):
872         (WebInspector.BreakpointManager.prototype._removeBreakpointFromDebugger):
873         (WebInspector.BreakpointManager.prototype.debuggerReset):
874         (WebInspector.Breakpoint.prototype.serialize):
875         (WebInspector.Breakpoint.prototype.get uiBreakpoint):
876         (WebInspector.Breakpoint.prototype.createUIBreakpoint):
877         (WebInspector.Breakpoint.prototype.removeUIBreakpoint):
878         (WebInspector.UIBreakpoint):
879         * inspector/front-end/DebuggerPresentationModel.js:
880         (WebInspector.DebuggerPresentationModel.prototype._handleUISourceCodeListChanged):
881         (WebInspector.DebuggerPresentationModel.prototype.findBreakpoint):
882         (WebInspector.DebuggerPresentationModel.prototype._breakpointAdded):
883         (WebInspector.DebuggerPresentationModel.prototype._breakpointRemoved):
884         * inspector/front-end/ScriptsPanel.js:
885
886 2012-03-21  Anders Carlsson  <andersca@apple.com>
887
888         TileCache needs to know if its containing page is in a window
889         https://bugs.webkit.org/show_bug.cgi?id=81821
890
891         Reviewed by Andreas Kling.
892
893         This is in preparation for throwing away invisible tiles in background tabs to reduce memory usage.
894
895         * page/FrameView.cpp:
896         (WebCore::FrameView::didMoveOnscreen):
897         (WebCore::FrameView::willMoveOffscreen):
898         * page/Page.cpp:
899         (WebCore::Page::Page):
900         (WebCore::Page::didMoveOnscreen):
901         (WebCore::Page::willMoveOffscreen):
902         * page/Page.h:
903         (WebCore::Page::isOnscreen):
904         (Page):
905         * platform/graphics/TiledBacking.h:
906         (TiledBacking):
907         * platform/graphics/ca/mac/TileCache.h:
908         (TileCache):
909         * platform/graphics/ca/mac/TileCache.mm:
910         (WebCore::TileCache::TileCache):
911         (WebCore::TileCache::setIsInWindow):
912         (WebCore):
913         * rendering/RenderLayerBacking.cpp:
914         (WebCore::RenderLayerBacking::RenderLayerBacking):
915
916 2012-03-21  Xingnan Wang  <xingnan.wang@intel.com>
917
918         Web audio layout test failed in debug with an ASSERT error in ReverbConvolverStage.cpp
919         https://bugs.webkit.org/show_bug.cgi?id=81744
920
921         Reviewed by Chris Rogers.
922
923         * platform/audio/ReverbConvolverStage.cpp:
924         (WebCore::ReverbConvolverStage::ReverbConvolverStage):
925
926 2012-03-21  Xiaomei Ji  <xji@chromium.org>
927
928         [chromium] Font fallback in cr-win is wrong for string contains zero-width-space.
929         https://bugs.webkit.org/show_bug.cgi?id=79961
930
931         Reviewed by Adam Barth.
932
933         Treat zero-width-space (\u200B) as true for treatAsZeroWidthSpaceInComplexScipt().
934
935         * platform/graphics/Font.h:
936         (WebCore::Font::treatAsZeroWidthSpaceInComplexScript):
937         * platform/graphics/mac/ComplexTextController.cpp:
938         (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
939         * platform/graphics/win/UniscribeController.cpp:
940         (WebCore::UniscribeController::shapeAndPlaceItem):
941
942 2012-03-21  Patrick Gansterer  <paroga@webkit.org>
943
944         Build fix for !ENABLE(INSPECTOR) after r111005.
945
946         * inspector/ContentSearchUtils.h:
947
948 2012-03-21  Ulan Degenbaev  <ulan@chromium.org>
949
950         [V8] V8GCForContextDispose should indicate whether a context is disposed for the main frame or not
951         https://bugs.webkit.org/show_bug.cgi?id=81200
952
953         Reviewed by Adam Barth.
954
955         Pass a hint to V8::IdleNotification that requests more aggressive GC
956         when a main frame context is disposed and requests incremental GC otherwise.
957
958         * bindings/v8/V8DOMWindowShell.cpp:
959         (WebCore::V8DOMWindowShell::disposeContextHandles):
960         * bindings/v8/V8GCForContextDispose.cpp:
961         (WebCore::V8GCForContextDispose::V8GCForContextDispose):
962         (WebCore::V8GCForContextDispose::notifyContextDisposed):
963         (WebCore::V8GCForContextDispose::pseudoIdleTimerFired):
964         * bindings/v8/V8GCForContextDispose.h:
965         (V8GCForContextDispose):
966
967 2012-03-21  Nat Duca  <nduca@chromium.org>
968
969         [chromium] CCThreadProxy must initialize frameBeginTime to monotonicallyIncreasingTime rather than zero
970         https://bugs.webkit.org/show_bug.cgi?id=81790
971
972         Reviewed by James Robinson.
973
974         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
975         (WebCore::CCThreadProxy::scheduledActionBeginFrame):
976
977 2012-03-21  Xingnan Wang  <xingnan.wang@intel.com>
978
979         Add multichannel support in RealtimeAnalyser
980         https://bugs.webkit.org/show_bug.cgi?id=81745
981
982         Reviewed by Chris Rogers.
983
984         * Modules/webaudio/RealtimeAnalyser.cpp:
985         (WebCore::RealtimeAnalyser::writeInput):
986         (WebCore):
987
988 2012-03-21  Eric Carlson  <eric.carlson@apple.com>
989
990         Removing HTMLTrackElement does not delete TextTrack
991         https://bugs.webkit.org/show_bug.cgi?id=80873
992
993         Reviewed by Antti Koivisto.
994
995         No new tests, but media/track/track-language-preference.html has been updated
996         to test this fix.
997
998         * html/HTMLMediaElement.cpp:
999         (WebCore::HTMLMediaElement::didAddTrack): Renamed from trackWasAdded.
1000         (WebCore::HTMLMediaElement::willRemoveTrack): Renamed from trackWasRemoved because it is
1001         called before the track is removed, to allow the TextTrack to be removed.
1002         * html/HTMLMediaElement.h:
1003
1004         * html/HTMLTrackElement.cpp:
1005         (WebCore::HTMLTrackElement::insertedIntoTree): Renamed from insertedIntoDocument
1006         (WebCore::HTMLTrackElement::willRemove): Renamed from removedFromDocument.
1007         * html/HTMLTrackElement.h:
1008
1009         * html/track/LoadableTextTrack.cpp:
1010         (WebCore::LoadableTextTrack::trackElementIndex): Don't include tracks that are not in the
1011         document in the calcualtion.
1012
1013 2012-03-21  Zeno Albisser  <zeno@webkit.org>
1014
1015         [Qt][Mac] ranlib segfaults when creating symbol tables for libWebCore.a.
1016         https://bugs.webkit.org/show_bug.cgi?id=81750
1017
1018         Building WebCore on mac currently creates an archive that is bigger than
1019         4GB. But ranlib fails to create a symbol table for such a big archive,
1020         even on 64bit machines.
1021         Therefore we start using SVGAllInOne.cpp when building debug
1022         on mac. This reduces the size of the archive by about 300MB.
1023
1024         Reviewed by Tor Arne Vestbø.
1025
1026         * Target.pri:
1027
1028 2012-03-21  Tommy Widenflycht  <tommyw@google.com>
1029
1030         [chromium] MediaStream API (JSEP): Introducing WebSessionDescription and WebIceCandidate
1031         https://bugs.webkit.org/show_bug.cgi?id=81339
1032
1033         Reviewed by Adam Barth.
1034
1035         Not possible to test until the entire JSEP feature is commited.
1036
1037         * Modules/mediastream/IceCandidate.cpp:
1038         (WebCore::IceCandidate::toSdp):
1039         * Modules/mediastream/SessionDescription.cpp:
1040         (WebCore::SessionDescription::toSdp):
1041         * platform/mediastream/IceCandidateDescriptor.cpp:
1042         (WebCore::IceCandidateDescriptor::toSDP):
1043         * platform/mediastream/IceCandidateDescriptor.h:
1044         (IceCandidateDescriptor):
1045         * platform/mediastream/MediaStreamCenter.cpp:
1046         (WebCore::MediaStreamCenter::constructSDP):
1047         * platform/mediastream/MediaStreamCenter.h:
1048         (MediaStreamCenter):
1049         * platform/mediastream/SessionDescriptionDescriptor.cpp:
1050         (WebCore::SessionDescriptionDescriptor::SessionDescriptionDescriptor):
1051         (WebCore::SessionDescriptionDescriptor::toSDP):
1052         (WebCore::SessionDescriptionDescriptor::initialSDP):
1053         * platform/mediastream/SessionDescriptionDescriptor.h:
1054         (SessionDescriptionDescriptor):
1055
1056 2012-03-21  Yuta Kitamura  <yutak@chromium.org>
1057
1058         Use RFC version of WebSocket protocol by default
1059         https://bugs.webkit.org/show_bug.cgi?id=81718
1060
1061         Reviewed by Kent Tamura.
1062
1063         Flip the default value of Settings::m_useHixie76WebSocketProtocol so WebKit ports will use
1064         RFC version of WebSocket protocol by default.
1065
1066         All the existing ports already use the RFC protocol as of now, so this change will not make
1067         any impact (hopefully).
1068
1069         No new tests. No change in functionality.
1070
1071         * page/Settings.cpp:
1072         (WebCore::Settings::Settings):
1073
1074 2012-03-21  Andrey Kosyakov  <caseq@chromium.org>
1075
1076         Web Inspector: only show JS event listeners in Event Listeners tab of Elements panel
1077         https://bugs.webkit.org/show_bug.cgi?id=81798
1078
1079         Reviewed by Pavel Feldman.
1080
1081         * bindings/js/JSInjectedScriptHostCustom.cpp:
1082         (WebCore::getJSListenerFunctions):
1083         * bindings/js/ScriptEventListener.cpp:
1084         (WebCore::eventListenerHandlerBody):
1085         (WebCore::eventListenerHandlerLocation):
1086         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
1087         (WebCore::getJSListenerFunctions):
1088         * inspector/InspectorDOMAgent.cpp:
1089         (WebCore::InspectorDOMAgent::getEventListeners):
1090
1091 2012-03-21  Andrey Kosyakov  <caseq@chromium.org>
1092
1093         EventListener::Type enum has unused member InspectorDOMAgentType
1094         https://bugs.webkit.org/show_bug.cgi?id=81794
1095
1096         Reviewed by Pavel Feldman.
1097
1098         * dom/EventListener.h:
1099
1100 2012-03-21  Tom Hudson  <tomhudson@google.com>
1101
1102         Incremental cleanup of BitmapImage: inlined virtual functions
1103         https://bugs.webkit.org/show_bug.cgi?id=81688
1104
1105         Reviewed by James Robinson.
1106
1107         No change in functionality, so no new tests.
1108
1109         Move virtual functions defined in headers into .cpp files.
1110
1111         * WebCore.gypi:
1112         * platform/graphics/BitmapImage.cpp:
1113         (WebCore::BitmapImage::isBitmapImage):
1114         (WebCore):
1115         (WebCore::BitmapImage::hasSingleSecurityOrigin):
1116         (WebCore::BitmapImage::nativeImageForCurrentFrame):
1117         (WebCore::BitmapImage::currentFrameHasAlpha):
1118         (WebCore::BitmapImage::notSolidColor):
1119         (WebCore::BitmapImage::decodedSize):
1120         (WebCore::BitmapImage::mayFillWithSolidColor):
1121         (WebCore::BitmapImage::solidColor):
1122         * platform/graphics/BitmapImage.h:
1123         (BitmapImage):
1124         * platform/graphics/skia/BitmapImageSingleFrameSkia.cpp: Added.
1125         (WebCore):
1126         (WebCore::BitmapImageSingleFrameSkia::isBitmapImage):
1127         (WebCore::BitmapImageSingleFrameSkia::currentFrameHasAlpha):
1128         (WebCore::BitmapImageSingleFrameSkia::size):
1129         (WebCore::BitmapImageSingleFrameSkia::destroyDecodedData):
1130         (WebCore::BitmapImageSingleFrameSkia::decodedSize):
1131         (WebCore::BitmapImageSingleFrameSkia::nativeImageForCurrentFrame):
1132         (WebCore::BitmapImageSingleFrameSkia::notSolidColor):
1133         * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
1134         (BitmapImageSingleFrameSkia):
1135
1136 2012-03-21  Alexey Proskuryakov  <ap@apple.com>
1137
1138         Remove obsolete File attributes
1139         https://bugs.webkit.org/show_bug.cgi?id=79383
1140
1141         Reviewed by Hajime Morita.
1142
1143         * bindings/objc/PublicDOMInterfaces.h:
1144         * fileapi/File.h:
1145         * fileapi/File.idl:
1146         Removed fileName and fileSize, they have different names now.
1147
1148         * html/FileInputType.cpp:
1149         (WebCore::FileInputType::appendFormData):
1150         (WebCore::FileInputType::getTypeSpecificValue):
1151         (WebCore::FileInputType::defaultToolTip):
1152         Updated to use new function names.
1153
1154 2012-03-21  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
1155
1156         TiledBackingStore: Create the first round of tiles synchronously after setting the visible rect.
1157         https://bugs.webkit.org/show_bug.cgi?id=81762
1158
1159         Reviewed by Kenneth Rohde Christiansen.
1160
1161         The first round of tiles should cover completely the visible rect.
1162         Creating the tiles synchronously allows us to get the new tiles immediately
1163         and prevents an extra AC layers sync to be able to remove the old tiles.
1164
1165         At some point it might also make sense to remove the tile creation timer
1166         completely.
1167
1168         * platform/graphics/TiledBackingStore.cpp:
1169         (WebCore::TiledBackingStore::coverWithTilesIfNeeded):
1170
1171 2012-03-19  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
1172
1173         TiledBackingStore: When checking if the visible area is covered, only convert to scaled coordinates once.
1174         https://bugs.webkit.org/show_bug.cgi?id=81519
1175
1176         Reviewed by Kenneth Rohde Christiansen.
1177
1178         Both visibleRect and coverageRatio call mapFromContents on the input rect,
1179         this woulc cause the coverageRatio to never reach 1.0 when the contents is
1180         scaled up.
1181
1182         * platform/graphics/TiledBackingStore.cpp:
1183         (WebCore::TiledBackingStore::visibleAreaIsCovered):
1184
1185 2012-03-21  Mao Yujie  <yujie.mao@intel.com>
1186
1187         MediaStream API: Need to support MediaStream constructor for JSC
1188         https://bugs.webkit.org/show_bug.cgi?id=78781
1189
1190         Reviewed by Adam Barth.
1191
1192         No new tests.
1193
1194         * Modules/mediastream/DOMWindowMediaStream.idl:
1195         * bindings/generic/RuntimeEnabledFeatures.h:
1196         (WebCore::RuntimeEnabledFeatures::webkitMediaStreamEnabled):
1197
1198 2012-03-21  Philip Rogers  <pdr@google.com>
1199
1200         Skip building resources if SVGTRef is not in a document
1201         https://bugs.webkit.org/show_bug.cgi?id=81473
1202
1203         Reviewed by Nikolas Zimmermann.
1204
1205         We can skip the building of pending resources in SVGTRef if we're not
1206         yet in a document. This mirrors the nearly identical logic in
1207         SVGUseElement::buildPendingResource() and
1208         SVGFEImageElement::buildPendingResource().
1209
1210         Test: http/tests/svg/tref-adoptNode-crash.html
1211
1212         * svg/SVGTRefElement.cpp:
1213         (WebCore::SVGTRefElement::buildPendingResource):
1214
1215 2012-03-21  Sami Kyostila  <skyostil@chromium.org>
1216
1217         [chromium] Use floating point scroll deltas for layers
1218         https://bugs.webkit.org/show_bug.cgi?id=81546
1219
1220         Reviewed by James Robinson.
1221
1222         Use floating point scroll deltas for layers instead of integral scroll
1223         deltas. This is because due to page scaling it may be necessary to
1224         scroll layers in sub-CSS-pixel steps to avoid visible jumps. When the
1225         floating point scroll offset is committed to the main thread, it is
1226         truncated to integer, but the fractional part is kept on the CC side to
1227         make sure fractional scroll offsets are accumulated correctly over
1228         multiple commits.
1229
1230         Test: CCLayerTreeHostTestFractionalScroll
1231
1232         * platform/graphics/FloatPoint.h:
1233         (WebCore::toSize):
1234         (WebCore):
1235         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
1236         (WebCore::CCLayerImpl::scrollBy):
1237         (WebCore::CCLayerImpl::setScrollDelta):
1238         * platform/graphics/chromium/cc/CCLayerImpl.h:
1239         (WebCore::CCLayerImpl::scrollDelta):
1240         (CCLayerImpl):
1241         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1242         (WebCore::CCLayerTreeHostImpl::startPageScaleAnimation):
1243         (WebCore::CCLayerTreeHostImpl::adjustScrollsForPageScaleChange):
1244         (WebCore::CCLayerTreeHostImpl::processScrollDeltas):
1245         (WebCore::CCLayerTreeHostImpl::animatePageScale):
1246
1247 2012-03-21  Li Yin  <li.yin@intel.com>
1248
1249         [WebSocket]The Sec-WebSocket-Accept MUST NOT appear more than once in an HTTP response
1250         https://bugs.webkit.org/show_bug.cgi?id=81655
1251
1252         Reviewed by Adam Barth.
1253
1254         Test: http/tests/websocket/tests/hybi/handshake-fail-by-more-accept-header.html
1255
1256         * Modules/websockets/WebSocketHandshake.cpp:
1257         (WebCore::WebSocketHandshake::readHTTPHeaders):
1258
1259 2012-03-21  Alexei Filippov  <alexeif@chromium.org>
1260
1261         Web Inspector: Speedup heap snapshot loading.
1262         https://bugs.webkit.org/show_bug.cgi?id=81788
1263
1264         Reviewed by Yury Semikhatsky.
1265
1266         * inspector/front-end/HeapSnapshot.js:
1267         (WebInspector.HeapSnapshotLoader.prototype._parseNodes):
1268
1269 2012-03-21  Pavel Feldman  <pfeldman@chromium.org>
1270
1271         Web Inspector: get rid of isInEditMode, use isBeingEdited on particular element.
1272         https://bugs.webkit.org/show_bug.cgi?id=81766
1273
1274         Reviewed by Yury Semikhatsky.
1275
1276         We should check event target and its ancestors for being edited, not use some
1277         global property. This change also introduces Event.prototype.consume so that we
1278         were consistently consuming events.
1279
1280         * inspector/front-end/AdvancedSearchController.js:
1281         (WebInspector.SearchView.prototype._onKeyDown):
1282         * inspector/front-end/BreakpointsSidebarPane.js:
1283         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointCheckboxClicked):
1284         * inspector/front-end/CSSSelectorProfileView.js:
1285         * inspector/front-end/Checkbox.js:
1286         (WebInspector.Checkbox.prototype.addEventListener):
1287         * inspector/front-end/ConsoleView.js:
1288         (WebInspector.ConsoleView.prototype._enterKeyPressed):
1289         (WebInspector.ConsoleGroup.prototype._titleClicked):
1290         * inspector/front-end/ContextMenu.js:
1291         (WebInspector.ContextMenu.prototype.show):
1292         * inspector/front-end/DataGrid.js:
1293         (WebInspector.DataGrid.prototype._keyDown):
1294         * inspector/front-end/DatabaseQueryView.js:
1295         (WebInspector.DatabaseQueryView.prototype._enterKeyPressed):
1296         * inspector/front-end/DetailedHeapshotView.js:
1297         (WebInspector.DetailedHeapshotView.prototype._mouseDownInContentsGrid):
1298         (WebInspector.DetailedHeapshotView.prototype._startRetainersHeaderDragging):
1299         (WebInspector.DetailedHeapshotView.prototype._retainersHeaderDragging):
1300         (WebInspector.DetailedHeapshotView.prototype._endRetainersHeaderDragging):
1301         * inspector/front-end/Dialog.js:
1302         (WebInspector.Dialog.prototype._onKeyDown):
1303         * inspector/front-end/Drawer.js:
1304         (WebInspector.Drawer.prototype._startStatusBarDragging):
1305         (WebInspector.Drawer.prototype._statusBarDragging):
1306         (WebInspector.Drawer.prototype._endStatusBarDragging):
1307         * inspector/front-end/EventListenersSidebarPane.js:
1308         (WebInspector.EventListenersSidebarPane.get if):
1309         * inspector/front-end/HelpScreen.js:
1310         (WebInspector.HelpScreen.prototype._onKeyDown):
1311         * inspector/front-end/InspectorView.js:
1312         (WebInspector.InspectorView.prototype._keyDown):
1313         * inspector/front-end/MetricsSidebarPane.js:
1314         (WebInspector.MetricsSidebarPane.prototype._highlightDOMNode):
1315         * inspector/front-end/NetworkPanel.js:
1316         * inspector/front-end/Object.js:
1317         (WebInspector.Event.prototype.preventDefault):
1318         (WebInspector.Event.prototype.consume):
1319         * inspector/front-end/ObjectPropertiesSection.js:
1320         (WebInspector.ObjectPropertyTreeElement.prototype._promptKeyDown):
1321         * inspector/front-end/ProfileView.js:
1322         * inspector/front-end/SearchController.js:
1323         (WebInspector.SearchController.prototype._onKeyDown):
1324         * inspector/front-end/Section.js:
1325         (WebInspector.Section.prototype.handleClick):
1326         * inspector/front-end/Settings.js:
1327         (WebInspector.ExperimentsSettings):
1328         * inspector/front-end/SoftContextMenu.js:
1329         (.WebInspector.SoftContextMenu.prototype.show):
1330         (.WebInspector.SoftContextMenu.prototype._menuItemMouseDown):
1331         (.WebInspector.SoftContextMenu.prototype._menuKeyDown):
1332         (.WebInspector.SoftContextMenu.prototype._discardMenu):
1333         * inspector/front-end/Spectrum.js:
1334         (WebInspector.Spectrum.draggable.consume):
1335         (WebInspector.Spectrum.draggable.start):
1336         (WebInspector.Spectrum.draggable.stop):
1337         (WebInspector.Spectrum.draggable):
1338         (WebInspector.Spectrum.prototype._onKeyDown):
1339         * inspector/front-end/StylesSidebarPane.js:
1340         (WebInspector.StylesSidebarPane.muteEventListener):
1341         (WebInspector.StylesSidebarPane):
1342         (WebInspector.StylesSidebarPane.prototype.set _createNewRule):
1343         (WebInspector.StylesSidebarPane.prototype._toggleElementStatePane):
1344         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
1345         (WebInspector.StylePropertiesSection.prototype._handleSelectorClick):
1346         (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
1347         (WebInspector.StylePropertyTreeElement.prototype):
1348         * inspector/front-end/TextPrompt.js:
1349         (WebInspector.TextPrompt.prototype.onKeyDown):
1350         (WebInspector.TextPromptWithHistory.prototype.defaultKeyHandler):
1351         (WebInspector.TextPrompt.SuggestBox.prototype._onItemMouseDown):
1352         * inspector/front-end/TextViewer.js:
1353         (WebInspector.TextViewer.prototype._handleKeyDown):
1354         * inspector/front-end/Toolbar.js:
1355         (WebInspector.ToolbarDropdown.prototype._onKeyDown):
1356         * inspector/front-end/UIUtils.js:
1357         (WebInspector.isBeingEdited):
1358         (WebInspector.startEditing):
1359         * inspector/front-end/View.js:
1360         (WebInspector.View.prototype._doLoadCSS):
1361         * inspector/front-end/WatchExpressionsSidebarPane.js:
1362         (WebInspector.WatchExpressionsSidebarPane.prototype._addButtonClicked):
1363         (WebInspector.WatchExpressionsSidebarPane.prototype._refreshButtonClicked):
1364         * inspector/front-end/inspector.js:
1365         (WebInspector.documentClick.followLink):
1366         (WebInspector.documentClick):
1367         (WebInspector.documentKeyDown):
1368         (WebInspector.postDocumentKeyDown):
1369         (WebInspector.addMainEventListeners):
1370         * inspector/front-end/treeoutline.js:
1371         (TreeOutline.prototype._treeKeyPress):
1372         (TreeOutline.prototype._treeKeyDown):
1373         (TreeOutline.prototype._searchInputKeyDown):
1374         (TreeElement.treeElementToggled):
1375         (TreeElement.prototype.selectOnMouseDown):
1376         * inspector/front-end/utilities.js:
1377         (Event.prototype.consume):
1378
1379 2012-03-21  Yury Semikhatsky  <yurys@chromium.org>
1380
1381         Web Inspector: event listener section doesn't show all event listeners of the element ancestors
1382         https://bugs.webkit.org/show_bug.cgi?id=81782
1383
1384         Event listeners section now contains all event listeners for the selected
1385         element ancestors chain (in case option "All Nodes" is selected).
1386
1387         Reviewed by Pavel Feldman.
1388
1389         * inspector/InspectorDOMAgent.cpp:
1390         (WebCore::InspectorDOMAgent::getEventListenersForNode):
1391         * inspector/front-end/EventListenersSidebarPane.js:
1392         (WebInspector.EventListenersSidebarPane.prototype.update.callback):
1393         (WebInspector.EventListenersSidebarPane.prototype.update):
1394         (WebInspector.EventListenersSidebarPane.prototype):
1395
1396 2012-03-21  Ilya Tikhonovsky  <loislo@chromium.org>
1397
1398         Web Inspector: HeapSnapshot: move all builders and calculation calls to HeapSnapshot._init function.
1399         https://bugs.webkit.org/show_bug.cgi?id=81784
1400
1401         Reviewed by Yury Semikhatsky.
1402
1403         * inspector/front-end/HeapSnapshot.js:
1404         (WebInspector.HeapSnapshot.prototype._init):
1405         (WebInspector.HeapSnapshot.prototype.dispose):
1406         (WebInspector.HeapSnapshot.prototype._retainersForNode):
1407         (WebInspector.HeapSnapshot.prototype._dominatedNodesOfNode):
1408         (WebInspector.HeapSnapshot.prototype._flagsOfNode):
1409         (WebInspector.HeapSnapshot.prototype.aggregates):
1410         (WebInspector.HeapSnapshot.prototype._buildRetainers):
1411         (WebInspector.HeapSnapshot.prototype.get nodeIndexes):
1412
1413 2012-03-21  Jessie Berlin  <jberlin@apple.com>
1414
1415         WTF headers should be in $(ConfigurationBuildDir)\include\private\wtf, not
1416         $(ConfigurationBuildDir)\include\private\JavaScriptCore\wtf.
1417         https://bugs.webkit.org/show_bug.cgi?id=81739
1418
1419         Reviewed by Dan Bernstein.
1420
1421         * WebCore.vcproj/WebCore.vcproj:
1422         Look for AtomicString.cpp, StringBuilder.cpp, StringImpl.cpp, and WTFString.cpp in the wtf
1423         subdirectory of the build output, not the JavaScriptCore/wtf subdirectory.
1424
1425 2012-03-21  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
1426
1427         [BlackBerry] Credential save and autofill implemetation
1428         https://bugs.webkit.org/show_bug.cgi?id=80401
1429
1430         Reviewed by Rob Buis.
1431
1432         Added interface function authenticationChallenge() and
1433         notifyShouldSaveCredential() into PageClientBlackBerry.
1434         As this class is our platform specific interface,
1435         by doing this we don't need to add an interface function
1436         in class FrameLoaderClient which is a platform
1437         independent interface.
1438
1439         No new tests.
1440
1441         * platform/blackberry/PageClientBlackBerry.h:
1442         (WebCore):
1443         * platform/network/blackberry/NetworkJob.cpp:
1444         (WebCore::NetworkJob::sendRequestWithCredentials):
1445
1446 2012-03-21  Ilya Tikhonovsky  <loislo@chromium.org>
1447
1448         Web Inspector: HeapProfiler: DOM node id can overflow Int32.
1449         https://bugs.webkit.org/show_bug.cgi?id=81776
1450
1451         Reviewed by Pavel Feldman.
1452
1453         * inspector/front-end/HeapSnapshot.js:
1454         (WebInspector.Uint32Array):
1455         (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk):
1456         (WebInspector.HeapSnapshot.prototype._buildReverseIndex.var):
1457         (WebInspector.HeapSnapshot.prototype._buildReverseIndex):
1458         (WebInspector.HeapSnapshot.prototype._buildNodeIndex):
1459
1460 2012-03-21  Tim Dresser  <tdresser@chromium.org>
1461
1462         [chromium] Increase size of Combo Box Options for touch and high DPI devices
1463         https://bugs.webkit.org/show_bug.cgi?id=80027
1464
1465         Reviewed by Darin Fisher.
1466
1467         Scale Combo box popups by defaultDeviceScaleFactor, and add padding to
1468         <option> elements when touch is enabled.
1469
1470         Manually tested with --default-device-scale-factor=1,2 and unset.
1471         Each of these were tested with RuntimeEnabledFeatures::touchEnabled
1472         set to true and false.
1473
1474         * platform/chromium/PopupListBox.cpp:
1475         (WebCore::PopupListBox::paint):
1476         (WebCore::PopupListBox::paintRow):
1477         (WebCore::PopupListBox::getRowHeight):
1478         * platform/chromium/PopupListBox.h:
1479         (PopupContainerSettings):
1480         * platform/chromium/PopupMenuChromium.cpp:
1481         (WebCore):
1482         (WebCore::PopupMenuChromium::show):
1483         * platform/chromium/PopupMenuChromium.h:
1484         (WebCore::PopupMenuChromium::optionPaddingForTouch):
1485         (WebCore::PopupMenuChromium::setOptionPaddingForTouch):
1486         (PopupMenuChromium):
1487         * rendering/RenderMenuList.cpp:
1488         (WebCore::RenderMenuList::showPopup):
1489
1490 2012-03-21  Takashi Toyoshima  <toyoshim@chromium.org>
1491
1492         [Chromium] [WebSocket] provide WebFrameClient with a chance of
1493         accessing to opening WebSocketStreamHandle.
1494         https://bugs.webkit.org/show_bug.cgi?id=78459
1495
1496         Reviewed by Kent Tamura and Darin Fisher.
1497
1498         Add willOpenSocketStream client function to WebFrameClient with an
1499         argument representing an opening SocketStreamHandle.
1500         These mechanisms provide embedders with a chance to bind arbitrary
1501         data to a WebSocketStreamHandle from WebFrameClient to which the
1502         WebSocket object having the WebSocketStreamHandle belongs.
1503
1504         No new tests because this change just provide mechanisms to embedders.
1505
1506         * Modules/websockets/WebSocketChannel.cpp: Implement willOpenSocketStream to call a client function in WebFrameClient.
1507         (WebCore::WebSocketChannel::willOpenSocketStream):
1508         (WebCore):
1509         * Modules/websockets/WebSocketChannel.h: Add willOpenSocketStream declaration.
1510         (WebSocketChannel):
1511         * loader/FrameLoaderClient.h: Add dispatchWillOpenSocketStream declaration.
1512         (WebCore):
1513         (FrameLoaderClient):
1514         (WebCore::FrameLoaderClient::dispatchWillOpenSocketStream):
1515         * platform/network/SocketStreamHandleClient.h: Add willOpenSocketStream declaration.
1516         (WebCore::SocketStreamHandleClient::willOpenSocketStream):
1517
1518 2012-03-21  Vineet Chaudhary  <rgf748@motorola.com>
1519
1520         https://bugs.webkit.org/show_bug.cgi?id=81761
1521         Fix Gobject binding for sequence<T> for function return type.
1522
1523         Reviewed by Kentaro Hara.
1524
1525         No new tests.
1526
1527         * bindings/scripts/CodeGeneratorGObject.pm:
1528         (SkipFunction): Skip function with sequence<T> return type.
1529         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
1530         (webkit_dom_test_obj_method_with_sequence_arg):
1531         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
1532
1533 2012-03-21  Andrey Kosyakov  <caseq@chromium.org>
1534
1535         Unreviewed build fix for r111529.
1536
1537         * inspector/InjectedScriptHost.h:
1538         (WebCore):
1539
1540 2012-03-21  Sheriff Bot  <webkit.review.bot@gmail.com>
1541
1542         Unreviewed, rolling out r111497, r111506, r111508, and
1543         r111513.
1544         http://trac.webkit.org/changeset/111497
1545         http://trac.webkit.org/changeset/111506
1546         http://trac.webkit.org/changeset/111508
1547         http://trac.webkit.org/changeset/111513
1548         https://bugs.webkit.org/show_bug.cgi?id=81774
1549
1550         It broke 2 tests on all platform (Requested by Ossy on
1551         #webkit).
1552
1553         * css/CSSStyleSelector.cpp:
1554         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1555         * css/SelectorChecker.cpp:
1556         (WebCore::SelectorChecker::checkOneSelector):
1557         * html/HTMLKeygenElement.cpp:
1558         (WebCore::HTMLKeygenElement::HTMLKeygenElement):
1559         * html/HTMLOptionElement.cpp:
1560         (WebCore::HTMLOptionElement::HTMLOptionElement):
1561         (WebCore::HTMLOptionElement::create):
1562         (WebCore::HTMLOptionElement::attach):
1563         (WebCore::HTMLOptionElement::detach):
1564         (WebCore::HTMLOptionElement::formControlType):
1565         (WebCore):
1566         (WebCore::HTMLOptionElement::parseAttribute):
1567         (WebCore::HTMLOptionElement::childrenChanged):
1568         (WebCore::HTMLOptionElement::insertedIntoTree):
1569         * html/HTMLOptionElement.h:
1570         (HTMLOptionElement):
1571         (WebCore::HTMLOptionElement::ownElementDisabled):
1572         * html/HTMLTagNames.in:
1573
1574 2012-03-21  Andrey Kosyakov  <caseq@chromium.org>
1575
1576         Web Inspector: expose getEventListeners() to console command line API
1577         https://bugs.webkit.org/show_bug.cgi?id=81658
1578
1579         Reviewed by Yury Semikhatsky.
1580
1581         Test: inspector/console/command-line-api-getEventListeners.html
1582
1583         * bindings/js/JSInjectedScriptHostCustom.cpp:
1584         (WebCore::JSInjectedScriptHost::functionDetails):
1585         (WebCore):
1586         (WebCore::getJSListenerFunctions):
1587         (WebCore::JSInjectedScriptHost::getEventListeners):
1588         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
1589         (WebCore::getJSListenerFunctions):
1590         (WebCore):
1591         (WebCore::V8InjectedScriptHost::getEventListenersCallback):
1592         * inspector/InjectedScriptHost.cpp:
1593         (WebCore::InjectedScriptHost::InjectedScriptHost):
1594         (WebCore::InjectedScriptHost::disconnect):
1595         (WebCore::InjectedScriptHost::getEventListenersImpl):
1596         (WebCore):
1597         * inspector/InjectedScriptHost.h:
1598         (WebCore):
1599         (WebCore::InjectedScriptHost::init):
1600         (InjectedScriptHost):
1601         * inspector/InjectedScriptHost.idl:
1602         * inspector/InjectedScriptSource.js:
1603         (.):
1604         * inspector/InspectorController.cpp:
1605         (WebCore::InspectorController::InspectorController):
1606         * inspector/InspectorDOMAgent.cpp:
1607         (WebCore::InspectorDOMAgent::getEventListenersForNode):
1608         (WebCore::InspectorDOMAgent::getEventListeners):
1609         (WebCore):
1610         * inspector/InspectorDOMAgent.h:
1611         (InspectorDOMAgent):
1612         * inspector/WorkerInspectorController.cpp:
1613         (WebCore::WorkerInspectorController::WorkerInspectorController):
1614
1615 2012-03-21  Kentaro Hara  <haraken@chromium.org>
1616
1617         Unreviewed, rebaselined run-bindings-tests results.
1618
1619         * bindings/scripts/test/CPP/WebDOMFloat64Array.cpp:
1620         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
1621         * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
1622         * bindings/scripts/test/ObjC/DOMFloat64Array.mm:
1623
1624 2012-03-21  Ian Vollick  <vollick@chromium.org>
1625
1626         [chromium] timing functions are getting incorrectly applied for accelerated css transitions
1627         https://bugs.webkit.org/show_bug.cgi?id=81692
1628
1629         Reviewed by Adrienne Walker.
1630
1631         Tested in CCLayerTreeHostTestAddAnimationWithTimingFunction
1632
1633         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
1634
1635 2012-03-21  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
1636
1637         [Qt] Cookie Jar blocks on fsync in SQLITE
1638         https://bugs.webkit.org/show_bug.cgi?id=81755
1639
1640         Reviewed by Simon Hausmann.
1641
1642         Set PRAGMA synchronous to OFF, which tells SQLITE to never fsync.
1643
1644         * platform/qt/CookieJarQt.cpp:
1645         (WebCore::SharedCookieJarQt::ensureDatabaseTable):
1646
1647 2012-03-21  Ian Vollick  <vollick@chromium.org>
1648
1649         [chromium] Animation events should only be used for synchronizing animation start times
1650         https://bugs.webkit.org/show_bug.cgi?id=81484
1651
1652         Reviewed by Adrienne Walker.
1653
1654         Tested in CCLayerTreeHostTestSynchronizeAnimationStartTimes
1655
1656         Eliminated animation finished events. Animations will finish naturally on the
1657         main thread and the final values will be set.
1658
1659         Animation started events are now also used to synchronize the main thread
1660         animations' start times with their impl thread equivalents, preventing skew.
1661         Until main thread animations receive their synchronized start times, they will
1662         apply their initial values (i.e., they will be paused at time zero). This
1663         guarantees that we will not jump to the animation's final value on the main
1664         thread while we wait for the synchronized start time.
1665
1666         * WebCore.gypi:
1667         * platform/graphics/chromium/LayerChromium.cpp:
1668         (WebCore::LayerChromium::notifyAnimationStarted):
1669         * platform/graphics/chromium/LayerChromium.h:
1670         (WebCore):
1671         (LayerChromium):
1672         * platform/graphics/chromium/cc/CCActiveAnimation.cpp:
1673         (WebCore::CCActiveAnimation::CCActiveAnimation):
1674         * platform/graphics/chromium/cc/CCActiveAnimation.h:
1675         (CCActiveAnimation):
1676         (WebCore::CCActiveAnimation::needsSynchronizedStartTime):
1677         (WebCore::CCActiveAnimation::setNeedsSynchronizedStartTime):
1678         * platform/graphics/chromium/cc/CCAnimationEvents.cpp: Removed.
1679         * platform/graphics/chromium/cc/CCAnimationEvents.h:
1680         (WebCore::CCAnimationStartedEvent::CCAnimationStartedEvent):
1681         (CCAnimationStartedEvent):
1682         (WebCore):
1683         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
1684         (WebCore::CCLayerAnimationController::animate):
1685         (WebCore::CCLayerAnimationController::notifyAnimationStarted):
1686         (WebCore):
1687         (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
1688         (WebCore::CCLayerAnimationController::startAnimationsWaitingForNextTick):
1689         (WebCore::CCLayerAnimationController::startAnimationsWaitingForStartTime):
1690         (WebCore::CCLayerAnimationController::startAnimationsWaitingForTargetAvailability):
1691         (WebCore::CCLayerAnimationController::purgeFinishedAnimations):
1692         (WebCore::CCLayerAnimationController::tickAnimations):
1693         * platform/graphics/chromium/cc/CCLayerAnimationController.h:
1694         (CCLayerAnimationController):
1695         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1696         (WebCore::CCLayerTreeHost::updateAnimations):
1697         (WebCore::CCLayerTreeHost::setAnimationEventsRecursive):
1698         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1699         (CCLayerTreeHost):
1700
1701 2012-03-21  Zeno Albisser  <zeno@webkit.org>
1702
1703         [Qt][WK2][Mac] MiniBrowser asserts at HashTable.h:480
1704         https://bugs.webkit.org/show_bug.cgi?id=81113
1705
1706         The GLContext is created by QWindow/QSurface using
1707         QOpenGLContext which is implemented using NSOpenGL functions
1708         on mac. Therefore we should use QOpenGLContext as well when
1709         querying for the current context. AGL is not supposed
1710         to be paired with NSOpenGL.
1711         Altering the typedef for GLContext is fine, since
1712         the GLContext type is only used as a key in a map.
1713
1714         Reviewed by Kenneth Rohde Christiansen.
1715
1716         * platform/graphics/texmap/TextureMapperGL.cpp:
1717         (SharedGLData):
1718         (WebCore::TextureMapperGLData::SharedGLData::getCurrentGLContext):
1719
1720 2012-03-21  Ilya Tikhonovsky  <loislo@chromium.org>
1721
1722         Web Inspector: HeapSnapshot: make _bfs twice as fast as the old version.
1723         https://bugs.webkit.org/show_bug.cgi?id=81756
1724
1725         Reviewed by Yury Semikhatsky.
1726
1727         * inspector/front-end/HeapSnapshot.js:
1728         (WebInspector.HeapSnapshot.prototype._calculateObjectToWindowDistance):
1729         (WebInspector.HeapSnapshot.prototype._bfs):
1730
1731 2012-03-21  Vineet Chaudhary  <rgf748@motorola.com>
1732
1733         https://bugs.webkit.org/show_bug.cgi?id=81705
1734         REGRESSION (r111416): fast/dom/prototype-inheritance-2.html is failing.
1735
1736         Reviewed by Csaba Osztrogonác.
1737
1738         No new tests.
1739
1740         * bindings/js/JSDOMBinding.h: Needs passing globalObject to constructArray().
1741         (WebCore::jsArray):
1742
1743 2012-03-21  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
1744
1745         [BlackBerry] Upstreaming blackberry specific css file
1746         https://bugs.webkit.org/show_bug.cgi?id=81650
1747
1748         Ustream BlackBerry specific css files, including:
1749         css/themeBlackBerry.css
1750         css/mediaControlsBlackBerry.css
1751
1752         Reviewed by Nikolas Zimmermann.
1753
1754         No new tests, this is the initial upstream patch
1755         for BlackBerry specific css files.
1756
1757         * css/mediaControlsBlackBerry.css: Added.
1758         (audio):
1759         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
1760         (video:-webkit-full-page-media::-webkit-media-controls-panel):
1761         (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
1762         (audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
1763         (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
1764         (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
1765         (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
1766         (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button):
1767         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
1768         (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
1769         (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
1770         (audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button):
1771         (audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button):
1772         * css/themeBlackBerry.css: Added.
1773         (textarea):
1774         (input, textarea):
1775         (input[type="color"]):
1776         (select:focus):
1777         (select[size][multiple]):
1778         (select[size][multiple]:focus):
1779
1780 2012-03-21  Levi Weintraub  <leviw@chromium.org>
1781
1782         Update LayoutUnit usage in descendants of RenderReplaced
1783         https://bugs.webkit.org/show_bug.cgi?id=80918
1784
1785         Reviewed by Eric Seidel.
1786
1787         Replaced elements have to flow in the new sub-pixel Render Tree, but since the rendering of these
1788         often takes place outside of WebCore (or in cases such as foreign objects, in WebCore after
1789         passing through platform code), care must be taken to determine the final rendered size and
1790         location before render time. This patch brings these classes up to the latest and greatest in the
1791         subpixellayout branch.
1792
1793         See https://trac.webkit.org/wiki/LayoutUnit for more information.
1794
1795         No new tests. No change in behavior.
1796
1797         * rendering/RenderFrameBase.cpp:
1798         (WebCore::RenderFrameBase::layoutWithFlattening): Build Fix.
1799         * rendering/RenderFullScreen.cpp:
1800         (RenderFullScreen::createPlaceholder): Ditto.
1801         * rendering/RenderFullScreen.h:
1802         (RenderFullScreen): Ditto.
1803         * rendering/RenderHTMLCanvas.cpp:
1804         (WebCore::RenderHTMLCanvas::canvasSizeChanged): Ditto.
1805         * rendering/RenderIFrame.cpp:
1806         (WebCore::RenderIFrame::computeLogicalHeight): Ditto.
1807         (WebCore::RenderIFrame::computeLogicalWidth): Ditto.
1808         * rendering/RenderImage.cpp:
1809         (WebCore::RenderImage::updateIntrinsicSizeIfNeeded): Intrinsic sizes are always integers, since they
1810         originate outside of WebCore.
1811         (WebCore::RenderImage::paintIntoRect): Use pixel snapping to paint into an arbitrary rect.
1812         (WebCore::RenderImage::computeReplacedLogicalWidth): Intrinsic size is always integral -- rounding
1813         values to integers.
1814         * rendering/RenderImage.h:
1815         (RenderImage):
1816         * rendering/RenderVideo.cpp:
1817         (WebCore::RenderVideo::videoBox):
1818         (WebCore::RenderVideo::paintReplaced): Painting at integer boundaries.
1819         * rendering/RenderWidget.cpp:
1820         (WebCore):
1821         (WebCore::roundedIntRect): Widgets are rendered outside of WebCore, so we always align them to
1822         integer boundaries. This means we can actually round the size of our ultimate content box. This
1823         function is implemented here specifically to prevent its misuse if we put it elsewhere.
1824         (WebCore::RenderWidget::setWidgetGeometry): We simplify layout by taking a LayoutRect and rounding
1825         it to its final location within this function.
1826         (WebCore::RenderWidget::updateWidgetGeometry): We keep things in LayoutUnits until handing off to
1827         setWidgetGeometry.
1828         (WebCore::RenderWidget::paint): Rounding the paint location before handing painting off to the
1829         widget itself.
1830         * rendering/RenderWidget.h:
1831         (RenderWidget):
1832
1833 2012-03-21  Ilya Tikhonovsky  <loislo@chromium.org>
1834
1835         Web Inspector: HeapProfiler: support distance column in Summary View.
1836         https://bugs.webkit.org/show_bug.cgi?id=81675
1837
1838         In many cases when a page leaked an object we see not only this object
1839         but the all objects it retains. It is quite difficult to find out which
1840         the object is the root of leak. It'd be simpler to sort the leaked
1841         objects by Distance column and track down the first one.
1842
1843         Reviewed by Yury Semikhatsky.
1844
1845         * inspector/front-end/DetailedHeapshotGridNodes.js:
1846         (WebInspector.HeapSnapshotGenericObjectNode):
1847         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
1848         (WebInspector.HeapSnapshotInstanceNode.prototype.comparator):
1849         (WebInspector.HeapSnapshotConstructorNode):
1850         (WebInspector.HeapSnapshotConstructorNode.prototype.comparator):
1851         (WebInspector.HeapSnapshotConstructorNode.prototype.get data):
1852         * inspector/front-end/DetailedHeapshotView.js:
1853         (WebInspector.HeapSnapshotConstructorsDataGrid):
1854         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._defaultPopulateCount.100._sortFields):
1855         * inspector/front-end/HeapSnapshot.js:
1856         (WebInspector.HeapSnapshotNodesProvider.prototype._serialize):
1857
1858 2012-03-21  Charles Wei  <charles.wei@torchmobile.com.cn>
1859
1860         [BlackBerry] Remove redundant code in SocketStreamHandler
1861         https://bugs.webkit.org/show_bug.cgi?id=81726
1862
1863         Reviewed by George Staikos.
1864
1865         No new tests needed. Just remove redundant code.
1866
1867         * platform/network/blackberry/SocketStreamHandle.h:
1868         (SocketStreamHandle):
1869         * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
1870
1871 2012-03-20  Eric Seidel  <eric@webkit.org>
1872
1873         Move wtf/Platform.h from JavaScriptCore to Source/WTF/wtf
1874         https://bugs.webkit.org/show_bug.cgi?id=80911
1875
1876         Reviewed by Adam Barth.
1877
1878         * CMakeLists.txt:
1879          - Look for headers in Source/WTF as well.
1880
1881 2012-03-20  Dana Jansens  <danakj@chromium.org>
1882
1883         [chromium] Use origin transform to transform occlusion from surface content space to its target content space
1884         https://bugs.webkit.org/show_bug.cgi?id=81730
1885
1886         Reviewed by Adrienne Walker.
1887
1888         Unit test: CCOcclusionTrackerTestSurfaceOcclusionTranslatesToParent
1889
1890         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
1891         (WebCore::transformSurfaceOpaqueRegion):
1892         (WebCore::::leaveToTargetRenderSurface):
1893
1894 2012-03-19  Shinya Kawanaka  <shinyak@chromium.org>
1895
1896         [Crash] RenderMenuList::addChild() in Shadow DOM.
1897         https://bugs.webkit.org/show_bug.cgi?id=81201
1898
1899         Reviewed by Dimitri Glazkov.
1900
1901         <audio>, <video>, <meter>, <progress>, and <select> are implemented using
1902         Shadow DOM having HTMLContentElement. Their renderer children basically should not
1903         create a renderer unless they are on the upper shadow encapsulation boundary,
1904         which means they are the direct children of the shadow root.
1905
1906         However, current implementation allows their renderer children to create a renderer
1907         even if they are on a lower shadow encapsulation boundary, which means
1908         they are distributed elements of HTMLContentElement.
1909
1910         This patch makes there renderer children not to create a renderer if they are on a lower shadow
1911         encapsulation boudary.
1912
1913         Tests: fast/dom/shadow/content-element-in-media-element.html
1914                fast/dom/shadow/content-element-in-meter-element.html
1915                fast/dom/shadow/content-element-in-progress-element.html
1916                fast/dom/shadow/content-element-in-select-element.html
1917
1918         * dom/NodeRenderingContext.h:
1919         (NodeRenderingContext):
1920         (WebCore::NodeRenderingContext::isOnUpperEncapsulationBoundary):
1921         (WebCore):
1922         * html/HTMLMediaElement.cpp:
1923         (WebCore::HTMLMediaElement::childShouldCreateRenderer):
1924         * html/HTMLMeterElement.cpp:
1925         (WebCore::HTMLMeterElement::childShouldCreateRenderer):
1926         * html/HTMLProgressElement.cpp:
1927         (WebCore::HTMLProgressElement::childShouldCreateRenderer):
1928         * html/HTMLSelectElement.cpp:
1929         (WebCore::HTMLSelectElement::childShouldCreateRenderer):
1930
1931 2012-03-20  Dana Jansens  <danakj@chromium.org>
1932
1933         [chromium] Store origin/screen space transforms for surface and replica in the surface
1934         https://bugs.webkit.org/show_bug.cgi?id=81296
1935
1936         Reviewed by Adrienne Walker.
1937
1938         Compute and save a number of transforms for render surfaces. The origin
1939         tranform for the replica into its target surface. The origin transform
1940         for the replica into the screen. And the origin transform for the surface
1941         into the screen.
1942
1943         These transforms will allow us to detect occlusion of render surfaces,
1944         allowing us to cull (or partially-cull) the render surface quad during
1945         drawing.
1946
1947         This also fixes a subtle bug in the transforms used by the damage
1948         tracking code.
1949
1950         Unit test: CCLayerTreeHostCommonTest.verifyTransformsForSingleRenderSurface
1951                    CCLayerTreeHostCommonTest.verifyTransformsForReplica
1952                    CCLayerTreeHostCommonTest.verifyTransformsForRenderSurfaceHierarchy
1953
1954         * platform/graphics/chromium/RenderSurfaceChromium.h:
1955         (WebCore::RenderSurfaceChromium::screenSpaceTransform):
1956         (WebCore::RenderSurfaceChromium::setScreenSpaceTransform):
1957         (RenderSurfaceChromium):
1958         (WebCore::RenderSurfaceChromium::replicaOriginTransform):
1959         (WebCore::RenderSurfaceChromium::setReplicaOriginTransform):
1960         (WebCore::RenderSurfaceChromium::replicaScreenSpaceTransform):
1961         (WebCore::RenderSurfaceChromium::setReplicaScreenSpaceTransform):
1962         * platform/graphics/chromium/cc/CCDamageTracker.cpp:
1963         (WebCore::CCDamageTracker::extendDamageForRenderSurface):
1964         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
1965         (WebCore::calculateDrawTransformsAndVisibilityInternal):
1966         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1967         (WebCore::damageInSurfaceSpace):
1968         * platform/graphics/chromium/cc/CCRenderSurface.h:
1969         (WebCore::CCRenderSurface::setDrawTransform):
1970         (WebCore::CCRenderSurface::drawTransform):
1971         (WebCore::CCRenderSurface::setScreenSpaceTransform):
1972         (WebCore::CCRenderSurface::screenSpaceTransform):
1973         (CCRenderSurface):
1974         (WebCore::CCRenderSurface::setReplicaDrawTransform):
1975         (WebCore::CCRenderSurface::replicaDrawTransform):
1976         (WebCore::CCRenderSurface::setReplicaOriginTransform):
1977         (WebCore::CCRenderSurface::replicaOriginTransform):
1978         (WebCore::CCRenderSurface::setReplicaScreenSpaceTransform):
1979         (WebCore::CCRenderSurface::replicaScreenSpaceTransform):
1980
1981 2012-03-20  Yoshifumi Inoue  <yosin@chromium.org>
1982
1983         [Forms] The option element should not be form associated element.
1984         https://bugs.webkit.org/show_bug.cgi?id=79764
1985
1986         Reviewed by Kent Tamura.
1987
1988         This patch changes base class of HTMLOptionELement to HTMLElement
1989         from HTMLFormControlElement for saving memory space and iteration
1990         time of extra "option" elements in HTMLFormElement::m_formAssociatedElements
1991         and matching the HTML5 specification for ease of maintenance.
1992
1993         This patch changes behavior of handling of CSS pseudo classes "invalid"
1994         and "valid". The "option" elements no longer use these CSS pseudo classes
1995         as HTML5 specification. This bug was filed in https://bugs.webkit.org/show_bug.cgi?id=80088
1996
1997         Changes of TextIterator is lead by usage of isFormControlElement. This
1998         changes will be replaced with more meaningful predicate as part of
1999         https://bugs.webkit.org/show_bug.cgi?id=80381
2000
2001         No new tests but updated select-live-pseudo-selectors.html test.
2002
2003         * css/CSSStyleSelector.cpp:
2004         (WebCore::CSSStyleSelector::canShareStyleWithElement): Added checking of the "option" element and returns false as HTMLFormControlElement.
2005         * css/SelectorChecker.cpp:
2006         (WebCore::SelectorChecker::checkOneSelector): Removed isFormControlElement for PseudoDisabled and PseudoChecked.
2007         * html/HTMLKeygenElement.cpp:
2008         (WebCore::HTMLKeygenElement::HTMLKeygenElement): Removed form parameter of call site of HTMLOptionElement::create.
2009         * html/HTMLOptionElement.cpp:
2010         (WebCore::HTMLOptionElement::HTMLOptionElement): Removed form parameter which no longer needed. Changed base class in initialization list. Added m_disabled initialization.
2011         (WebCore::HTMLOptionElement::create): Removed form parameter which no longer needed.
2012         (WebCore::HTMLOptionElement::attach): Changeid base class.
2013         (WebCore::HTMLOptionElement::detach): Changed base class.
2014         (WebCore::HTMLOptionElement::parseAttribute): Changed base class. Added "disabled" attribute handling.
2015         (WebCore::HTMLOptionElement::childrenChanged): Changed base class.
2016         (WebCore::HTMLOptionElement::insertedIntoTree): Changed base class.
2017         * html/HTMLOptionElement.h:
2018         (HTMLOptionElement): Added new member variable m_disabled which was in HTMLFormControlElement.
2019         (WebCore::HTMLOptionElement::ownElementDisabled): Changed for using m_disabled.
2020         * html/HTMLTagNames.in: Removed constructorNeedsFormElement for the "option" element, which was used for passing form parameter to create function.
2021
2022 2012-03-20  Xiaomei Ji  <xji@chromium.org>
2023
2024         Crash introduced in r110965.
2025         https://bugs.webkit.org/show_bug.cgi?id=81720
2026
2027         Reviewed by Ryosuke Niwa.
2028
2029         Since word break iterator just keeps a pointer to the UChar array given to the constructor,
2030         we need to allocate the UChar array deeper in the stack than the iterator.
2031
2032         Test: editing/selection/move-by-word-visually-crash-test-5.html
2033
2034         * editing/visible_units.cpp:
2035         (WebCore::wordBreakIteratorForMinOffsetBoundary):
2036         (WebCore::wordBreakIteratorForMaxOffsetBoundary):
2037         (WebCore::visualWordPosition):
2038
2039 2012-03-20  W. James MacLean  <wjmaclean@chromium.org>
2040
2041         [chromium] Convert TouchFlingPlatformGestureCurve to a 2-D Bezier for better control of curve shape.
2042         https://bugs.webkit.org/show_bug.cgi?id=81713
2043
2044         Reviewed by Dirk Pranke.
2045
2046         Exisiting unit test revised to cover this change.
2047
2048         Change the fling gesture animation curve to use a 2-D Bezier to obtain greater control
2049         over the shape of the curve. Also, change time scaling code to be logarithmic for more
2050         natural feel.
2051
2052         * platform/TouchFlingPlatformGestureCurve.cpp:
2053         (WebCore::TouchFlingPlatformGestureCurve::TouchFlingPlatformGestureCurve):
2054         (WebCore::TouchFlingPlatformGestureCurve::apply):
2055
2056 2012-03-18  Tim Horton  <timothy_horton@apple.com>
2057
2058         Infinite repaint loop with SVGImageCache and deferred repaint timers
2059         https://bugs.webkit.org/show_bug.cgi?id=78315
2060         <rdar://problem/10651634>
2061
2062         Reviewed by Nikolas Zimmermann.
2063
2064         Only defer image redraw on a timer if we're in layout. This breaks
2065         the repaint loop while still preventing us from drawing inside layout.
2066
2067         Completely disable repaint during relayout inside SVGImage::drawSVGToImageBuffer,
2068         preventing deferred repaint timers from being started during that process.
2069
2070         No new tests, as the problem only occurs in a nonstandard configuration.
2071
2072         * page/FrameView.cpp:
2073         (WebCore::FrameView::FrameView):
2074         (WebCore::FrameView::reset):
2075         (WebCore::FrameView::repaintContentRectangle):
2076         (WebCore::FrameView::endDeferredRepaints):
2077         (WebCore::FrameView::startDeferredRepaintTimer):
2078         (WebCore):
2079         (WebCore::FrameView::doDeferredRepaints):
2080         (WebCore::FrameView::deferredRepaintTimerFired):
2081         (WebCore::FrameView::beginDisableRepaints):
2082         (WebCore::FrameView::endDisableRepaints):
2083         * page/FrameView.h:
2084         (FrameView):
2085         (WebCore::FrameView::repaintsDisabled):
2086         * rendering/RenderView.cpp:
2087         (WebCore::RenderView::shouldRepaint):
2088         * svg/graphics/SVGImage.cpp:
2089         (WebCore::SVGImage::drawSVGToImageBuffer):
2090         (WebCore::SVGImage::draw):
2091         (WebCore::SVGImage::frameView):
2092         (WebCore):
2093         * svg/graphics/SVGImage.h:
2094         (WebCore):
2095         * svg/graphics/SVGImageCache.cpp:
2096         (WebCore::SVGImageCache::imageContentChanged):
2097         (WebCore::SVGImageCache::redraw):
2098         (WebCore::SVGImageCache::redrawTimerFired):
2099         (WebCore):
2100         * svg/graphics/SVGImageCache.h:
2101         (SVGImageCache):
2102
2103 2012-03-20  Adam Klein  <adamk@chromium.org>
2104
2105         Include fix for dom/xhtml test promised in r111449.
2106
2107         * dom/ContainerNode.cpp:
2108         (WebCore::ContainerNode::replaceChild): Check against next instead of
2109         prev when deciding there's no work to do.
2110
2111 2012-03-20  Jon Lee  <jonlee@apple.com>
2112
2113         Restrict access to notifications for unique origins and file URLs with no local file access
2114         https://bugs.webkit.org/show_bug.cgi?id=79704
2115         <rdar://problem/10912430>
2116
2117         Reviewed by Adam Barth.
2118
2119         Before checking or requesting permissions, we look at whether we can show notifications based on
2120         the security context. If not, we short circuit and do not forward the request to the client.
2121
2122         * notifications/Notification.cpp:
2123         (WebCore::Notification::Notification): Fix a bug where creating a notification goes through slightly
2124         different logic for checking permissions than when checking permissions through the
2125         notification center.
2126         * notifications/NotificationCenter.cpp:
2127         (WebCore::NotificationCenter::checkPermission): Check to see if the origin can show notifications.
2128         (WebCore::NotificationCenter::requestPermission): If we know whether an origin can show notifications,
2129         we asynchronously call the callback with that decision. Otherwise we ask the client.
2130
2131         Add new variable in the notification center to keep track of pending callbacks when we short-circuit
2132         requestPermission().
2133         * notifications/NotificationCenter.h:
2134         (NotificationRequestCallback): Add new private class encapsulating the callback.
2135         * notifications/NotificationCenter.cpp:
2136         (WebCore::NotificationCenter::requestTimedOut): Remove the request from the set of pending callbacks.
2137         (WebCore::NotificationCenter::NotificationRequest::createAndStartTimer): Because this is used when we already
2138         know the decision, and are not asking the client to decide, we can immediately trigger a one-shot timer
2139         to invoke the callback.
2140         (WebCore::NotificationCenter::NotificationRequest::NotificationRequest):
2141         (WebCore::NotificationCenter::NotificationRequest::startTimer):
2142         (WebCore::NotificationCenter::NotificationRequest::timerFired): Invoke the callback and tell the notification
2143         center.
2144         * page/SecurityOrigin.h: Add new toRawString() method to return the string representation of the origin,
2145         regardless of any restrictions that might otherwise cause toString() to return "null".
2146         * page/SecurityOrigin.cpp:
2147         (WebCore::SecurityOrigin::canShowNotifications): Added to return a tri-state regarding whether we know
2148         the origin can show notifications. If the origin is unique, we never let it show. If the origin has
2149         universal access, we always let it show. Otherwise the client should be asked.
2150         (WebCore::SecurityOrigin::toString): Refactor to use toRawString().
2151         (WebCore::SecurityOrigin::toRawString):
2152
2153         Added FIXME's regarding the naming of enforceFilePathSeparation().
2154         * dom/Document.cpp:
2155         (WebCore::Document::initSecurityContext): Also, tab reformatting.
2156
2157         * WebCore.exp.in: Export toRawString().
2158
2159 2012-03-20  Mark Pilgrim  <pilgrim@chromium.org>
2160
2161         Move webaudio to Modules/webaudio/
2162         https://bugs.webkit.org/show_bug.cgi?id=81541
2163
2164         Reviewed by Kentaro Hara.
2165
2166         No new tests, all existing tests pass.
2167
2168         * CMakeLists.txt:
2169         * DerivedSources.make:
2170         * DerivedSources.pri:
2171         * GNUmakefile.am:
2172         * GNUmakefile.list.am:
2173         * Modules/webaudio: Added.
2174         * Modules/webaudio/AsyncAudioDecoder.cpp: Copied from Source/WebCore/webaudio/AsyncAudioDecoder.cpp.
2175         * Modules/webaudio/AsyncAudioDecoder.h: Copied from Source/WebCore/webaudio/AsyncAudioDecoder.h.
2176         * Modules/webaudio/AudioBasicProcessorNode.cpp: Copied from Source/WebCore/webaudio/AudioBasicProcessorNode.cpp.
2177         * Modules/webaudio/AudioBasicProcessorNode.h: Copied from Source/WebCore/webaudio/AudioBasicProcessorNode.h.
2178         * Modules/webaudio/AudioBuffer.cpp: Copied from Source/WebCore/webaudio/AudioBuffer.cpp.
2179         * Modules/webaudio/AudioBuffer.h: Copied from Source/WebCore/webaudio/AudioBuffer.h.
2180         * Modules/webaudio/AudioBuffer.idl: Copied from Source/WebCore/webaudio/AudioBuffer.idl.
2181         * Modules/webaudio/AudioBufferCallback.h: Copied from Source/WebCore/webaudio/AudioBufferCallback.h.
2182         * Modules/webaudio/AudioBufferCallback.idl: Copied from Source/WebCore/webaudio/AudioBufferCallback.idl.
2183         * Modules/webaudio/AudioBufferSourceNode.cpp: Copied from Source/WebCore/webaudio/AudioBufferSourceNode.cpp.
2184         * Modules/webaudio/AudioBufferSourceNode.h: Copied from Source/WebCore/webaudio/AudioBufferSourceNode.h.
2185         * Modules/webaudio/AudioBufferSourceNode.idl: Copied from Source/WebCore/webaudio/AudioBufferSourceNode.idl.
2186         * Modules/webaudio/AudioChannelMerger.cpp: Copied from Source/WebCore/webaudio/AudioChannelMerger.cpp.
2187         * Modules/webaudio/AudioChannelMerger.h: Copied from Source/WebCore/webaudio/AudioChannelMerger.h.
2188         * Modules/webaudio/AudioChannelMerger.idl: Copied from Source/WebCore/webaudio/AudioChannelMerger.idl.
2189         * Modules/webaudio/AudioChannelSplitter.cpp: Copied from Source/WebCore/webaudio/AudioChannelSplitter.cpp.
2190         * Modules/webaudio/AudioChannelSplitter.h: Copied from Source/WebCore/webaudio/AudioChannelSplitter.h.
2191         * Modules/webaudio/AudioChannelSplitter.idl: Copied from Source/WebCore/webaudio/AudioChannelSplitter.idl.
2192         * Modules/webaudio/AudioContext.cpp: Copied from Source/WebCore/webaudio/AudioContext.cpp.
2193         * Modules/webaudio/AudioContext.h: Copied from Source/WebCore/webaudio/AudioContext.h.
2194         * Modules/webaudio/AudioContext.idl: Copied from Source/WebCore/webaudio/AudioContext.idl.
2195         * Modules/webaudio/AudioDestinationNode.cpp: Copied from Source/WebCore/webaudio/AudioDestinationNode.cpp.
2196         * Modules/webaudio/AudioDestinationNode.h: Copied from Source/WebCore/webaudio/AudioDestinationNode.h.
2197         * Modules/webaudio/AudioDestinationNode.idl: Copied from Source/WebCore/webaudio/AudioDestinationNode.idl.
2198         * Modules/webaudio/AudioGain.h: Copied from Source/WebCore/webaudio/AudioGain.h.
2199         * Modules/webaudio/AudioGain.idl: Copied from Source/WebCore/webaudio/AudioGain.idl.
2200         * Modules/webaudio/AudioGainNode.cpp: Copied from Source/WebCore/webaudio/AudioGainNode.cpp.
2201         * Modules/webaudio/AudioGainNode.h: Copied from Source/WebCore/webaudio/AudioGainNode.h.
2202         * Modules/webaudio/AudioGainNode.idl: Copied from Source/WebCore/webaudio/AudioGainNode.idl.
2203         * Modules/webaudio/AudioListener.cpp: Copied from Source/WebCore/webaudio/AudioListener.cpp.
2204         * Modules/webaudio/AudioListener.h: Copied from Source/WebCore/webaudio/AudioListener.h.
2205         * Modules/webaudio/AudioListener.idl: Copied from Source/WebCore/webaudio/AudioListener.idl.
2206         * Modules/webaudio/AudioNode.cpp: Copied from Source/WebCore/webaudio/AudioNode.cpp.
2207         * Modules/webaudio/AudioNode.h: Copied from Source/WebCore/webaudio/AudioNode.h.
2208         * Modules/webaudio/AudioNode.idl: Copied from Source/WebCore/webaudio/AudioNode.idl.
2209         * Modules/webaudio/AudioNodeInput.cpp: Copied from Source/WebCore/webaudio/AudioNodeInput.cpp.
2210         * Modules/webaudio/AudioNodeInput.h: Copied from Source/WebCore/webaudio/AudioNodeInput.h.
2211         * Modules/webaudio/AudioNodeOutput.cpp: Copied from Source/WebCore/webaudio/AudioNodeOutput.cpp.
2212         * Modules/webaudio/AudioNodeOutput.h: Copied from Source/WebCore/webaudio/AudioNodeOutput.h.
2213         * Modules/webaudio/AudioPannerNode.cpp: Copied from Source/WebCore/webaudio/AudioPannerNode.cpp.
2214         * Modules/webaudio/AudioPannerNode.h: Copied from Source/WebCore/webaudio/AudioPannerNode.h.
2215         * Modules/webaudio/AudioPannerNode.idl: Copied from Source/WebCore/webaudio/AudioPannerNode.idl.
2216         * Modules/webaudio/AudioParam.cpp: Copied from Source/WebCore/webaudio/AudioParam.cpp.
2217         * Modules/webaudio/AudioParam.h: Copied from Source/WebCore/webaudio/AudioParam.h.
2218         * Modules/webaudio/AudioParam.idl: Copied from Source/WebCore/webaudio/AudioParam.idl.
2219         * Modules/webaudio/AudioParamTimeline.cpp: Copied from Source/WebCore/webaudio/AudioParamTimeline.cpp.
2220         * Modules/webaudio/AudioParamTimeline.h: Copied from Source/WebCore/webaudio/AudioParamTimeline.h.
2221         * Modules/webaudio/AudioProcessingEvent.cpp: Copied from Source/WebCore/webaudio/AudioProcessingEvent.cpp.
2222         * Modules/webaudio/AudioProcessingEvent.h: Copied from Source/WebCore/webaudio/AudioProcessingEvent.h.
2223         * Modules/webaudio/AudioProcessingEvent.idl: Copied from Source/WebCore/webaudio/AudioProcessingEvent.idl.
2224         * Modules/webaudio/AudioSourceNode.h: Copied from Source/WebCore/webaudio/AudioSourceNode.h.
2225         * Modules/webaudio/AudioSourceNode.idl: Copied from Source/WebCore/webaudio/AudioSourceNode.idl.
2226         * Modules/webaudio/BiquadDSPKernel.cpp: Copied from Source/WebCore/webaudio/BiquadDSPKernel.cpp.
2227         * Modules/webaudio/BiquadDSPKernel.h: Copied from Source/WebCore/webaudio/BiquadDSPKernel.h.
2228         * Modules/webaudio/BiquadFilterNode.cpp: Copied from Source/WebCore/webaudio/BiquadFilterNode.cpp.
2229         * Modules/webaudio/BiquadFilterNode.h: Copied from Source/WebCore/webaudio/BiquadFilterNode.h.
2230         * Modules/webaudio/BiquadFilterNode.idl: Copied from Source/WebCore/webaudio/BiquadFilterNode.idl.
2231         * Modules/webaudio/BiquadProcessor.cpp: Copied from Source/WebCore/webaudio/BiquadProcessor.cpp.
2232         * Modules/webaudio/BiquadProcessor.h: Copied from Source/WebCore/webaudio/BiquadProcessor.h.
2233         * Modules/webaudio/ConvolverNode.cpp: Copied from Source/WebCore/webaudio/ConvolverNode.cpp.
2234         * Modules/webaudio/ConvolverNode.h: Copied from Source/WebCore/webaudio/ConvolverNode.h.
2235         * Modules/webaudio/ConvolverNode.idl: Copied from Source/WebCore/webaudio/ConvolverNode.idl.
2236         * Modules/webaudio/DOMWindowWebAudio.idl: Copied from Source/WebCore/webaudio/DOMWindowWebAudio.idl.
2237         * Modules/webaudio/DefaultAudioDestinationNode.cpp: Copied from Source/WebCore/webaudio/DefaultAudioDestinationNode.cpp.
2238         * Modules/webaudio/DefaultAudioDestinationNode.h: Copied from Source/WebCore/webaudio/DefaultAudioDestinationNode.h.
2239         * Modules/webaudio/DelayDSPKernel.cpp: Copied from Source/WebCore/webaudio/DelayDSPKernel.cpp.
2240         * Modules/webaudio/DelayDSPKernel.h: Copied from Source/WebCore/webaudio/DelayDSPKernel.h.
2241         * Modules/webaudio/DelayNode.cpp: Copied from Source/WebCore/webaudio/DelayNode.cpp.
2242         * Modules/webaudio/DelayNode.h: Copied from Source/WebCore/webaudio/DelayNode.h.
2243         * Modules/webaudio/DelayNode.idl: Copied from Source/WebCore/webaudio/DelayNode.idl.
2244         * Modules/webaudio/DelayProcessor.cpp: Copied from Source/WebCore/webaudio/DelayProcessor.cpp.
2245         * Modules/webaudio/DelayProcessor.h: Copied from Source/WebCore/webaudio/DelayProcessor.h.
2246         * Modules/webaudio/DynamicsCompressorNode.cpp: Copied from Source/WebCore/webaudio/DynamicsCompressorNode.cpp.
2247         * Modules/webaudio/DynamicsCompressorNode.h: Copied from Source/WebCore/webaudio/DynamicsCompressorNode.h.
2248         * Modules/webaudio/DynamicsCompressorNode.idl: Copied from Source/WebCore/webaudio/DynamicsCompressorNode.idl.
2249         * Modules/webaudio/HighPass2FilterNode.cpp: Copied from Source/WebCore/webaudio/HighPass2FilterNode.cpp.
2250         * Modules/webaudio/HighPass2FilterNode.h: Copied from Source/WebCore/webaudio/HighPass2FilterNode.h.
2251         * Modules/webaudio/HighPass2FilterNode.idl: Copied from Source/WebCore/webaudio/HighPass2FilterNode.idl.
2252         * Modules/webaudio/JavaScriptAudioNode.cpp: Copied from Source/WebCore/webaudio/JavaScriptAudioNode.cpp.
2253         * Modules/webaudio/JavaScriptAudioNode.h: Copied from Source/WebCore/webaudio/JavaScriptAudioNode.h.
2254         * Modules/webaudio/JavaScriptAudioNode.idl: Copied from Source/WebCore/webaudio/JavaScriptAudioNode.idl.
2255         * Modules/webaudio/LowPass2FilterNode.cpp: Copied from Source/WebCore/webaudio/LowPass2FilterNode.cpp.
2256         * Modules/webaudio/LowPass2FilterNode.h: Copied from Source/WebCore/webaudio/LowPass2FilterNode.h.
2257         * Modules/webaudio/LowPass2FilterNode.idl: Copied from Source/WebCore/webaudio/LowPass2FilterNode.idl.
2258         * Modules/webaudio/MediaElementAudioSourceNode.cpp: Copied from Source/WebCore/webaudio/MediaElementAudioSourceNode.cpp.
2259         * Modules/webaudio/MediaElementAudioSourceNode.h: Copied from Source/WebCore/webaudio/MediaElementAudioSourceNode.h.
2260         * Modules/webaudio/MediaElementAudioSourceNode.idl: Copied from Source/WebCore/webaudio/MediaElementAudioSourceNode.idl.
2261         * Modules/webaudio/OfflineAudioCompletionEvent.cpp: Copied from Source/WebCore/webaudio/OfflineAudioCompletionEvent.cpp.
2262         * Modules/webaudio/OfflineAudioCompletionEvent.h: Copied from Source/WebCore/webaudio/OfflineAudioCompletionEvent.h.
2263         * Modules/webaudio/OfflineAudioCompletionEvent.idl: Copied from Source/WebCore/webaudio/OfflineAudioCompletionEvent.idl.
2264         * Modules/webaudio/OfflineAudioDestinationNode.cpp: Copied from Source/WebCore/webaudio/OfflineAudioDestinationNode.cpp.
2265         * Modules/webaudio/OfflineAudioDestinationNode.h: Copied from Source/WebCore/webaudio/OfflineAudioDestinationNode.h.
2266         * Modules/webaudio/RealtimeAnalyser.cpp: Copied from Source/WebCore/webaudio/RealtimeAnalyser.cpp.
2267         * Modules/webaudio/RealtimeAnalyser.h: Copied from Source/WebCore/webaudio/RealtimeAnalyser.h.
2268         * Modules/webaudio/RealtimeAnalyserNode.cpp: Copied from Source/WebCore/webaudio/RealtimeAnalyserNode.cpp.
2269         * Modules/webaudio/RealtimeAnalyserNode.h: Copied from Source/WebCore/webaudio/RealtimeAnalyserNode.h.
2270         * Modules/webaudio/RealtimeAnalyserNode.idl: Copied from Source/WebCore/webaudio/RealtimeAnalyserNode.idl.
2271         * Modules/webaudio/WaveShaperDSPKernel.cpp: Copied from Source/WebCore/webaudio/WaveShaperDSPKernel.cpp.
2272         * Modules/webaudio/WaveShaperDSPKernel.h: Copied from Source/WebCore/webaudio/WaveShaperDSPKernel.h.
2273         * Modules/webaudio/WaveShaperNode.cpp: Copied from Source/WebCore/webaudio/WaveShaperNode.cpp.
2274         * Modules/webaudio/WaveShaperNode.h: Copied from Source/WebCore/webaudio/WaveShaperNode.h.
2275         * Modules/webaudio/WaveShaperNode.idl: Copied from Source/WebCore/webaudio/WaveShaperNode.idl.
2276         * Modules/webaudio/WaveShaperProcessor.cpp: Copied from Source/WebCore/webaudio/WaveShaperProcessor.cpp.
2277         * Modules/webaudio/WaveShaperProcessor.h: Copied from Source/WebCore/webaudio/WaveShaperProcessor.h.
2278         * WebCore.gyp/WebCore.gyp:
2279         * WebCore.gypi:
2280         * WebCore.pri:
2281         * WebCore.xcodeproj/project.pbxproj:
2282         * webaudio/AsyncAudioDecoder.cpp: Removed.
2283         * webaudio/AsyncAudioDecoder.h: Removed.
2284         * webaudio/AudioBasicProcessorNode.cpp: Removed.
2285         * webaudio/AudioBasicProcessorNode.h: Removed.
2286         * webaudio/AudioBuffer.cpp: Removed.
2287         * webaudio/AudioBuffer.h: Removed.
2288         * webaudio/AudioBuffer.idl: Removed.
2289         * webaudio/AudioBufferCallback.h: Removed.
2290         * webaudio/AudioBufferCallback.idl: Removed.
2291         * webaudio/AudioBufferSourceNode.cpp: Removed.
2292         * webaudio/AudioBufferSourceNode.h: Removed.
2293         * webaudio/AudioBufferSourceNode.idl: Removed.
2294         * webaudio/AudioChannelMerger.cpp: Removed.
2295         * webaudio/AudioChannelMerger.h: Removed.
2296         * webaudio/AudioChannelMerger.idl: Removed.
2297         * webaudio/AudioChannelSplitter.cpp: Removed.
2298         * webaudio/AudioChannelSplitter.h: Removed.
2299         * webaudio/AudioChannelSplitter.idl: Removed.
2300         * webaudio/AudioContext.cpp: Removed.
2301         * webaudio/AudioContext.h: Removed.
2302         * webaudio/AudioContext.idl: Removed.
2303         * webaudio/AudioDestinationNode.cpp: Removed.
2304         * webaudio/AudioDestinationNode.h: Removed.
2305         * webaudio/AudioDestinationNode.idl: Removed.
2306         * webaudio/AudioGain.h: Removed.
2307         * webaudio/AudioGain.idl: Removed.
2308         * webaudio/AudioGainNode.cpp: Removed.
2309         * webaudio/AudioGainNode.h: Removed.
2310         * webaudio/AudioGainNode.idl: Removed.
2311         * webaudio/AudioListener.cpp: Removed.
2312         * webaudio/AudioListener.h: Removed.
2313         * webaudio/AudioListener.idl: Removed.
2314         * webaudio/AudioNode.cpp: Removed.
2315         * webaudio/AudioNode.h: Removed.
2316         * webaudio/AudioNode.idl: Removed.
2317         * webaudio/AudioNodeInput.cpp: Removed.
2318         * webaudio/AudioNodeInput.h: Removed.
2319         * webaudio/AudioNodeOutput.cpp: Removed.
2320         * webaudio/AudioNodeOutput.h: Removed.
2321         * webaudio/AudioPannerNode.cpp: Removed.
2322         * webaudio/AudioPannerNode.h: Removed.
2323         * webaudio/AudioPannerNode.idl: Removed.
2324         * webaudio/AudioParam.cpp: Removed.
2325         * webaudio/AudioParam.h: Removed.
2326         * webaudio/AudioParam.idl: Removed.
2327         * webaudio/AudioParamTimeline.cpp: Removed.
2328         * webaudio/AudioParamTimeline.h: Removed.
2329         * webaudio/AudioProcessingEvent.cpp: Removed.
2330         * webaudio/AudioProcessingEvent.h: Removed.
2331         * webaudio/AudioProcessingEvent.idl: Removed.
2332         * webaudio/AudioSourceNode.h: Removed.
2333         * webaudio/AudioSourceNode.idl: Removed.
2334         * webaudio/BiquadDSPKernel.cpp: Removed.
2335         * webaudio/BiquadDSPKernel.h: Removed.
2336         * webaudio/BiquadFilterNode.cpp: Removed.
2337         * webaudio/BiquadFilterNode.h: Removed.
2338         * webaudio/BiquadFilterNode.idl: Removed.
2339         * webaudio/BiquadProcessor.cpp: Removed.
2340         * webaudio/BiquadProcessor.h: Removed.
2341         * webaudio/ConvolverNode.cpp: Removed.
2342         * webaudio/ConvolverNode.h: Removed.
2343         * webaudio/ConvolverNode.idl: Removed.
2344         * webaudio/DOMWindowWebAudio.idl: Removed.
2345         * webaudio/DefaultAudioDestinationNode.cpp: Removed.
2346         * webaudio/DefaultAudioDestinationNode.h: Removed.
2347         * webaudio/DelayDSPKernel.cpp: Removed.
2348         * webaudio/DelayDSPKernel.h: Removed.
2349         * webaudio/DelayNode.cpp: Removed.
2350         * webaudio/DelayNode.h: Removed.
2351         * webaudio/DelayNode.idl: Removed.
2352         * webaudio/DelayProcessor.cpp: Removed.
2353         * webaudio/DelayProcessor.h: Removed.
2354         * webaudio/DynamicsCompressorNode.cpp: Removed.
2355         * webaudio/DynamicsCompressorNode.h: Removed.
2356         * webaudio/DynamicsCompressorNode.idl: Removed.
2357         * webaudio/HighPass2FilterNode.cpp: Removed.
2358         * webaudio/HighPass2FilterNode.h: Removed.
2359         * webaudio/HighPass2FilterNode.idl: Removed.
2360         * webaudio/JavaScriptAudioNode.cpp: Removed.
2361         * webaudio/JavaScriptAudioNode.h: Removed.
2362         * webaudio/JavaScriptAudioNode.idl: Removed.
2363         * webaudio/LowPass2FilterNode.cpp: Removed.
2364         * webaudio/LowPass2FilterNode.h: Removed.
2365         * webaudio/LowPass2FilterNode.idl: Removed.
2366         * webaudio/MediaElementAudioSourceNode.cpp: Removed.
2367         * webaudio/MediaElementAudioSourceNode.h: Removed.
2368         * webaudio/MediaElementAudioSourceNode.idl: Removed.
2369         * webaudio/OfflineAudioCompletionEvent.cpp: Removed.
2370         * webaudio/OfflineAudioCompletionEvent.h: Removed.
2371         * webaudio/OfflineAudioCompletionEvent.idl: Removed.
2372         * webaudio/OfflineAudioDestinationNode.cpp: Removed.
2373         * webaudio/OfflineAudioDestinationNode.h: Removed.
2374         * webaudio/RealtimeAnalyser.cpp: Removed.
2375         * webaudio/RealtimeAnalyser.h: Removed.
2376         * webaudio/RealtimeAnalyserNode.cpp: Removed.
2377         * webaudio/RealtimeAnalyserNode.h: Removed.
2378         * webaudio/RealtimeAnalyserNode.idl: Removed.
2379         * webaudio/WaveShaperDSPKernel.cpp: Removed.
2380         * webaudio/WaveShaperDSPKernel.h: Removed.
2381         * webaudio/WaveShaperNode.cpp: Removed.
2382         * webaudio/WaveShaperNode.h: Removed.
2383         * webaudio/WaveShaperNode.idl: Removed.
2384         * webaudio/WaveShaperProcessor.cpp: Removed.
2385         * webaudio/WaveShaperProcessor.h: Removed.
2386
2387 2012-03-20  Anders Carlsson  <andersca@apple.com>
2388
2389         Add a per-ScrollableArea tile cache base class
2390         https://bugs.webkit.org/show_bug.cgi?id=81694
2391
2392         Reviewed by Sam Weinig.
2393
2394         Add an abstract base class, TiledBacking, that can be used to inform tile caches about changed
2395         state in scrollable areas (such as the currently visible rect, whether the page is active or not, etc).
2396
2397         Make TileCache inherit from TiledBacking and port updating the visible rect over to this new mechanism.
2398
2399         * WebCore.xcodeproj/project.pbxproj:
2400         * page/FrameView.cpp:
2401         (WebCore::FrameView::tiledBacking):
2402         (WebCore):
2403         * page/FrameView.h:
2404         (FrameView):
2405         * platform/ScrollableArea.h:
2406         (WebCore):
2407         (ScrollableArea):
2408         (WebCore::ScrollableArea::tiledBacking):
2409         * platform/graphics/GraphicsLayer.h:
2410         (WebCore):
2411         (WebCore::GraphicsLayer::tiledBacking):
2412         * platform/graphics/TiledBacking.h: Added.
2413         (WebCore):
2414         (TiledBacking):
2415         (WebCore::TiledBacking::~TiledBacking):
2416         * platform/graphics/ca/GraphicsLayerCA.cpp:
2417         (WebCore::GraphicsLayerCA::tiledBacking):
2418         * platform/graphics/ca/GraphicsLayerCA.h:
2419         (GraphicsLayerCA):
2420         * platform/graphics/ca/PlatformCALayer.h:
2421         (PlatformCALayer):
2422         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
2423         (PlatformCALayer::tiledBacking):
2424         * platform/graphics/ca/mac/TileCache.h:
2425         (TileCache):
2426         * platform/graphics/ca/mac/WebTileCacheLayer.h:
2427         (WebCore):
2428         * platform/graphics/ca/mac/WebTileCacheLayer.mm:
2429         (-[WebTileCacheLayer WebCore::]):
2430         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
2431         (PlatformCALayer::tiledBacking):
2432         * rendering/RenderLayerCompositor.cpp:
2433         (WebCore::RenderLayerCompositor::frameViewDidScroll):
2434
2435 2012-03-20  Xiaomei Ji  <xji@chromium.org>
2436
2437         visual word movement: crashes on CSS generated content.
2438         https://bugs.webkit.org/show_bug.cgi?id=81581
2439
2440         Reviewed by Ryosuke Niwa.
2441
2442         Check for null pointer when referencing box->renderer()->node() in previousRootInlineBox and nextRootInlineBox.
2443
2444         Test: editing/selection/move-by-word-visually-crash-test-css-generated-content.html
2445
2446         * editing/visible_units.cpp:
2447         (WebCore::previousRootInlineBox):
2448         (WebCore::nextRootInlineBox):
2449
2450 2012-03-20  Luke Macpherson  <macpherson@chromium.org>
2451
2452         Use CSSPrimitiveValue::convertToLength() to handle CSSPropertyWebkitBoxReflect and in createGridTrackBreadth.
2453         https://bugs.webkit.org/show_bug.cgi?id=81633
2454
2455         Reviewed by Andreas Kling.
2456
2457         No new tests / refactoring only.
2458
2459         * css/CSSStyleSelector.cpp:
2460         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2461
2462 2012-03-20  Sheriff Bot  <webkit.review.bot@gmail.com>
2463
2464         Unreviewed, rolling out r111442.
2465         http://trac.webkit.org/changeset/111442
2466         https://bugs.webkit.org/show_bug.cgi?id=81711
2467
2468         Causes crashes and image mismatches in canvas tests (Requested
2469         by leviw on #webkit).
2470
2471         * html/HTMLCanvasElement.cpp:
2472         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
2473         (WebCore::HTMLCanvasElement::reset):
2474         (WebCore::HTMLCanvasElement::createImageBuffer):
2475         (WebCore::HTMLCanvasElement::clearCopiedImage):
2476         * html/HTMLCanvasElement.h:
2477         (HTMLCanvasElement):
2478         * html/canvas/CanvasRenderingContext2D.cpp:
2479         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
2480         (WebCore::CanvasRenderingContext2D::unwindStateStack):
2481         (WebCore::CanvasRenderingContext2D::reset):
2482
2483 2012-03-20  Adrienne Walker  <enne@google.com>
2484
2485         RenderLayerCompositor doesn't properly clip graphics layer sizes
2486         https://bugs.webkit.org/show_bug.cgi?id=80372
2487
2488         Reviewed by Simon Fraser.
2489
2490         To find the bounds for a composited layer, calculateCompositedBounds
2491         iterates through all non-composited child layers using z-order and
2492         normal flow lists. This does not preserve clipping from ancestor
2493         layers, because a clipping ancestor layer can end up as a sibling to
2494         its clipped descendent because it is not a stacking context.
2495
2496         Fix by explicitly checking cached clip roots.
2497
2498         Test: compositing/clip-child-by-non-stacking-ancestor.html
2499
2500         * rendering/RenderLayer.cpp:
2501         (WebCore::RenderLayer::localClipRect):
2502         (WebCore):
2503         * rendering/RenderLayer.h:
2504         (RenderLayer):
2505         * rendering/RenderLayerCompositor.cpp:
2506         (WebCore::RenderLayerCompositor::repaintOnCompositingChange):
2507         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
2508
2509 2012-03-20  Sheriff Bot  <webkit.review.bot@gmail.com>
2510
2511         Unreviewed, rolling out r111445 and r111446.
2512         http://trac.webkit.org/changeset/111445
2513         http://trac.webkit.org/changeset/111446
2514         https://bugs.webkit.org/show_bug.cgi?id=81708
2515
2516         It broke Qt and GTK build intentionally (Requested by Ossy on
2517         #webkit).
2518
2519         * WebCore.exp.in:
2520         * dom/Document.cpp:
2521         (WebCore::Document::initSecurityContext):
2522         * notifications/Notification.cpp:
2523         (WebCore::Notification::Notification):
2524         * notifications/NotificationCenter.cpp:
2525         (WebCore::NotificationCenter::checkPermission):
2526         (WebCore::NotificationCenter::requestPermission):
2527         * notifications/NotificationCenter.h:
2528         (NotificationCenter):
2529         * page/SecurityOrigin.cpp:
2530         (WebCore::SecurityOrigin::toString):
2531         * page/SecurityOrigin.h:
2532         (SecurityOrigin):
2533
2534 2012-03-20  Adam Klein  <adamk@chromium.org>
2535
2536         Refactor ContainerNode::replaceChild to match other mutation methods and share code
2537         https://bugs.webkit.org/show_bug.cgi?id=81579
2538
2539         Reviewed by Ojan Vafai.
2540
2541         Originally landed as r111310, this fixes a bug in replaceChild
2542         introduced when switching to the insert-before logic.
2543
2544         A future change will make use of the consistency among insertBefore/appendChild/replaceChild
2545         to handle insertion of DocumentFragments more cleanly.
2546
2547         No new tests, no change in behavior.
2548
2549         * dom/ContainerNode.cpp:
2550         (WebCore::ContainerNode::replaceChild): Use collectTargetNodes rather than walking through DocumentFragment children.
2551         Insert before rather than inserting after. Dispatch to other methods to update parent/sibling pointers.
2552         (WebCore::ContainerNode::appendChild): Call appendChildToContainer to update parent/sibling pointers.
2553         (WebCore::ContainerNode::parserAddChild): Use type inference in call to appendChildToContainer.
2554
2555 2012-03-20  Jon Lee  <jonlee@apple.com>
2556
2557         Restrict access to notifications for unique origins and file URLs with no local file access
2558         https://bugs.webkit.org/show_bug.cgi?id=79704
2559         <rdar://problem/10912430>
2560
2561         Reviewed by Adam Barth.
2562
2563         Before checking or requesting permissions, we look at whether we can show notifications based on
2564         the security context. If not, we short circuit and do not forward the request to the client.
2565
2566         * notifications/Notification.cpp:
2567         (WebCore::Notification::Notification): Fix a bug where creating a notification goes through slightly
2568         different logic for checking permissions than when checking permissions through the
2569         notification center.
2570         * notifications/NotificationCenter.cpp:
2571         (WebCore::NotificationCenter::checkPermission): Check to see if the origin can show notifications.
2572         (WebCore::NotificationCenter::requestPermission): If we know whether an origin can show notifications,
2573         we asynchronously call the callback with that decision. Otherwise we ask the client.
2574
2575         Add new variable in the notification center to keep track of pending callbacks when we short-circuit
2576         requestPermission().
2577         * notifications/NotificationCenter.h:
2578         (NotificationRequestCallback): Add new private class encapsulating the callback.
2579         * notifications/NotificationCenter.cpp:
2580         (WebCore::NotificationCenter::requestTimedOut): Remove the request from the set of pending callbacks.
2581         (WebCore::NotificationCenter::NotificationRequest::createAndStartTimer): Because this is used when we already
2582         know the decision, and are not asking the client to decide, we can immediately trigger a one-shot timer
2583         to invoke the callback.
2584         (WebCore::NotificationCenter::NotificationRequest::NotificationRequest):
2585         (WebCore::NotificationCenter::NotificationRequest::startTimer):
2586         (WebCore::NotificationCenter::NotificationRequest::timerFired): Invoke the callback and tell the notification
2587         center.
2588         * page/SecurityOrigin.h: Add new toRawString() method to return the string representation of the origin,
2589         regardless of any restrictions that might otherwise cause toString() to return "null".
2590         * page/SecurityOrigin.cpp:
2591         (WebCore::SecurityOrigin::canShowNotifications): Added to return a tri-state regarding whether we know
2592         the origin can show notifications. If the origin is unique, we never let it show. If the origin has
2593         universal access, we always let it show. Otherwise the client should be asked.
2594         (WebCore::SecurityOrigin::toString): Refactor to use toRawString().
2595         (WebCore::SecurityOrigin::toRawString):
2596
2597         Added FIXME's regarding the naming of enforceFilePathSeparation().
2598         * dom/Document.cpp:
2599         (WebCore::Document::initSecurityContext): Also, tab reformatting.
2600
2601         * WebCore.exp.in: Export toRawString().
2602
2603 2012-03-20  Andreas Kling  <kling@webkit.org>
2604
2605         Remove unused CSSPrimitiveValue constructors.
2606         <http://webkit.org/b/81695>
2607
2608         Reviewed by Antti Koivisto.
2609
2610         Kill off CSSPrimitiveValue constructors that aren't used anywhere.
2611
2612         * css/CSSPrimitiveValue.cpp:
2613         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2614         * css/CSSPrimitiveValue.h:
2615         (CSSPrimitiveValueBase):
2616         (WebCore::CSSPrimitiveValueBase::CSSPrimitiveValueBase):
2617         (CSSPrimitiveValue):
2618         * css/CSSPrimitiveValueMappings.h:
2619
2620 2012-03-20  Sami Kyostila  <skyostil@chromium.org>
2621
2622         Reuse buffer allocation if canvas size does not change
2623         https://bugs.webkit.org/show_bug.cgi?id=80871
2624
2625         Reviewed by Stephen White.
2626
2627         If the user changes the width or height attributes of a canvas element,
2628         the contents of the canvas should be cleared and the context state
2629         should be reset. This has become a common idiom to clear the canvas
2630         "efficiently" at the start of a frame.
2631
2632         Previously, this code path triggered a full reallocation of the image
2633         buffer backing the canvas, leading to reduced performance. This patch
2634         implements an optimization where we reuse the previous image buffer
2635         allocation if the size of the canvas did not change. Also, instead of
2636         clearing the canvas every time its dimensions are touched, we only clear
2637         if anything has been drawn into the canvas since it was previously
2638         cleared.
2639
2640         Note that for now this optimization only applies for 2D canvases,
2641         since it is not entirely clear how touching the dimensions of a WebGL
2642         canvas should work.
2643
2644         Test: fast/canvas/canvas-resize-after-paint-without-layout.html +
2645               existing layout tests for canvas resetting.
2646
2647         * html/HTMLCanvasElement.cpp:
2648         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
2649         (WebCore::HTMLCanvasElement::reset):
2650         (WebCore::HTMLCanvasElement::createImageBuffer):
2651         (WebCore::HTMLCanvasElement::clearImageBuffer):
2652         (WebCore):
2653         (WebCore::HTMLCanvasElement::clearCopiedImage):
2654         * html/HTMLCanvasElement.h:
2655         (HTMLCanvasElement):
2656         * html/canvas/CanvasRenderingContext2D.cpp:
2657         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D): Save the
2658         initial graphics context state so we can restore it without creating a
2659         new context.
2660         (WebCore::CanvasRenderingContext2D::unwindStateStack):
2661         (WebCore::CanvasRenderingContext2D::reset): No need to notify the
2662         compositor when the context is reset, because clearing the image buffer
2663         does the same thing. We can also skip the notification if we did not
2664         have an image buffer at the time of the reset, because the reset will
2665         not have any visual impact in this case. Finally, if the canvas size
2666         did change, the notification is also unnecessary because of the call
2667         to RenderObject::repaint() from HTMLCanvasElement::reset().
2668
2669 2012-03-20  Dana Jansens  <danakj@chromium.org>
2670
2671         [chromium] Allow us to disable overdraw metrics when tracing is off
2672         https://bugs.webkit.org/show_bug.cgi?id=81431
2673
2674         Reviewed by Adrienne Walker.
2675
2676         This change allows us to disable overdraw metrics conditionally in the
2677         future with a one-line change in each LayerTreeHost class.
2678
2679         Unit test: CCQuadCullerTest.verifyWithoutMetrics
2680
2681         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2682         (WebCore::CCLayerTreeHost::paintLayerContents):
2683         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2684         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
2685         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
2686         (WebCore::::CCOcclusionTrackerBase):
2687         (WebCore):
2688         * platform/graphics/chromium/cc/CCOcclusionTracker.h:
2689         (CCOcclusionTrackerBase):
2690         * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp:
2691         (WebCore::CCOverdrawMetrics::CCOverdrawMetrics):
2692         (WebCore::CCOverdrawMetrics::didCull):
2693         (WebCore::CCOverdrawMetrics::didDraw):
2694         (WebCore::CCOverdrawMetrics::recordMetrics):
2695         * platform/graphics/chromium/cc/CCOverdrawMetrics.h:
2696         (WebCore::CCOverdrawMetrics::create):
2697         (CCOverdrawMetrics):
2698
2699 2012-03-20  Robert Hogan  <robert@webkit.org>
2700
2701         Use-after-free of continuation in RenderBlock::paintContinuationOutlines()
2702         https://bugs.webkit.org/show_bug.cgi?id=81276
2703
2704         Reviewed by David Hyatt.
2705
2706         Test: fast/css/relative-positioned-block-crash.html
2707
2708         https://trac.webkit.org/changeset/108185/ allowed anonymous blocks to get their own layer (when they're
2709         relatively positioned). This broke the dependency in addContinuationWithOutline() on the owner of the continuation
2710         table and the renderer getting added to it always being in the same layer. When they're not in the same layer
2711         there's no guarantee that the owner of the continuation table will get painted again and so avoid any stale pointers
2712         in its continuation table should any of the renderers in there get destroyed.
2713
2714         Fix this for now by only adding renderers to the containing block's continuation table if we don't have our own layer.
2715         This fix causes fast/inline/continuation-outlines-with-layers.html to regress as it uses blocks inside relatively positioned
2716         inlines, so skip it on all platforms pending a medium-term fix.
2717
2718         * rendering/RenderBlock.cpp:
2719         (WebCore::RenderBlock::paintObject):
2720
2721 2012-03-20  Adele Peterson  <adele@apple.com>
2722
2723         "Attempt to insert nil value " exception when calling attributed string APIs on content with a custom font
2724         https://bugs.webkit.org/show_bug.cgi?id=81630
2725         <rdar://problem/10650660> 
2726
2727         Reviewed by Alexey Proskuryakov. 
2728
2729         Test: TestWebKitAPI/Tests/mac/AttributedString.mm 
2730
2731         If content is using a custom font, then the platform font will be nil and needs to be nil checked.
2732
2733         * platform/mac/HTMLConverter.mm: (+[WebHTMLConverter editingAttributedStringFromRange:]):
2734
2735 2012-03-20  Julien Chaffraix  <jchaffraix@webkit.org>
2736
2737         Make distributeExtraLogicalHeightToRows return the consumed logical height
2738         https://bugs.webkit.org/show_bug.cgi?id=81678
2739
2740         Reviewed by Tony Chang.
2741
2742         Small refactoring, no change in behavior.
2743
2744         * rendering/RenderTable.cpp:
2745         (WebCore::RenderTable::distributeExtraLogicalHeight):
2746         Remove the consumed logical height from the available height.
2747
2748         * rendering/RenderTableSection.cpp:
2749         (WebCore::RenderTableSection::distributeExtraLogicalHeightToPercentRows):
2750         (WebCore::RenderTableSection::distributeExtraLogicalHeightToAutoRows):
2751         (WebCore::RenderTableSection::distributeRemainingExtraLogicalHeight):
2752         Changed those method to not return anything but remove from the available width.
2753
2754         (WebCore::RenderTableSection::distributeExtraLogicalHeightToRows):
2755         Return the consumed logical height.
2756
2757         * rendering/RenderTableSection.h:
2758         Updated the previous distribute functions signature and the comment about
2759         the returned value from distributeExtraLogicalHeightToRows.
2760
2761 2012-03-20  Jacky Jiang  <zhajiang@rim.com>
2762
2763         [BlackBerry] Dijit crash WebCore::CookieManager::getRawCookies
2764         https://bugs.webkit.org/show_bug.cgi?id=81686
2765
2766         Reviewed by Rob Buis.
2767
2768         HTML plugin element with an empty src caused an ASSERT failure on debug
2769         build and a crash on release build.
2770         When getting cookie, url can be null, so we need to check for it to
2771         avoid the crash.
2772
2773         No new tests as this is covered by
2774         LayoutTests/fast/loader/empty-embed-src-attribute.html.
2775
2776         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
2777         (WebCore::ResourceRequest::initializePlatformRequest):
2778
2779 2012-03-20  Vsevolod Vlasov  <vsevik@chromium.org>
2780
2781         Web Inspector: Tabbed pane drop down should be sorted.
2782         https://bugs.webkit.org/show_bug.cgi?id=81680
2783
2784         Reviewed by Pavel Feldman.
2785
2786         * inspector/front-end/TabbedPane.js:
2787         (WebInspector.TabbedPane.prototype._populateDropDownFromIndex.compareFunction):
2788         (WebInspector.TabbedPane.prototype._populateDropDownFromIndex):
2789
2790 2012-03-20  Vsevolod Vlasov  <vsevik@chromium.org>
2791
2792         Web Inspector: Open resource dialog scripts list should be sorted.
2793         https://bugs.webkit.org/show_bug.cgi?id=81682
2794
2795         Reviewed by Pavel Feldman.
2796
2797         * inspector/front-end/FilteredItemSelectionDialog.js:
2798         (WebInspector.OpenResourceDialog.compareFunction):
2799         (WebInspector.OpenResourceDialog):
2800
2801 2012-03-20  Dana Jansens  <danakj@chromium.org>
2802
2803         [chromium] Use opaque contents for paint culling
2804         https://bugs.webkit.org/show_bug.cgi?id=81676
2805
2806         Reviewed by Adrienne Walker.
2807
2808         UnitTest: CCLayerTreeHostTestContentLayerOcclusion
2809
2810         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2811         (WebCore::CCLayerTreeHost::paintLayerContents):
2812
2813 2012-03-20  Dan Bernstein  <mitz@apple.com>
2814
2815         Build fix after r111419.
2816
2817         * dom/WebKitNamedFlow.cpp:
2818         * dom/WebKitNamedFlow.h:
2819
2820 2012-03-20  Dan Bernstein  <mitz@apple.com>
2821
2822         REGRESSION (r111229): css1/basic/inheritance.html is failing
2823         https://bugs.webkit.org/show_bug.cgi?id=81684
2824
2825         Reverted r111229.
2826
2827         Rubber-stamped by Dave Hyatt.
2828
2829         * dom/Document.cpp:
2830         (WebCore::Document::webkitGetFlowByName):
2831         * dom/Document.h:
2832         (Document):
2833         * dom/Element.cpp:
2834         (WebCore::Element::detach):
2835         * dom/NodeRenderingContext.cpp:
2836         (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
2837         * dom/WebKitNamedFlow.cpp:
2838         (WebCore):
2839         * dom/WebKitNamedFlow.h:
2840         (WebCore):
2841         (WebKitNamedFlow):
2842         * dom/WebKitNamedFlow.idl:
2843
2844 2012-03-20  Vineet Chaudhary  <rgf748@motorola.com>
2845
2846         https://bugs.webkit.org/show_bug.cgi?id=80696
2847         Remove custom bindings for attribute type Array.
2848
2849         Reviewed by Kentaro Hara.
2850
2851         No new tests.
2852
2853         * bindings/js/JSConsoleCustom.cpp: Removed custom function.
2854         (WebCore):
2855         * bindings/js/JSDOMBinding.h: Added template jsArray and toNativeArray.
2856         (WebCore):
2857         (WebCore::jsArray):
2858         (WebCore::toNativeArray):
2859         * bindings/scripts/CodeGenerator.pm: Modified codegenerators to generate appropriate code.
2860         (GetArrayType): Added GetArrayType to get return type of attribute interface.
2861         * bindings/scripts/CodeGeneratorGObject.pm: Modified codegenerators to generate appropriate code.
2862         (SkipAttribute):
2863         * bindings/scripts/CodeGeneratorJS.pm: Modified codegenerators to generate appropriate code.
2864         (AddIncludesForType):
2865         (JSValueToNative):
2866         (NativeToJSValue):
2867         * bindings/scripts/CodeGeneratorV8.pm: Modified codegenerators to generate appropriate code.
2868         (GenerateNormalAttrGetter):
2869         (GenerateNormalAttrSetter):
2870         (JSValueToNative):
2871         (NativeToJSValue):
2872         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Updated results from running binding tests.
2873         (webkit_dom_test_obj_get_property):
2874         (webkit_dom_test_obj_class_init):
2875         * bindings/scripts/test/GObject/WebKitDOMTestObj.h: Ditto.
2876         * bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
2877         (WebCore::jsTestObjSequenceAttr):
2878         (WebCore::setJSTestObjSequenceAttr):
2879         (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
2880         * bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
2881         (WebCore::TestObjInternal::sequenceAttrAttrGetter):
2882         (WebCore::TestObjInternal::sequenceAttrAttrSetter):
2883         (WebCore::TestObjInternal::methodReturningSequenceCallback):
2884         * bindings/v8/V8Binding.h: Added template v8Array and toNativeArray.
2885         (WebCore):
2886         (WebCore::v8Array):
2887         (WebCore::toNativeArray):
2888         * bindings/v8/custom/V8ConsoleCustom.cpp: Removed custom function.
2889         (WebCore):
2890         * page/Console.idl: Replaced attribute type Array to sequence<SriptProfile> to remove
2891           custom bindings.
2892
2893 2012-03-20  Sheriff Bot  <webkit.review.bot@gmail.com>
2894
2895         Unreviewed, rolling out r111310.
2896         http://trac.webkit.org/changeset/111310
2897         https://bugs.webkit.org/show_bug.cgi?id=81683
2898
2899         Broke layout test
2900         dom/xhtml/level3/core/nodereplacechild30.xhtml (Requested by
2901         aklein on #webkit).
2902
2903         * dom/ContainerNode.cpp:
2904         (WebCore::ContainerNode::replaceChild):
2905         (WebCore::ContainerNode::appendChild):
2906         (WebCore::ContainerNode::parserAddChild):
2907
2908 2012-03-20  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2909
2910         Convert hasSpellingMarker to use Internals interface.
2911         https://bugs.webkit.org/show_bug.cgi?id=81300
2912
2913         Reviewed by Ryosuke Niwa.
2914
2915         Remove hasSpellingMarker functions, because it is able to work in the
2916         cross-port way through the Internals interface.
2917
2918         No new tests, since we are improving here the infra-structure
2919         for testing a specific method.
2920
2921         * testing/Internals.cpp:
2922         (WebCore::Internals::hasSpellingMarker):
2923         (WebCore):
2924         * testing/Internals.h:
2925         (Internals):
2926         * testing/Internals.idl:
2927
2928 2012-03-20  Dan Bernstein  <mitz@apple.com>
2929
2930         Build fix.
2931
2932         * history/PageCache.cpp: Fixed an unused function warning introduced in r111391.
2933
2934 2012-03-20  Konrad Piascik  <kpiascik@rim.com>
2935
2936         (r110063) m_mouseDownMayStartDrag is used without being behind the ENABLE(DRAG_SUPPORT) macro
2937         https://bugs.webkit.org/show_bug.cgi?id=81666
2938
2939         Reviewed by Rob Buis.
2940
2941         Compiled with feature disabled and built.
2942
2943         * page/EventHandler.cpp:
2944         (WebCore::EventHandler::selectCursor):
2945
2946 2012-03-20  W. James MacLean  <wjmaclean@chromium.org>
2947
2948         [chromium] Tune fling physics curve. [Not for review yet]
2949         https://bugs.webkit.org/show_bug.cgi?id=81398
2950
2951         Reviewed by James Robinson.
2952
2953         Existing tests updated.
2954
2955         Tune physics of curve for better feel.
2956
2957         * platform/TouchFlingPlatformGestureCurve.cpp:
2958         (WebCore::TouchFlingPlatformGestureCurve::apply):
2959
2960 2012-03-20  Alexis Menard  <alexis.menard@openbossa.org>
2961
2962         Implement a fast path when setting CSS properties with keywords from JS.
2963         https://bugs.webkit.org/show_bug.cgi?id=80874
2964
2965         Reviewed by Antti Koivisto.
2966
2967         The idea is to avoid the creation of the CSSParser instance and to run the parser on
2968         a string we know it should be a keyword. When JS calls parseValue we try to check if we can
2969         use the fast path and if the keyword is accepted then we just add it to the declaration directly.
2970         For the sake of maintenance the parseValue function used by CSSGrammar.y is sharing some code with
2971         the fast path (keyword matching mostly).
2972
2973         This patch improves this use case by 20%. Setting keyword properties from JS is used a lot in
2974         Google Maps for example (when zooming or panning).
2975
2976         No new tests : it's a performance improvement, there shouldn't be any behavior change.
2977
2978         * css/CSSParser.cpp:
2979         (WebCore):
2980         (WebCore::isValidKeywordPropertyAndValue):
2981         (WebCore::isKeywordPropertyID):
2982         (WebCore::parseKeywordValue):
2983         (WebCore::CSSParser::parseValue):
2984
2985 2012-03-20  Ian Vollick  <vollick@chromium.org>
2986
2987         [chromium] Infrastructure to allow animating layers to be only partially updated
2988         https://bugs.webkit.org/show_bug.cgi?id=81106
2989
2990         Reviewed by James Robinson
2991
2992         Merged the controller tests in CCLayerAnimationControllerTest
2993
2994         * WebCore.gypi:
2995         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2996         * platform/graphics/chromium/GraphicsLayerChromium.h:
2997         (GraphicsLayerChromium):
2998         * platform/graphics/chromium/LayerChromium.cpp:
2999         (WebCore::LayerChromium::LayerChromium):
3000         (WebCore::LayerChromium::pushPropertiesTo):
3001         (WebCore::LayerChromium::setOpacityFromAnimation):
3002         (WebCore):
3003         (WebCore::LayerChromium::setTransformFromAnimation):
3004         (WebCore::LayerChromium::addAnimation):
3005         (WebCore::LayerChromium::pauseAnimation):
3006         (WebCore::LayerChromium::removeAnimation):
3007         (WebCore::LayerChromium::suspendAnimations):
3008         (WebCore::LayerChromium::resumeAnimations):
3009         (WebCore::LayerChromium::setLayerAnimationController):
3010         (WebCore::LayerChromium::hasActiveAnimation):
3011         (WebCore::LayerChromium::setAnimationEvent):
3012         * platform/graphics/chromium/LayerChromium.h:
3013         (WebCore):
3014         (LayerChromium):
3015         (WebCore::LayerChromium::id):
3016         (WebCore::LayerChromium::opacity):
3017         (WebCore::LayerChromium::transform):
3018         (WebCore::LayerChromium::bounds):
3019         * platform/graphics/chromium/cc/CCActiveAnimation.h:
3020         (CCActiveAnimation):
3021         * platform/graphics/chromium/cc/CCAnimationEvents.cpp:
3022         (WebCore::CCAnimationEvent::CCAnimationEvent):
3023         (WebCore::CCAnimationEvent::toFloatAnimationFinishedEvent):
3024         (WebCore::CCAnimationEvent::toTransformAnimationFinishedEvent):
3025         (WebCore::CCAnimationStartedEvent::create):
3026         (WebCore):
3027         (WebCore::CCAnimationStartedEvent::CCAnimationStartedEvent):
3028         (WebCore::CCFloatAnimationFinishedEvent::create):
3029         (WebCore::CCFloatAnimationFinishedEvent::CCFloatAnimationFinishedEvent):
3030         (WebCore::CCFloatAnimationFinishedEvent::~CCFloatAnimationFinishedEvent):
3031         (WebCore::CCFloatAnimationFinishedEvent::type):
3032         (WebCore::CCTransformAnimationFinishedEvent::create):
3033         (WebCore::CCTransformAnimationFinishedEvent::CCTransformAnimationFinishedEvent):
3034         (WebCore::CCTransformAnimationFinishedEvent::~CCTransformAnimationFinishedEvent):
3035         (WebCore::CCTransformAnimationFinishedEvent::type):
3036         * platform/graphics/chromium/cc/CCAnimationEvents.h:
3037         (WebCore):
3038         (WebCore::CCAnimationEvent::targetProperty):
3039         (CCAnimationEvent):
3040         (CCAnimationStartedEvent):
3041         (CCFloatAnimationFinishedEvent):
3042         (WebCore::CCFloatAnimationFinishedEvent::finalValue):
3043         (CCTransformAnimationFinishedEvent):
3044         (WebCore::CCTransformAnimationFinishedEvent::finalValue):
3045         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
3046         (WebCore::CCLayerAnimationController::CCLayerAnimationController):
3047         (WebCore::CCLayerAnimationController::create):
3048         (WebCore::CCLayerAnimationController::pushAnimationUpdatesTo):
3049         (WebCore::CCLayerAnimationController::animate):
3050         (WebCore):
3051         (WebCore::CCLayerAnimationController::add):
3052         (WebCore::CCLayerAnimationController::getActiveAnimation):
3053         (WebCore::CCLayerAnimationController::hasActiveAnimation):
3054         (WebCore::CCLayerAnimationController::isAnimatingProperty):
3055         (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
3056         (WebCore::CCLayerAnimationController::removeAnimationsCompletedOnMainThread):
3057         (WebCore::CCLayerAnimationController::startAnimationsWaitingForNextTick):
3058         (WebCore::CCLayerAnimationController::startAnimationsWaitingForStartTime):
3059         (WebCore::CCLayerAnimationController::startAnimationsWaitingForTargetAvailability):
3060         (WebCore::CCLayerAnimationController::resolveConflicts):
3061         (WebCore::CCLayerAnimationController::purgeFinishedAnimations):
3062         (WebCore::CCLayerAnimationController::tickAnimations):
3063         * platform/graphics/chromium/cc/CCLayerAnimationController.h:
3064         (WebCore):
3065         (CCLayerAnimationControllerClient):
3066         (WebCore::CCLayerAnimationControllerClient::~CCLayerAnimationControllerClient):
3067         (CCLayerAnimationController):
3068         * platform/graphics/chromium/cc/CCLayerAnimationControllerImpl.cpp: Removed.
3069         * platform/graphics/chromium/cc/CCLayerAnimationControllerImpl.h: Removed.
3070         * platform/graphics/chromium/cc/CCLayerAnimationDelegate.h:
3071         (CCLayerAnimationDelegate):
3072         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
3073         (WebCore::CCLayerImpl::CCLayerImpl):
3074         (WebCore::CCLayerImpl::setOpacityFromAnimation):
3075         (WebCore):
3076         (WebCore::CCLayerImpl::setTransformFromAnimation):
3077         * platform/graphics/chromium/cc/CCLayerImpl.h:
3078         (CCLayerImpl):
3079         (WebCore::CCLayerImpl::id):
3080         (WebCore::CCLayerImpl::layerAnimationController):
3081         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3082         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
3083         (WebCore::CCLayerTreeHost::updateAnimations):
3084         (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
3085         (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread):
3086         (WebCore::CCLayerTreeHost::animateLayers):
3087         (WebCore):
3088         (WebCore::CCLayerTreeHost::animateLayersRecursive):
3089         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3090         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
3091         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3092         (WebCore::CCLayerTreeHostImpl::animateLayersRecursive):
3093         (WebCore::CCLayerTreeHostImpl::animateLayers):
3094         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
3095         (CCLayerTreeHostImpl):
3096         * platform/graphics/chromium/cc/CCThreadProxy.h:
3097         (WebCore::CCThreadProxy::BeginFrameAndCommitState::BeginFrameAndCommitState):
3098
3099 2012-03-20  Ilya Tikhonovsky  <loislo@chromium.org>
3100
3101         Web Inspector: REGRESSION Detached DOM Nodes are not highlighted
3102         https://bugs.webkit.org/show_bug.cgi?id=81662
3103
3104         Reviewed by Yury Semikhatsky.
3105
3106         * inspector/front-end/HeapSnapshot.js:
3107         (WebInspector.HeapSnapshotNode.prototype.get isDetachedDOMTree):
3108
3109 2012-03-20  Gavin Peters  <gavinp@chromium.org>
3110
3111         New PageCache histogram for tracking the highest leverage frame reject reasons.
3112         https://bugs.webkit.org/show_bug.cgi?id=81358
3113
3114         Reviewed by Adam Barth.
3115
3116         The current chromium FrameClientImpl always denies page cache; but
3117         that's easily fixable.  This histogram tracks which rejection
3118         causes occur alone with that cause.  I'm particularly interested
3119         in knowing how many more pages would work in the page cache if we
3120         could get plugins in.
3121
3122         * history/PageCache.cpp:
3123         (WebCore::logCanCachePageDecision):
3124
3125 2012-03-15  Pavel Podivilov  <podivilov@chromium.org>
3126
3127         Web Inspector: support inline source maps.
3128         https://bugs.webkit.org/show_bug.cgi?id=81248
3129
3130         - support optional map.sourcesContent array with sources content
3131         - support data: url as script sourceMapURL, e.g. "//@ sourceMappingURL=data:application/json;base64,<base64-encoded map>"
3132
3133         Reviewed by Pavel Feldman.
3134
3135         * inspector/front-end/CompilerSourceMapping.js:
3136         (WebInspector.ClosureCompilerSourceMapping):
3137         (WebInspector.ClosureCompilerSourceMapping.prototype.loadSourceCode):
3138         (WebInspector.ClosureCompilerSourceMapping.prototype._parseMap):
3139         (WebInspector.ClosureCompilerSourceMapping.prototype._canonicalizeURL):
3140
3141 2012-03-20  Pavel Feldman  <pfeldman@chromium.org>
3142
3143         Web Inspector: treat Uint* external arrays as arrays in console.
3144         https://bugs.webkit.org/show_bug.cgi?id=81653
3145
3146         Reviewed by Yury Semikhatsky.
3147
3148         * bindings/js/JSInjectedScriptHostCustom.cpp:
3149         (WebCore::JSInjectedScriptHost::type):
3150         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
3151         (WebCore::V8InjectedScriptHost::typeCallback):
3152
3153 2012-03-20  Andreas Kling  <kling@webkit.org>
3154
3155         Let CSSImageValue inherit directly from CSSValue.
3156         <http://webkit.org/b/81635>
3157
3158         Reviewed by Antti Koivisto.
3159
3160         This removes the last of the CSSPrimitiveValue subclasses, which will
3161         open up the class to heavier refactoring.
3162
3163         Those CSSImageValues that used to represent the 'none' value are now
3164         simply created as CSSPrimitiveValue identifiers by the parser.
3165
3166         Test: fast/css/image-value-type.html
3167
3168         * css/CSSCursorImageValue.cpp:
3169         (WebCore::CSSCursorImageValue::~CSSCursorImageValue):
3170         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
3171         (WebCore::CSSCursorImageValue::cachedImage):
3172         * css/CSSImageValue.cpp:
3173         (WebCore::CSSImageValue::CSSImageValue):
3174         (WebCore::CSSImageValue::cachedOrPendingImage):
3175         (WebCore::CSSImageValue::cachedImage):
3176         (WebCore::CSSImageValue::customCssText):
3177         * css/CSSImageValue.h:
3178         (WebCore::CSSImageValue::url):
3179         * css/CSSParser.cpp:
3180         (WebCore::CSSParser::parseValue):
3181         (WebCore::CSSParser::parseFillImage):
3182         (WebCore::CSSParser::parseBorderImage):
3183         * css/CSSStyleApplyProperty.cpp:
3184         (WebCore::ApplyPropertyCursor::applyValue):
3185         * css/CSSStyleSelector.cpp:
3186         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
3187         * css/CSSValue.h:
3188         (WebCore::CSSValue::isPrimitiveValue):
3189
3190 2012-03-20  Pavel Feldman  <pfeldman@chromium.org>
3191
3192         Web Inspector: call .length as the last check when detecting arrays.
3193         https://bugs.webkit.org/show_bug.cgi?id=81335
3194
3195         Reviewed by Yury Semikhatsky.
3196
3197         * inspector/InjectedScriptSource.js:
3198
3199 2012-03-20  Alexander Pavlov  <apavlov@chromium.org>
3200
3201         Web Inspector: newly added CSS rules shouldn't rewrite HTML content in the resources panel
3202         https://bugs.webkit.org/show_bug.cgi?id=81414
3203
3204         Reviewed by Vsevolod Vlasov.
3205
3206         * inspector/front-end/CSSStyleModel.js:
3207         (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged.setContent):
3208         (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged):
3209
3210 2012-03-20  Yury Semikhatsky  <yurys@chromium.org>
3211
3212         Web Inspector: provide class name filter for "comparison" view in heap profiler
3213         https://bugs.webkit.org/show_bug.cgi?id=81641
3214
3215         Class name filtering now works for both Summary and Comparison views.
3216
3217         Reviewed by Pavel Feldman.
3218
3219         * inspector/front-end/DetailedHeapshotView.js:
3220         (WebInspector.DetailedHeapshotView.prototype._createToolbarWithClassNameFilter):
3221         (WebInspector.DetailedHeapshotView.prototype._changeNameFilter):
3222         * inspector/front-end/heapProfiler.css:
3223         (.detailed-heapshot-view .class-view-grid):
3224         (.detailed-heapshot-view .class-view-toolbar):
3225         (.detailed-heapshot-view .class-view-toolbar input.class-name-filter):
3226
3227 2012-03-20  Nikolas Zimmermann  <nzimmermann@rim.com>
3228
3229         Make animVal support type-safe
3230         https://bugs.webkit.org/show_bug.cgi?id=81640
3231
3232         Reviewed by Antti Koivisto.
3233
3234         Test: svg/animations/force-use-shadow-tree-recreation-while-animating.html
3235
3236         Redesign animVal support in a type-safe fashion, avoiding the SVGGenericAnimatedType
3237         and associated reinterpret_casts, which require all call-sites to assure that the
3238         types are safe to cast, before actually calling the method.
3239
3240         Remove pure virtual animationStarted/Ended/ValueWillChange/ValueDidChange & currentBaseValueVariant methods from SVGAnimatedProperty,
3241         and de-virtualize them in classes that inherit from SVGAnimatedProperty, like SVGAnimatedPropertyTearOff, etc.
3242
3243         Add startAnimValAnimation/stopAnimValAnimation/resetAnimValToBaseVal/animValWillChange/animVallDidChange methods to all
3244         SVGAnimatedXXXAnimator classes that currently support animVal (SVGAnimatedLength/LengthList/Number(OptionalNumber)/NumberList/TransformList).
3245         Those SVGAnimatedLengthAnimator can cast the generic SVGAnimatedProperty* associated with a certain SVG DOM property, to the real type
3246         eg. SVGAnimatedLength (which is a SVGAnimatedPropertyTearOff<SVGLength>). This way we can call those methods, without relying on virtual
3247         function calls. Also it makes the "SVGGenericAnimatedType* currentBaseValueVariant()" accessor needless, as we can just call the method
3248         right on eg. the SVGAnimatedLength, which gives us the "const SVGLength&" object, instead of a generic pointer type, that we have to
3249         reinterpret_cast to some hopefully-matching expected type. The new approach is truly type-safey, but needs a bit more boilerplate code.
3250
3251         To reduce the amount of copy&paste across the SVGAnimatedXXXAnimator classes, all code is placed in template functions in
3252         SVGAnimatedTypeAnimator.h, which can be shared across all SVGAnimatedXXXAnimator classes, that inherit from SVGAnimatedTypeAnimator.
3253
3254         Test: svg/animations/force-use-shadow-tree-recreation-while-animating.html
3255
3256         * svg/SVGAnimateElement.cpp:
3257         (WebCore::SVGAnimateElement::calculateAnimatedValue):
3258         (WebCore::SVGAnimateElement::resetToBaseValue):
3259         (WebCore::SVGAnimateElement::applyResultsToTarget):
3260         (WebCore):
3261         (WebCore::SVGAnimateElement::targetElementWillChange):
3262         * svg/SVGAnimatedLength.cpp:
3263         (WebCore::SVGAnimatedLengthAnimator::startAnimValAnimation):
3264         (WebCore::SVGAnimatedLengthAnimator::stopAnimValAnimation):
3265         (WebCore):
3266         (WebCore::SVGAnimatedLengthAnimator::resetAnimValToBaseVal):
3267         (WebCore::SVGAnimatedLengthAnimator::animValWillChange):
3268         (WebCore::SVGAnimatedLengthAnimator::animValDidChange):
3269         * svg/SVGAnimatedLength.h:
3270         (WebCore):
3271         (SVGAnimatedLengthAnimator):
3272         * svg/SVGAnimatedLengthList.cpp:
3273         (WebCore::SVGAnimatedLengthListAnimator::startAnimValAnimation):
3274         (WebCore::SVGAnimatedLengthListAnimator::stopAnimValAnimation):
3275         (WebCore):
3276         (WebCore::SVGAnimatedLengthListAnimator::resetAnimValToBaseVal):
3277         (WebCore::SVGAnimatedLengthListAnimator::animValWillChange):
3278         (WebCore::SVGAnimatedLengthListAnimator::animValDidChange):
3279         * svg/SVGAnimatedLengthList.h:
3280         (WebCore):
3281         (SVGAnimatedLengthListAnimator):
3282         * svg/SVGAnimatedNumber.cpp:
3283         (WebCore::SVGAnimatedNumberAnimator::startAnimValAnimation):
3284         (WebCore::SVGAnimatedNumberAnimator::stopAnimValAnimation):
3285         (WebCore):
3286         (WebCore::SVGAnimatedNumberAnimator::resetAnimValToBaseVal):
3287         (WebCore::SVGAnimatedNumberAnimator::animValWillChange):
3288         (WebCore::SVGAnimatedNumberAnimator::animValDidChange):
3289         * svg/SVGAnimatedNumber.h:
3290         (WebCore):
3291         (SVGAnimatedNumberAnimator):
3292         * svg/SVGAnimatedNumberList.cpp:
3293         (WebCore::SVGAnimatedNumberListAnimator::startAnimValAnimation):
3294         (WebCore::SVGAnimatedNumberListAnimator::stopAnimValAnimation):
3295         (WebCore):
3296         (WebCore::SVGAnimatedNumberListAnimator::resetAnimValToBaseVal):
3297         (WebCore::SVGAnimatedNumberListAnimator::animValWillChange):
3298         (WebCore::SVGAnimatedNumberListAnimator::animValDidChange):
3299         * svg/SVGAnimatedNumberList.h:
3300         (WebCore):
3301         (SVGAnimatedNumberListAnimator):
3302         * svg/SVGAnimatedNumberOptionalNumber.cpp:
3303         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::startAnimValAnimation):
3304         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::stopAnimValAnimation):
3305         (WebCore):
3306         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::resetAnimValToBaseVal):
3307         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::animValWillChange):
3308         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::animValDidChange):
3309         * svg/SVGAnimatedNumberOptionalNumber.h:
3310         (WebCore):
3311         (SVGAnimatedNumberOptionalNumberAnimator):
3312         * svg/SVGAnimatedTransformList.cpp:
3313         (WebCore::SVGAnimatedTransformListAnimator::startAnimValAnimation):
3314         (WebCore):
3315         (WebCore::SVGAnimatedTransformListAnimator::stopAnimValAnimation):
3316         (WebCore::SVGAnimatedTransformListAnimator::resetAnimValToBaseVal):
3317         (WebCore::SVGAnimatedTransformListAnimator::animValWillChange):
3318         (WebCore::SVGAnimatedTransformListAnimator::animValDidChange):
3319         * svg/SVGAnimatedTransformList.h:
3320         (WebCore):
3321         (SVGAnimatedTransformListAnimator):
3322         * svg/SVGAnimatedType.h:
3323         (WebCore):
3324         * svg/SVGAnimatedTypeAnimator.h:
3325         (WebCore):
3326         (SVGAnimatedTypeAnimator):
3327         (WebCore::SVGAnimatedTypeAnimator::startAnimValAnimation):
3328         (WebCore::SVGAnimatedTypeAnimator::stopAnimValAnimation):
3329         (WebCore::SVGAnimatedTypeAnimator::resetAnimValToBaseVal):
3330         (WebCore::SVGAnimatedTypeAnimator::animValWillChange):
3331         (WebCore::SVGAnimatedTypeAnimator::animValDidChange):
3332         (WebCore::SVGAnimatedTypeAnimator::findAnimatedPropertiesForAttributeName):
3333         (WebCore::SVGAnimatedTypeAnimator::startAnimation):
3334         (WebCore::SVGAnimatedTypeAnimator::stopAnimValAnimationForType):
3335         (WebCore::SVGAnimatedTypeAnimator::animValDidChangeForType):
3336         (WebCore::SVGAnimatedTypeAnimator::animValWillChangeForType):
3337         (WebCore::SVGAnimatedTypeAnimator::constructFromOneBaseValue):
3338         (WebCore::SVGAnimatedTypeAnimator::resetFromOneBaseValue):
3339         (WebCore::SVGAnimatedTypeAnimator::constructFromTwoBaseValues):
3340         (WebCore::SVGAnimatedTypeAnimator::resetFromTwoBaseValues):
3341         (WebCore::SVGAnimatedTypeAnimator::castAnimatedPropertyToActualType):
3342         (WebCore::SVGAnimatedTypeAnimator::collectAnimatedPropertiesFromInstances):
3343         * svg/SVGAnimationElement.cpp:
3344         (WebCore::SVGAnimationElement::applyAnimatedValue):
3345         (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
3346         * svg/SVGAnimationElement.h:
3347         (SVGAnimationElement):
3348         * svg/SVGElementInstance.cpp:
3349         (WebCore::SVGElementInstance::invalidateAllInstancesOfElement):
3350         (WebCore::SVGElementInstance::InstanceUpdateBlocker::InstanceUpdateBlocker):
3351         (WebCore):
3352         (WebCore::SVGElementInstance::InstanceUpdateBlocker::~InstanceUpdateBlocker):
3353         * svg/SVGElementInstance.h:
3354         (WebCore):
3355         (InstanceUpdateBlocker):
3356         (SVGElementInstance):
3357         * svg/properties/SVGAnimatedListPropertyTearOff.h:
3358         (WebCore::SVGAnimatedListPropertyTearOff::currentBaseValue):
3359         (WebCore::SVGAnimatedListPropertyTearOff::animationStarted):
3360         (WebCore::SVGAnimatedListPropertyTearOff::animationEnded):
3361         (WebCore::SVGAnimatedListPropertyTearOff::animValWillChange):
3362         (WebCore::SVGAnimatedListPropertyTearOff::animValDidChange):
3363         * svg/properties/SVGAnimatedProperty.h:
3364         (WebCore):
3365         * svg/properties/SVGAnimatedPropertyTearOff.h:
3366         (WebCore::SVGAnimatedPropertyTearOff::currentBaseValue):
3367         (WebCore::SVGAnimatedPropertyTearOff::animationStarted):
3368         (WebCore::SVGAnimatedPropertyTearOff::animationEnded):
3369         (WebCore::SVGAnimatedPropertyTearOff::animValWillChange):
3370         (WebCore::SVGAnimatedPropertyTearOff::animValDidChange):
3371         * svg/properties/SVGAnimatedStaticPropertyTearOff.h:
3372         (WebCore::SVGAnimatedStaticPropertyTearOff::currentBaseValue):
3373         (WebCore::SVGAnimatedStaticPropertyTearOff::animationStarted):
3374         (WebCore::SVGAnimatedStaticPropertyTearOff::animationEnded):
3375         (WebCore::SVGAnimatedStaticPropertyTearOff::animValWillChange):
3376         (WebCore::SVGAnimatedStaticPropertyTearOff::animValDidChange):
3377
3378 2012-03-20  Mihnea Ovidenie  <mihnea@adobe.com>
3379
3380         [CSSRegions]Implement NamedFlow::getRegionsByContentNode
3381         https://bugs.webkit.org/show_bug.cgi?id=77746
3382
3383         Reviewed by David Hyatt.
3384
3385         The list of regions returned is a static node list.
3386
3387         Tests: fast/regions/get-regions-by-content-node-horiz-bt.html
3388                fast/regions/get-regions-by-content-node-horiz-tb.html
3389                fast/regions/get-regions-by-content-node-vert-lr.html
3390                fast/regions/get-regions-by-content-node-vert-rl.html
3391                fast/regions/get-regions-by-content-node.html
3392                fast/regions/get-regions-by-content-node2.html
3393
3394         * dom/WebKitNamedFlow.cpp:
3395         (WebCore::WebKitNamedFlow::getRegionsByContentNode):
3396         (WebCore):
3397         * dom/WebKitNamedFlow.h:
3398         (WebKitNamedFlow):
3399         * dom/WebKitNamedFlow.idl:
3400         * rendering/RenderFlowThread.cpp:
3401         (WebCore::RenderFlowThread::regionInRange):
3402         (WebCore):
3403         (WebCore::RenderFlowThread::objectInFlowRegion):
3404         * rendering/RenderFlowThread.h:
3405         * rendering/RenderRegion.h:
3406         (WebCore::RenderRegion::flowThread):
3407
3408 2012-03-20  Luke Macpherson  <macpherson@chromium.org>
3409
3410         Remove min and max parameters from CSSPrimitiveValue's roundForImpreciseConversion function.
3411         https://bugs.webkit.org/show_bug.cgi?id=81629
3412
3413         Reviewed by Andreas Kling.
3414
3415         No new tests / refactoring only.
3416
3417         * css/CSSPrimitiveValue.cpp:
3418         (WebCore::CSSPrimitiveValue::computeLength):
3419         * css/CSSPrimitiveValue.h:
3420         (WebCore::roundForImpreciseConversion):
3421         * rendering/style/RenderStyle.h:
3422         (WebCore::adjustForAbsoluteZoom):
3423
3424 2012-03-20  Jason Liu  <jason.liu@torchmobile.com.cn>
3425
3426         [BlackBerry]Cookies shouldn't be set into each of webcore's request and platform's request. And this makes a regression.
3427         https://bugs.webkit.org/show_bug.cgi?id=80800
3428
3429         FrameLoaderClientBlackBerry::dispatchWillSendRequest sets cookies to resourceRequest's header