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