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