<rdar://problem/9479926> REGRESSION (r82144): Icon overlaps text in Twitter message...
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-05-21  Dan Bernstein  <mitz@apple.com>
2
3         Reviewed by Darin Adler.
4
5         <rdar://problem/9479926> REGRESSION (r82144): Icon overlaps text in Twitter message dialog
6         https://bugs.webkit.org/show_bug.cgi?id=61241
7
8         Test: fast/block/positioning/start-ignoring-before.html
9
10         * rendering/RenderBlockLineLayout.cpp:
11         (WebCore::TrailingObjects::updateMidpointsForTrailingBoxes): Added a boolean parameter saying
12         whether to merge the first trailing space with the line break.
13         (WebCore::RenderBlock::LineBreaker::nextLineBreak): When adding a midpoint behind the current
14         character, account for trailing positioned objects that occurred after the midpoint by calling
15         updateMidpointsForTrailingBoxes(), which adds midpoints for them.
16
17 2011-05-21  Jeremy Noble  <jer.noble@apple.com>
18
19         Reviewed by Eric Carlson.
20
21         WebKit2: fix failing fullscreen/full-screen-remove* tests.
22         https://bugs.webkit.org/show_bug.cgi?id=61027
23
24         * dom/Document.cpp:
25         (WebCore::Document::fullScreenChangeDelayTimerFired): dispatchEvent can be
26             synchronous, so make sure to check whether the current element is
27             in the DOM before dispatching.
28
29 2011-05-21  Gavin Peters  <gavinp@chromium.org>
30
31         Reviewed by Adam Barth.
32
33         Add rel type prerender to distinguish prerender from prefetch
34         https://bugs.webkit.org/show_bug.cgi?id=61079
35
36         Chrome right now uses <link rel=prefetch ...> for one of two things,
37         to warm the cache in the same way as firefox, or to launch a speculative
38         rendering of a web page, for faster "loading" when the user navigates to it.
39
40         This new rel type will let us distinguish the two cases; the rel type prerender
41         isn't used on the web today, but the Google Web Search example prerendering application
42         is ready to experiment with it.
43
44         Test: fast/dom/HTMLLinkElement/prerender.html
45
46         * html/HTMLLinkElement.cpp:
47         (WebCore::HTMLLinkElement::tokenizeRelAttribute):
48         (WebCore::HTMLLinkElement::process):
49         * html/HTMLLinkElement.h:
50         (WebCore::HTMLLinkElement::RelAttribute::RelAttribute):
51         * loader/cache/CachedResource.cpp:
52         (WebCore::defaultPriorityForResourceType):
53         * loader/cache/CachedResource.h:
54         (WebCore::CachedResource::isLinkResource):
55         * loader/cache/CachedResourceLoader.cpp:
56         (WebCore::createResource):
57         (WebCore::CachedResourceLoader::requestLinkResource):
58         (WebCore::CachedResourceLoader::canRequest):
59         * loader/cache/CachedResourceLoader.h:
60         * loader/cache/CachedResourceRequest.cpp:
61         (WebCore::cachedResourceTypeToTargetType):
62         (WebCore::CachedResourceRequest::load):
63         * platform/network/ResourceRequestBase.h:
64
65 2011-05-21  Emil A Eklund  <eae@chromium.org>
66
67         Reviewed by Eric Seidel.
68
69         Change RenderLineBoxList::hitTest to use IntPoint
70         https://bugs.webkit.org/show_bug.cgi?id=61156
71
72         Change the RenderLineBoxList hit testing to use IntPoint and clean up the rect calculation.
73
74         Covered by existing tests.
75
76         * rendering/RenderBlock.cpp:
77         (WebCore::RenderBlock::hitTestContents):
78         * rendering/RenderInline.cpp:
79         (WebCore::RenderInline::nodeAtPoint):
80         * rendering/RenderLineBoxList.cpp:
81         (WebCore::RenderLineBoxList::hitTest):
82         * rendering/RenderLineBoxList.h:
83
84 2011-05-21  Emil A Eklund  <eae@chromium.org>
85
86         Reviewed by Eric Seidel.
87
88         Change HitTestResult to use IntPoint
89         https://bugs.webkit.org/show_bug.cgi?id=61230
90
91         Covered by existing tests.
92
93         * rendering/EllipsisBox.cpp:
94         (WebCore::EllipsisBox::nodeAtPoint):
95         * rendering/HitTestResult.cpp:
96         (WebCore::HitTestResult::addNodeToRectBasedTestResult):
97         * rendering/HitTestResult.h:
98         (WebCore::HitTestResult::isRectBasedTest):
99         * rendering/InlineFlowBox.cpp:
100         (WebCore::InlineFlowBox::nodeAtPoint):
101         * rendering/InlineTextBox.cpp:
102         (WebCore::InlineTextBox::nodeAtPoint):
103         * rendering/RenderBlock.cpp:
104         (WebCore::RenderBlock::nodeAtPoint):
105         (WebCore::RenderBlock::hitTestColumns):
106         * rendering/RenderBox.cpp:
107         (WebCore::RenderBox::nodeAtPoint):
108         * rendering/RenderTable.cpp:
109         (WebCore::RenderTable::nodeAtPoint):
110         * rendering/svg/RenderSVGRoot.cpp:
111         (WebCore::RenderSVGRoot::nodeAtPoint):
112
113 2011-05-21  Jochen Eisinger  <jochen@chromium.org>
114
115         Reviewed by Darin Fisher.
116
117         [chromium] add extraData field to resource requests
118         https://bugs.webkit.org/show_bug.cgi?id=61033
119
120         * platform/network/chromium/ResourceRequest.h:
121         (WebCore::ResourceRequest::ExtraData::~ExtraData):
122         (WebCore::ResourceRequest::extraData):
123         (WebCore::ResourceRequest::setExtraData):
124
125 2011-05-21  Kent Tamura  <tkent@chromium.org>
126
127         Reviewed by Dimitri Glazkov.
128
129         Change text-based <input> types to the new shadow DOM model
130         https://bugs.webkit.org/show_bug.cgi?id=54179
131
132         By this change, text field inputs and textareas have one extra
133         shadow node at the root of shadow trees.
134         e.g. Before the change:
135           <textarea> --(shadow-connection)-- <div> -- ...
136         After the change:
137           <textarea> --(shadow-connection)-- {#shadow-root} -- <div> -- ...
138
139         The goals of this change are
140         - Change to the new shadow DOM model, and
141         - Minimize the patch size.
142
143         We should use shadowPseudoId() in the new shadow DOM model, but the
144         shadow elements in this patch don't use it in order to reduce the patch
145         size.
146
147         * css/html.css:
148         (input::-webkit-inner-spin-button):
149          Add vertical-align in order to avoid the button affect the baseline.
150         (input::-webkit-outer-spin-button): ditto.
151         (input::-webkit-input-speech-button): ditto.
152         * dom/Element.cpp:
153         (WebCore::Element::recalcStyle): Calls styleForRenderer() so that a
154          subclass of Element can override it.
155         (WebCore::Element::isSpellCheckingEnabled):
156         Handle ShadowRoot, which is not an Element.
157         * dom/Node.cpp:
158           Add utility functions for editing code.
159         (WebCore::Node::nonBoundaryShadowTreeRootNode):
160         (WebCore::Node::nonShadowBoundaryParentNode):
161         * dom/Node.h: Declare them.
162         * dom/Position.cpp:
163          - Add some assertions about ShadowRoot
164          - Replace parentNode() with nonShadowBoundaryParentNode()
165         Because input/textarea shadow structures are changed.
166         (WebCore::Position::Position):
167         (WebCore::Position::containerNode):
168         (WebCore::Position::parentAnchoredEquivalent):
169         (WebCore::Position::previous):
170         (WebCore::Position::next):
171         (WebCore::Position::parentEditingBoundary):
172         (WebCore::Position::atStartOfTree):
173         (WebCore::Position::atEndOfTree):
174         * dom/Position.h: ditto.
175         (WebCore::positionInParentBeforeNode):
176         (WebCore::positionInParentAfterNode):
177         * editing/CompositeEditCommand.cpp: ditto.
178         (WebCore::CompositeEditCommand::insertNodeAfter):
179         (WebCore::CompositeEditCommand::removeNode):
180         * editing/Editor.cpp:
181         (WebCore::Editor::findString): ditto.
182         * editing/FrameSelection.cpp:
183         (WebCore::FrameSelection::selectAll): Inline shadowTreeRootNode() calls.
184         * editing/FrameSelection.h:
185           Remove shadowTreeRootNode(). It is used only by FrameSelection::selectAll().
186         * editing/InsertParagraphSeparatorCommand.cpp:
187         (WebCore::InsertParagraphSeparatorCommand::doApply): Use nonShadowBoundaryParentNode()
188         * editing/ReplaceSelectionCommand.cpp:
189         (WebCore::ReplacementFragment::removeNode): ditto.
190         (WebCore::ReplacementFragment::insertNodeBefore): ditto.
191         * editing/VisibleSelection.cpp:
192           Rename shadowTreeRootNode() to nonBoundaryShadowTreeRootNode(), and it reutrns
193           a child node of ShadowRoot.
194         (WebCore::VisibleSelection::isAll):
195         (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries):
196         (WebCore::VisibleSelection::nonBoundaryShadowTreeRootNode):
197         * editing/VisibleSelection.h: ditto.
198         * editing/htmlediting.cpp: Add assertions.
199         (WebCore::visiblePositionBeforeNode):
200         (WebCore::visiblePositionAfterNode):
201         * html/HTMLInputElement.cpp:
202         (WebCore::HTMLInputElement::create): Calls createShadowSubtree().
203         (WebCore::HTMLInputElement::createShadowSubtree):
204           Calls InputType::createShadowSubTree().
205         (WebCore::HTMLInputElement::innerTextElement):
206           Accessor of a shadow node. This is used by RenderTextControlSingleLine.
207         (WebCore::HTMLInputElement::innerBlockElement): ditto.
208         (WebCore::HTMLInputElement::innerSpinButtonElement): ditto.
209         (WebCore::HTMLInputElement::outerSpinButtonElement): ditto.
210         (WebCore::HTMLInputElement::resultsButtonElement): ditto.
211         (WebCore::HTMLInputElement::cancelButtonElement): ditto.
212         (WebCore::HTMLInputElement::speechButtonElement): ditto.
213         (WebCore::HTMLInputElement::parseMappedAttribute):
214           Rebuild shadow trees because x-webkit-speech attribute affects it.
215         * html/HTMLInputElement.h: Add declarations.
216         * html/HTMLIsIndexElement.cpp:
217         (WebCore::HTMLIsIndexElement::create): Calls createShadowSubtree().
218         * html/HTMLTextAreaElement.cpp:
219         (WebCore::HTMLTextAreaElement::create): Calls createShadowSubtree().
220         (WebCore::HTMLTextAreaElement::createShadowSubtree): Added.
221         * html/HTMLTextAreaElement.h: Declare createShadowSubtree().
222         * html/InputType.h: Add default implementations of accessors.
223         (WebCore::InputType::innerBlockElement):
224         (WebCore::InputType::innerTextElement):
225         (WebCore::InputType::innerSpinButtonElement):
226         (WebCore::InputType::outerSpinButtonElement):
227         (WebCore::InputType::resultsButtonElement):
228         (WebCore::InputType::cancelButtonElement):
229         (WebCore::InputType::speechButtonElement):
230         * html/SearchInputType.cpp:
231         (WebCore::SearchInputType::SearchInputType): Initializes new data members.
232         (WebCore::SearchInputType::createShadowSubtree):
233           Moved from RenderTextControlSingleLine.
234         (WebCore::SearchInputType::destroyShadowSubtree): Clear element references.
235         * html/SearchInputType.h: Add declarations.
236         (WebCore::SearchInputType::innerBlockElement):
237         (WebCore::SearchInputType::resultsButtonElement):
238         (WebCore::SearchInputType::cancelButtonElement):
239         * html/TextFieldInputType.cpp:
240         (WebCore::TextFieldInputType::TextFieldInputType):
241           Initializes new data members.
242         (WebCore::TextFieldInputType::createShadowSubtree):
243           Moved from RenderTextControlSingleLine.
244         (WebCore::TextFieldInputType::destroyShadowSubtree): Clear element references.
245         * html/TextFieldInputType.h: Add declarations.
246         (WebCore::TextFieldInputType::innerTextElement):
247         (WebCore::TextFieldInputType::innerSpinButtonElement):
248         (WebCore::TextFieldInputType::outerSpinButtonElement):
249         (WebCore::TextFieldInputType::speechButtonElement):
250         (WebCore::TextFieldInputType::setInnerTextElement):
251         (WebCore::TextFieldInputType::setSpeechButtonElement):
252         * html/shadow/TextControlInnerElements.cpp:
253         (WebCore::TextControlInnerElement::TextControlInnerElement):
254           Remove shadowParent parameter. It is unnecessary because we switch to
255           new shadow model.
256         (WebCore::TextControlInnerElement::create):
257           Change the parameter type to Document.
258         (WebCore::TextControlInnerElement::styleForRenderer):
259           Override this in order to set style by
260           RenderTextControlSingleLine::createInnerBlockStyle().
261         (WebCore::TextControlInnerTextElement::TextControlInnerTextElement):
262           Remove shadowParent parameter.
263           Inherit HTMLDivElement, not TextControlInnerElement.
264         (WebCore::TextControlInnerTextElement::create): Remove shadowParent parameter.
265         (WebCore::TextControlInnerTextElement::styleForRenderer):
266           Override this in order to set style by
267           RenderTextControlSingleLine::createInnerTextStyle().
268         (WebCore::SearchFieldResultsButtonElement::SearchFieldResultsButtonElement):
269           Inherit HTMLDivElement, not TextControlInnerElement.
270         (WebCore::SearchFieldResultsButtonElement::styleForRenderer):
271           Override this in order to set style by
272           RenderTextControlSingleLine::createResultButtonStyle().
273         (WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement):
274           Inherit HTMLDivElement, not TextControlInnerElement.
275         (WebCore::SearchFieldCancelButtonElement::styleForRenderer):
276           Override this in order to set style by
277           RenderTextControlSingleLine::createCancelButtonStyle().
278         (WebCore::SearchFieldCancelButtonElement::detach):
279           Update for the parent class change.
280         (WebCore::SpinButtonElement::SpinButtonElement):
281           - Change the parameter type: shadowParent -> Document
282           - Add the inner flag
283           - Inherit HTMLDivElement, not TextControlInnerElement.
284         (WebCore::SpinButtonElement::createInner): Introduce a new factory
285           method to hide a bool parameter of the constructor.
286         (WebCore::SpinButtonElement::createOuter): ditto.
287         (WebCore::SpinButtonElement::styleForRenderer):
288           Override this in order to set style by
289           RenderTextControlSingleLine::createInnerSpinButtonStyle() or
290           createOuterSpinButtonStyle().
291         (WebCore::SpinButtonElement::detach): Update for the parent class change.
292         (WebCore::SpinButtonElement::setHovered): ditto.
293         (WebCore::InputFieldSpeechButtonElement::InputFieldSpeechButtonElement):
294           - Change the parameter type: shadowParent -> Document
295           - Inherit HTMLDivElement, not TextControlInnerElement.
296           - Do not register this as a speech input listener here.
297         (WebCore::InputFieldSpeechButtonElement::create):
298           Update for the parameter change.
299         (WebCore::InputFieldSpeechButtonElement::defaultEventHandler):
300           Do not handle click event if listener registration is not done.
301         (WebCore::InputFieldSpeechButtonElement::attach):
302           Register this as a speech input listener.
303         (WebCore::InputFieldSpeechButtonElement::detach):
304           Update for the parent class change.
305         (WebCore::InputFieldSpeechButtonElement::styleForRenderer):
306           Override this in order to set style by
307           RenderTextControlSingleLine::createSpeechButtonStyle().
308         * html/shadow/TextControlInnerElements.h:
309         (WebCore::TextControlInnerTextElement::isMouseFocusable):
310           Add this because the class is not a subclass of TextControllInnerElement.
311         (WebCore::SearchFieldResultsButtonElement::isMouseFocusable): ditto.
312         (WebCore::SearchFieldCancelButtonElement::isMouseFocusable): ditto.
313         (WebCore::SpinButtonElement::isMouseFocusable): ditto.
314         (WebCore::InputFieldSpeechButtonElement::isMouseFocusable): ditto.
315         * rendering/RenderTextControl.cpp:
316         (WebCore::RenderTextControl::~RenderTextControl): Remove unnecessary code.
317         (WebCore::RenderTextControl::styleDidChange):
318           innerTextElement can have no renderer.
319           Explicitly call setNeedsStyleRecals() for innerTextElement. It is
320           needed for LayoutTests/editing/selection/select-across-readonly-input-*.html.
321         (WebCore::RenderTextControl::textBlockWidth): Member data -> function
322         (WebCore::RenderTextControl::updateFromElement): ditto.
323         (WebCore::RenderTextControl::setInnerTextValue): ditto.
324         (WebCore::RenderTextControl::hasVisibleTextArea): ditto.
325         (WebCore::RenderTextControl::isSelectableElement): ditto.
326         (WebCore::RenderTextControl::selection): ditto.
327         (WebCore::RenderTextControl::visiblePositionForIndex): ditto.
328         (WebCore::RenderTextControl::indexForVisiblePosition): ditto.
329         (WebCore::RenderTextControl::text): ditto.
330         (WebCore::RenderTextControl::textWithHardLineBreaks): ditto.
331         (WebCore::RenderTextControl::computeLogicalHeight): ditto.
332         (WebCore::RenderTextControl::hitInnerTextElement): ditto.
333         (WebCore::RenderTextControl::forwardEvent): ditto.
334         (WebCore::RenderTextControl::computePreferredLogicalWidths): ditto.
335         * rendering/RenderTextControl.h:
336           - Make m_innerText virtual function.
337           - Make createInnerTextStyle() public in order that
338             TextControlInnerElements can call it.
339         * rendering/RenderTextControlMultiLine.cpp:
340         (WebCore::RenderTextControlMultiLine::innerTextElement): Added.
341         (WebCore::RenderTextControlMultiLine::updateFromElement):
342           Remove unnecessary createSubtreeIfNeeded() call.
343         * rendering/RenderTextControlMultiLine.h: Add a declaration.
344         * rendering/RenderTextControlSingleLine.cpp:
345         (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
346           Remove unnecessary code.
347         (WebCore::RenderTextControlSingleLine::innerTextElement): Added.
348         (WebCore::RenderTextControlSingleLine::innerBlockElement): Added.
349         (WebCore::RenderTextControlSingleLine::innerSpinButtonElement): Added.
350         (WebCore::RenderTextControlSingleLine::outerSpinButtonElement): Added.
351         (WebCore::RenderTextControlSingleLine::resultsButtonElement): Added.
352         (WebCore::RenderTextControlSingleLine::cancelButtonElement): Added.
353         (WebCore::RenderTextControlSingleLine::speechButtonElement): Added.
354         (WebCore::RenderTextControlSingleLine::textBaseStyle): Data member -> function
355         (WebCore::RenderTextControlSingleLine::subtreeHasChanged): ditto.
356         (WebCore::RenderTextControlSingleLine::layout): ditto.
357         (WebCore::RenderTextControlSingleLine::nodeAtPoint): ditto.
358         (WebCore::RenderTextControlSingleLine::forwardEvent): ditto.
359         (WebCore::RenderTextControlSingleLine::styleDidChange): ditto.
360         (WebCore::RenderTextControlSingleLine::hasControlClip): ditto.
361         (WebCore::RenderTextControlSingleLine::controlClipRect): ditto.
362         (WebCore::RenderTextControlSingleLine::textBlockWidth): ditto.
363         (WebCore::RenderTextControlSingleLine::decorationWidthRight): ditto.
364         (WebCore::RenderTextControlSingleLine::preferredContentWidth): ditto.
365         (WebCore::RenderTextControlSingleLine::preferredDecorationWidthRight): ditto.
366         (WebCore::RenderTextControlSingleLine::adjustControlHeightBasedOnLineHeight): ditto.
367         (WebCore::RenderTextControlSingleLine::updateFromElement):
368           ditto, and remove unnecessary createSubtreeIfNeeded() call.
369         (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
370           Data member -> function
371         (WebCore::RenderTextControlSingleLine::updateCancelButtonVisibility): ditto.
372         (WebCore::RenderTextControlSingleLine::clientPaddingLeft): ditto.
373         (WebCore::RenderTextControlSingleLine::clientPaddingRight): ditto.
374         (WebCore::RenderTextControlSingleLine::textBlockInsetTop): ditto.
375         * rendering/RenderTextControlSingleLine.h:
376           Add declarations, and remove unnecessary data members.
377
378 2011-05-21  Chris Rogers  <crogers@google.com>
379
380         Reviewed by Kenneth Russell.
381
382         AudioBufferSourceNode noteOff() method must respect scheduling time
383         https://bugs.webkit.org/show_bug.cgi?id=61226
384
385         No new tests since audio API is not yet implemented.
386
387         * webaudio/AudioBufferSourceNode.cpp:
388         (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
389         (WebCore::AudioBufferSourceNode::process):
390         (WebCore::AudioBufferSourceNode::provideInput):
391         (WebCore::AudioBufferSourceNode::finish):
392         (WebCore::AudioBufferSourceNode::noteGrainOn):
393         (WebCore::AudioBufferSourceNode::noteOff):
394         * webaudio/AudioBufferSourceNode.h:
395
396 2011-05-20  Dirk Schulze  <krit@webkit.org>
397
398         Reviewed by Nikolas Zimmermann.
399
400         Share more code in PathTraversalState
401         https://bugs.webkit.org/show_bug.cgi?id=61238
402
403         Share more code between SVGPathTraversalStateBuilder and Path in PathTraversalState.
404
405         No change in functionality, so no new tests.
406
407         * platform/graphics/Path.cpp:
408         (WebCore::pathLengthApplierFunction):
409         * platform/graphics/PathTraversalState.cpp:
410         (WebCore::PathTraversalState::processSegment):
411         * platform/graphics/PathTraversalState.h:
412         * svg/SVGPathTraversalStateBuilder.cpp:
413         (WebCore::SVGPathTraversalStateBuilder::continueConsuming):
414
415 2011-05-21  Nikolas Zimmermann  <nzimmermann@rim.com>
416
417         Reviewed by Rob Buis.
418
419         SVG svgAttributeChanged/synchronizeProperty/parseMappedAttribute should be optimized
420         https://bugs.webkit.org/show_bug.cgi?id=61183
421
422         Example: rect.x.baseVal.value = 100;
423         What happens: SVGRectElement::svgAttributeChanged(const QualifiedName& attrName) is invoked with "SVGNames::rectAttr" as parameter.
424
425         void SVGRectElement::svgAttributeChanged(const QualifiedName& attrName)
426         {
427             SVGStyledTransformableElement::svgAttributeChanged(attrName);
428             // Handle my own attribute changes...
429         }
430
431         Currently we always traverse the base class hierarchy, when invoking svgAttributeChanged. Every svgAttributeChanged call from a class
432         like SVGRectElement has to reach the base class SVGStyledElement::svgAttributeChanged, as it handles invalidation of the instances of
433         an element. Say that a <rect> is referenced by a <use> and we change the 'x' attribute of the <rect>, then SVGStyledElement::svgAttributeChanged,
434         calls SVGElementInstance::invalidateAllInstancesOfElement(this), so that the <use> can rebuild its shadow tree...
435         That's the only reason all svgAttributeChanged implementations call the base class immediately, so SVGStyledElement is always reached.
436
437         Switch to a more efficient pattern, by providing a "bool isSupportedAttribute(const QualifiedName&);" function for all SVG*Elements.
438         It contains all attributes the particular SVG*Element class handles (but not its parent classes attributes). For example SVGRectElement
439         contains x/y/width/height/rx/ry attributes, and the ones from SVGTests/SVGLangSpace/SVGExternalResourcesRequired (xml:space/lang, etc.),
440         but not eg. transform as that's handled by the parent class SVGStyledTransformableElement.
441
442         void SVGRectElement::svgAttributeChanged(const QualifiedName& attrName)
443         {
444             if (!isSupportedAttribute.contains(attrName)) {
445                 SVGStyledTransformableElement::svgAttributeChanged(attrName);
446                 return;
447             }
448
449             // When we get here, we know for sure it's one of our attributes that has changed.
450             // Note for eg. SVGNames::transformAttr, the call from SVGRectElement::svgAttributeChanged, would be immediately forwarded to the base class, which handles transformAttr changes)
451
452             if (attrName == SVGNames::xAttr) { do_work(); return; }
453             if (attrName == SVGNames::yAttr) { do_work(); return; }
454             ...
455             // Assure that we handled all properties we claim support for in "isSupportedAttribute()".
456             ASSERT_NOT_REACHED();
457         }
458
459         Exactly the same pattern can be applied to synchronizeProperty and parseMappedAttribute to speed them up as well.
460
461         Add "SVGElementInstance::InvalidationGuard guard(this)" statements in all svgAttributeChanged implementations, that calls invalidateAllInstancesOfElement(this)
462         upon destruction, after we've reacted to the svg attribute change. This assures we never forget to call the invalidation method anywhere, and don't
463         need to rely on the base class svgAttributeChanged() call to do it.
464        
465         It's a slight overal performance progression.
466
467         * svg/SVGAElement.cpp:
468         (WebCore::SVGAElement::isSupportedAttribute):
469         (WebCore::SVGAElement::parseMappedAttribute):
470         (WebCore::SVGAElement::svgAttributeChanged):
471         (WebCore::SVGAElement::synchronizeProperty):
472         * svg/SVGAElement.h:
473         * svg/SVGAnimateMotionElement.cpp:
474         (WebCore::SVGAnimateMotionElement::isSupportedAttribute):
475         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
476         * svg/SVGAnimateMotionElement.h:
477         * svg/SVGAnimateTransformElement.cpp:
478         (WebCore::SVGAnimateTransformElement::isSupportedAttribute):
479         (WebCore::SVGAnimateTransformElement::parseMappedAttribute):
480         * svg/SVGAnimateTransformElement.h:
481         * svg/SVGAnimationElement.cpp:
482         (WebCore::SVGAnimationElement::isSupportedAttribute):
483         (WebCore::SVGAnimationElement::parseMappedAttribute):
484         * svg/SVGAnimationElement.h:
485         * svg/SVGCircleElement.cpp:
486         (WebCore::SVGCircleElement::isSupportedAttribute):
487         (WebCore::SVGCircleElement::parseMappedAttribute):
488         (WebCore::SVGCircleElement::svgAttributeChanged):
489         (WebCore::SVGCircleElement::synchronizeProperty):
490         * svg/SVGCircleElement.h:
491         * svg/SVGClipPathElement.cpp:
492         (WebCore::SVGClipPathElement::isSupportedAttribute):
493         (WebCore::SVGClipPathElement::parseMappedAttribute):
494         (WebCore::SVGClipPathElement::svgAttributeChanged):
495         (WebCore::SVGClipPathElement::synchronizeProperty):
496         * svg/SVGClipPathElement.h:
497         * svg/SVGComponentTransferFunctionElement.cpp:
498         (WebCore::SVGComponentTransferFunctionElement::isSupportedAttribute):
499         (WebCore::SVGComponentTransferFunctionElement::parseMappedAttribute):
500         (WebCore::SVGComponentTransferFunctionElement::synchronizeProperty):
501         * svg/SVGComponentTransferFunctionElement.h:
502         * svg/SVGCursorElement.cpp:
503         (WebCore::SVGCursorElement::isSupportedAttribute):
504         (WebCore::SVGCursorElement::parseMappedAttribute):
505         (WebCore::SVGCursorElement::svgAttributeChanged):
506         (WebCore::SVGCursorElement::synchronizeProperty):
507         * svg/SVGCursorElement.h:
508         * svg/SVGElementInstance.h:
509         (WebCore::SVGElementInstance::InvalidationGuard::InvalidationGuard):
510         (WebCore::SVGElementInstance::InvalidationGuard::~InvalidationGuard):
511         * svg/SVGEllipseElement.cpp:
512         (WebCore::SVGEllipseElement::isSupportedAttribute):
513         (WebCore::SVGEllipseElement::parseMappedAttribute):
514         (WebCore::SVGEllipseElement::svgAttributeChanged):
515         (WebCore::SVGEllipseElement::synchronizeProperty):
516         * svg/SVGEllipseElement.h:
517         * svg/SVGExternalResourcesRequired.cpp:
518         (WebCore::SVGExternalResourcesRequired::addSupportedAttributes):
519         * svg/SVGExternalResourcesRequired.h:
520         * svg/SVGFEBlendElement.cpp:
521         (WebCore::SVGFEBlendElement::isSupportedAttribute):
522         (WebCore::SVGFEBlendElement::parseMappedAttribute):
523         (WebCore::SVGFEBlendElement::svgAttributeChanged):
524         (WebCore::SVGFEBlendElement::synchronizeProperty):
525         * svg/SVGFEBlendElement.h:
526         * svg/SVGFEColorMatrixElement.cpp:
527         (WebCore::SVGFEColorMatrixElement::isSupportedAttribute):
528         (WebCore::SVGFEColorMatrixElement::parseMappedAttribute):
529         (WebCore::SVGFEColorMatrixElement::svgAttributeChanged):
530         (WebCore::SVGFEColorMatrixElement::synchronizeProperty):
531         * svg/SVGFEColorMatrixElement.h:
532         * svg/SVGFEComponentTransferElement.cpp:
533         (WebCore::SVGFEComponentTransferElement::isSupportedAttribute):
534         (WebCore::SVGFEComponentTransferElement::parseMappedAttribute):
535         (WebCore::SVGFEComponentTransferElement::synchronizeProperty):
536         * svg/SVGFEComponentTransferElement.h:
537         * svg/SVGFECompositeElement.cpp:
538         (WebCore::SVGFECompositeElement::isSupportedAttribute):
539         (WebCore::SVGFECompositeElement::parseMappedAttribute):
540         (WebCore::SVGFECompositeElement::svgAttributeChanged):
541         (WebCore::SVGFECompositeElement::synchronizeProperty):
542         * svg/SVGFECompositeElement.h:
543         * svg/SVGFEConvolveMatrixElement.cpp:
544         (WebCore::SVGFEConvolveMatrixElement::isSupportedAttribute):
545         (WebCore::SVGFEConvolveMatrixElement::parseMappedAttribute):
546         (WebCore::SVGFEConvolveMatrixElement::svgAttributeChanged):
547         (WebCore::SVGFEConvolveMatrixElement::synchronizeProperty):
548         * svg/SVGFEConvolveMatrixElement.h:
549         * svg/SVGFEDiffuseLightingElement.cpp:
550         (WebCore::SVGFEDiffuseLightingElement::isSupportedAttribute):
551         (WebCore::SVGFEDiffuseLightingElement::parseMappedAttribute):
552         (WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged):
553         (WebCore::SVGFEDiffuseLightingElement::synchronizeProperty):
554         * svg/SVGFEDiffuseLightingElement.h:
555         * svg/SVGFEDisplacementMapElement.cpp:
556         (WebCore::SVGFEDisplacementMapElement::isSupportedAttribute):
557         (WebCore::SVGFEDisplacementMapElement::parseMappedAttribute):
558         (WebCore::SVGFEDisplacementMapElement::svgAttributeChanged):
559         (WebCore::SVGFEDisplacementMapElement::synchronizeProperty):
560         * svg/SVGFEDisplacementMapElement.h:
561         * svg/SVGFEDropShadowElement.cpp:
562         (WebCore::SVGFEDropShadowElement::isSupportedAttribute):
563         (WebCore::SVGFEDropShadowElement::parseMappedAttribute):
564         (WebCore::SVGFEDropShadowElement::svgAttributeChanged):
565         (WebCore::SVGFEDropShadowElement::synchronizeProperty):
566         * svg/SVGFEDropShadowElement.h:
567         * svg/SVGFEGaussianBlurElement.cpp:
568         (WebCore::SVGFEGaussianBlurElement::isSupportedAttribute):
569         (WebCore::SVGFEGaussianBlurElement::parseMappedAttribute):
570         (WebCore::SVGFEGaussianBlurElement::svgAttributeChanged):
571         (WebCore::SVGFEGaussianBlurElement::synchronizeProperty):
572         * svg/SVGFEGaussianBlurElement.h:
573         * svg/SVGFEImageElement.cpp:
574         (WebCore::SVGFEImageElement::isSupportedAttribute):
575         (WebCore::SVGFEImageElement::parseMappedAttribute):
576         (WebCore::SVGFEImageElement::svgAttributeChanged):
577         (WebCore::SVGFEImageElement::synchronizeProperty):
578         * svg/SVGFEImageElement.h:
579         * svg/SVGFELightElement.cpp:
580         (WebCore::SVGFELightElement::isSupportedAttribute):
581         (WebCore::SVGFELightElement::parseMappedAttribute):
582         (WebCore::SVGFELightElement::svgAttributeChanged):
583         (WebCore::SVGFELightElement::synchronizeProperty):
584         * svg/SVGFELightElement.h:
585         * svg/SVGFEMergeNodeElement.cpp:
586         (WebCore::SVGFEMergeNodeElement::isSupportedAttribute):
587         (WebCore::SVGFEMergeNodeElement::parseMappedAttribute):
588         (WebCore::SVGFEMergeNodeElement::svgAttributeChanged):
589         (WebCore::SVGFEMergeNodeElement::synchronizeProperty):
590         * svg/SVGFEMergeNodeElement.h:
591         * svg/SVGFEMorphologyElement.cpp:
592         (WebCore::SVGFEMorphologyElement::isSupportedAttribute):
593         (WebCore::SVGFEMorphologyElement::parseMappedAttribute):
594         (WebCore::SVGFEMorphologyElement::svgAttributeChanged):
595         (WebCore::SVGFEMorphologyElement::synchronizeProperty):
596         * svg/SVGFEMorphologyElement.h:
597         * svg/SVGFEOffsetElement.cpp:
598         (WebCore::SVGFEOffsetElement::isSupportedAttribute):
599         (WebCore::SVGFEOffsetElement::parseMappedAttribute):
600         (WebCore::SVGFEOffsetElement::svgAttributeChanged):
601         (WebCore::SVGFEOffsetElement::synchronizeProperty):
602         * svg/SVGFEOffsetElement.h:
603         * svg/SVGFESpecularLightingElement.cpp:
604         (WebCore::SVGFESpecularLightingElement::isSupportedAttribute):
605         (WebCore::SVGFESpecularLightingElement::parseMappedAttribute):
606         (WebCore::SVGFESpecularLightingElement::svgAttributeChanged):
607         (WebCore::SVGFESpecularLightingElement::synchronizeProperty):
608         * svg/SVGFESpecularLightingElement.h:
609         * svg/SVGFETileElement.cpp:
610         (WebCore::SVGFETileElement::isSupportedAttribute):
611         (WebCore::SVGFETileElement::parseMappedAttribute):
612         (WebCore::SVGFETileElement::svgAttributeChanged):
613         (WebCore::SVGFETileElement::synchronizeProperty):
614         * svg/SVGFETileElement.h:
615         * svg/SVGFETurbulenceElement.cpp:
616         (WebCore::SVGFETurbulenceElement::isSupportedAttribute):
617         (WebCore::SVGFETurbulenceElement::parseMappedAttribute):
618         (WebCore::SVGFETurbulenceElement::svgAttributeChanged):
619         (WebCore::SVGFETurbulenceElement::synchronizeProperty):
620         * svg/SVGFETurbulenceElement.h:
621         * svg/SVGFilterElement.cpp:
622         (WebCore::SVGFilterElement::isSupportedAttribute):
623         (WebCore::SVGFilterElement::parseMappedAttribute):
624         (WebCore::SVGFilterElement::svgAttributeChanged):
625         (WebCore::SVGFilterElement::synchronizeProperty):
626         * svg/SVGFilterElement.h:
627         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
628         (WebCore::SVGFilterPrimitiveStandardAttributes::isSupportedAttribute):
629         (WebCore::SVGFilterPrimitiveStandardAttributes::parseMappedAttribute):
630         (WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged):
631         (WebCore::SVGFilterPrimitiveStandardAttributes::synchronizeProperty):
632         * svg/SVGFilterPrimitiveStandardAttributes.h:
633         * svg/SVGFitToViewBox.cpp:
634         (WebCore::SVGFitToViewBox::parseMappedAttribute):
635         (WebCore::SVGFitToViewBox::synchronizeProperties):
636         (WebCore::SVGFitToViewBox::addSupportedAttributes):
637         * svg/SVGFitToViewBox.h:
638         * svg/SVGForeignObjectElement.cpp:
639         (WebCore::SVGForeignObjectElement::isSupportedAttribute):
640         (WebCore::SVGForeignObjectElement::parseMappedAttribute):
641         (WebCore::SVGForeignObjectElement::svgAttributeChanged):
642         (WebCore::SVGForeignObjectElement::synchronizeProperty):
643         * svg/SVGForeignObjectElement.h:
644         * svg/SVGGElement.cpp:
645         (WebCore::SVGGElement::isSupportedAttribute):
646         (WebCore::SVGGElement::parseMappedAttribute):
647         (WebCore::SVGGElement::svgAttributeChanged):
648         (WebCore::SVGGElement::synchronizeProperty):
649         * svg/SVGGElement.h:
650         * svg/SVGGradientElement.cpp:
651         (WebCore::SVGGradientElement::isSupportedAttribute):
652         (WebCore::SVGGradientElement::parseMappedAttribute):
653         (WebCore::SVGGradientElement::svgAttributeChanged):
654         (WebCore::SVGGradientElement::synchronizeProperty):
655         * svg/SVGGradientElement.h:
656         * svg/SVGImageElement.cpp:
657         (WebCore::SVGImageElement::isSupportedAttribute):
658         (WebCore::SVGImageElement::parseMappedAttribute):
659         (WebCore::SVGImageElement::svgAttributeChanged):
660         (WebCore::SVGImageElement::synchronizeProperty):
661         * svg/SVGImageElement.h:
662         * svg/SVGLangSpace.cpp:
663         (WebCore::SVGLangSpace::addSupportedAttributes):
664         * svg/SVGLangSpace.h:
665         * svg/SVGLineElement.cpp:
666         (WebCore::SVGLineElement::isSupportedAttribute):
667         (WebCore::SVGLineElement::parseMappedAttribute):
668         (WebCore::SVGLineElement::svgAttributeChanged):
669         (WebCore::SVGLineElement::synchronizeProperty):
670         * svg/SVGLineElement.h:
671         * svg/SVGLinearGradientElement.cpp:
672         (WebCore::SVGLinearGradientElement::isSupportedAttribute):
673         (WebCore::SVGLinearGradientElement::parseMappedAttribute):
674         (WebCore::SVGLinearGradientElement::svgAttributeChanged):
675         (WebCore::SVGLinearGradientElement::synchronizeProperty):
676         * svg/SVGLinearGradientElement.h:
677         * svg/SVGMPathElement.cpp:
678         (WebCore::SVGMPathElement::isSupportedAttribute):
679         (WebCore::SVGMPathElement::parseMappedAttribute):
680         (WebCore::SVGMPathElement::synchronizeProperty):
681         * svg/SVGMPathElement.h:
682         * svg/SVGMarkerElement.cpp:
683         (WebCore::SVGMarkerElement::isSupportedAttribute):
684         (WebCore::SVGMarkerElement::parseMappedAttribute):
685         (WebCore::SVGMarkerElement::svgAttributeChanged):
686         (WebCore::SVGMarkerElement::synchronizeProperty):
687         * svg/SVGMarkerElement.h:
688         * svg/SVGMaskElement.cpp:
689         (WebCore::SVGMaskElement::isSupportedAttribute):
690         (WebCore::SVGMaskElement::parseMappedAttribute):
691         (WebCore::SVGMaskElement::svgAttributeChanged):
692         (WebCore::SVGMaskElement::synchronizeProperty):
693         * svg/SVGMaskElement.h:
694         * svg/SVGPathElement.cpp:
695         (WebCore::SVGPathElement::isSupportedAttribute):
696         (WebCore::SVGPathElement::parseMappedAttribute):
697         (WebCore::SVGPathElement::svgAttributeChanged):
698         (WebCore::SVGPathElement::synchronizeProperty):
699         * svg/SVGPathElement.h:
700         * svg/SVGPatternElement.cpp:
701         (WebCore::SVGPatternElement::isSupportedAttribute):
702         (WebCore::SVGPatternElement::parseMappedAttribute):
703         (WebCore::SVGPatternElement::svgAttributeChanged):
704         (WebCore::SVGPatternElement::synchronizeProperty):
705         * svg/SVGPatternElement.h:
706         * svg/SVGPolyElement.cpp:
707         (WebCore::SVGPolyElement::isSupportedAttribute):
708         (WebCore::SVGPolyElement::parseMappedAttribute):
709         (WebCore::SVGPolyElement::svgAttributeChanged):
710         * svg/SVGPolyElement.h:
711         * svg/SVGRadialGradientElement.cpp:
712         (WebCore::SVGRadialGradientElement::isSupportedAttribute):
713         (WebCore::SVGRadialGradientElement::parseMappedAttribute):
714         (WebCore::SVGRadialGradientElement::svgAttributeChanged):
715         (WebCore::SVGRadialGradientElement::synchronizeProperty):
716         * svg/SVGRadialGradientElement.h:
717         * svg/SVGRectElement.cpp:
718         (WebCore::SVGRectElement::isSupportedAttribute):
719         (WebCore::SVGRectElement::parseMappedAttribute):
720         (WebCore::SVGRectElement::svgAttributeChanged):
721         (WebCore::SVGRectElement::synchronizeProperty):
722         * svg/SVGRectElement.h:
723         * svg/SVGSVGElement.cpp:
724         (WebCore::SVGSVGElement::svgAttributeChanged):
725         (WebCore::SVGSVGElement::synchronizeProperty):
726         * svg/SVGScriptElement.cpp:
727         (WebCore::SVGScriptElement::isSupportedAttribute):
728         (WebCore::SVGScriptElement::parseMappedAttribute):
729         (WebCore::SVGScriptElement::svgAttributeChanged):
730         (WebCore::SVGScriptElement::synchronizeProperty):
731         * svg/SVGScriptElement.h:
732         * svg/SVGStopElement.cpp:
733         (WebCore::SVGStopElement::isSupportedAttribute):
734         (WebCore::SVGStopElement::parseMappedAttribute):
735         (WebCore::SVGStopElement::svgAttributeChanged):
736         (WebCore::SVGStopElement::synchronizeProperty):
737         * svg/SVGStopElement.h:
738         * svg/SVGStyleElement.cpp:
739         (WebCore::SVGStyleElement::isSupportedAttribute):
740         (WebCore::SVGStyleElement::parseMappedAttribute):
741         * svg/SVGStyleElement.h:
742         * svg/SVGStyledElement.cpp:
743         (WebCore::SVGStyledElement::parseMappedAttribute):
744         (WebCore::SVGStyledElement::svgAttributeChanged):
745         (WebCore::SVGStyledElement::synchronizeProperty):
746         * svg/SVGStyledTransformableElement.cpp:
747         (WebCore::SVGStyledTransformableElement::isSupportedAttribute):
748         (WebCore::SVGStyledTransformableElement::parseMappedAttribute):
749         (WebCore::SVGStyledTransformableElement::svgAttributeChanged):
750         (WebCore::SVGStyledTransformableElement::synchronizeProperty):
751         * svg/SVGStyledTransformableElement.h:
752         * svg/SVGSymbolElement.cpp:
753         (WebCore::SVGSymbolElement::isSupportedAttribute):
754         (WebCore::SVGSymbolElement::parseMappedAttribute):
755         (WebCore::SVGSymbolElement::svgAttributeChanged):
756         (WebCore::SVGSymbolElement::synchronizeProperty):
757         * svg/SVGSymbolElement.h:
758         * svg/SVGTRefElement.cpp:
759         (WebCore::SVGTRefElement::isSupportedAttribute):
760         (WebCore::SVGTRefElement::parseMappedAttribute):
761         (WebCore::SVGTRefElement::svgAttributeChanged):
762         (WebCore::SVGTRefElement::synchronizeProperty):
763         * svg/SVGTRefElement.h:
764         * svg/SVGTests.cpp:
765         (WebCore::SVGTests::addSupportedAttributes):
766         * svg/SVGTests.h:
767         * svg/SVGTextContentElement.cpp:
768         (WebCore::SVGTextContentElement::isSupportedAttribute):
769         (WebCore::SVGTextContentElement::parseMappedAttribute):
770         (WebCore::SVGTextContentElement::synchronizeProperty):
771         (WebCore::SVGTextContentElement::svgAttributeChanged):
772         * svg/SVGTextContentElement.h:
773         * svg/SVGTextElement.cpp:
774         (WebCore::SVGTextElement::isSupportedAttribute):
775         (WebCore::SVGTextElement::parseMappedAttribute):
776         (WebCore::SVGTextElement::svgAttributeChanged):
777         (WebCore::SVGTextElement::synchronizeProperty):
778         * svg/SVGTextElement.h:
779         * svg/SVGTextPathElement.cpp:
780         (WebCore::SVGTextPathElement::isSupportedAttribute):
781         (WebCore::SVGTextPathElement::parseMappedAttribute):
782         (WebCore::SVGTextPathElement::svgAttributeChanged):
783         (WebCore::SVGTextPathElement::synchronizeProperty):
784         * svg/SVGTextPathElement.h:
785         * svg/SVGTextPositioningElement.cpp:
786         (WebCore::SVGTextPositioningElement::isSupportedAttribute):
787         (WebCore::SVGTextPositioningElement::parseMappedAttribute):
788         (WebCore::SVGTextPositioningElement::svgAttributeChanged):
789         (WebCore::SVGTextPositioningElement::synchronizeProperty):
790         * svg/SVGTextPositioningElement.h:
791         * svg/SVGTransformable.cpp:
792         * svg/SVGTransformable.h:
793         * svg/SVGURIReference.cpp:
794         (WebCore::SVGURIReference::addSupportedAttributes):
795         * svg/SVGURIReference.h:
796         * svg/SVGUseElement.cpp:
797         (WebCore::SVGUseElement::isSupportedAttribute):
798         (WebCore::SVGUseElement::parseMappedAttribute):
799         (WebCore::SVGUseElement::svgAttributeChanged):
800         (WebCore::SVGUseElement::synchronizeProperty):
801         * svg/SVGUseElement.h:
802         * svg/SVGViewElement.cpp:
803         (WebCore::SVGViewElement::isSupportedAttribute):
804         (WebCore::SVGViewElement::parseMappedAttribute):
805         (WebCore::SVGViewElement::synchronizeProperty):
806         * svg/SVGViewElement.h:
807         * svg/SVGZoomAndPan.cpp:
808         (WebCore::SVGZoomAndPan::addSupportedAttributes):
809         * svg/SVGZoomAndPan.h:
810
811 2011-05-20  Simon Fraser  <simon.fraser@apple.com>
812
813         Reviewed by Dan Bernstein.
814
815         Allow ShadowBlur to do tiling when the context is scaled
816         https://bugs.webkit.org/show_bug.cgi?id=61232
817
818         If the GraphicsContext is scaled or rotated by a multiple of 90deg, have ShadowBlur
819         use the tiling code path, to avoid blurring large areas on pages like cracked.com
820         when the context is scaled.
821
822         * platform/graphics/ShadowBlur.cpp:
823         (WebCore::ShadowBlur::drawRectShadow): Call preservesAxisAlignment()
824         to decide when to not use tiling.
825         (WebCore::ShadowBlur::drawInsetShadow): Ditto.
826         (WebCore::ShadowBlur::drawLayerPieces): Round to device pixels when drawing tiles
827         to avoid pixel cracks in scaled contexts.
828         * platform/graphics/transforms/AffineTransform.h:
829         (WebCore::AffineTransform::preservesAxisAlignment): Return true if there is the matrix
830         contains a transform that results in axis alignment (no rotation or skew, or rotations
831         which are multiples of 90deg).
832
833 2011-05-20  Alexey Proskuryakov  <ap@apple.com>
834
835         Reviewed by Kent Tamura.
836
837         Special characters can be inserted in text field having reached maxlength
838         https://bugs.webkit.org/show_bug.cgi?id=19479
839         <rdar://problem/7828739>
840
841         Test: platform/mac/editing/input/maxlength.html
842
843         * editing/CompositeEditCommand.cpp:
844         (WebCore::CompositeEditCommand::insertTextIntoNode):
845         (WebCore::CompositeEditCommand::replaceTextInNode):
846         Avoid hitting an assertion below, now that we can get here with empty text.
847
848         * editing/TypingCommand.cpp: (WebCore::TypingCommand::insertText): There is still work to do
849         even if beforetextinput removed all text from the event. At the very least, we should delete
850         the current selection.
851
852 2011-05-20  Andy Estes  <aestes@apple.com>
853
854         Reviewed by Darin Adler.
855
856         REGRESSION (r70748): WebKit cannot play videos created by Podcast Producer.
857         https://bugs.webkit.org/show_bug.cgi?id=61229
858         
859         Podcast Producer uses an object tag with a classid attribute to embed
860         QuickTime Player into a page. In r70748, we changed our behavior to
861         render the object's fallback content when a non-empty classid is
862         encountered, per HTML5. Since Podcast Producer videos have no fallback
863         content, this change in behavior causes the video to fail to load.
864         
865         Since the object tag has a valid type attribute, we would be able to
866         load it if weren't for the non-empty classid. This patch changes our
867         policy to allow objects with non-empty classids if there is no fallback
868         content. We still continue to prefer fallback content if it exists,
869         however.
870
871         * html/HTMLObjectElement.cpp:
872         (WebCore::HTMLObjectElement::hasValidClassId): Treat a non-empty
873         classid as valid if the object has no fallback content.
874
875 2011-05-20  Kulanthaivel Palanichamy  <kulanthaivel@codeaurora.org>
876
877         Reviewed by Simon Fraser.
878
879         If both border-radius and box-shadow applied, shadow is not fully visible
880         https://bugs.webkit.org/show_bug.cgi?id=59577
881
882         The current implementation of RoundedIntRect::inflateWithRadii() inflates
883         its rect size and corner radii out of sync. This leads to validation failure in
884         Path::addRoundedRect() and results in ignoring radii in the path.
885         When this invalid path is used to clip out the rounded corner box before painting
886         the box shadow, the entire rectangle is clipped out without the corner radii.
887
888         This patch implements RoundedIntRect::inflateWithRadii() properly to inflate
889         rounded rect radii based on inflate ratios of rect size.
890
891         Test: fast/css/box-shadow-and-border-radius.html
892
893         * platform/graphics/RoundedIntRect.cpp:
894         (WebCore::RoundedIntRect::inflateWithRadii):
895         * platform/graphics/RoundedIntRect.h:
896
897 2011-05-20  Michael Nordman  <michaeln@google.com>
898
899         Reviewed by Darin Fisher.
900
901         [Chromium] Support the new webkit apis so the WebDatabase system participates
902         in the unified quota management system.
903         https://bugs.webkit.org/show_bug.cgi?id=60985
904
905         No change in functionality, no new tests.
906
907         * platform/chromium/PlatformBridge.h:
908         * storage/chromium/QuotaTracker.cpp:
909         (WebCore::QuotaTracker::getDatabaseSizeAndSpaceAvailableToOrigin):
910         (WebCore::QuotaTracker::updateDatabaseSize):
911         (WebCore::QuotaTracker::updateSpaceAvailableToOrigin):
912         (WebCore::QuotaTracker::resetSpaceAvailableToOrigin):
913         * storage/chromium/QuotaTracker.h:
914
915 2011-05-20  Andy Estes  <aestes@apple.com>
916
917         Reviewed by Darin Adler.
918
919         WebView loses firstResponder status when entering full-screen mode.
920         https://bugs.webkit.org/show_bug.cgi?id=61153
921
922         No test possible via DRT. Add a manual test instead.
923
924         * manual-tests/full-screen-keypress.html: Added.
925
926 2011-05-20  Jeremy Noble  <jer.noble@apple.com>
927
928         Reviewed by Maciej Stachowiak.
929
930         WebKit2: Exit full screen mode if the WebProcess crashes.
931         https://bugs.webkit.org/show_bug.cgi?id=61151
932
933         * platform/graphics/win/FullScreenController.h:
934         * platform/graphics/win/FullScreenController.cpp:
935         (FullScreenController::close): Added.  Close the full-screen window without animation
936             if called.
937
938 2011-05-20  Enrica Casucci  <enrica@apple.com>
939
940         Reviewed by David Kilzer.
941
942         Add delegate methods about focus and blur to all elements.
943         https://bugs.webkit.org/show_bug.cgi?id=61218
944
945         We want to have delegates for these events for all the elements, not only the form elements.
946         The patch moves the call to the delegate in the Node class and changes the name
947         of the methods not to be form element specific.
948
949         * dom/Node.cpp:
950         (WebCore::Node::dispatchFocusEvent): Added call to delegate with the new name.
951         (WebCore::Node::dispatchBlurEvent): Added call to delegate with the new name.
952         * html/HTMLFormControlElement.cpp:
953         (WebCore::HTMLFormControlElement::dispatchBlurEvent): Removed code that calls the delegate since
954         it has been moved into Node.
955         * html/HTMLFormControlElement.h: Removed dispatchFocusEvent, since we are using the default inplementation in Node.
956         * loader/EmptyClients.h:
957         (WebCore::EmptyChromeClient::elementDidFocus): Name changed.
958         (WebCore::EmptyChromeClient::elementDidBlur): Name changed.
959         * page/ChromeClient.h:
960         (WebCore::ChromeClient::elementDidFocus): Name changed.
961         (WebCore::ChromeClient::elementDidBlur): Name changed.
962
963 2011-05-20  Ryosuke Niwa  <rniwa@webkit.org>
964
965         Reviewed by Enrica Casucci.
966
967         Wrap copied contents by one style span instead of two
968         https://bugs.webkit.org/show_bug.cgi?id=60988
969
970         Replaced sourceDocumentStyleSpan and copiedRangeStyleSpan by one wrapping style span. Instead
971         of wrapping the copied contents by user-applied style and document default style in serialization,
972         take the difference with the document default's style in paste code.
973
974         This will dramatically simplify our copy and paste code and pave a way to fix the bug 60914.
975
976         No new tests because copy & paste is tested by existing layout tests.
977
978         * editing/EditingStyle.cpp:
979         (WebCore::EditingStyle::prepareToApplyAt): Remove the color property if RGBA values of color
980         matches that of the computed style at the specified position.
981         * editing/ReplaceSelectionCommand.cpp:
982         (WebCore::ReplaceSelectionCommand::handleStyleSpans): Replaced sourceDocumentStyleSpan and
983         copiedRangeStyleSpan by wrappingStyleSpan. When pasting as a quotation, compare style against
984         the document's default style to avoid keeping the document default style (tested by
985         editing/pasteboard/4930986-3.html).
986         * editing/ReplaceSelectionCommand.h:
987         * editing/markup.cpp:
988         (WebCore::createMarkup): Only use one style span to wrap the serialized contents.
989
990 2011-05-20  Simon Fraser  <simon.fraser@apple.com>
991
992         Reviewed by Sam Weinig.
993
994         numberOfActiveAnimations() can include animations from documents in the page cache
995         https://bugs.webkit.org/show_bug.cgi?id=53641
996         
997         Some transition tests using layoutTestController.numberOfActiveAnimations() failed
998         in WebKit2 because numberOfActiveAnimations() could include those from other documents
999         in the page cache.
1000         
1001         Fix by passing in the document for which we wish to count animations.
1002
1003         * WebCore.exp.in:
1004         * page/animation/AnimationController.cpp:
1005         (WebCore::AnimationControllerPrivate::numberOfActiveAnimations):
1006         (WebCore::AnimationController::numberOfActiveAnimations):
1007         * page/animation/AnimationController.h:
1008         * page/animation/AnimationControllerPrivate.h:
1009
1010 2011-05-20  Adam Barth  <abarth@webkit.org>
1011
1012         Reviewed by Alexey Proskuryakov.
1013
1014         Factor CORS request preparation out of DocumentThreadableLoader
1015         https://bugs.webkit.org/show_bug.cgi?id=61209
1016
1017         DocumentThreadableLoader has two jobs:
1018
1019         1) Proxy loads between threads.
1020         2) Run the CORS state machine.
1021
1022         This patch begins the work of separating those concerns, allowing CORS
1023         to be used elsewhere in the loading pipeline.  In particular, this
1024         patch moves knowledge of how to prepare CORS requests out of
1025         DocumentThreadableLoder.
1026
1027         * loader/CrossOriginAccessControl.cpp:
1028         (WebCore::isOnAccessControlSimpleRequestHeaderWhitelist):
1029         (WebCore::updateRequestForAccessControl):
1030         (WebCore::createAccessControlPreflightRequest):
1031         * loader/CrossOriginAccessControl.h:
1032         * loader/DocumentThreadableLoader.cpp:
1033         (WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
1034         (WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
1035         (WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequestWithPreflight):
1036
1037 2011-05-20  Rob Buis  <rbuis@rim.com>
1038
1039         Reviewed by Dirk Schulze.
1040
1041         Use test from ietestcenter fails
1042         https://bugs.webkit.org/show_bug.cgi?id=60844
1043
1044         When an id changes on an in-document element, we need to check whether the id
1045         is part of the pending elements. Since this is the same thing as happens in
1046         insertedIntoDocument, split out the common code into buildPendingResourcesIfNeeded.
1047
1048         Test: svg/W3C-SVG-1.1-SE/struct-use-14-f.svg
1049
1050         * svg/SVGStyledElement.cpp:
1051         (WebCore::SVGStyledElement::svgAttributeChanged):
1052         (WebCore::SVGStyledElement::insertedIntoDocument):
1053         (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
1054         * svg/SVGStyledElement.h:
1055
1056 2011-05-20  Abhishek Arya  <inferno@chromium.org>
1057
1058         Reviewed by Kent Tamura.
1059
1060         Make auto-focus a post attach callback in
1061         HTMLFormControlElement::attach().
1062         https://bugs.webkit.org/show_bug.cgi?id=32882
1063
1064         Original patch by Darin Adler. This one uses a part of it.
1065         
1066         Test: fast/forms/input-element-attach-crash.html
1067
1068         * dom/Document.cpp:
1069         (WebCore::Document::recalcStyle): Make sure that m_inStyleRecalc is
1070         already false by the time post-attach callbacks are done so that
1071         layout triggered inside those callbacks can work properly.
1072         * html/HTMLFormControlElement.cpp:
1073         (WebCore::shouldAutofocus): Helper function that expresses
1074         the rule for which form control elements should auto-focus.
1075         (WebCore::focusPostAttach): Called post-attach to focus an
1076         element if we discover it should be focused during attach.
1077         (WebCore::HTMLFormControlElement::attach): Refactored code for
1078         which elements need auto-focus into a separate function. Instead
1079         of focusing right away, use the focusPostAttach function to focus
1080         after attach is done. Also added calls to suspendPostAttachCallbacks
1081         and resumePostAttachCallbacks so post-attach callbacks happen late
1082         enough. Before, they could run inside the base attach function.
1083         * html/HTMLInputElement.cpp:
1084         (WebCore::HTMLInputElement::attach): Added calls to
1085         suspendPostAttachCallbacks and resumePostAttachCallbacks so
1086         post-attach callbacks happen late enough
1087
1088 2011-05-20  Alok Priyadarshi  <alokp@chromium.org>
1089
1090         Reviewed by James Robinson.
1091
1092         [chromium] Remove LayerRendererChromium::useShader
1093         https://bugs.webkit.org/show_bug.cgi?id=61143
1094
1095         GPU compositor tests should be sufficient.
1096
1097         * platform/graphics/chromium/LayerRendererChromium.cpp:
1098         (WebCore::LayerRendererChromium::LayerRendererChromium):
1099         * platform/graphics/chromium/LayerRendererChromium.h:
1100         * platform/graphics/chromium/LayerTilerChromium.cpp:
1101         (WebCore::LayerTilerChromium::draw):
1102         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
1103         (WebCore::RenderSurfaceChromium::drawSurface):
1104         * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
1105         (WebCore::CCCanvasLayerImpl::draw):
1106         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
1107         (WebCore::CCHeadsUpDisplay::draw):
1108         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
1109         (WebCore::CCLayerImpl::drawDebugBorder):
1110         * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
1111         (WebCore::CCPluginLayerImpl::draw):
1112         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
1113         (WebCore::CCVideoLayerImpl::drawYUV):
1114         (WebCore::CCVideoLayerImpl::drawRGBA):
1115
1116 2011-05-20  Dirk Schulze  <krit@webkit.org>
1117
1118         Reviewed by Darin Adler.
1119
1120         SVGPathSegList needs better getTotalLength, getSegmentAtLength path traversal code
1121         https://bugs.webkit.org/show_bug.cgi?id=12047
1122
1123         Right now SVGPathElement::getTotalLength and SVGPathElement::getPointAtLength use toPathData()
1124         to transform a SVGPathByteStream to a Path. This Path gets traversed to find the searched value.
1125         With this patch both functions use the SVGPathByteStream directly together with the existing
1126         traversing code in SVG. This avoids the intermediate transforming to a platform path and gives
1127         platform independent results.
1128         The traversal code in SVG needed to be extended to support all PathTraversalActions.
1129
1130         No new tests added. The existing tests cover the changes.
1131
1132         * svg/SVGPathElement.cpp:
1133         (WebCore::SVGPathElement::getTotalLength):
1134         (WebCore::SVGPathElement::getPointAtLength):
1135         * svg/SVGPathParserFactory.cpp:
1136         (WebCore::SVGPathParserFactory::getTotalLengthOfSVGPathByteStream):
1137         (WebCore::SVGPathParserFactory::getPointAtLengthOfSVGPathByteStream):
1138         * svg/SVGPathParserFactory.h:
1139         * svg/SVGPathTraversalStateBuilder.cpp:
1140         (WebCore::SVGPathTraversalStateBuilder::continueConsuming):
1141         (WebCore::SVGPathTraversalStateBuilder::totalLength):
1142         (WebCore::SVGPathTraversalStateBuilder::currentPoint):
1143         * svg/SVGPathTraversalStateBuilder.h:
1144
1145 2011-05-20  Mark Pilgrim  <pilgrim@chromium.org>
1146
1147         Reviewed by Tony Chang.
1148
1149         IndexedDB createObjectStore should throw if name is null
1150         https://bugs.webkit.org/show_bug.cgi?id=58465
1151
1152         Test: storage/indexeddb/mozilla/create-objectstore-null-name.html
1153
1154         * storage/IDBDatabase.idl:
1155         * storage/IDBDatabaseBackendImpl.cpp:
1156         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
1157
1158 2011-05-20  Xiaomei Ji  <xji@chromium.org>
1159
1160         Reviewed by Ryosuke Niwa.
1161
1162         ctrl-arrow does not work on words separated by multiple spaces.
1163         https://bugs.webkit.org/show_bug.cgi?id=57543.
1164
1165         Add the leftmost boundary of a box in RTL block or the rightmost boundary of a box in LTR
1166         block as word break if its inlineBox is the current box and it is a word break.
1167
1168         * editing/visible_units.cpp:
1169         (WebCore::previousWordBreakInBoxInsideBlockWithSameDirectionality): Add the rightmost
1170         boundary of a box in LTR block or leftmost boundary of a box in RTL block as visually
1171         first word break.
1172         (WebCore::nextWordBreakInBoxInsideBlockWithDifferentDirectionality):
1173         (WebCore::collectWordBreaksInBoxInsideBlockWithDifferntDirectionality):
1174         (WebCore::leftWordBoundary): Fix bug change "box" to "adjacentBox".
1175         (WebCore::rightWordBoundary): Fix bug change "box" to "adjacentBox".
1176
1177 2011-05-19  Evan Martin  <evan@chromium.org>
1178
1179         Reviewed by Tony Chang.
1180
1181         [chromium] remove <(library) variable
1182         https://bugs.webkit.org/show_bug.cgi?id=61158
1183
1184         This was for a build experiment; we can just use the correct value now.
1185
1186         * WebCore.gyp/WebCore.gyp:
1187
1188 2011-05-20  Pavel Podivilov  <podivilov@chromium.org>
1189
1190         Reviewed by Pavel Feldman.
1191
1192         Web Inspector: breakpoints disappear from ui after navigation.
1193         https://bugs.webkit.org/show_bug.cgi?id=61133
1194
1195         * inspector/front-end/DebuggerPresentationModel.js:
1196         (WebInspector.DebuggerPresentationModel.prototype._debuggerWasEnabled):
1197         (WebInspector.DebuggerPresentationModel.prototype._saveBreakpoints):
1198
1199 2011-05-20  Sheriff Bot  <webkit.review.bot@gmail.com>
1200
1201         Unreviewed, rolling out r86958.
1202         http://trac.webkit.org/changeset/86958
1203         https://bugs.webkit.org/show_bug.cgi?id=61195
1204
1205         broke breakpoints persisting (Requested by podivilov on
1206         #webkit).
1207
1208         * inspector/front-end/DebuggerPresentationModel.js:
1209         (WebInspector.DebuggerPresentationModel.prototype._debuggerWasEnabled):
1210         (WebInspector.DebuggerPresentationModel.prototype._saveBreakpoints):
1211
1212 2011-05-19  Sergey Vorobyev  <sergeyvorobyev@google.com>
1213
1214         Reviewed by Yury Semikhatsky.
1215
1216         Web Inspector: Background network events collection - add GUI to Inspector.
1217         https://bugs.webkit.org/show_bug.cgi?id=58652
1218
1219         Now in WebInspector Network panel avalaible new checkbox item in context menu:
1220         "Background events collection". It allows to save all network events when inspector
1221         frontend closed. Events that occur before collection enabling are not preserved after
1222         frontend reopening. Property unique for each page. Disabled by default.
1223
1224
1225         Tests: http/tests/inspector/network/network-clear-after-disabled.html
1226                http/tests/inspector/network/network-close-load-open.html
1227                http/tests/inspector/network/network-open-load-reopen.html
1228
1229         * inspector/EventsCollector.cpp:
1230         (WebCore::EventsCollector::clear):
1231         * inspector/EventsCollector.h:
1232         * inspector/Inspector.json:
1233         * inspector/InspectorFrontendProxy.cpp:
1234         (WebCore::InspectorFrontendProxy::inspectorFrontendChannel):
1235         * inspector/InspectorFrontendProxy.h:
1236         * inspector/InspectorResourceAgent.cpp:
1237         (WebCore::InspectorResourceAgent::setFrontend):
1238         (WebCore::InspectorResourceAgent::clearFrontend):
1239         (WebCore::InspectorResourceAgent::isBackgroundEventsCollectionEnabled):
1240         (WebCore::InspectorResourceAgent::setBackgroundEventsCollectionEnabled):
1241         (WebCore::InspectorResourceAgent::initializeBackgroundCollection):
1242         (WebCore::InspectorResourceAgent::InspectorResourceAgent):
1243         * inspector/InspectorResourceAgent.h:
1244         * inspector/front-end/NetworkPanel.js:
1245         (WebInspector.NetworkPanel):
1246         (WebInspector.NetworkPanel.prototype._contextMenu):
1247         (WebInspector.NetworkPanel.prototype._toggleBackgroundEventsCollection):
1248
1249 2011-05-20  Pavel Podivilov  <podivilov@chromium.org>
1250
1251         Reviewed by Pavel Feldman.
1252
1253         Web Inspector: breakpoints disappear from ui after navigation.
1254         https://bugs.webkit.org/show_bug.cgi?id=61133
1255
1256         * inspector/front-end/DebuggerPresentationModel.js:
1257         (WebInspector.DebuggerPresentationModel.prototype._debuggerWasEnabled):
1258         (WebInspector.DebuggerPresentationModel.prototype._saveBreakpoints):
1259
1260 2011-05-20  Jer Noble  <jer.noble@apple.com>
1261
1262         Reviewed by Maciej Stachowiak.
1263
1264         Win: non-full-screen content is briefly seen when entering full-screen mode (and vice versa)
1265         https://bugs.webkit.org/show_bug.cgi?id=61108
1266
1267         Instead of repainting the full- and non-full-screen windows in WebCore, delegate that
1268         responsibility to the FullScreenControllerClient.  Because the repaint operation may 
1269         be asynchronous, add a new method for clients to use to indicate repainting has completed.
1270
1271         * platform/graphics/win/FullScreenController.cpp:
1272         (FullScreenController::Private::Private): Added new ivars.
1273         (FullScreenController::enterFullScreen): Split into two functions (pre-and post repaint)
1274         (FullScreenController::enterFullScreenRepaintCompleted): Ditto.
1275         (FullScreenController::exitFullScreen): Ditto.
1276         (FullScreenController::exitFullScreenRepaintCompleted): Ditto.
1277         (FullScreenController::repaintCompleted): Call the appropriated repaint completed function.
1278         * platform/graphics/win/FullScreenController.h:
1279         * platform/graphics/win/FullScreenControllerClient.h:
1280
1281 2011-05-20  Yury Semikhatsky  <yurys@chromium.org>
1282
1283         Reviewed by Pavel Feldman.
1284
1285         Web Inspector: use RefPtr instead of OwnPtr to store InspectorBackendDispatcher
1286         https://bugs.webkit.org/show_bug.cgi?id=61188
1287
1288         * inspector/WorkerInspectorController.cpp:
1289         (WebCore::WorkerInspectorController::connectFrontend):
1290         (WebCore::WorkerInspectorController::disconnectFrontend):
1291         * inspector/WorkerInspectorController.h:
1292
1293 2011-05-20  Tonis Tiigi  <tonistiigi@gmail.com>
1294
1295         Reviewed by Pavel Feldman.
1296
1297         Web Inspector: Network panel should only show pointer cursor over valid resources
1298         https://bugs.webkit.org/show_bug.cgi?id=55240
1299
1300         Cursor style removed from filler area.
1301
1302         * inspector/front-end/networkPanel.css:
1303         (.network-sidebar .data-grid tr:not(.filler) td.name-column):
1304
1305 2011-05-20  Peter Varga  <pvarga@webkit.org>
1306
1307         Reviewed by Simon Hausmann.
1308
1309         [Qt][V8] Use qtscript-staging's shipped version of V8 when building with --v8
1310         https://bugs.webkit.org/show_bug.cgi?id=56649
1311
1312         Use the provided V8 and functionality of
1313         http://qt.gitorious.org/+qt-developers/qt/qtscript-staging to build QtWebKit+V8.
1314         Based on the original patch of Andras Becsi <abecsi@webkit.org>.
1315
1316         No new tests needed.
1317
1318         * CodeGenerators.pri: Add generating of DebuggerScriptSource.h
1319         * WebCore.pri: Fix the options for V8 build.
1320         * WebCore.pro: Ditto.
1321         * bindings/v8/NPV8Object.cpp:
1322         (WebCore::npObjectTypeInfo): Add missing initializer.
1323         * bindings/v8/ScriptController.cpp:
1324         (WebCore::ScriptController::disableEval): Temporarily disable
1325         unsupported feature on Qt.
1326         * bindings/v8/ScriptControllerQt.cpp:
1327         (WebCore::ScriptController::qtScriptEngine): use the QtScriptEngine
1328         constructor of qtscript-staging.
1329         * bindings/v8/custom/V8HTMLAudioElementConstructor.cpp: Add missing
1330         initializer.
1331         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp: Ditto.
1332         * bindings/v8/custom/V8HTMLOptionElementConstructor.cpp: Ditto.
1333         * loader/appcache/ApplicationCacheGroup.cpp: Add missing header.
1334         * loader/cache/CachedResourceRequest.cpp: Ditto.
1335         * page/PageSerializer.cpp: Ditto.
1336         * page/qt/FrameQt.cpp: Ditto.
1337         * storage/StorageEventDispatcher.cpp: Ditto.
1338
1339 2011-05-20  Tonis Tiigi  <tonistiigi@gmail.com>
1340
1341         Reviewed by Pavel Feldman.
1342
1343         Web Inspector: console.log(XMLDocument) should be case preserving
1344         https://bugs.webkit.org/show_bug.cgi?id=60765
1345
1346         Changes the XML document checking from base documents MIME type
1347         to xmlVersion parameter.
1348
1349         * inspector/InspectorDOMAgent.cpp:
1350         (WebCore::InspectorDOMAgent::buildObjectForNode):
1351         * inspector/front-end/DOMAgent.js:
1352         (WebInspector.DOMNode):
1353         * inspector/front-end/ElementsTreeOutline.js:
1354         (WebInspector.ElementsTreeOutline.prototype.set rootDOMNode):
1355
1356 2011-05-20  Mikhail Naganov  <mnaganov@chromium.org>
1357
1358         Reviewed by Yury Semikhatsky.
1359
1360         Web Inspector: [Chromium] Use bottom-up CPU profile tree built in VM,
1361         instead of building it on Inspector's side.
1362         https://bugs.webkit.org/show_bug.cgi?id=61185
1363
1364         * bindings/js/ScriptProfile.cpp:
1365         (WebCore::ScriptProfile::bottomUpHead):
1366         (WebCore::ScriptProfile::buildInspectorObjectForBottomUpHead):
1367         * bindings/js/ScriptProfile.h:
1368         * bindings/v8/ScriptProfile.cpp:
1369         (WebCore::ScriptProfile::bottomUpHead):
1370         (WebCore::ScriptProfile::buildInspectorObjectForBottomUpHead):
1371         * bindings/v8/ScriptProfile.h:
1372         * inspector/InspectorProfilerAgent.cpp:
1373         (WebCore::InspectorProfilerAgent::getProfile):
1374         * inspector/front-end/ProfileView.js:
1375         (WebInspector.CPUProfileView.prototype.get bottomUpProfileDataGridTree):
1376
1377 2011-05-20  Adam Roben  <aroben@apple.com>
1378
1379         Mac build fix after r86936
1380
1381         * WebCore.xcodeproj/project.pbxproj: Added preprocessor.pm like the
1382         other .pm files.
1383
1384 2011-05-20  Kent Tamura  <tkent@chromium.org>
1385
1386         Try to fix Windows CE build.
1387         Touch html.css to kick UA style sheet generation.
1388
1389         * css/html.css:
1390
1391 2011-05-20  Kent Tamura  <tkent@chromium.org>
1392
1393         Try to fix Windows CE build. 
1394
1395         * CMakeLists.txt: Add --preprocessor flag.
1396
1397 2011-05-20  Kent Tamura  <tkent@chromium.org>
1398
1399         Reviewed by Hajime Morita.
1400
1401         Apply feature flags to user-agent style sheets
1402         https://bugs.webkit.org/show_bug.cgi?id=52612
1403
1404         A user-agent style sheet should not have style definitions for disabled
1405         features because such definitions makes feature detection harder and
1406         causes incorrect behavior (See Bug 52214).
1407
1408         We have handled such feature-dependent style definitions by providing
1409         separated CSS files and selecting them in build files. Adding such style
1410         definition was hard because we need to update each of build files. This
1411         change simplifies the process to add such style definitions by applying
1412         preprocessor to the CSS files.
1413
1414         Implementation:
1415         make-css-file-arrays.pl invokes a preprocessor if it has --defines
1416         option. Otherwise, it just remove lines beginning with #.
1417         In this change, we pass --defines on Mac, Windows, Chromium, GTK, and
1418         CMake platforms. Qt and Android have no behavior change.
1419
1420         * CMakeLists.txt:
1421           - IDL handling depends on preprocessor.pm.
1422           - Pass --defines option to make-css-file-arrays.pl
1423           - Add WebCore/bindings/scripts to @INC for make-css-file-arrays.pl
1424         * CodeGenerators.pri: IDL handling depends on preprocessor.pm.
1425         * DerivedSources.make: ditto.
1426         * GNUmakefile.am: ditto.
1427         * WebCore.gyp/WebCore.gyp: ditto.
1428         * WebCore.gyp/scripts/action_useragentstylesheets.py:
1429           Change parameter order to support perl modules and options.
1430           Many code is taken from rule_bindings.py.
1431         * WebCore.vcproj/MigrateScripts: Handles preprocessor.pm.
1432         * bindings/scripts/IDLParser.pm:
1433           Move the preprocessor code to preprocessor.pm.
1434         * bindings/scripts/preprocessor.pm:
1435           Added. The code was moved from IDLParser.pm
1436         * css/html.css: Enclose some style definitions with #if-#endif.
1437         * css/make-css-file-arrays.pl:
1438           - Add --defines and --preprocessor options.
1439           - Invoke a preprocessor if --defines is specified.
1440
1441 2011-05-20  Dirk Schulze  <krit@webkit.org>
1442
1443         Rubber-stamped by Nikolas Zimmermann.
1444
1445         Remove unnecessary class Path inlcude from PathTraversalState.
1446
1447         * platform/graphics/PathTraversalState.h:
1448
1449 2011-05-19  Pavel Podivilov  <podivilov@chromium.org>
1450
1451         Reviewed by Pavel Feldman.
1452
1453         Web Inspector: ctrl+s should not switch source frame to read only mode.
1454         https://bugs.webkit.org/show_bug.cgi?id=61125
1455
1456         * inspector/front-end/SourceFrame.js:
1457         (WebInspector.SourceFrame.prototype.commitEditing.didEditContent):
1458         (WebInspector.SourceFrame.prototype.commitEditing):
1459         * inspector/front-end/inspector.js:
1460         (WebInspector.documentKeyDown):
1461
1462 2011-05-20  Piroska András  <Piroska.Andras@stud.u-szeged.hu>
1463
1464         Reviewed by Nikolas Zimmermann.
1465
1466         Apply the ParallelJobs support to FEConvolveMatrix
1467         https://bugs.webkit.org/show_bug.cgi?id=61171
1468
1469         The FEConvolveMatrix filter of SVG can consume lots of resources if it is
1470         applied to a large area. The computation can be distributed to multiple
1471         cores if the architecture supports.
1472         The average performance progression is 20-30% on dual-core machines.
1473
1474         Developed in cooperation with Gabor Loki.
1475
1476         * platform/graphics/filters/FEConvolveMatrix.cpp:
1477         (WebCore::FEConvolveMatrix::fastSetInteriorPixels):
1478         (WebCore::FEConvolveMatrix::setInteriorPixels):
1479         (WebCore::FEConvolveMatrix::setInteriorPixelsWorker):
1480         (WebCore::FEConvolveMatrix::apply):
1481         * platform/graphics/filters/FEConvolveMatrix.h:
1482
1483 2011-05-20  Sheriff Bot  <webkit.review.bot@gmail.com>
1484
1485         Unreviewed, rolling out r86920.
1486         http://trac.webkit.org/changeset/86920
1487         https://bugs.webkit.org/show_bug.cgi?id=61173
1488
1489         It cause compile error on some buildbot in chromium. e.g.
1490         http://build.chromium.org/p/chromium.memory/builders/Chromium%20Mac%20Builder%20%28valgrind%29/builds/12336/steps/compile/logs/stdio#error1
1491         (Requested by ukai_ on #webkit).
1492
1493         * WebCore.xcodeproj/project.pbxproj:
1494         * css/CSSComputedStyleDeclaration.cpp:
1495         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1496         * css/CSSParser.cpp:
1497         (WebCore::CSSParser::parseValue):
1498         * css/CSSPrimitiveValueMappings.h:
1499         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1500         (WebCore::CSSPrimitiveValue::operator EImageRendering):
1501         * css/CSSPropertyNames.in:
1502         * css/CSSStyleSelector.cpp:
1503         (WebCore::CSSStyleSelector::applyProperty):
1504         * css/CSSValueKeywords.in:
1505         * css/SVGCSSComputedStyleDeclaration.cpp:
1506         (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
1507         * css/SVGCSSPropertyNames.in:
1508         * css/SVGCSSStyleSelector.cpp:
1509         (WebCore::CSSStyleSelector::applySVGProperty):
1510         * css/SVGCSSValueKeywords.in:
1511         * html/HTMLCanvasElement.cpp:
1512         (WebCore::HTMLCanvasElement::paint):
1513         * html/HTMLCanvasElement.h:
1514         * platform/graphics/ImageRenderingMode.h: Removed.
1515         * rendering/RenderBoxModelObject.cpp:
1516         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
1517         * rendering/RenderHTMLCanvas.cpp:
1518         (WebCore::RenderHTMLCanvas::paintReplaced):
1519         * rendering/style/RenderStyle.cpp:
1520         (WebCore::RenderStyle::diff):
1521         * rendering/style/RenderStyle.h:
1522         * rendering/style/RenderStyleConstants.h:
1523         * rendering/style/SVGRenderStyle.cpp:
1524         (WebCore::SVGRenderStyle::diff):
1525         * rendering/style/SVGRenderStyle.h:
1526         (WebCore::SVGRenderStyle::initialImageRendering):
1527         (WebCore::SVGRenderStyle::setImageRendering):
1528         (WebCore::SVGRenderStyle::imageRendering):
1529         (WebCore::SVGRenderStyle::InheritedFlags::operator==):
1530         (WebCore::SVGRenderStyle::setBitDefaults):
1531         * rendering/style/SVGRenderStyleDefs.h:
1532         * rendering/style/StyleRareInheritedData.cpp:
1533         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
1534         (WebCore::StyleRareInheritedData::operator==):
1535         * rendering/style/StyleRareInheritedData.h:
1536         * rendering/svg/SVGRenderTreeAsText.cpp:
1537         (WebCore::writeStyle):
1538
1539 2011-05-20  Dirk Schulze  <krit@webkit.org>
1540
1541         Reviewed by Eric Seidel.
1542
1543         SVG Large curve path segment OOM crash
1544         https://bugs.webkit.org/show_bug.cgi?id=42079
1545
1546         Limit the depth of repeatedly splitting a segment on length calculation to 20. The limitation
1547         is necessary for very big segments that would be splitter into millions of parts otherwise.
1548         The limitation just cause a less accurate approximation.
1549         At the moment the limit is fixed to 20. This is comparable with splitting the segment into 
1550         ~1 million parts as a worst case. We might want to be more flexible later.
1551
1552         Test: svg/custom/path-getTotalLength-on-big-segment-crash.svg
1553
1554         * platform/graphics/PathTraversalState.cpp:
1555         (WebCore::midPoint):
1556         (WebCore::curveLength):
1557         (WebCore::PathTraversalState::PathTraversalState):
1558         (WebCore::PathTraversalState::moveTo):
1559         (WebCore::PathTraversalState::quadraticBezierTo):
1560         (WebCore::PathTraversalState::cubicBezierTo):
1561         * platform/graphics/PathTraversalState.h:
1562
1563 2011-05-20  Leo Yang  <leo.yang@torchmobile.com.cn>
1564
1565         Reviewed by Nikolas Zimmermann.
1566
1567         SVGRootInlineBox triggers calculateBoundaries twice in layout
1568         https://bugs.webkit.org/show_bug.cgi?id=60979
1569
1570         SVGRootInlineBox was calculating boundaries for children twice
1571         in computePerCharacterLayoutInformation(). The first time of
1572         calculation was in layoutChildBoxes() which is called by
1573         computePerCharacterLayoutInformation(), and the second time of
1574         calculation was in layoutRootBox() following layoutChildBoxes().
1575
1576         This patch calculates rectangle of children in layoutChildBoxes()
1577         and then uses the rectange in layoutRootBox() to reduce a pass
1578         of calculating child boundaries.
1579
1580         No functionality change, no new tests.
1581
1582         * rendering/svg/SVGRootInlineBox.cpp:
1583         (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
1584         (WebCore::SVGRootInlineBox::layoutChildBoxes):
1585         (WebCore::SVGRootInlineBox::layoutRootBox):
1586         * rendering/svg/SVGRootInlineBox.h:
1587
1588 2011-05-19  Naoki Takano  <takano.naoki@gmail.com>
1589
1590         Reviewed by Kent Tamura.
1591
1592         Fix a problem that updating HTMLInputElement::value sets the cursor to a wrong position.
1593         https://bugs.webkit.org/show_bug.cgi?id=61163
1594
1595         Manual test input-number-localization.html.
1596         Because we can't assume any number formats in various WebKit ports.
1597
1598         * html/HTMLInputElement.cpp:
1599         (WebCore::HTMLInputElement::setValue): The cursor must be the last position of visibleValue(), not m_value.
1600         * manual-tests/input-number-localization.html: Added manual test to check the cursor correctly moved to the last poisition of the input.
1601
1602 2011-05-19  Jer Noble  <jer.noble@apple.com>
1603
1604         Reviewed by Maciej Stachowiak.
1605
1606         WebKit2: Flashing when entering and exiting full screen mode
1607         https://bugs.webkit.org/show_bug.cgi?id=56957
1608
1609         Guard against the parameter of setAnimating() matching the ivar value it's 
1610         setting, thus avoiding tearing down the renderer's layer backing.
1611
1612         * rendering/RenderFullScreen.cpp:
1613         (RenderFullScreen::setAnimating):
1614
1615 2011-05-19  Julien Chaffraix  <jchaffraix@codeaurora.org>
1616
1617         Reviewed by Adam Barth.
1618
1619         Remove Node::deprecatedParserAddChild
1620         https://bugs.webkit.org/show_bug.cgi?id=60818
1621
1622         Refactoring only so no new tests.
1623
1624         This patch fails short of one instance of deprecatedParserAddChild which will
1625         require a refactoring of <input> shadow DOM to be removed.
1626
1627         * dom/XMLDocumentParser.cpp:
1628         (WebCore::XMLDocumentParser::pushCurrentNode): Updated to use a ContainerNode.
1629         (WebCore::XMLDocumentParser::clearCurrentNodeStack): We now need to clear
1630         up m_leafTextNode too.
1631
1632         (WebCore::XMLDocumentParser::enterText):
1633         (WebCore::XMLDocumentParser::exitText):
1634         Those methods were updated to use m_leafTextNode instead of m_currentNode.
1635
1636         * dom/XMLDocumentParser.h:
1637         Changed the currentNode logic to use ContainerNode. Also fixed the style of the
1638         forward declarations.
1639
1640         * dom/XMLDocumentParserLibxml2.cpp:
1641         (WebCore::XMLDocumentParser::startElementNs):
1642         (WebCore::XMLDocumentParser::endElementNs):
1643         (WebCore::XMLDocumentParser::characters):
1644         (WebCore::XMLDocumentParser::processingInstruction):
1645         (WebCore::XMLDocumentParser::cdataBlock):
1646         (WebCore::XMLDocumentParser::comment):
1647         * dom/XMLDocumentParserQt.cpp:
1648         (WebCore::XMLDocumentParser::parse):
1649         (WebCore::XMLDocumentParser::parseStartElement):
1650         (WebCore::XMLDocumentParser::parseEndElement):
1651         (WebCore::XMLDocumentParser::parseCharacters):
1652         (WebCore::XMLDocumentParser::parseProcessingInstruction):
1653         (WebCore::XMLDocumentParser::parseCdata):
1654         (WebCore::XMLDocumentParser::parseComment):
1655         Removed the calls to deprecatedParserAddChild, changed the code to use
1656         m_leafTextNode when it made sense and used ContainerNode instead of
1657         Node for m_currentNode.
1658
1659 2011-05-19  Mike Lawther  <mikelawther@chromium.org>
1660
1661         Reviewed by Simon Fraser.
1662
1663         implement image-rendering: optimize-contrast (with a vendor prefix) as defined in CSS3 image values
1664         https://bugs.webkit.org/show_bug.cgi?id=56627
1665
1666         Tests: css3/images/optimize-contrast-canvas.html
1667                css3/images/optimize-contrast-image.html
1668
1669         * WebCore.xcodeproj/project.pbxproj:
1670         * css/CSSComputedStyleDeclaration.cpp:
1671         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1672         * css/CSSParser.cpp:
1673         (WebCore::CSSParser::parseValue):
1674         * css/CSSPrimitiveValueMappings.h:
1675         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1676         (WebCore::CSSPrimitiveValue::operator EImageRendering):
1677         * css/CSSPropertyNames.in:
1678         * css/CSSStyleSelector.cpp:
1679         (WebCore::CSSStyleSelector::applyProperty):
1680         * css/CSSValueKeywords.in:
1681         * css/SVGCSSComputedStyleDeclaration.cpp:
1682         (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
1683         * css/SVGCSSPropertyNames.in:
1684         * css/SVGCSSStyleSelector.cpp:
1685         (WebCore::CSSStyleSelector::applySVGProperty):
1686         * css/SVGCSSValueKeywords.in:
1687         * html/HTMLCanvasElement.cpp:
1688         (WebCore::HTMLCanvasElement::paint):
1689         * html/HTMLCanvasElement.h:
1690         * platform/graphics/ImageRenderingMode.h: Added.
1691         * rendering/RenderBoxModelObject.cpp:
1692         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
1693         * rendering/RenderHTMLCanvas.cpp:
1694         (WebCore::RenderHTMLCanvas::paintReplaced):
1695         * rendering/style/RenderStyle.cpp:
1696         (WebCore::RenderStyle::diff):
1697         * rendering/style/RenderStyle.h:
1698         (WebCore::InheritedFlags::imageRendering):
1699         (WebCore::InheritedFlags::setImageRendering):
1700         (WebCore::InheritedFlags::initialImageRendering):
1701         * rendering/style/RenderStyleConstants.h:
1702         * rendering/style/SVGRenderStyle.cpp:
1703         (WebCore::SVGRenderStyle::diff):
1704         * rendering/style/SVGRenderStyle.h:
1705         (WebCore::SVGRenderStyle::InheritedFlags::operator==):
1706         (WebCore::SVGRenderStyle::setBitDefaults):
1707         * rendering/style/SVGRenderStyleDefs.h:
1708         * rendering/svg/SVGRenderTreeAsText.cpp:
1709         (WebCore::writeStyle):
1710
1711 2011-05-18  Kenneth Russell  <kbr@google.com>
1712
1713         Reviewed by James Robinson.
1714
1715         [chromium] Disable blending in compositor for WebGL layers with alpha=false
1716         https://bugs.webkit.org/show_bug.cgi?id=61091
1717
1718         Test: compositing/webgl/webgl-no-alpha.html
1719
1720         * platform/graphics/chromium/CanvasLayerChromium.cpp:
1721         (WebCore::CanvasLayerChromium::CanvasLayerChromium):
1722         (WebCore::CanvasLayerChromium::pushPropertiesTo):
1723         * platform/graphics/chromium/CanvasLayerChromium.h:
1724         * platform/graphics/chromium/WebGLLayerChromium.cpp:
1725         (WebCore::WebGLLayerChromium::setContext):
1726         * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
1727         (WebCore::CCCanvasLayerImpl::CCCanvasLayerImpl):
1728         (WebCore::CCCanvasLayerImpl::draw):
1729         * platform/graphics/chromium/cc/CCCanvasLayerImpl.h:
1730         (WebCore::CCCanvasLayerImpl::setHasAlpha):
1731
1732 2011-05-18  Jeremy Noble  <jer.noble@apple.com>
1733
1734         Reviewed by Darin Adler.
1735
1736         Poster is not shown in Safari for video element with no playable source elements.
1737         https://bugs.webkit.org/show_bug.cgi?id=61109
1738
1739         Test: media/video-src-invalid-poster.html
1740
1741         In the case where no video sources are playable, update the display state and 
1742         renderer, allowing the poster image to display.
1743
1744         * html/HTMLMediaElement.cpp:
1745         (WebCore::HTMLMediaElement::waitForSourceChange): 
1746
1747 2011-05-19  Andrew Wilson  <atwilson@chromium.org>
1748
1749         Reviewed by Darin Adler.
1750
1751         MessagePortArray cloning code needs to verify source before copying.
1752         https://bugs.webkit.org/show_bug.cgi?id=61130
1753
1754         * bindings/js/JSMessagePortCustom.cpp:
1755         (WebCore::fillMessagePortArray):
1756         Changed code to not pre-allocate the destination array.
1757         * bindings/v8/custom/V8MessagePortCustom.cpp:
1758         (WebCore::getMessagePortArray):
1759         Changed code to not pre-allocate the destination array.
1760
1761 2011-05-19  Sheriff Bot  <webkit.review.bot@gmail.com>
1762
1763         Unreviewed, rolling out r86869, r86873, r86875, and r86877.
1764         http://trac.webkit.org/changeset/86869
1765         http://trac.webkit.org/changeset/86873
1766         http://trac.webkit.org/changeset/86875
1767         http://trac.webkit.org/changeset/86877
1768         https://bugs.webkit.org/show_bug.cgi?id=61139
1769
1770         broke builds and debug DRT (Requested by rniwa on #webkit).
1771
1772         * DerivedSources.make:
1773         * WebCore.exp.in:
1774         * WebCore.gyp/WebCore.gyp:
1775         * WebCore.gypi:
1776         * WebCore.xcodeproj/project.pbxproj:
1777         * testing/Internals.cpp: Removed.
1778         * testing/Internals.h: Removed.
1779         * testing/Internals.idl: Removed.
1780         * testing/js/WebCoreTestSupport.cpp: Removed.
1781         * testing/js/WebCoreTestSupport.h: Removed.
1782         * testing/v8/WebCoreTestSupport.cpp: Removed.
1783         * testing/v8/WebCoreTestSupport.h: Removed.
1784
1785 2011-05-19  Dimitri Glazkov  <dglazkov@chromium.org>
1786
1787         One more fix after r86869.
1788
1789         * WebCore.exp.in: Made __ZN7WebCore12JSDOMWrapperD2Ev only export for debug builds.
1790
1791 2011-05-19  Anders Carlsson  <andersca@apple.com>
1792
1793         Add two more symbols needed by the window.internals library.
1794
1795         * WebCore.exp.in:
1796
1797 2011-05-19  Dimitri Glazkov  <dglazkov@chromium.org>
1798
1799         Fix Leopard build after r86869.
1800
1801         * WebCore.exp.in: Moved now-always-used exported symbols out of the conditional guard.
1802
1803 2011-05-19  Robert Hogan  <robert@webkit.org>
1804
1805         Reviewed by Andreas Kling.
1806
1807         [Qt] Fix plugins/windowless_plugin_paint_test.html
1808         https://bugs.webkit.org/show_bug.cgi?id=60992
1809
1810         Call gdk_init_check before gdk_display_get_default().
1811         If we don't do this, gdk_display_get_default() will hang
1812         the next time it's called.
1813
1814         * plugins/qt/PluginViewQt.cpp:
1815         (WebCore::getPluginDisplay):
1816
1817 2011-05-18  Dimitri Glazkov  <dglazkov@chromium.org>
1818
1819         Reviewed by Darin Adler.
1820
1821         Add build logistics and plumbing for window.internals object.
1822         https://bugs.webkit.org/show_bug.cgi?id=60313
1823
1824         Test: fast/harness/internals-object.html
1825
1826         * DerivedSources.make: Added support for generating from Internals.idl.
1827         * WebCore.gyp/WebCore.gyp: Added new webcore_test_support library.
1828         * WebCore.gypi: Ditto.
1829         * WebCore.xcodeproj/project.pbxproj: Added WebCoreTestSupport library.
1830         * testing/Internals.cpp: Added.
1831         * testing/Internals.h: Added.
1832         * testing/Internals.idl: Added.
1833         * testing/js/WebCoreTestSupport.cpp: Added.
1834         * testing/js/WebCoreTestSupport.h: Added.
1835         * testing/v8/WebCoreTestSupport.cpp: Added.
1836         * testing/v8/WebCoreTestSupport.h: Added.
1837
1838 2011-05-19  Dimitri Glazkov  <dglazkov@chromium.org>
1839
1840         Accept XCode's decisions to keep modifying WebCore.xcodeproj.
1841
1842         * WebCore.xcodeproj/project.pbxproj: Opened in XCode then closed.
1843
1844 2011-05-19  Andrew Wason  <rectalogic@rectalogic.com>
1845
1846         Reviewed by Darin Adler.
1847
1848         Fix GraphicsContext3DQt.cpp compile error
1849         https://bugs.webkit.org/show_bug.cgi?id=61128
1850
1851         * platform/graphics/qt/GraphicsContext3DQt.cpp:
1852         (WebCore::GraphicsContext3D::GraphicsContext3D):
1853          clear() m_internal OwnPtr.
1854
1855 2011-05-19  Tonis Tiigi  <tonistiigi@gmail.com>
1856
1857         Reviewed by Pavel Feldman.
1858
1859         Web Inspector: Resizing columns in the network panel is weird
1860         https://bugs.webkit.org/show_bug.cgi?id=55238
1861
1862         Makes network panel column resizing more usable by adding "first only" and "last only"
1863         resizing methods to WebInspector.DataGrid. Current behavior is named "nearest" and
1864         remains default. Network panels datagrid is set to use method "last".
1865
1866         * inspector/front-end/DataGrid.js:
1867         (WebInspector.DataGrid.prototype.get resizeMethod):
1868         (WebInspector.DataGrid.prototype.set resizeMethod):
1869         (WebInspector.DataGrid.prototype._resizerDragging):
1870         * inspector/front-end/NetworkPanel.js:
1871         (WebInspector.NetworkPanel.prototype._createTable):
1872
1873 2011-05-19  Ryosuke Niwa  <rniwa@webkit.org>
1874
1875         Reviewed by Darin Adler.
1876
1877         JoinTextNodesCommand is never used
1878         https://bugs.webkit.org/show_bug.cgi?id=61089
1879
1880         Deleted JoinTextNodesCommand because it's never used.
1881
1882         * CMakeLists.txt:
1883         * GNUmakefile.list.am:
1884         * WebCore.gypi:
1885         * WebCore.pro:
1886         * WebCore.vcproj/WebCore.vcproj:
1887         * WebCore.xcodeproj/project.pbxproj:
1888         * editing/CompositeEditCommand.cpp:
1889         * editing/CompositeEditCommand.h:
1890         * editing/EditingAllInOne.cpp:
1891         * editing/JoinTextNodesCommand.cpp: Removed.
1892         * editing/JoinTextNodesCommand.h: Removed.
1893
1894 2011-05-19  Ryosuke Niwa  <rniwa@webkit.org>
1895
1896         Reviewed by Darin Adler.
1897
1898         REGRESSION (r83322): Many crashes in Mail.app in WebCore::Node::nodeIndex
1899         https://bugs.webkit.org/show_bug.cgi?id=61012
1900
1901         The crash was caused by ReplaceSelectionCommand's inserting content into a middle of the paragraph
1902         being moved when the insertion position's container node is the node to split to. Fixed the crash
1903         by not changing the insertion position in such a case.
1904
1905         Unfortunately, this fix caused markup to bloat in some tests but we'll take this regression since
1906         it's much better than crashing.
1907
1908         Test: editing/pasteboard/paste-after-inline-style-element.html
1909
1910         * editing/ReplaceSelectionCommand.cpp:
1911         (WebCore::ReplaceSelectionCommand::doApply):
1912
1913 2011-05-19  Brady Eidson  <beidson@apple.com>
1914
1915         Try to fix SUPPORT_AUTOCORRECTION_PANEL build.
1916
1917         * editing/SpellingCorrectionController.cpp:
1918         (WebCore::SpellingCorrectionController::recordSpellcheckerResponseForModifiedCorrection):
1919         (WebCore::SpellingCorrectionController::processMarkersOnTextToBeReplacedByResult):
1920
1921 2011-05-19  Darin Adler  <darin@apple.com>
1922
1923         Try to fix SUPPORT_AUTOCORRECTION_PANEL build.
1924
1925         * editing/SpellingCorrectionController.cpp:
1926         (WebCore::markersHaveIdenticalDescription): Call description() function.
1927
1928 2011-05-19  Andrey Adaikin  <aandrey@google.com>
1929
1930         Reviewed by Pavel Feldman.
1931
1932         Web Inspector: switch to Scripts panel is too slow
1933         https://bugs.webkit.org/show_bug.cgi?id=61030
1934
1935         - It is very expensive to listen to the DOM mutation events, thus we remove the listeners whenever we do any internal
1936         DOM manipulations (such as expand/collapse line rows) and set the listeners back when we are finished.
1937         - Also, when we switch to the Scripts panel that have a non-zero scrollTop offset, we would do the rendering work twice.
1938
1939         * inspector/front-end/SourceFrame.js:
1940         (WebInspector.SourceFrame.prototype.show):
1941         * inspector/front-end/TextViewer.js:
1942         (WebInspector.TextEditorMainPanel):
1943         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
1944         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
1945         (WebInspector.TextEditorMainPanel.prototype._enableDOMNodeRemovedListener):
1946         (WebInspector.TextEditorMainChunk):
1947         (WebInspector.TextEditorMainChunk.prototype.set expanded):
1948         (WebInspector.TextEditorMainChunk.prototype._createRow):
1949
1950 2011-05-19  Pavel Feldman  <pfeldman@google.com>
1951
1952         Not reviewed: inspector protocol tests fixed.
1953
1954         * inspector/InjectedScriptSource.js:
1955
1956 2011-05-19  David Grogan  <dgrogan@chromium.org>
1957
1958         Reviewed by David Levin.
1959
1960         Make EventQueue post a Task to the task queue for each asynchronous event
1961         https://bugs.webkit.org/show_bug.cgi?id=60790
1962
1963         Currently EventQueue queues up events to be fired asynchronously and
1964         fires each of them when a single DOMTimer goes off.  In the words of
1965         dimich, "Having 2 queues will sooner or later cause problems with
1966         ordering of tasks, termination, suspension and other things that all
1967         require some control on how queues operate."
1968
1969         No new tests; this is just a refactoring to avoid potential future
1970         problems.
1971
1972         * dom/EventQueue.cpp:
1973         (WebCore::EventQueue::EventQueue):
1974         (WebCore::EventQueue::EventDispatcherTask::create):
1975         (WebCore::EventQueue::EventDispatcherTask::dispatchEvent):
1976         (WebCore::EventQueue::EventDispatcherTask::performTask):
1977         (WebCore::EventQueue::EventDispatcherTask::cancel):
1978         (WebCore::EventQueue::EventDispatcherTask::EventDispatcherTask):
1979         (WebCore::EventQueue::removeEvent):
1980         (WebCore::EventQueue::enqueueEvent):
1981         (WebCore::EventQueue::enqueueOrDispatchScrollEvent):
1982         (WebCore::EventQueue::cancelEvent):
1983         (WebCore::EventQueue::cancelQueuedEvents):
1984         * dom/EventQueue.h:
1985
1986 2011-05-18  Yury Semikhatsky  <yurys@chromium.org>
1987
1988         Reviewed by Pavel Feldman.
1989
1990         InjectedScriptSource.js - "Don't be eval()."
1991         https://bugs.webkit.org/show_bug.cgi?id=60800
1992
1993         Thanks to Adam Barth for providing JSC implementation!
1994
1995         InjectedScriptHost.evaluate is used to perform script evaluations for
1996         inspector needs. This method is not affected by CSP and should fix inspector
1997         on pages with CSP restrictions.
1998
1999         Test: inspector/console/console-eval-blocked.html
2000
2001         * bindings/js/JSInjectedScriptHostCustom.cpp:
2002         (WebCore::JSInjectedScriptHost::evaluate):
2003         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
2004         (WebCore::V8InjectedScriptHost::evaluateCallback):
2005         (WebCore::V8InjectedScriptHost::inspectedNodeCallback):
2006         * inspector/InjectedScriptHost.idl:
2007         * inspector/InjectedScriptSource.js:
2008         (.):
2009
2010 2011-05-19  Pavel Feldman  <pfeldman@google.com>
2011
2012         Reviewed by Yury Semikhatsky.
2013
2014         Web Inspector: expose object class name as a part of RemoteObject mirror.
2015         https://bugs.webkit.org/show_bug.cgi?id=61067
2016
2017         * inspector/InjectedScriptSource.js:
2018         * inspector/Inspector.json:
2019
2020 2011-05-19  Pavel Feldman  <pfeldman@google.com>
2021
2022         Reviewed by Yury Semikhatsky.
2023
2024         Web Inspector: make "this" a part of callFrame, not scope in the protocol.
2025         https://bugs.webkit.org/show_bug.cgi?id=61057
2026
2027         * inspector/InjectedScriptSource.js:
2028         * inspector/Inspector.json:
2029         * inspector/front-end/ScopeChainSidebarPane.js:
2030         (WebInspector.ScopeChainSidebarPane.prototype.update):
2031
2032 2011-05-19  Kent Tamura  <tkent@chromium.org>
2033
2034         Reviewed by Hajime Morita.
2035
2036         tooLong validity should not be true for a value set by a script
2037         https://bugs.webkit.org/show_bug.cgi?id=60948
2038
2039         The specification has been updated so that tooLong should be true only
2040         for user-edit values.
2041         
2042         Introduce m_wasModifiedByUser flag to HTMLInputElement and
2043         HTMLTextAreaElemnt. It is set to true when a renderer updates the
2044         value, and is cleared when the value is updated by others.
2045
2046         * html/HTMLInputElement.cpp:
2047         (WebCore::HTMLInputElement::HTMLInputElement):
2048           Initialize m_wasModifiedByUser.
2049         (WebCore::HTMLInputElement::tooLong):
2050           Skip the check if m_wasModifiedByUser is false.
2051         (WebCore::HTMLInputElement::updateType): Clear m_wasModifiedByUser.
2052         (WebCore::HTMLInputElement::copyNonAttributeProperties):
2053         (WebCore::HTMLInputElement::setValue): If sendChange is true,
2054           m_wasModifiedByUser should be true because sendChange is set in a case
2055           of form auto-fill.  We assume a value set by form auto-fill is a kind
2056           of user-edit.
2057         (WebCore::HTMLInputElement::setValueFromRenderer):
2058           m_wasModifiedByUser should be true for the update by a renderer.
2059         * html/HTMLInputElement.h: Declare m_wasModifiedByUser.
2060         * html/HTMLTextAreaElement.cpp:
2061         (WebCore::HTMLTextAreaElement::HTMLTextAreaElement):
2062           Initialize m_wasModifiedByUser.
2063         (WebCore::HTMLTextAreaElement::updateValue):
2064           m_wasModifiedByUser should be true for the update by a renderer.
2065         (WebCore::HTMLTextAreaElement::setValueCommon): Clear m_wasModifiedByUser.
2066         (WebCore::HTMLTextAreaElement::tooLong):
2067           Skip the check if m_wasModifiedByUser is false.
2068         * html/HTMLTextAreaElement.h: Declare m_wasModifiedByUser.
2069
2070 2011-05-19  David Barr  <davidbarr@chromium.org>
2071
2072         Reviewed by Simon Fraser.
2073
2074         CSS3: We fail 'border radius sum of radii' test
2075         https://bugs.webkit.org/show_bug.cgi?id=38788
2076
2077         Ignore border-radius properties with negative values.
2078
2079         Test: fast/css/border-radius-non-negative.html
2080
2081         * WebCore.xcodeproj/project.pbxproj:
2082         * css/CSSParser.cpp:
2083         (WebCore::CSSParser::parseValue):
2084         (WebCore::CSSParser::parseBorderRadius):
2085
2086 2011-05-19  Yuta Kitamura  <yutak@chromium.org>
2087
2088         Reviewed by Kent Tamura.
2089
2090         WebSocket: Use ScriptContext::Task to hold pending events of ThreadableWebSocketChannelClientWrapper
2091         https://bugs.webkit.org/show_bug.cgi?id=61034
2092
2093         Refactoring only. No new tests.
2094
2095         * websockets/ThreadableWebSocketChannelClientWrapper.cpp:
2096         (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
2097         (WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
2098         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
2099         (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
2100         (WebCore::ThreadableWebSocketChannelClientWrapper::resume):
2101         (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
2102         (WebCore::ThreadableWebSocketChannelClientWrapper::didConnectCallback):
2103         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageCallback):
2104         (WebCore::ThreadableWebSocketChannelClientWrapper::didCloseCallback):
2105         * websockets/ThreadableWebSocketChannelClientWrapper.h:
2106         Remove m_pendingConnected, m_pendingMessages and m_pendingClosed, and use ScriptContext::Task
2107         to hold these pending events.
2108
2109 2011-05-19  Emil A Eklund  <eae@chromium.org>
2110
2111         Reviewed by Alexey Proskuryakov.
2112
2113         REGRESSION (r80808): Multiple <select> - Selection reset to first element from multiple selected ones
2114         https://bugs.webkit.org/show_bug.cgi?id=60986
2115
2116         * html/HTMLSelectElement.cpp:
2117         (WebCore::HTMLSelectElement::setMultiple):
2118         Don't restore selection if the multiple attribute hasn't changed.
2119
2120 2011-05-18  Fumitoshi Ukai  <ukai@chromium.org>
2121
2122         Reviewed by Alexey Proskuryakov.
2123
2124         http/tests/websocket/tests/workers/worker-handshake-challenge-randomness.html crashed once on Windows XP Debug (Tests)
2125         https://bugs.webkit.org/show_bug.cgi?id=57048
2126
2127         * platform/network/cf/SocketStreamHandleCFNet.cpp:
2128         (WebCore::SocketStreamHandle::platformClose): use loaderRunLoop to schedule streams on platform WIN
2129
2130 2011-05-18  MORITA Hajime  <morrita@google.com>
2131
2132         Unreviewed attempt to fix clang build.
2133
2134         * rendering/InlineTextBox.h:
2135
2136 2011-05-18  Nat Duca  <nduca@chromium.org>
2137
2138         Reviewed by James Robinson.
2139
2140         [chromium] Add histograms for paint times
2141         https://bugs.webkit.org/show_bug.cgi?id=61010
2142
2143         * platform/graphics/chromium/ContentLayerChromium.cpp:
2144         (WebCore::ContentLayerPainter::paint):
2145
2146 2011-05-18  Adrienne Walker  <enne@google.com>
2147
2148         Reviewed by James Robinson.
2149
2150         [chromium] Fix incorrect size when clipping image layer upload rects
2151         https://bugs.webkit.org/show_bug.cgi?id=61105
2152
2153         The clipped destination and source rects should have the same size.
2154
2155         * platform/graphics/chromium/ImageLayerChromium.cpp:
2156         (WebCore::ImageLayerTextureUpdater::updateTextureRect):
2157
2158 2011-05-17  MORITA Hajime  <morrita@google.com>
2159
2160         Reviewed by Tony Chang.
2161
2162         [Refactoring] Member variables of DocumentMarker should be encapsulated.
2163         https://bugs.webkit.org/show_bug.cgi?id=56814
2164
2165         - Moved DocumentMarker's member variables to private and added getters for them.
2166         - Added DocumentMarker setters and constructors, which contain assertions against m_type values
2167           because description and activeMatch are used with specific type of MarkerType.
2168         - Moved chromium's WebKit::WebFrameImpl::addMarker() to DocumentMarkerController::addTextMatchMarker()
2169           because it accesses DocumentMarker internals.
2170         - Moved a version of DMC::addMarker() to private and add alternatives that hide
2171           internals of DocumentMarker. (The internal will be renewed by upcoming change.)
2172         
2173         * dom/DocumentMarker.h:
2174         (WebCore::DocumentMarker::type):
2175         (WebCore::DocumentMarker::startOffset):
2176         (WebCore::DocumentMarker::endOffset):
2177         (WebCore::DocumentMarker::description):
2178         (WebCore::DocumentMarker::hasDescription):
2179         (WebCore::DocumentMarker::activeMatch):
2180         (WebCore::DocumentMarker::clearDescription):
2181         (WebCore::DocumentMarker::setStartOffset):
2182         (WebCore::DocumentMarker::setEndOffset):
2183         (WebCore::DocumentMarker::operator==):
2184         (WebCore::DocumentMarker::DocumentMarker):
2185         (WebCore::DocumentMarker::shiftOffsets):
2186         (WebCore::DocumentMarker::setActiveMatch):
2187         * dom/DocumentMarkerController.cpp:
2188         (WebCore::DocumentMarkerController::addMarker):
2189         (WebCore::DocumentMarkerController::addTextMatchMarker):
2190         (WebCore::DocumentMarkerController::copyMarkers):
2191         (WebCore::DocumentMarkerController::removeMarkers):
2192         (WebCore::DocumentMarkerController::markerContainingPoint):
2193         (WebCore::DocumentMarkerController::markersInRange):
2194         (WebCore::DocumentMarkerController::renderedRectsForMarkers):
2195         (WebCore::DocumentMarkerController::removeMarkersFromList):
2196         (WebCore::DocumentMarkerController::repaintMarkers):
2197         (WebCore::DocumentMarkerController::shiftMarkers):
2198         (WebCore::DocumentMarkerController::setMarkersActive):
2199         (WebCore::DocumentMarkerController::hasMarkers):
2200         (WebCore::DocumentMarkerController::clearDescriptionOnMarkersIntersectingRange):
2201         (WebCore::DocumentMarkerController::showMarkers):
2202         * dom/DocumentMarkerController.h:
2203         * editing/CompositeEditCommand.cpp:
2204         (WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers):
2205         * editing/DeleteSelectionCommand.cpp:
2206         (WebCore::DeleteSelectionCommand::originalStringForAutocorrectionAtBeginningOfSelection):
2207         * editing/Editor.cpp:
2208         (WebCore::Editor::selectionStartHasMarkerFor):
2209         * editing/SpellingCorrectionController.cpp:
2210         (WebCore::SpellingCorrectionController::respondToChangedSelection):
2211         * editing/SpellingCorrectionController.h:
2212         (WebCore::SpellingCorrectionController::shouldStartTimerFor):
2213         * rendering/HitTestResult.cpp:
2214         (WebCore::HitTestResult::spellingToolTip):
2215         (WebCore::HitTestResult::replacedString):
2216         * rendering/InlineTextBox.cpp:
2217         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
2218         (WebCore::InlineTextBox::paintTextMatchMarker):
2219         (WebCore::InlineTextBox::computeRectForReplacementMarker):
2220         (WebCore::InlineTextBox::paintDocumentMarkers):
2221         * rendering/svg/SVGInlineFlowBox.cpp:
2222         (WebCore::SVGInlineFlowBox::computeTextMatchMarkerRectForRenderer):
2223
2224 2011-05-18  Oliver Hunt  <oliver@apple.com>
2225
2226         Reviewed by Geoffrey Garen.
2227
2228         +[WebScriptObject throwException:] doesn't work when invoked from obj-c field access
2229         https://bugs.webkit.org/show_bug.cgi?id=61100
2230
2231         The objc bindings were written to assume exceptions would
2232         come from obj-c style exceptions, rather than throwException:
2233         This code simply calls the global ObjcInstance mechanism for
2234         transferring the reported exception.
2235
2236         * bridge/objc/objc_instance.h:
2237         * bridge/objc/objc_runtime.mm:
2238         (JSC::Bindings::ObjcField::valueFromInstance):
2239         (JSC::Bindings::ObjcField::setValueToInstance):
2240
2241 2011-05-16  Adrienne Walker  <enne@google.com>
2242
2243         Reviewed by James Robinson.
2244
2245         [chromium] Robustly handle mapTexSubImage2D returning NULL
2246         https://bugs.webkit.org/show_bug.cgi?id=60934
2247
2248         Also, lazily create the temp buffer so that both the map and non-map
2249         cases can use it.
2250
2251         * platform/graphics/chromium/LayerTextureSubImage.cpp:
2252         (WebCore::LayerTextureSubImage::setSubImageSize):
2253         (WebCore::LayerTextureSubImage::uploadWithTexSubImage):
2254         (WebCore::LayerTextureSubImage::uploadWithMapTexSubImage):
2255
2256 2011-05-18  Emil A Eklund  <eae@chromium.org>
2257
2258         Reviewed by Darin Adler.
2259
2260         Change RenderTextControl::hitInnerTextElement to use IntPoint
2261         https://bugs.webkit.org/show_bug.cgi?id=61003
2262
2263         Covered by existing tests.
2264
2265         * rendering/RenderTextControl.cpp:
2266         (WebCore::RenderTextControl::hitInnerTextElement):
2267         * rendering/RenderTextControl.h:
2268         * rendering/RenderTextControlMultiLine.cpp:
2269         (WebCore::RenderTextControlMultiLine::nodeAtPoint):
2270         * rendering/RenderTextControlSingleLine.cpp:
2271         (WebCore::RenderTextControlSingleLine::nodeAtPoint):
2272
2273 2011-05-18  Chris Fleizach  <cfleizach@apple.com>
2274
2275         Reviewed by Maciej Stachowiak.
2276
2277         WK2: VoiceOver cannot move focus into a web area programmatically
2278         https://bugs.webkit.org/show_bug.cgi?id=60661
2279
2280         Accessibility code relies on the ability to bring focus to the containing widget view.
2281         In WK2, that message needs to be propagated to the UI process.
2282
2283         * page/ChromeClient.h:
2284         (WebCore::ChromeClient::makeFirstResponder):
2285         * page/mac/ChromeMac.mm:
2286         (WebCore::Chrome::focusNSView):
2287         * platform/mac/WidgetMac.mm:
2288         (WebCore::Widget::setFocus):
2289
2290 2011-05-18  Alok Priyadarshi  <alokp@chromium.org> and Adrienne Walker  <enne@google.com>
2291
2292         Reviewed by James Robinson.
2293
2294         [chromium] Split canvas from LayerTilerChromium
2295         https://bugs.webkit.org/show_bug.cgi?id=60719
2296
2297         LayerTilerChromium now just does tiling. It delegates the task of painting and updating textures to LayerTextureUpdater.
2298         Also abstracted LayerTextureSubImage to upload texture pixels.
2299
2300         * WebCore.gypi:
2301         * platform/chromium/TraceEvent.h:
2302         * platform/graphics/chromium/ContentLayerChromium.cpp:
2303         (WebCore::ContentLayerChromium::create):
2304         (WebCore::ContentLayerChromium::ContentLayerChromium):
2305         (WebCore::ContentLayerChromium::~ContentLayerChromium):
2306         (WebCore::ContentLayerChromium::paintContentsIfDirty):
2307         (WebCore::ContentLayerChromium::cleanupResources):
2308         (WebCore::ContentLayerChromium::setLayerRenderer):
2309         (WebCore::ContentLayerChromium::createTextureUpdater):
2310         (WebCore::ContentLayerChromium::drawsContent):
2311         (WebCore::ContentLayerChromium::createTilerIfNeeded):
2312         (WebCore::ContentLayerChromium::updateCompositorResources):
2313         * platform/graphics/chromium/ContentLayerChromium.h:
2314         * platform/graphics/chromium/ImageLayerChromium.cpp:
2315         (WebCore::ImageLayerTextureUpdater::ImageLayerTextureUpdater):
2316         (WebCore::ImageLayerTextureUpdater::~ImageLayerTextureUpdater):
2317         (WebCore::ImageLayerTextureUpdater::orientation):
2318         (WebCore::ImageLayerTextureUpdater::prepareToUpdate):
2319         (WebCore::ImageLayerTextureUpdater::updateTextureRect):
2320         (WebCore::ImageLayerTextureUpdater::imageRect):
2321         (WebCore::ImageLayerChromium::paintContentsIfDirty):
2322         (WebCore::ImageLayerChromium::updateCompositorResources):
2323         (WebCore::ImageLayerChromium::createTextureUpdater):
2324         * platform/graphics/chromium/ImageLayerChromium.h:
2325         * platform/graphics/chromium/LayerPainterChromium.h: Added.
2326         * platform/graphics/chromium/LayerRendererChromium.cpp:
2327         (WebCore::LayerRendererChromium::create):
2328         (WebCore::LayerRendererChromium::LayerRendererChromium):
2329         (WebCore::LayerRendererChromium::updateRootLayerContents):
2330         (WebCore::LayerRendererChromium::drawRootLayer):
2331         (WebCore::LayerRendererChromium::updateAndDrawLayers):
2332         (WebCore::LayerRendererChromium::updateLayers):
2333         * platform/graphics/chromium/LayerRendererChromium.h:
2334         * platform/graphics/chromium/LayerTextureSubImage.cpp: Added.
2335         (WebCore::LayerTextureSubImage::LayerTextureSubImage):
2336         (WebCore::LayerTextureSubImage::~LayerTextureSubImage):
2337         (WebCore::LayerTextureSubImage::setSubImageSize):
2338         (WebCore::LayerTextureSubImage::upload):
2339         (WebCore::LayerTextureSubImage::uploadWithTexSubImage):
2340         (WebCore::LayerTextureSubImage::uploadWithMapTexSubImage):
2341         * platform/graphics/chromium/LayerTextureSubImage.h: Copied from Source/WebCore/platform/chromium/TraceEvent.h.
2342         * platform/graphics/chromium/LayerTextureUpdater.h: Copied from Source/WebCore/platform/chromium/TraceEvent.h.
2343         (WebCore::LayerTextureUpdater::LayerTextureUpdater):
2344         (WebCore::LayerTextureUpdater::~LayerTextureUpdater):
2345         (WebCore::LayerTextureUpdater::context):
2346         * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp: Added.
2347         (WebCore::LayerTextureUpdaterCanvas::LayerTextureUpdaterCanvas):
2348         (WebCore::LayerTextureUpdaterCanvas::paintContents):
2349         (WebCore::LayerTextureUpdaterBitmap::LayerTextureUpdaterBitmap):
2350         (WebCore::LayerTextureUpdaterBitmap::prepareToUpdate):
2351         (WebCore::LayerTextureUpdaterBitmap::updateTextureRect):
2352         * platform/graphics/chromium/LayerTextureUpdaterCanvas.h: Added.
2353         (WebCore::LayerTextureUpdaterCanvas::~LayerTextureUpdaterCanvas):
2354         (WebCore::LayerTextureUpdaterCanvas::contentRect):
2355         (WebCore::LayerTextureUpdaterBitmap::~LayerTextureUpdaterBitmap):
2356         (WebCore::LayerTextureUpdaterBitmap::orientation):
2357         * platform/graphics/chromium/LayerTilerChromium.cpp:
2358         (WebCore::LayerTilerChromium::create):
2359         (WebCore::LayerTilerChromium::LayerTilerChromium):
2360         (WebCore::LayerTilerChromium::setTileSize):
2361         (WebCore::LayerTilerChromium::prepareToUpdate):
2362         (WebCore::LayerTilerChromium::updateRect):
2363         (WebCore::LayerTilerChromium::draw):
2364         * platform/graphics/chromium/LayerTilerChromium.h:
2365         (WebCore::LayerTilerChromium::Tile::Tile):
2366         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
2367         (WebCore::CCHeadsUpDisplay::draw):
2368
2369 2011-05-18  Mark Pilgrim  <pilgrim@chromium.org>
2370
2371         Reviewed by Tony Chang.
2372
2373         IndexedDB put() should fail adding to object store that uses
2374         out-of-line keys and has no key generator and the key parameter
2375         was not provided
2376         https://bugs.webkit.org/show_bug.cgi?id=58609
2377
2378         Out-of-line keys means that objectStore->m_keyPath is null in ::put(),
2379         no key generator means that objectStore->autoIncrement() is false, and
2380         key parameter was not provided means that prpKey will be a null pointer.
2381         The combination of these 3 should throw a DATA_ERR.
2382
2383         Test: storage/indexeddb/mozilla/key-requirements-put-no-key.html
2384
2385         * storage/IDBObjectStoreBackendImpl.cpp:
2386         (WebCore::IDBObjectStoreBackendImpl::put):
2387
2388 2011-05-18  Chris Rogers  <crogers@google.com>
2389
2390         Reviewed by James Robinson.
2391
2392         EqualPowerPanner is not using the correct azimuth range for stereo panning
2393         https://bugs.webkit.org/show_bug.cgi?id=61085
2394
2395         No new tests since audio API is not yet implemented.
2396
2397         * platform/audio/EqualPowerPanner.cpp:
2398         (WebCore::EqualPowerPanner::pan):
2399
2400 2011-05-18  Yi Shen  <yi.4.shen@nokia.com>
2401
2402         Reviewed by Andreas Kling.
2403
2404         [Qt] Enterkey to go to Newline does not work in the text area(in HTML form)
2405         https://bugs.webkit.org/show_bug.cgi?id=33179
2406
2407         Fill the missing key text for the EnterKey event.
2408
2409         Tests: fast/events/onsearch-enter.html
2410
2411         * platform/qt/PlatformKeyboardEventQt.cpp:
2412         (WebCore::keyTextForKeyEvent):
2413
2414 2011-05-17  Timothy Hatcher  <timothy@apple.com>
2415
2416         Update the the context menu to reflect the system search provider on Mac.
2417
2418         <rdar://problem/9198419>
2419
2420         Reviewed by Sam Weinig.
2421
2422         * English.lproj/Localizable.strings: Updated.
2423         * Source/WebCore/WebCore.exp.in: Added _wkCopyDefaultSearchProviderDisplayName.
2424         * platform/DefaultLocalizationStrategy.cpp:
2425         (WebCore::DefaultLocalizationStrategy::contextMenuItemTagSearchWeb): Use wkCopyDefaultSearchProviderDisplayName to
2426         create the string.
2427         * platform/mac/WebCoreSystemInterface.h: Added wkCopyDefaultSearchProviderDisplayName.
2428         * platform/mac/WebCoreSystemInterface.mm: Ditto.
2429
2430 2011-05-18  Rob Buis  <rbuis@rim.com>
2431
2432         Reviewed by Nikolas Zimmermann.
2433
2434         Marker test from ietestcenter fails
2435         https://bugs.webkit.org/show_bug.cgi?id=60721
2436
2437         Change <marker> renderer creation behaviour to always create the renderer. This fixes
2438         the problem that no marker is rendered when display=none is set on the <marker>. The
2439         specification states that display=none should have no influence on <marker> usage:
2440         "The ‘display’ property does not apply to the ‘marker’ element; thus, ..., and ‘marker’
2441         elements are available for referencing even when the ‘display’ property on the ‘marker’
2442         element or any of its ancestors is set to none."
2443
2444         Tests: svg/W3C-SVG-1.1-SE/painting-marker-07-f.svg
2445                svg/custom/painting-marker-07-f-inherit.svg
2446
2447         * svg/SVGMarkerElement.h:
2448         (WebCore::SVGMarkerElement::rendererIsNeeded):
2449
2450 2011-05-18  Alexis Menard  <alexis.menard@openbossa.org>, Simon Hausmann  <simon.hausmann@nokia.com>
2451
2452         Reviewed by Eric Carlson.
2453
2454         MediaElements fails to load the data in some cases.
2455         https://bugs.webkit.org/show_bug.cgi?id=60760
2456
2457         WebKitWebSourceGStreamer is the interface between WebKit and GStreamer
2458         that uses the ResourceHandle API to request data and pass it down. For
2459         our builds it is absolutely essential that we have a NetworkingContext
2460         available there, in order to get access to the QNetworkAccessManager.
2461         No access means we basically cannot load the video. The WebSource gains
2462         access to the NetworkingContext through a WebCore::Frame pointer it has.
2463
2464         MediaPlayerPrivateGStreamer is responsible for propagating a pointer of
2465         the WebCore::Frame to the WebKitWebSource in
2466         mediaPlayerPrivateSourceChangedCallback. In there we used the MediaPlayer's
2467         frameView() accessor to access the frame. However the frameView() member
2468         is only set through the render tree's RenderVideo, which is rather unreliable
2469         given that some sites create "fake" video tags initially that only become
2470         visible later (or never).
2471
2472         A more reliable way is to simply use the document of the MediaPlayerClient,
2473         which is provided at constructor time.
2474
2475         Test: http/tests/media/media-can-load-when-hidden.html
2476
2477         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2478         (WebCore::MediaPlayerPrivateGStreamer::sourceChanged):
2479
2480 2011-05-18  Adrienne Walker  <enne@google.com>
2481
2482         Reviewed by James Robinson.
2483
2484         [chromium] Check HUD texture reserve status before using texture
2485         https://bugs.webkit.org/show_bug.cgi?id=61082
2486
2487         This only changes behavior behind a flag, so shouldn't impact any tests.
2488
2489         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
2490         (WebCore::CCHeadsUpDisplay::draw):
2491
2492 2011-05-18  Oliver Hunt  <oliver@apple.com>
2493
2494         Reviewed by Sam Weinig.
2495
2496         JSGlobalObject and some others do GC allocation during initialization, which can cause heap corruption
2497         https://bugs.webkit.org/show_bug.cgi?id=61090
2498
2499         Rather than having Constructor objects create their structure
2500         as part of initialisation, we now pass their expected structure
2501         in as an argument.  This required fixing the few custom Constructors
2502         and the code generator.
2503
2504         * bindings/js/JSAudioConstructor.cpp:
2505         (WebCore::JSAudioConstructor::JSAudioConstructor):
2506         * bindings/js/JSAudioConstructor.h:
2507         * bindings/js/JSDOMGlobalObject.h:
2508         (WebCore::getDOMConstructor):
2509           Pass the Constructor objects structure in as an argument
2510         * bindings/js/JSImageConstructor.cpp:
2511         (WebCore::JSImageConstructor::JSImageConstructor):
2512         * bindings/js/JSImageConstructor.h:
2513         * bindings/js/JSOptionConstructor.cpp:
2514         (WebCore::JSOptionConstructor::JSOptionConstructor):
2515         * bindings/js/JSOptionConstructor.h:
2516         * bindings/scripts/CodeGeneratorJS.pm:
2517
2518 2011-05-18  Abhishek Arya  <inferno@chromium.org>
2519
2520         Reviewed by Beth Dakin.
2521
2522         Remove removeChild on table caption since destroy call
2523         already does that.
2524         https://bugs.webkit.org/show_bug.cgi?id=61083
2525
2526         Test: fast/table/table-captions-child-visible-crash.html
2527
2528         * rendering/RenderTable.cpp:
2529         (WebCore::RenderTable::recalcCaption):
2530
2531 2011-05-18  Evan Martin  <evan@chromium.org>
2532
2533         Reviewed by Tony Chang.
2534
2535         [chromium] make action_derivedsourcesallinone.py quiet
2536         https://bugs.webkit.org/show_bug.cgi?id=61081
2537
2538         In gyp, it's the responsibility of the build system to print what actions are doing;
2539         for example, the compile command is generally silent, while the build system prints
2540         "compiling".
2541
2542         Make this program behave like a compiler: silent on success.
2543
2544         * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
2545         delete a print statement.
2546
2547 2011-05-18  David Kilzer  <ddkilzer@apple.com>
2548
2549         <http://webkit.org/b/61078> Use toHTTPPipeliningPriority() in initializeMaximumHTTPConnectionCountPerHost()
2550
2551         Reviewed by Joseph Pecoraro.
2552
2553         * platform/network/cf/ResourceRequestCFNet.cpp:
2554         (WebCore::initializeMaximumHTTPConnectionCountPerHost): Use
2555         toHTTPPipeliningPriority() to convert arguments passed to
2556         wkSetHTTPPipeliningMaximumPriority() and
2557         wkSetHTTPPipeliningMinimumFastLanePriority().
2558
2559 2011-05-18  Erik Arvidsson  <arv@chromium.org>
2560
2561         Reviewed by Ojan Vafai.
2562
2563         event.clientX/clientY is 0/0 in a click generated through a label
2564         https://bugs.webkit.org/show_bug.cgi?id=56606
2565
2566         This copies the coordinates from the underlying event to the simulated mouse event if the underlying event
2567         is a mouse event.
2568
2569         This makes us match Firefox and IE.
2570
2571         Test: fast/events/simulated-click-coords.html
2572
2573         * dom/MouseEvent.cpp:
2574         (WebCore::SimulatedMouseEvent::SimulatedMouseEvent):
2575
2576 2011-05-18  Nikolas Zimmermann  <nzimmermann@rim.com>
2577
2578         Not reviewed. Sorted XCode project file.
2579
2580         * WebCore.xcodeproj/project.pbxproj:
2581
2582 2011-05-18  Alexander Pavlov  <apavlov@chromium.org>
2583
2584         Reviewed by Pavel Feldman.
2585
2586         Web Inspector: Non-color CSS property values can get a color-picker
2587         https://bugs.webkit.org/show_bug.cgi?id=61056
2588
2589         * inspector/front-end/CSSKeywordCompletions.js:
2590         (WebInspector.CSSKeywordCompletions.forProperty):
2591         (WebInspector.CSSKeywordCompletions.isColorAwareProperty):
2592         * inspector/front-end/StylesSidebarPane.js:
2593         (WebInspector.StylePropertyTreeElement.prototype.updateTitle):
2594
2595 2011-05-18  Pratik Solanki  <psolanki@apple.com>
2596
2597         Reviewed by Dan Bernstein.
2598
2599         Don't use DEFINE_STATIC_LOCAL with an unsigned
2600         https://bugs.webkit.org/show_bug.cgi?id=61026
2601
2602         * storage/StorageTracker.cpp:
2603         (WebCore::StorageTracker::syncFileSystemAndTrackerDatabase): DEFINE_STATIC_LOCAL is meant
2604         for objects, not unsigned ints. We can just use static here.
2605
2606 2011-05-18  Rob Buis  <rbuis@rim.com>
2607
2608         Reviewed by Nikolas Zimmermann.
2609
2610         NULL deref when SVG elements have table styles 
2611         https://bugs.webkit.org/show_bug.cgi?id=45561
2612
2613         Restrict computed CSS values for SVG display property to block, inline or none.
2614
2615         Tests: svg/custom/display-table-caption-foreignObject.svg
2616                svg/custom/display-table-caption-inherit-foreignObject.xhtml
2617                svg/custom/display-table-caption-inherit-text.xhtml
2618                svg/custom/display-table-caption-text.svg
2619
2620         * css/CSSStyleSelector.cpp:
2621         (WebCore::SVGDisplayPropertyGuard::SVGDisplayPropertyGuard):
2622         (WebCore::SVGDisplayPropertyGuard::~SVGDisplayPropertyGuard):
2623         (WebCore::isAcceptableForSVGElement):
2624         (WebCore::CSSStyleSelector::applyProperty):
2625
2626 2011-05-18  Pavel Feldman  <pfeldman@google.com>
2627
2628         Reviewed by Yury Semikhatsky.
2629
2630         Web Inspector: [REGRESSION] Completion while on a breakpoint is not working.
2631         https://bugs.webkit.org/show_bug.cgi?id=60811
2632
2633         Test: inspector/debugger/debugger-completions-on-call-frame.html
2634
2635         * inspector/InjectedScriptSource.js:
2636         * inspector/front-end/ConsoleView.js:
2637         (WebInspector.ConsoleView.prototype.completions.else.evaluated):
2638         * inspector/front-end/DebuggerPresentationModel.js:
2639         (WebInspector.PresenationCallFrame.prototype.get variables):
2640         * inspector/front-end/ScriptsPanel.js:
2641         (WebInspector.ScriptsPanel.prototype.selectedCallFrameVariables):
2642
2643 2011-05-18  Nikolas Zimmermann  <nzimmermann@rim.com>
2644
2645         Reviewed by Rob Buis.
2646
2647         All animated SVG enum properties are now ints
2648         https://bugs.webkit.org/show_bug.cgi?id=10749
2649
2650         DECLARE/DEFINE_ANIMATED_ENUMERATION created fooBaseVal()/setFooBaseVal() methods that take int parameters, and stored all enum types as integers.
2651         Modify the SVG DOM API to store real enums, and get rid of any int<->enum conversions. It's now impossible to change any enum values to undefined
2652         types, which is the root of several filter security bugs in the past, that were fixed by adding workarounds.
2653         (Usual workaround: svgAttributeChanged(): if fooAttr has been changed from SVG DOM, and if it's an enum, check whether the enum is in range, or fix it up.)
2654
2655         Using a type-safe internal representation for these enum values we can get rid of ugly int<->enum conversions.
2656         A lot of parseMappedAttribute() functions duplicated the code for parsing enum values (eg. userSpaceOnUse/objectBoundingBox unit values, in pattern/filter/mask/etc..)
2657         Add dozens of new SVGPropertyTraits<EnumType> specializations for all enums we expose to JS, and offer static fromString/toString conversion methods in single places.
2658         Use the new SVGPropertyTraits everywhere in svg/.
2659
2660         This also fixes SVG DOM <-> XML DOM synchronization for SVGAnimatedEnumeration types.
2661         Example: <clipPath clipPathUnits="objectBoundingBox">
2662         myClipPath.clipPathUnits.baseVal = SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE;
2663         alert(myClipPath.getAttribute('clipPathUnits')); <- without this patch it says "1", now it says "userSpaceOnUse" as expected, and as other browsers do.
2664         We're now properly converting the enum values to strings.
2665
2666         Add testcases for all SVGAnimatedEnumeration objects used in the SVG DOM API. Found several small bugs:
2667         - SVGFEConvolveMatrix 'edgeMode' SVG DOM <-> XML DOM synchronization was not working, because of a typo: s/operatorAttr/edgeModeAttr
2668         - SVGFEConvolveMatrix was missing an synchronizeProperty() implementation, disabling SVG <-> XML DOM synchronization completly.
2669
2670         Tests: svg/dom/SVGAnimatedEnumeration-SVGClipPathElement.html
2671                svg/dom/SVGAnimatedEnumeration-SVGComponentTransferFunctionElement.html
2672                svg/dom/SVGAnimatedEnumeration-SVGFEBlendElement.html
2673                svg/dom/SVGAnimatedEnumeration-SVGFEColorMatrixElement.html
2674                svg/dom/SVGAnimatedEnumeration-SVGFECompositeElement.html
2675                svg/dom/SVGAnimatedEnumeration-SVGFEConvolveMatrixElement.html
2676                svg/dom/SVGAnimatedEnumeration-SVGFEDisplacementMapElement.html
2677                svg/dom/SVGAnimatedEnumeration-SVGFEMorphologyElement.html
2678                svg/dom/SVGAnimatedEnumeration-SVGFETurbulenceElement.html
2679                svg/dom/SVGAnimatedEnumeration-SVGFilterElement.html
2680                svg/dom/SVGAnimatedEnumeration-SVGGradientElement.html
2681                svg/dom/SVGAnimatedEnumeration-SVGMarkerElement.html
2682                svg/dom/SVGAnimatedEnumeration-SVGMaskElement.html
2683                svg/dom/SVGAnimatedEnumeration-SVGPatternElement.html
2684                svg/dom/SVGAnimatedEnumeration-SVGTextContentElement.html
2685                svg/dom/SVGAnimatedEnumeration-SVGTextPathElement.html
2686
2687         Fixes existing svg/dynamic-update/SVGTextContentElement-svgdom-lengthAdjust-prop.html where I found the bug initially.
2688
2689         * GNUmakefile.list.am: Add svg/properties/SVGAnimatedEnumerationPropertyTearOff.h to build.
2690         * WebCore.gypi: Ditto.
2691         * WebCore.pro: Ditto.
2692         * WebCore.vcproj/WebCore.vcproj: Ditto.
2693         * WebCore.xcodeproj/project.pbxproj: Ditto.
2694         * bindings/scripts/CodeGeneratorV8.pm: Add V8 magic, to avoid ambigious conversion warning in toV8(PassRefPtr<SVGAnimatedEnumeration>).
2695         * platform/graphics/GraphicsTypes.h: Cleanup GradientSpreadMethod, as the SVG dependency is gone.
2696         * platform/graphics/filters/FEBlend.cpp:
2697         (WebCore::FEBlend::apply): Turn early-returns (introduce in security patches a while ago) into ASSERTs, as the underlying bug has been fixed.
2698         * platform/graphics/filters/FEDisplacementMap.cpp:
2699         (WebCore::FEDisplacementMap::apply): Ditto.
2700         * rendering/svg/RenderSVGResourceClipper.h: Remove toUnitType() usage, the clipPathUnits() provided by SVGClipPathElement have the correct enum type now.
2701         (WebCore::RenderSVGResourceClipper::clipPathUnits):
2702         * rendering/svg/RenderSVGResourceFilter.h: Remove toUnitType() usage, the filterUnits()/primitiveUnits() provided by SVGFilterElement have the correct enum type now.
2703         (WebCore::RenderSVGResourceFilter::filterUnits):
2704         (WebCore::RenderSVGResourceFilter::primitiveUnits):
2705         * rendering/svg/RenderSVGResourceGradient.cpp: Add helper method platformSpreadMethodFromSVGType() converting from SVGGradientElement::SVGSpreadMethodType to GradientSpreadMethod (platform).
2706         (WebCore::RenderSVGResourceGradient::applyResource):
2707         * rendering/svg/RenderSVGResourceGradient.h: Ditto.
2708         * rendering/svg/RenderSVGResourceLinearGradient.cpp:
2709         (WebCore::RenderSVGResourceLinearGradient::buildGradient): Use platformSpreadMethodFromSVGType().
2710         * rendering/svg/RenderSVGResourceMarker.h: Remove toUnitType() usage, the markerUnits() provided by SVGMarkerElement have the correct enum type now.
2711         (WebCore::RenderSVGResourceMarker::markerUnits):
2712         * rendering/svg/RenderSVGResourceMasker.h: Remove toUnitType() usage, the maskUnits()/maskContentUnits() provided by SVGMaskElement have the correct enum type now.
2713         (WebCore::RenderSVGResourceMasker::maskUnits):
2714         (WebCore::RenderSVGResourceMasker::maskContentUnits):
2715         * rendering/svg/RenderSVGResourceRadialGradient.cpp:
2716         (WebCore::RenderSVGResourceRadialGradient::buildGradient): Use platformSpreadMethodFromSVGType().
2717         * rendering/svg/SVGRenderTreeAsText.cpp:
2718         (WebCore::operator<<): Use SVGPropertyTraits<SomeSVGEnumType>::toString() to convert from enum to string, remove code duplication.
2719         (WebCore::writeCommonGradientProperties):
2720         * rendering/svg/SVGTextChunkBuilder.cpp:
2721         (WebCore::SVGTextChunkBuilder::addTextChunk): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
2722         * rendering/svg/SVGTextLayoutEngine.cpp:
2723         (WebCore::SVGTextLayoutEngine::parentDefinesTextLength): Ditto.
2724         (WebCore::SVGTextLayoutEngine::beginTextPathLayout): Ditto.
2725         * svg/GradientAttributes.h: Change spread method type from platform GradientSpreadMethod to SVGSpreadMethodType.
2726         (WebCore::GradientAttributes::GradientAttributes):
2727         (WebCore::GradientAttributes::spreadMethod):
2728         (WebCore::GradientAttributes::setSpreadMethod):
2729         * svg/SVGAnimatedBoolean.idl: Enable potential exception raising on baseVal setting for the primitive types.
2730         * svg/SVGAnimatedEnumeration.h: Switch from generic SVGAnimatedStaticPropertyTearOff<int> to new SVGAnimatedEnumerationPropertyTearOff<EnumType>.
2731         * svg/SVGAnimatedEnumeration.idl: Enable potential exception raising on baseVal setting for the primitive types.
2732                                           Only SVGAnimatedEnumeration makes use of this if the assigned value is out of range.
2733         * svg/SVGAnimatedInteger.idl: Ditto.
2734         * svg/SVGAnimatedNumber.idl: Ditto.
2735         * svg/SVGAnimatedString.idl: Ditto.
2736         * svg/SVGClipPathElement.cpp:
2737         (WebCore::SVGClipPathElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<EnumType>::fromString(attr->value()).
2738         * svg/SVGClipPathElement.h:
2739         * svg/SVGComponentTransferFunctionElement.cpp:
2740         (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement): Initialize type to identity, not unknown, as per spec.
2741         (WebCore::SVGComponentTransferFunctionElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<EnumType>::fromString(attr->value()).
2742         (WebCore::SVGComponentTransferFunctionElement::transferFunction): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
2743         * svg/SVGComponentTransferFunctionElement.h: Remove svgAttributeChanged() method, that verified the enum value is not out of range.
2744                                                      It's not possible anymore for these values to go out of range.
2745         * svg/SVGFEBlendElement.cpp:
2746         (WebCore::SVGFEBlendElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<BlendModeType>::fromString(attr->value()).
2747         (WebCore::SVGFEBlendElement::setFilterEffectAttribute): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
2748         (WebCore::SVGFEBlendElement::build): Ditto.
2749         * svg/SVGFEBlendElement.h: Add SVGPropertyTraits<BlendModeType> specializations.
2750         * svg/SVGFEColorMatrixElement.cpp:
2751         (WebCore::SVGFEColorMatrixElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<ColorMatrixType>::fromString(attr->value()).
2752         (WebCore::SVGFEColorMatrixElement::setFilterEffectAttribute): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now..
2753         (WebCore::SVGFEColorMatrixElement::build): Ditto.
2754         * svg/SVGFEColorMatrixElement.h: Add SVGPropertyTraits<ColorMatrixType> specializations.
2755         * svg/SVGFECompositeElement.cpp:
2756         (WebCore::SVGFECompositeElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<CompositeOperationType>::fromString(attr->value()).
2757         (WebCore::SVGFECompositeElement::setFilterEffectAttribute): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
2758         (WebCore::SVGFECompositeElement::build): Ditto.
2759         * svg/SVGFECompositeElement.h: Add SVGPropertyTraits<CompositeOperationType> specializations.
2760         * svg/SVGFEConvolveMatrixElement.cpp: Fix typo, edgeMode needs to be associated with SVGNames::edgeModeAttr, not SVGNames::operatorAttr.
2761         (WebCore::SVGFEConvolveMatrixElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<EdgeModeType>::fromString(attr->value()).
2762         (WebCore::SVGFEConvolveMatrixElement::setFilterEffectAttribute): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
2763         (WebCore::SVGFEConvolveMatrixElement::synchronizeProperty): Add missing synchronizeProperty() implementation, otherwhise SVG DOM <-> XML DOM is not in sync.
2764         (WebCore::SVGFEConvolveMatrixElement::build): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
2765         * svg/SVGFEConvolveMatrixElement.h: Add SVGPropertyTraits<EdgeModeType> specializations.
2766         * svg/SVGFEDisplacementMapElement.cpp:
2767         (WebCore::SVGFEDisplacementMapElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<ChannelSelectorType>::fromString(attr->value()).
2768         (WebCore::SVGFEDisplacementMapElement::setFilterEffectAttribute): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
2769         (WebCore::SVGFEDisplacementMapElement::svgAttributeChanged): Remove range validation for enum types, they are always in range now.
2770         (WebCore::SVGFEDisplacementMapElement::build): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
2771         * svg/SVGFEDisplacementMapElement.h: Add SVGPropertyTraits<ChannelSelectorType> specializations.
2772         * svg/SVGFEMorphologyElement.cpp:
2773         (WebCore::SVGFEMorphologyElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<MorphologyOperatorType>::fromString(attr->value()).
2774         (WebCore::SVGFEMorphologyElement::setFilterEffectAttribute): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
2775         (WebCore::SVGFEMorphologyElement::build): Ditto.
2776         * svg/SVGFEMorphologyElement.h: Add SVGPropertyTraits<MorphologyOperatorType> specializations.
2777         * svg/SVGFETurbulenceElement.cpp:
2778         (WebCore::SVGFETurbulenceElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<SVGStitchOptions/TurbulenceType>::fromString(attr->value()).
2779         (WebCore::SVGFETurbulenceElement::setFilterEffectAttribute): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
2780         (WebCore::SVGFETurbulenceElement::build): Ditto.
2781         * svg/SVGFETurbulenceElement.h: Add SVGPropertyTraits<SVGStitchOptions/TurbulenceType> specializations.
2782         * svg/SVGFilterElement.cpp:
2783         (WebCore::SVGFilterElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<SVGUnitType>::fromString(attr->value()).
2784         * svg/SVGFilterElement.h:
2785         * svg/SVGGradientElement.cpp:
2786         (WebCore::SVGGradientElement::SVGGradientElement): Missing spread method default initialization: set it to 'pad' as per spec.
2787         (WebCore::SVGGradientElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<SVGUnitType/SVGSpreadMethodType>::fromString(attr->value()).
2788         * svg/SVGGradientElement.h: Add SVGPropertyTraits<SVGSpreadMethodType> specializations.
2789         * svg/SVGLinearGradientElement.cpp:
2790         (WebCore::SVGLinearGradientElement::collectGradientAttributes): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
2791         * svg/SVGMarkerElement.cpp:
2792         (WebCore::SVGMarkerElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<EnumType>::fromString(attr->value()).
2793         (WebCore::SVGMarkerElement::synchronizeOrientType): Add a custom synchronization method, that handles orientType/orientAngle -> orientAttr synchronization, which is special
2794                                                             as it depends on to other SVG DOM objects (SVGAnimatedAngle and SVGAnimatedEnumeration). All covered by new tests.
2795         (WebCore::SVGMarkerElement::orientTypeAnimated): Custom tear off creation method, which would usually be generated by the DECLARE_ANIMATED_... macros.
2796         * svg/SVGMarkerElement.h: Add SVGPropertyTraits<SVGMarkerUnitsType/SVGMarkerOrientType> specializations.
2797         (WebCore::SVGMarkerElement::orientType): Add custom property handling for the 'orientType' SVGAnimatedEnumeration object, as it has special demands, based on 'orientAngle'.
2798         (WebCore::SVGMarkerElement::orientTypeBaseValue): Ditto.
2799         (WebCore::SVGMarkerElement::setOrientTypeBaseValue): Ditto.
2800         * svg/SVGMaskElement.cpp:
2801         (WebCore::SVGMaskElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<EnumType>::fromString(attr->value()).
2802         * svg/SVGMaskElement.h:
2803         * svg/SVGPatternElement.cpp:
2804         (WebCore::SVGPatternElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<EnumType>::fromString(attr->value()).
2805         * svg/SVGPatternElement.h:
2806         * svg/SVGRadialGradientElement.cpp:
2807         (WebCore::SVGRadialGradientElement::collectGradientAttributes): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
2808         * svg/SVGTextContentElement.cpp:
2809         (WebCore::SVGTextContentElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<SVGLengthAdjustType>::fromString(attr->value()).
2810         * svg/SVGTextContentElement.h: Add SVGPropertyTraits<SVGLengthAdjustType> specializations.
2811         * svg/SVGTextPathElement.cpp:
2812         (WebCore::SVGTextPathElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<SVGTextPathMethodType/SVGTextPathSpacingType>::fromString(attr->value()).
2813         * svg/SVGTextPathElement.h: Add SVGPropertyTraits<SVGTextPathMethodType/SVGTextPathSpacingType> specializations.
2814         * svg/SVGUnitTypes.h: Add SVGPropertyTraits<SVGUnitType> specializations.
2815         * svg/properties/SVGAnimatedEnumerationPropertyTearOff.h: Added. SVGAnimatedEnumerationPropertyTearOff inherits from SVGAnimatedStaticPropertyTearOff<int>.
2816                                                                   SVGAnimatedEnumeration remains a typedef to SVGAnimatedStaticPropertyTearOff<int>, to have a common base
2817                                                                   class for all enum types. This special tear off object, overrides setBaseVal, to verify the incoming int
2818                                                                   is within the enum range, otherwhise raise an SVG DOM exception. This makes it impossible to make any of
2819                                                                   the enums go out of range anymore (which lead to security bugs in the past).
2820         (WebCore::SVGAnimatedEnumerationPropertyTearOff::setBaseVal):
2821         (WebCore::SVGAnimatedEnumerationPropertyTearOff::create):
2822         (WebCore::SVGAnimatedEnumerationPropertyTearOff::SVGAnimatedEnumerationPropertyTearOff):
2823         * svg/properties/SVGAnimatedStaticPropertyTearOff.h:
2824         (WebCore::SVGAnimatedStaticPropertyTearOff::setBaseVal): Made this method virtual, to SVGAnimatedEnumerationPropertyTearOff can override the default behaviour. Also added an ExceptionCode param.
2825         (WebCore::SVGAnimatedStaticPropertyTearOff::~SVGAnimatedStaticPropertyTearOff):
2826
2827 2011-05-18  Kinuko Yasuda  <kinuko@chromium.org>
2828
2829         Reviewed by David Levin.
2830
2831         Expose webkitStorageInfo.requestQuota() for Quota API if QUOTA flag is enabled
2832         https://bugs.webkit.org/show_bug.cgi?id=59681
2833
2834         Test: storage/storageinfo-request-quota.html
2835
2836         * CMakeLists.txt:
2837         * CodeGenerators.pri:
2838         * DerivedSources.cpp:
2839         * DerivedSources.make:
2840         * GNUmakefile.am:
2841         * GNUmakefile.list.am:
2842         * WebCore.gypi:
2843         * WebCore.vcproj/WebCore.vcproj:
2844         * WebCore.xcodeproj/project.pbxproj:
2845         * storage/StorageInfo.idl: Added requestQuota().
2846         * storage/StorageInfoQuotaCallback.idl: Added.
2847
2848 2011-05-18  Renata Hodovan  <reni@webkit.org>
2849
2850         Reviewed by Nikolas Zimmermann.
2851
2852         Apply the ParallelJobs support to FEGaussianBlur
2853         https://bugs.webkit.org/show_bug.cgi?id=61049
2854
2855         The Gaussian blur filter of SVG can consume lots of resources if it is
2856         applied to a large area. The computation can be distributed to multiple
2857         cores if the architecture supports.
2858         The average performance progression is about 15% on dual-core machines.
2859
2860         Developed in cooperation with Gabor Loki and Zoltan Herczeg.
2861
2862
2863         * platform/graphics/filters/FEGaussianBlur.cpp:
2864         (WebCore::FEGaussianBlur::platformApplyWorker):
2865         (WebCore::FEGaussianBlur::platformApply):
2866         * platform/graphics/filters/FEGaussianBlur.h:
2867
2868 2011-05-18  Pavel Feldman  <pfeldman@google.com>
2869
2870         Reviewed by Yury Semikhatsky.
2871
2872         Web Inspector: make parentId for frame optional.
2873         https://bugs.webkit.org/show_bug.cgi?id=61032
2874
2875         * inspector/Inspector.json:
2876         * inspector/InspectorPageAgent.cpp:
2877         (WebCore::InspectorPageAgent::buildObjectForFrame):
2878         * inspector/front-end/ResourceTreeModel.js:
2879         (WebInspector.ResourceTreeModel.prototype._addFrame):
2880
2881 2011-05-18  Gabor Loki  <loki@webkit.org>
2882
2883         Reviewed by Nikolas Zimmermann.
2884
2885         Apply the ParallelJobs support to FELighting
2886         https://bugs.webkit.org/show_bug.cgi?id=61048
2887
2888         The lighting filter of SVG can consume lots of resources if it is
2889         applied to a large area. The computation can be distributed to multiple
2890         cores if the architecture supports.
2891         The average performance progression is 10-20% on dual-core machines.
2892
2893         Developed in cooperation with Zoltan Herczeg.
2894
2895         * platform/graphics/filters/FELighting.cpp:
2896         (WebCore::FELighting::platformApplyGenericPaint):
2897         (WebCore::FELighting::platformApplyGenericWorker):
2898         (WebCore::FELighting::platformApplyGeneric):
2899         * platform/graphics/filters/FELighting.h:
2900         * platform/graphics/filters/arm/FELightingNEON.cpp:
2901         (WebCore::FELighting::platformApplyNeonWorker):
2902         * platform/graphics/filters/arm/FELightingNEON.h:
2903         (WebCore::FELighting::platformApplyNeon):
2904
2905 2011-05-18  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
2906
2907         Reviewed by Andreas Kling.
2908
2909         [Qt] Fix tst_QWebFrame::getSetStaticProperty() autotest
2910         https://bugs.webkit.org/show_bug.cgi?id=60984
2911
2912         The code for converting objects to QVariantMap was causing exception,
2913         that was "leaking" to the next evaluation. One situation was reading
2914         the property 'localStorage' when we do not have a proper security
2915         origin, which throws a SECURITY_ERR.
2916
2917         Now, we will simply not include on the QVariantMap those properties,
2918         and make sure that we clean the exception if necessary.
2919
2920         * bridge/qt/qt_runtime.cpp:
2921         (JSC::Bindings::convertValueToQVariantMap):
2922         Extracted function that performs conversion from JSObject to a QVariantMap. This
2923         functions makes sure that exception is clean after its execution.
2924
2925         (JSC::Bindings::convertValueToQVariant):
2926         Use the previous function. Add a comment explaining the choice of distance value.
2927
2928 2011-05-18  Ilya Tikhonovsky  <loislo@chromium.org>
2929
2930         Reviewed by Yury Semikhatsky.
2931
2932         Web Inspector: scripts panel file selector element doesn't track keyboard events 
2933         https://bugs.webkit.org/show_bug.cgi?id=61047
2934
2935         * inspector/front-end/ScriptsPanel.js:
2936         (WebInspector.ScriptsPanel):
2937
2938 2011-05-16  Pavel Podivilov  <podivilov@chromium.org>
2939
2940         Reviewed by Yury Semikhatsky.
2941
2942         Web Inspector: refactoring: ScriptDebugListener::didParseSource has too many parameters.
2943         https://bugs.webkit.org/show_bug.cgi?id=60900
2944
2945         * bindings/js/ScriptDebugServer.cpp:
2946         (WebCore::ScriptDebugServer::dispatchDidParseSource):
2947         * bindings/v8/ScriptDebugServer.cpp:
2948         (WebCore::ScriptDebugServer::dispatchDidParseSource):
2949         * inspector/InspectorDebuggerAgent.cpp:
2950         (WebCore::InspectorDebuggerAgent::getScriptSource):
2951         (WebCore::InspectorDebuggerAgent::didParseSource):
2952         * inspector/InspectorDebuggerAgent.h:
2953         * inspector/ScriptDebugListener.h:
2954         (WebCore::ScriptDebugListener::Script::Script):
2955
2956 2011-05-18  Alexander Pavlov  <apavlov@chromium.org>
2957
2958         Reviewed by Pavel Feldman.
2959
2960         Web Inspector: model-based CSS editing does not update @import-ed stylesheet resources
2961         https://bugs.webkit.org/show_bug.cgi?id=60966
2962
2963         Imported stylesheets didn't use to be returned by InspectorCSSAgent.
2964
2965         * inspector/InspectorCSSAgent.cpp:
2966         (WebCore::InspectorCSSAgent::getAllStyleSheets):
2967         (WebCore::InspectorCSSAgent::collectStyleSheets):
2968         * inspector/InspectorCSSAgent.h:
2969
2970 2011-05-18  Pavel Feldman  <pfeldman@google.com>
2971
2972         Reviewed by Yury Semikhatsky.
2973
2974         Web Inspector: make "Id" suffixes use consistent case.
2975         https://bugs.webkit.org/show_bug.cgi?id=61028
2976
2977         * inspector/InjectedScriptSource.js:
2978         * inspector/Inspector.json:
2979         * inspector/InspectorConsoleAgent.cpp:
2980         (WebCore::InspectorConsoleAgent::addMessageToConsole):
2981         * inspector/InspectorConsoleAgent.h:
2982         * inspector/InspectorConsoleInstrumentation.h:
2983         (WebCore::InspectorInstrumentation::addMessageToConsole):
2984         * inspector/InspectorDebuggerAgent.cpp:
2985         (WebCore::parseLocation):
2986         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
2987         (WebCore::InspectorDebuggerAgent::editScriptSource):
2988         (WebCore::InspectorDebuggerAgent::getScriptSource):
2989         (WebCore::InspectorDebuggerAgent::didParseSource):
2990         * inspector/InspectorDebuggerAgent.h:
2991         * inspector/InspectorInstrumentation.cpp:
2992         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
2993         * inspector/InspectorInstrumentation.h:
2994         * inspector/InspectorResourceAgent.cpp:
2995         (WebCore::buildObjectForResourceResponse):
2996         * inspector/ScriptDebugListener.h:
2997         * inspector/front-end/DebuggerModel.js:
2998         (WebInspector.DebuggerModel.prototype.scriptForSourceID):
2999         (WebInspector.DebuggerModel.prototype.queryScripts):
3000         (WebInspector.DebuggerModel.prototype.editScriptSource):
3001         (WebInspector.DebuggerModel.prototype._didEditScriptSource):
3002         (WebInspector.DebuggerModel.prototype._parsedScriptSource):
3003         (WebInspector.DebuggerDispatcher.prototype.scriptParsed):
3004         (WebInspector.DebuggerDispatcher.prototype.breakpointResolved):
3005         * inspector/front-end/DebuggerPresentationModel.js:
3006         (WebInspector.DebuggerPresentationModel.prototype.editScriptSource.didReceiveSource):
3007         (WebInspector.DebuggerPresentationModel.prototype.editScriptSource):
3008         (WebInspector.DebuggerPresentationModel.prototype._setBreakpointInDebugger.didRequestSourceMapping):
3009         (WebInspector.DebuggerPresentationModel.prototype._setBreakpointInDebugger):
3010         (WebInspector.DebuggerPresentationModel.prototype._debuggerPaused):
3011         (WebInspector.DebuggerPresentationModel.prototype._sourceFileForScript):
3012         (WebInspector.DebuggerPresentationModel.prototype._scriptForSourceFileId):
3013         (WebInspector.DebuggerPresentationModel.prototype._createSourceFileId):
3014         (WebInspector.PresenationCallFrame):
3015         * inspector/front-end/NetworkManager.js:
3016         (WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse):
3017         * inspector/front-end/Script.js:
3018         (WebInspector.Script):
3019         (WebInspector.Script.prototype.requestSource):
3020         (WebInspector.Script.prototype.editSource):
3021         * inspector/front-end/SourceFile.js:
3022         (WebInspector.SourceFile.prototype.forceLoadContent):
3023         (WebInspector.SourceFile.prototype._concatenateScriptsContent):
3024         (WebInspector.SourceMapping.prototype._sourceLocationToScriptLocation):
3025         (WebInspector):
3026
3027 2011-05-18  Sheriff Bot  <webkit.review.bot@gmail.com>
3028
3029         Unreviewed, rolling out r86747.
3030         http://trac.webkit.org/changeset/86747
3031         https://bugs.webkit.org/show_bug.cgi?id=61039
3032
3033         Breaks JSC debugger tests. (Requested by pfeldman on #webkit).
3034
3035         * inspector/InjectedScriptSource.js:
3036         ():
3037         * inspector/Inspector.json:
3038         * inspector/InspectorConsoleAgent.cpp:
3039         (WebCore::InspectorConsoleAgent::addMessageToConsole):
3040         * inspector/InspectorConsoleAgent.h:
3041         * inspector/InspectorConsoleInstrumentation.h:
3042         (WebCore::InspectorInstrumentation::addMessageToConsole):
3043         * inspector/InspectorDebuggerAgent.cpp:
3044         (WebCore::parseLocation):
3045         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
3046         (WebCore::InspectorDebuggerAgent::editScriptSource):
3047         (WebCore::InspectorDebuggerAgent::getScriptSource):
3048         (WebCore::InspectorDebuggerAgent::didParseSource):
3049         * inspector/InspectorDebuggerAgent.h:
3050         * inspector/InspectorInstrumentation.cpp:
3051         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
3052         * inspector/InspectorInstrumentation.h:
3053         * inspector/InspectorResourceAgent.cpp:
3054         (WebCore::buildObjectForResourceResponse):
3055         * inspector/ScriptDebugListener.h:
3056         * inspector/front-end/DebuggerModel.js:
3057         (WebInspector.DebuggerModel.prototype.scriptForSourceID):
3058         (WebInspector.DebuggerModel.prototype.queryScripts):
3059         (WebInspector.DebuggerModel.prototype.editScriptSource):
3060         (WebInspector.DebuggerModel.prototype._didEditScriptSource):
3061         (WebInspector.DebuggerModel.prototype._parsedScriptSource):
3062         (WebInspector.DebuggerDispatcher.prototype.scriptParsed):
3063         (WebInspector.DebuggerDispatcher.prototype.breakpointResolved):
3064         * inspector/front-end/DebuggerPresentationModel.js:
3065         (WebInspector.DebuggerPresentationModel.prototype.editScriptSource.didReceiveSource):
3066         (WebInspector.DebuggerPresentationModel.prototype.editScriptSource):
3067         (WebInspector.DebuggerPresentationModel.prototype._setBreakpointInDebugger.didRequestSourceMapping):
3068         (WebInspector.DebuggerPresentationModel.prototype._setBreakpointInDebugger):
3069         (WebInspector.DebuggerPresentationModel.prototype._debuggerPaused):
3070         (WebInspector.DebuggerPresentationModel.prototype._sourceFileForScript):
3071         (WebInspector.DebuggerPresentationModel.prototype._scriptForSourceFileId):
3072         (WebInspector.DebuggerPresentationModel.prototype._createSourceFileId):
3073         (WebInspector.PresenationCallFrame):
3074         * inspector/front-end/NetworkManager.js:
3075         (WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse):
3076         * inspector/front-end/Script.js:
3077         (WebInspector.Script):
3078         (WebInspector.Script.prototype.requestSource):
3079         (WebInspector.Script.prototype.editSource):
3080         * inspector/front-end/SourceFile.js:
3081         (WebInspector.SourceFile.prototype.forceLoadContent):
3082         (WebInspector.SourceFile.prototype._concatenateScriptsContent):
3083         (WebInspector.SourceMapping.prototype._sourceLocationToScriptLocation):
3084         (WebInspector):
3085
3086 2011-05-18  Abhishek Arya  <inferno@chromium.org>
3087
3088         Reviewed by Dirk Schulze.
3089
3090         When SMIL element is getting removed, make sure to remove it
3091         from target's animation elements list.
3092         https://bugs.webkit.org/show_bug.cgi?id=60980
3093
3094         Test: svg/animations/smil-element-not-removed-crash.html
3095
3096         * svg/animation/SVGSMILElement.cpp:
3097         (WebCore::SVGSMILElement::~SVGSMILElement):
3098
3099 2011-05-18  Pavel Feldman  <pfeldman@google.com>
3100
3101         Reviewed by Yury Semikhatsky.
3102
3103         Web Inspector: make "Id" suffixes use consistent case.
3104         https://bugs.webkit.org/show_bug.cgi?id=61028
3105
3106         * inspector/InjectedScriptSource.js:
3107         * inspector/Inspector.json:
3108         * inspector/InspectorConsoleAgent.cpp:
3109         (WebCore::InspectorConsoleAgent::addMessageToConsole):
3110         * inspector/InspectorConsoleAgent.h:
3111         * inspector/InspectorConsoleInstrumentation.h:
3112         (WebCore::InspectorInstrumentation::addMessageToConsole):
3113         * inspector/InspectorDebuggerAgent.cpp:
3114         (WebCore::parseLocation):
3115         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
3116         (WebCore::InspectorDebuggerAgent::editScriptSource):
3117         (WebCore::InspectorDebuggerAgent::getScriptSource):
3118         (WebCore::InspectorDebuggerAgent::didParseSource):
3119         * inspector/InspectorDebuggerAgent.h:
3120         * inspector/InspectorInstrumentation.cpp:
3121         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
3122         * inspector/InspectorInstrumentation.h:
3123         * inspector/InspectorResourceAgent.cpp:
3124         (WebCore::buildObjectForResourceResponse):
3125         * inspector/ScriptDebugListener.h:
3126         * inspector/front-end/DebuggerModel.js:
3127         (WebInspector.DebuggerModel.prototype.scriptForSourceID):
3128         (WebInspector.DebuggerModel.prototype.queryScripts):
3129         (WebInspector.DebuggerModel.prototype.editScriptSource):
3130         (WebInspector.DebuggerModel.prototype._didEditScriptSource):
3131         (WebInspector.DebuggerModel.prototype._parsedScriptSource):
3132         (WebInspector.DebuggerDispatcher.prototype.scriptParsed):
3133         (WebInspector.DebuggerDispatcher.prototype.breakpointResolved):
3134         * inspector/front-end/DebuggerPresentationModel.js:
3135         (WebInspector.DebuggerPresentationModel.prototype.editScriptSource.didReceiveSource):
3136         (WebInspector.DebuggerPresentationModel.prototype.editScriptSource):
3137         (WebInspector.DebuggerPresentationModel.prototype._setBreakpointInDebugger.didRequestSourceMapping):
3138         (WebInspector.DebuggerPresentationModel.prototype._setBreakpointInDebugger):
3139         (WebInspector.DebuggerPresentationModel.prototype._debuggerPaused):
3140         (WebInspector.DebuggerPresentationModel.prototype._sourceFileForScript):
3141         (WebInspector.DebuggerPresentationModel.prototype._scriptForSourceFileId):
3142         (WebInspector.DebuggerPresentationModel.prototype._createSourceFileId):
3143         (WebInspector.PresenationCallFrame):
3144         * inspector/front-end/NetworkManager.js:
3145         (WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse):
3146         * inspector/front-end/Script.js:
3147         (WebInspector.Script):
3148         (WebInspector.Script.prototype.requestSource):
3149         (WebInspector.Script.prototype.editSource):
3150         * inspector/front-end/SourceFile.js:
3151         (WebInspector.SourceFile.prototype.forceLoadContent):
3152         (WebInspector.SourceFile.prototype._concatenateScriptsContent):
3153         (WebInspector.SourceMapping.prototype._sourceLocationToScriptLocation):
3154         (WebInspector):
3155
3156 2011-05-18  Pavel Feldman  <pfeldman@google.com>
3157
3158         Reviewed by Yury Semikhatsky.
3159
3160         Web Inspector: do not reveal line -1 when navigating to anchor without line specified.
3161         https://bugs.webkit.org/show_bug.cgi?id=60971
3162
3163         * inspector/front-end/ResourcesPanel.js:
3164         (WebInspector.ResourcesPanel.prototype.showAnchorLocation):
3165         * inspector/front-end/ScriptsPanel.js:
3166         (WebInspector.ScriptsPanel.prototype.showAnchorLocation.):
3167         (WebInspector.ScriptsPanel.prototype.showAnchorLocation):
3168         * inspector/front-end/inspector.js:
3169         (WebInspector._showAnchorLocation):
3170
3171 2011-05-18  Kent Tamura  <tkent@chromium.org>
3172
3173         Reviewed by Hajime Morita.
3174
3175         valueMissing validity for <select> is lame when selecting a value by a key operation
3176         https://bugs.webkit.org/show_bug.cgi?id=61021
3177
3178         We missed updating validity in case that SelectElement::defaultEventHandler
3179         update selections.  So, SelectElement::setSelectedIndex() updates validity.
3180
3181         * dom/SelectElement.cpp:
3182         (WebCore::SelectElement::setSelectedIndex): Call SelectElement::updateValidity().
3183         * html/HTMLSelectElement.cpp:
3184         (WebCore::HTMLSelectElement::setSelectedIndex):
3185           Remove unnecessary setNeedsValidityCheck() call.
3186           SelectElement::setSlectedIndex() calls it.
3187         (WebCore::HTMLSelectElement::setSelectedIndexByUser): ditto.
3188
3189 2011-05-17  Mikhail Naganov  <mnaganov@chromium.org>
3190
3191         Reviewed by Pavel Feldman.
3192
3193         Web Inspector: [Chromium] Enable detailed heap snapshots by default.
3194         https://bugs.webkit.org/show_bug.cgi?id=60286
3195
3196         * inspector/front-end/ProfilesPanel.js:
3197
3198 2011-05-17  Mikhail Naganov  <mnaganov@chromium.org>
3199
3200         Reviewed by Pavel Feldman.
3201
3202         Web Inspector: [Chromium] Make retaining paths list of the Detailed
3203         heap snapshots view resizable.
3204         https://bugs.webkit.org/show_bug.cgi?id=60960
3205
3206         * inspector/front-end/DetailedHeapshotView.js:
3207         (WebInspector.DetailedHeapshotView.prototype.resize):
3208         (WebInspector.DetailedHeapshotView.prototype._startRetainersHeaderDragging):
3209         (WebInspector.DetailedHeapshotView.prototype._retainersHeaderDragging):
3210         (WebInspector.DetailedHeapshotView.prototype._endRetainersHeaderDragging):
3211         (WebInspector.DetailedHeapshotView.prototype._updateRetainmentViewHeight):
3212         * inspector/front-end/heapProfiler.css:
3213
3214 2011-05-16  Jeremy Noble  <jer.noble@apple.com>
3215
3216         Reviewed by Darin Adler.
3217
3218         Disable keyboard input (with exceptions) in full-screen mode.
3219         https://bugs.webkit.org/show_bug.cgi?id=60943
3220
3221         Tests: fullscreen/full-screen-keyboard-disabled.html
3222                fullscreen/full-screen-keyboard-enabled.html
3223
3224         * page/EventHandler.cpp:
3225         (WebCore::EventHandler::isKeyEventAllowedInFullScreen): Added.  Implements the 
3226             list of allowed keyboard events in the proposed API.
3227         (WebCore::EventHandler::keyEvent): Discard events which are not allowed in
3228             full-screen mode.
3229         * page/EventHandler.h:
3230
3231 2011-05-17  Nikolas Zimmermann  <nzimmermann@rim.com>
3232
3233         Reviewed by Dirk Schulze.
3234
3235         Refactor TextRun creation
3236         https://bugs.webkit.org/show_bug.cgi?id=60255
3237
3238         Add constructTextRun() methods to RenderBlock/InlineTextBox and use it in various places in rendering/.
3239         The long-term goal is to remove the ugly eight parameters catch-it-all TextRun constructor, and
3240         replace it with explicit setters/getters. To avoid expanding dozens of callsites, when removing
3241         the catch-it-all constructor, these helper functions are introduced, which hide the details of
3242         creating a TextRun.
3243
3244         Furthermore it will be used to remove the platform layering violation, that TextRun stores
3245         RenderObject pointers for the sake of SVG Fonts support, see bug 60254.
3246
3247         No change in functionaliy, no new tests.
3248
3249         * rendering/EllipsisBox.cpp:
3250         (WebCore::EllipsisBox::paint):
3251         (WebCore::EllipsisBox::selectionRect):
3252         (WebCore::EllipsisBox::paintSelection):
3253         * rendering/InlineTextBox.cpp:
3254         (WebCore::InlineTextBox::selectionRect):
3255         (WebCore::InlineTextBox::paint):
3256         (WebCore::InlineTextBox::paintSelection):
3257         (WebCore::InlineTextBox::paintCompositionBackground):
3258         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
3259         (WebCore::InlineTextBox::paintTextMatchMarker):
3260         (WebCore::InlineTextBox::computeRectForReplacementMarker):
3261         (WebCore::InlineTextBox::offsetForPosition):
3262         (WebCore::InlineTextBox::positionForOffset):
3263         (WebCore::InlineTextBox::constructTextRun):
3264         * rendering/InlineTextBox.h:
3265         * rendering/RenderBlock.cpp:
3266         (WebCore::RenderBlock::constructTextRunAllowTrailingExpansion):
3267         * rendering/RenderBlock.h:
3268         * rendering/RenderEmbeddedObject.cpp:
3269         (WebCore::RenderEmbeddedObject::getReplacementTextGeometry):
3270         * rendering/RenderFileUploadControl.cpp:
3271         (WebCore::RenderFileUploadControl::paintObject):
3272         (WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
3273         * rendering/RenderImage.cpp:
3274         (WebCore::RenderImage::setImageSizeForAltText):
3275         (WebCore::RenderImage::paintReplaced):
3276         * rendering/RenderListBox.cpp:
3277         (WebCore::RenderListBox::updateFromElement):
3278         * rendering/RenderTextControl.cpp:
3279         (WebCore::RenderTextControl::getAvgCharWidth):
3280
3281 2011-05-17  Jeremy Noble  <jer.noble@apple.com>
3282
3283         Reviewed by Darin Adler.
3284
3285         Removing a full-screen element or ancestor from the DOM should trigger exiting full-screen mode.
3286         https://bugs.webkit.org/show_bug.cgi?id=60997
3287
3288         Tests: fullscreen/full-screen-remove-ancestor.html
3289                fullscreen/full-screen-remove-children.html
3290                fullscreen/full-screen-remove.html
3291
3292         * dom/Document.cpp:
3293         (WebCore::Document::fullScreenChangeDelayTimerFired): If the target node was removed from the document
3294             make sure to message the documentElement() as well.
3295         (WebCore::Document::fullScreenElementRemoved): Cancel full screen mode.
3296
3297 2011-05-17  Yuta Kitamura  <yutak@chromium.org>
3298
3299         Reviewed by Kent Tamura.
3300
3301         WebSocket: Add CLOSING state
3302         https://bugs.webkit.org/show_bug.cgi?id=60878
3303
3304         No new tests are added because there is no change in functionality.
3305
3306         * platform/network/SocketStreamHandleBase.h:
3307         * websockets/WebSocket.h:
3308         * websockets/WebSocket.idl:
3309
3310 2011-05-16  MORITA Hajime  <morrita@google.com>
3311
3312         Reviewed by Dimitri Glazkov.
3313
3314         [Refactoring] ShadowContentElement should be part of dom/
3315         https://bugs.webkit.org/show_bug.cgi?id=59117
3316
3317         - Moved html/shadow/ShadowContentElement.h to dom/ShadowContentElement.h
3318         - Pulled ShadowContentElement up to a subclass of StyledElement, from HTMLDivElement
3319         - Added ShadowContentElement.cpp
3320         - Extracted ShadowContentSelector.{cpp,h} from ShadowRoot.{cpp,h}
3321         
3322         No new tests, no behavior change.
3323
3324         * CMakeLists.txt:
3325         * GNUmakefile.list.am:
3326         * WebCore.gypi:
3327         * WebCore.pro:
3328         * WebCore.vcproj/WebCore.vcproj:
3329         * WebCore.xcodeproj/project.pbxproj:
3330         * dom/DOMAllInOne.cpp: Added new ShadowContentSelector.cpp and ShadowContentElement.cpp.
3331         * dom/Node.h: 
3332         (WebCore::Node::forceReattach): Moved from static local function to share between classes.
3333         * dom/ShadowContentElement.cpp: Copied from Source/WebCore/html/shadow/ShadowContentElement.h.
3334         (WebCore::ShadowContentElement::attach):
3335         * dom/ShadowContentElement.h: Copied from Source/WebCore/html/shadow/ShadowContentElement.h.
3336         (WebCore::ShadowContentElement::ShadowContentElement):
3337         (WebCore::ShadowContentElement::isShadowBoundary):
3338         (WebCore::ShadowContentElement::rendererIsNeeded):
3339         (WebCore::ShadowContentElement::createRenderer):
3340         * dom/ShadowContentSelector.cpp: Copied from Source/WebCore/html/shadow/ShadowContentElement.h.
3341         (WebCore::ShadowContentSelector::ShadowContentSelector):
3342         (WebCore::ShadowContentSelector::~ShadowContentSelector):
3343         (WebCore::ShadowContentSelector::attachChildrenFor):
3344         * dom/ShadowContentSelector.h: Renamed from Source/WebCore/html/shadow/ShadowContentElement.h.
3345         (WebCore::ShadowContentSelector::shadowRoot):
3346         (WebCore::ShadowContentSelector::activeElement):
3347         (WebCore::ShadowContentSelector::currentInstance):
3348         * dom/ShadowRoot.cpp:
3349         (WebCore::ShadowRoot::recalcStyle):
3350         * html/HTMLDetailsElement.cpp:
3351         (WebCore::DetailsContentElement::DetailsContentElement):
3352         (WebCore::DetailsSummaryElement::DetailsSummaryElement):
3353         * html/HTMLSummaryElement.cpp:
3354         (WebCore::SummaryContentElement::SummaryContentElement):
3355
3356 2011-05-17  Cris Neckar  <cdn@chromium.org>
3357
3358         Reviewed by Adam Barth.
3359
3360         Clear the image from ImageLoader rather than clearing the ImageLoader in HTMLObjectElement::renderFallbackContent.
3361         https://bugs.webkit.org/show_bug.cgi?id=61005
3362
3363         Test: http/tests/loading/nested_bad_objects.php
3364
3365         * html/HTMLObjectElement.cpp:
3366         (WebCore::HTMLObjectElement::renderFallbackContent):
3367
3368 2011-05-17  Chris Rogers  <crogers@google.com>
3369
3370         Reviewed by Kenneth Russell.
3371
3372         Make sure that AudioNode gets re-enabled after having been disconnected and re-connected.
3373         https://bugs.webkit.org/show_bug.cgi?id=60995
3374
3375         No new tests since audio API is not yet implemented.
3376
3377         * webaudio/AudioNode.cpp:
3378         (WebCore::AudioNode::ref):
3379
3380 2011-05-17  Brady Eidson  <beidson@apple.com>
3381
3382         Reviewed by Darin Adler.
3383
3384         <rdar://problem/9366728> and https://webkit.org/b/60796
3385         Crash when code inside a ResourceLoadDelegate method calls [WebView stopLoading:]
3386
3387         Break up ResourceLoader::didCancel() into willCancel() and didCancel(), and making them pure virtual.
3388         This change has the following benefits:
3389           - Managing ResourceLoader state can be in the base class; Subclasses no longer need to protect
3390             themselves, check these variables as often, or ASSERT them.
3391           - ResourceLoader subclasses no longer have to call the base class ::didCancel
3392           - ResourceLoader::cancel becomes more capable of handling reentrancy with the design that the 
3393             cancellation is completed inside the last call.