REGRESSION (r105453): Crash when handling touch events
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-04-17  Yong Li  <yoli@rim.com>
2
3         REGRESSION (r105453): Crash when handling touch events
4         https://bugs.webkit.org/show_bug.cgi?id=81958
5
6         Reviewed by Antonio Gomes.
7
8         Always perform sanity checks when handling every touch point
9         because the node and document may have been destroyed or detached.
10
11         ManualTests/touch-stale-iframe-crash.html added.
12         (DumpRenderTree doesn't support transiting touch states in one shot yet)
13
14         * page/EventHandler.cpp:
15         (WebCore::EventHandler::handleTouchEvent):
16
17 2012-04-17  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
18
19         Asserts in XMLHttpRequestProgressEventThrottle
20         https://bugs.webkit.org/show_bug.cgi?id=81506
21
22         Reviewed by Julien Chaffraix.
23
24         The asserts were incorrectly triggered because suspending active DOM objects
25         (which suspends the XMLHttpRequestProgressEventThrottle) doesn't stop JavaScript
26         from running or suspend any running loader we may have. The previous code would
27         assume those 2 cases were impossible.
28
29         When XmlHttpRequest::open is called or data is received while the XmlHttpRequest object
30         is suspended the object may attempt to dispatch events. This patch defers these events
31         until the object is resumed.
32
33         Progress events are coalesced similar to normal throttling, and readystate-change events
34         are coalesced to avoid identical events emitted right after eachother.
35
36         On resume the events are dispatched after a timer to avoid interfering with 
37         ScriptExecutionContext which is iterating over suspended objects.
38
39         Test: fast/events/pagehide-xhr-open.html
40
41         * xml/XMLHttpRequestProgressEventThrottle.cpp:
42         (WebCore::XMLHttpRequestProgressEventThrottle::XMLHttpRequestProgressEventThrottle):
43         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchProgressEvent):
44         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchEvent):
45         (WebCore::XMLHttpRequestProgressEventThrottle::flushProgressEvent):
46         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchDeferredEvents):
47         (WebCore::XMLHttpRequestProgressEventThrottle::fired):
48         (WebCore::XMLHttpRequestProgressEventThrottle::suspend):
49         (WebCore::XMLHttpRequestProgressEventThrottle::resume):
50         * xml/XMLHttpRequestProgressEventThrottle.h:
51         (XMLHttpRequestProgressEventThrottle):
52
53 2012-04-16  Vsevolod Vlasov  <vsevik@chromium.org>
54
55         Web Inspector: [Chromium] Crash when inspecting empty IndexedDB object store.
56         https://bugs.webkit.org/show_bug.cgi?id=84035
57
58         Reviewed by Pavel Feldman.
59
60         Added a check that m_idbCursor is not null before calling postSuccessHandlerCallback() on it.
61
62         * inspector/InspectorIndexedDBAgent.cpp:
63         (WebCore):
64
65 2012-04-17  Pavel Feldman  <pfeldman@chromium.org>
66
67         Web Inspector: [regression r112413]content scripts tree outline is not added to the tab.
68         https://bugs.webkit.org/show_bug.cgi?id=84146
69
70         Reviewed by Vsevolod Vlasov.
71
72         Adding the tree to the container.
73
74         * inspector/front-end/ScriptsNavigator.js:
75         (WebInspector.ScriptsNavigator):
76
77 2012-04-17  Mariusz Grzegorczyk  <mariusz.g@samsung.com>
78
79         [EFL][WK2] Fix build break when CONTEXT_MENUS is disabled.
80         https://bugs.webkit.org/show_bug.cgi?id=83285
81
82         Reviewed by Ryosuke Niwa.
83
84         * platform/ContextMenuItem.h: Remove macro around enums - needed by InjectedBundle.
85         (WebCore):
86         * platform/Widget.h: Remove namespace WebCore for PlatformPageClient typedef.
87
88 2012-04-17  Kent Tamura  <tkent@chromium.org>
89
90         Introduce an internal feature for a fixed placeholder
91         https://bugs.webkit.org/show_bug.cgi?id=84009
92
93         Reviewed by Hajime Morita.
94
95         This change adds a framework to support fixed placeholder string for
96         textfield-like <input> without the palceholder attribute support. This
97         doesn't change any behavior of input types which support the
98         'placeholder' attribute.
99
100         According to the standard, <input type=date> doesn't support the
101         'placeholder' attribute. However it is a kind of text field in WebKit
102         platforms with ENABLE_CALENDAR_PICKER, and we may show something useful
103         information as the default placeholder.
104
105         No new tests because of no behavior changes.
106
107         * html/HTMLTextFormControlElement.h:
108         (HTMLTextFormControlElement): Make isPlaceholderEmpty() virtual.
109         * html/HTMLInputElement.h:
110         (HTMLInputElement): Overrides isPlaceholderEmpty().
111         * html/HTMLInputElement.cpp:
112         (WebCore::HTMLInputElement::isPlaceholderEmpty):
113         Check InputType::defaultPlaceholder() if InputType::usesFixedPlaceholder().
114         * html/InputType.cpp:
115         (WebCore::InputType::usesFixedPlaceholder): Added. Returns false.
116         (WebCore::InputType::fixedPlaceholder): Added. Returns a null string.
117         * html/InputType.h:
118         (InputType): Add usesFixedPlaceholder() and fixedPlaceholder().
119         * html/TextFieldInputType.cpp:
120         (WebCore::TextFieldInputType::updatePlaceholderText):
121         Uses fixedPlaceholder() instead of strippedPlaceholder() if usesFixedPlaceholder().
122
123 2012-04-17  Kent Tamura  <tkent@chromium.org>
124
125         Move some code of LocalizedNumberICU.cpp to ICULocale.cpp
126         https://bugs.webkit.org/show_bug.cgi?id=84128
127
128         Reviewed by Hajime Morita.
129
130         No new tests. No behavior change.
131
132         * WebCore.gypi: Add ICULocale.cpp
133         * platform/text/ICULocale.cpp:
134         Added. Move some code from LocalizedNumberICU.cpp
135         * platform/text/ICULocale.h:
136         (ICULocale): Add currentLocale().
137         * platform/text/LocalizedNumberICU.cpp:
138         (WebCore::convertToLocalizedNumber): Use ICULocale::currentLocale().
139         (WebCore::convertFromLocalizedNumber): ditto.
140
141 2012-04-17  Bang Kwang min  <justine.bang@samsung.com>
142
143         [Plugins] delete ws_info regardless of window mode.
144         https://bugs.webkit.org/show_bug.cgi?id=83004
145
146         Reviewed by Simon Hausmann.
147
148         m_npWindow.ws_info should be deleted even if plugin run as windowless mode to remove memory leak.
149         Every plugin works well after this patch without any crash.
150         Additionally, change casting syntax to C++ style.
151
152         * plugins/PluginView.cpp:
153         (WebCore::PluginView::stop):
154
155 2012-04-17  Kent Tamura  <tkent@chromium.org>
156
157         Calendar Picker: Support RTL layout
158         https://bugs.webkit.org/show_bug.cgi?id=83668
159
160         Reviewed by Hajime Morita.
161
162         Manual test: ManualTests/forms/calendar-picker.html
163
164         * Resources/calendarPicker.js:
165         (layout): If params.isRTL, add dir=rtl to the body.
166         (DaysTable.prototype._handleKey): Reverse Left and Right cursor keys if RTL.
167         * html/shadow/CalendarPickerElement.cpp:
168         (WebCore::addProperty): Add addProperty() with a bool value.
169         (WebCore::CalendarPickerElement::writeDocument):
170         Check the direction of the first character of localized January label,
171         and pass it as isRTL property.
172
173 2012-04-16  Carlos Garcia Campos  <cgarcia@igalia.com>
174
175         Unreviewed. Fix make distcheck issues.
176
177         * GNUmakefile.list.am: Add missing files.
178
179 2012-04-16  Hajime Morrita  <morrita@chromium.org>
180
181         insertedIntoDocument and insertedIntoTree should be unitifed.
182         https://bugs.webkit.org/show_bug.cgi?id=82701
183
184         Reviewed by Ryosuke Niwa.
185
186         Both Node::insertedIntoTree() and Node::insertedIntoDocument() are
187         served as lifecycle callbacks which are invoked when a node is
188         inserted into its new parent. There are also removedFromTree()
189         and removedFromDocument() respectively. Considering that this pair
190         of virtual functions are laid onto the hot path, it's worth
191         merging them into one, to gain some speedup. Such
192         unification could clarify the semantics as well.
193
194         This change makes following change to merge these functions.
195
196         - pulling the tree traversal out from ContainerNode to ChildNodeInsertionNotifier.
197         - letting new Node::insertInto() do the job for its own, but not
198           for its children and
199         - Pass the parent of each insertion root as a parameter of insertedInto().
200           This root node can tell inserted node where it is inserted,
201           specifically whetehr the insertion is to the document or not.
202
203         Same pattern is also applied to Node::removedFromDocument() and
204         Node::removedFromTree(), which are factored to Node::removedFrom()
205         and ChildNodeRemovalNotifier respectively.
206
207         Speed up on Dromaeo/dom-modify.html is about 2%.
208         Further speed-up by de-virtulization would be possible.
209
210         Caveat:
211
212         There is possible situation where a node need to invoke
213         insertedInto() after its children is nofitied, instead of before
214         that.  It was represented naturally with previous
215         traversal-by-ContainerNode pattern, but is no longer simple with
216         this new external traversal. To support this scenario, we
217         introduced the InsertionNotificationRequest as a return value of insertedInto()
218         and a supplemental hook Node::didNotifyDescendantInseretions(). See for
219         example HTMLFormElement.cpp to learn how it works.
220
221         No new tests. Covered by existing tests.
222
223         * CMakeLists.txt:
224         * GNUmakefile.list.am:
225         * Target.pri:
226         * WebCore.gypi:
227         * WebCore.xcodeproj/project.pbxproj:
228         * dom/ContainerNode.cpp:
229         (WebCore::ContainerNode::parserInsertBefore):
230         (WebCore::ContainerNode::removeChild):
231         (WebCore::ContainerNode::parserRemoveChild):
232         (WebCore::ContainerNode::removeChildren):
233         (WebCore::ContainerNode::parserAddChild):
234         (WebCore::updateTreeAfterInsertion):
235         * dom/ContainerNode.h:
236         (ContainerNode):
237         (WebCore::Node::highestAncestor):
238         (WebCore):
239         * dom/ContainerNodeAlgorithms.cpp: Added.
240         (WebCore):
241         (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
242         (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoTree):
243         (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
244         (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromTree):
245         * dom/ContainerNodeAlgorithms.h:
246         (ChildNodeInsertionNotifier):
247         (WebCore::ChildNodeInsertionNotifier::ChildNodeInsertionNotifier):
248         (WebCore):
249         (ChildNodeRemovalNotifier):
250         (WebCore::ChildNodeRemovalNotifier::ChildNodeRemovalNotifier):
251         (WebCore::removeAllChildrenInContainer):
252         (WebCore::appendChildToContainer):
253         (Private):
254         (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument):
255         (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree):
256         (WebCore::ChildNodeInsertionNotifier::notifyInsertedIntoDocument):
257         (WebCore::ChildNodeInsertionNotifier::notify):
258         (WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromDocument):
259         (WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromTree):
260         (WebCore::ChildNodeRemovalNotifier::notify):
261         * dom/DOMAllInOne.cpp:
262         * dom/DocumentType.cpp:
263         (WebCore::DocumentType::insertedInto):
264         (WebCore::DocumentType::removedFrom):
265         * dom/DocumentType.h:
266         (DocumentType):
267         * dom/Element.cpp:
268         (WebCore::Element::insertedInto):
269         (WebCore::Element::removedFrom):
270         * dom/Element.h:
271         (Element):
272         * dom/Node.cpp:
273         (WebCore::Node::insertedInto):
274         (WebCore::Node::removedFrom):
275         * dom/Node.h:
276         (Node):
277         (WebCore::Node::didNotifyDescendantInseretions):
278         * dom/ProcessingInstruction.cpp:
279         (WebCore::ProcessingInstruction::insertedInto):
280         (WebCore::ProcessingInstruction::removedFrom):
281         * dom/ProcessingInstruction.h:
282         (ProcessingInstruction):
283         * dom/ScriptElement.cpp:
284         (WebCore::ScriptElement::insertedInto):
285         * dom/ScriptElement.h:
286         (WebCore):
287         (ScriptElement):
288         * dom/ShadowTree.cpp:
289         (WebCore::ShadowTree::addShadowRoot):
290         (WebCore::ShadowTree::removeAllShadowRoots):
291         * dom/ShadowTree.h:
292         (ShadowTree):
293         (ShadowRootVector):
294         (WebCore::ShadowRootVector::ShadowRootVector):
295         (WebCore):
296         * html/FormAssociatedElement.cpp:
297         (WebCore::FormAssociatedElement::insertedInto):
298         (WebCore::FormAssociatedElement::removedFrom):
299         (WebCore::FormAssociatedElement::formRemovedFromTree):
300         * html/FormAssociatedElement.h:
301         (FormAssociatedElement):
302         * html/HTMLBaseElement.cpp:
303         (WebCore::HTMLBaseElement::insertedInto):
304         (WebCore::HTMLBaseElement::removedFrom):
305         * html/HTMLBaseElement.h:
306         (HTMLBaseElement):
307         * html/HTMLBodyElement.cpp:
308         (WebCore::HTMLBodyElement::insertedInto):
309         (WebCore::HTMLBodyElement::didNotifyDescendantInseretions):
310         * html/HTMLBodyElement.h:
311         (HTMLBodyElement):
312         * html/HTMLFormControlElement.cpp:
313         (WebCore::HTMLFormControlElement::insertedInto):
314         (WebCore::HTMLFormControlElement::removedFrom):
315         * html/HTMLFormControlElement.h:
316         (HTMLFormControlElement):
317         * html/HTMLFormElement.cpp:
318         (WebCore::HTMLFormElement::insertedInto):
319         (WebCore::HTMLFormElement::didNotifyDescendantInseretions):
320         (WebCore::HTMLFormElement::removedFrom):
321         * html/HTMLFormElement.h:
322         (HTMLFormElement):
323         * html/HTMLFrameElementBase.cpp:
324         (WebCore::HTMLFrameElementBase::insertedInto):
325         (WebCore):
326         (WebCore::HTMLFrameElementBase::didNotifyDescendantInseretions):
327         * html/HTMLFrameElementBase.h:
328         (HTMLFrameElementBase):
329         * html/HTMLFrameSetElement.cpp:
330         (WebCore::HTMLFrameSetElement::insertedInto):
331         (WebCore::HTMLFrameSetElement::removedFrom):
332         * html/HTMLFrameSetElement.h:
333         (HTMLFrameSetElement):
334         * html/HTMLIFrameElement.cpp:
335         (WebCore::HTMLIFrameElement::insertedInto):
336         (WebCore::HTMLIFrameElement::removedFrom):
337         * html/HTMLIFrameElement.h:
338         (HTMLIFrameElement):
339         * html/HTMLImageElement.cpp:
340         (WebCore::HTMLImageElement::insertedInto):
341         (WebCore::HTMLImageElement::removedFrom):
342         * html/HTMLImageElement.h:
343         (HTMLImageElement):
344         * html/HTMLInputElement.cpp:
345         (WebCore::HTMLInputElement::insertedInto):
346         (WebCore::HTMLInputElement::removedFrom):
347         * html/HTMLInputElement.h:
348         * html/HTMLLinkElement.cpp:
349         (WebCore::HTMLLinkElement::insertedInto):
350         (WebCore::HTMLLinkElement::removedFrom):
351         * html/HTMLLinkElement.h:
352         (HTMLLinkElement):
353         * html/HTMLMapElement.cpp:
354         (WebCore::HTMLMapElement::insertedInto):
355         (WebCore::HTMLMapElement::removedFrom):
356         * html/HTMLMapElement.h:
357         (HTMLMapElement):
358         * html/HTMLMediaElement.cpp:
359         (WebCore::HTMLMediaElement::insertedInto):
360         (WebCore::HTMLMediaElement::removedFrom):
361         * html/HTMLMediaElement.h:
362         (HTMLMediaElement):
363         * html/HTMLMetaElement.cpp:
364         (WebCore::HTMLMetaElement::insertedInto):
365         * html/HTMLMetaElement.h:
366         (HTMLMetaElement):
367         * html/HTMLObjectElement.cpp:
368         (WebCore::HTMLObjectElement::insertedInto):
369         (WebCore::HTMLObjectElement::removedFrom):
370         * html/HTMLObjectElement.h:
371         (HTMLObjectElement):
372         * html/HTMLOptionElement.cpp:
373         (WebCore::HTMLOptionElement::insertedInto):
374         * html/HTMLOptionElement.h:
375         (HTMLOptionElement):
376         * html/HTMLQuoteElement.cpp:
377         (WebCore::HTMLQuoteElement::insertedInto):
378         * html/HTMLQuoteElement.h:
379         (HTMLQuoteElement):
380         * html/HTMLScriptElement.cpp:
381         (WebCore::HTMLScriptElement::insertedInto):
382         * html/HTMLScriptElement.h:
383         (HTMLScriptElement):
384         * html/HTMLSelectElement.cpp:
385         (WebCore::HTMLSelectElement::insertedInto):
386         * html/HTMLSelectElement.h:
387         * html/HTMLSourceElement.cpp:
388         (WebCore::HTMLSourceElement::insertedInto):
389         * html/HTMLSourceElement.h:
390         (HTMLSourceElement):
391         * html/HTMLStyleElement.cpp:
392         (WebCore::HTMLStyleElement::insertedInto):
393         (WebCore::HTMLStyleElement::removedFrom):
394         * html/HTMLStyleElement.h:
395         (HTMLStyleElement):
396         * html/HTMLTextFormControlElement.cpp:
397         (WebCore::HTMLTextFormControlElement::insertedInto):
398         * html/HTMLTextFormControlElement.h:
399         * html/HTMLTitleElement.cpp:
400         (WebCore::HTMLTitleElement::insertedInto):
401         (WebCore::HTMLTitleElement::removedFrom):
402         * html/HTMLTitleElement.h:
403         (HTMLTitleElement):
404         * html/HTMLTrackElement.cpp:
405         (WebCore::HTMLTrackElement::insertedInto):
406         * html/HTMLTrackElement.h:
407         (HTMLTrackElement):
408         * mathml/MathMLMathElement.cpp:
409         (WebCore::MathMLMathElement::insertedInto):
410         * mathml/MathMLMathElement.h:
411         (MathMLMathElement):
412         * svg/SVGElement.cpp:
413         (WebCore::SVGElement::removedFrom):
414         * svg/SVGElement.h:
415         (SVGElement):
416         * svg/SVGFEImageElement.cpp:
417         (WebCore::SVGFEImageElement::insertedInto):
418         (WebCore::SVGFEImageElement::removedFrom):
419         * svg/SVGFEImageElement.h:
420         (SVGFEImageElement):
421         * svg/SVGFontFaceElement.cpp:
422         (WebCore::SVGFontFaceElement::insertedInto):
423         (WebCore::SVGFontFaceElement::removedFrom):
424         * svg/SVGFontFaceElement.h:
425         (SVGFontFaceElement):
426         * svg/SVGFontFaceUriElement.cpp:
427         (WebCore::SVGFontFaceUriElement::insertedInto):
428         * svg/SVGFontFaceUriElement.h:
429         (SVGFontFaceUriElement):
430         * svg/SVGGlyphElement.cpp:
431         (WebCore::SVGGlyphElement::insertedInto):
432         (WebCore::SVGGlyphElement::removedFrom):
433         * svg/SVGGlyphElement.h:
434         (SVGGlyphElement):
435         * svg/SVGHKernElement.cpp:
436         (WebCore::SVGHKernElement::insertedInto):
437         (WebCore::SVGHKernElement::removedFrom):
438         * svg/SVGHKernElement.h:
439         (SVGHKernElement):
440         * svg/SVGImageElement.cpp:
441         (WebCore::SVGImageElement::insertedInto):
442         * svg/SVGImageElement.h:
443         (SVGImageElement):
444         * svg/SVGSVGElement.cpp:
445         (WebCore::SVGSVGElement::insertedInto):
446         (WebCore::SVGSVGElement::removedFrom):
447         * svg/SVGSVGElement.h:
448         (SVGSVGElement):
449         * svg/SVGScriptElement.cpp:
450         (WebCore::SVGScriptElement::insertedInto):
451         * svg/SVGScriptElement.h:
452         (SVGScriptElement):
453         * svg/SVGStyleElement.cpp:
454         (WebCore::SVGStyleElement::insertedInto):
455         (WebCore::SVGStyleElement::removedFrom):
456         * svg/SVGStyleElement.h:
457         (SVGStyleElement):
458         * svg/SVGStyledElement.cpp:
459         (WebCore::SVGStyledElement::insertedInto):
460         (WebCore::SVGStyledElement::removedFrom):
461         (WebCore::SVGStyledElement::updateRelativeLengthsInformation):
462         * svg/SVGStyledElement.h:
463         (SVGStyledElement):
464         * svg/SVGTRefElement.cpp:
465         (WebCore::SVGTRefElement::buildPendingResource):
466         (WebCore::SVGTRefElement::insertedInto):
467         (WebCore::SVGTRefElement::removedFrom):
468         * svg/SVGTRefElement.h:
469         (SVGTRefElement):
470         * svg/SVGTextPathElement.cpp:
471         (WebCore::SVGTextPathElement::insertedInto):
472         * svg/SVGTextPathElement.h:
473         * svg/SVGTitleElement.cpp:
474         (WebCore::SVGTitleElement::insertedInto):
475         (WebCore::SVGTitleElement::removedFrom):
476         * svg/SVGTitleElement.h:
477         (SVGTitleElement):
478         * svg/SVGUseElement.cpp:
479         (WebCore::SVGUseElement::insertedInto):
480         (WebCore::SVGUseElement::removedFrom):
481         * svg/SVGUseElement.h:
482         (SVGUseElement):
483         * svg/SVGVKernElement.cpp:
484         (WebCore::SVGVKernElement::insertedInto):
485         (WebCore::SVGVKernElement::removedFrom):
486         * svg/SVGVKernElement.h:
487         (SVGVKernElement):
488         * svg/animation/SVGSMILElement.cpp:
489         (WebCore::SVGSMILElement::insertedInto):
490         (WebCore::SVGSMILElement::removedFrom):
491         * svg/animation/SVGSMILElement.h:
492         (SVGSMILElement):
493
494 2012-04-16  David Barr  <davidbarr@chromium.org>
495
496         Stack overflow in CSS parser caused by recursive stylesheet import
497         https://bugs.webkit.org/show_bug.cgi?id=83545
498
499         Reviewed by Ryosuke Niwa.
500
501         Test: http/tests/css/css-imports-redirect-cycle.html
502
503         * css/CSSImportRule.cpp:
504         (WebCore::StyleRuleImport::requestStyleSheet):
505
506 2012-04-16  Kent Tamura  <tkent@chromium.org>
507
508         Rename LocalizedNumberICU.h to ICULocale.h
509         https://bugs.webkit.org/show_bug.cgi?id=84119
510
511         Reviewed by Kentaro Hara.
512
513         LocalizedNumberICU.h contains only ICULocale class. It should be
514         named as ICULocale.h. We're going to move some functions in
515         LocalizedDateICU.cpp and LocalizedCalendarICU.cpp to ICULocale,
516         and add unit tests for them.
517
518         * WebCore.gypi: Rename LocalizedNumberICU.h to ICULocale.h
519         * platform/text/ICULocale.h:
520         Renamed from Source/WebCore/platform/text/LocalizedNumberICU.h.
521         * platform/text/LocalizedNumberICU.cpp:
522         Rename LocalizedNumberICU.h to ICULocale.h
523
524 2012-04-16  James Robinson  <jamesr@chromium.org>
525
526         [chromium] Move paintRenderedResultsToCanvas code into DrawingBuffer
527         https://bugs.webkit.org/show_bug.cgi?id=84066
528
529         Reviewed by Adrienne Walker.
530
531         WebGLLayerChromium used to be responsible for the readback path for software painting WebGL canvases (for
532         printing, etc), but this path no longer has any compositor interaction. This moves the code into
533         DrawingBufferChromium which is responsible for managing the front / back buffers for WebGL.
534
535         * platform/graphics/chromium/DrawingBufferChromium.cpp:
536         (WebCore::DrawingBuffer::paintCompositedResultsToCanvas):
537         * platform/graphics/chromium/WebGLLayerChromium.cpp:
538         * platform/graphics/chromium/WebGLLayerChromium.h:
539         (WebGLLayerChromium):
540
541 2012-04-16  Dana Jansens  <danakj@chromium.org>
542
543         [chromium] Expose compositor filters to Aura through WebLayer
544         https://bugs.webkit.org/show_bug.cgi?id=80054
545
546         Reviewed by James Robinson.
547
548         Adds WebFilterOperation that wraps WebCore::FilterOperation and
549         WebFilterOperations that wraps WebCore::FilterOperations.
550
551         We add support for most of the FilterOperation subclasses, and
552         allow the user to set the WebFilterOperations for both layer
553         content filters and background filters.
554
555         * WebCore.gypi:
556         * platform/chromium/support/WebFilterOperation.cpp: Added.
557         (WebKit):
558         (WebKit::WebBasicColorMatrixFilterOperation::toFilterOperation):
559         (WebKit::WebBasicComponentTransferFilterOperation::toFilterOperation):
560         (WebKit::WebBlurFilterOperation::toFilterOperation):
561         (WebKit::WebDropShadowFilterOperation::toFilterOperation):
562         * platform/chromium/support/WebFilterOperations.cpp: Added.
563         (WebKit):
564         (WebKit::WebFilterOperations::WebFilterOperations):
565         (WebKit::WebFilterOperations::append):
566         (WebKit::WebFilterOperations::clear):
567         (WebKit::WebFilterOperations::toFilterOperations):
568
569 2012-04-16  Andrei Burago  <aburago@chromium.org>
570
571         Auto-sized frames may be taller than expected
572         https://bugs.webkit.org/show_bug.cgi?id=84106
573
574         Reviewed by David Levin.
575
576         No new tests. The repro steps require using Chrome notifications on Win.
577
578         * page/FrameView.cpp:
579         (WebCore::FrameView::autoSizeIfEnabled):
580
581 2012-04-13  James Robinson  <jamesr@chromium.org>
582
583         [chromium] Expose WebVideoLayer to Platform API and port WebMediaPlayerClientImpl to using it
584         https://bugs.webkit.org/show_bug.cgi?id=83963
585
586         Reviewed by Adrienne Walker.
587
588         Converts VideoLayerChromium / CCVideoLayerImpl to use a Platform WebVideoFrameProvider interface instead of a
589         WebCore VideoFrameProvider.
590
591         * WebCore.gypi:
592         * platform/graphics/chromium/VideoLayerChromium.cpp:
593         (WebCore::VideoLayerChromium::create):
594         (WebCore::VideoLayerChromium::VideoLayerChromium):
595         * platform/graphics/chromium/VideoLayerChromium.h:
596         (WebKit):
597         (WebCore):
598         (VideoLayerChromium):
599         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
600         (WebCore::CCVideoLayerImpl::CCVideoLayerImpl):
601         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
602         (WebCore::CCVideoLayerImpl::create):
603         (CCVideoLayerImpl):
604
605 2012-04-16  Takashi Sakamoto  <tasak@google.com>
606
607         [Shadow DOM] InsertionPoint should have isActive() member function.
608         https://bugs.webkit.org/show_bug.cgi?id=82010
609
610         Reviewed by Hajime Morita.
611
612         This patch adds isActive public member function to InsertionPoint and
613         makes InsertionPoint elements consider whether active or not.
614         If an InsertionPoint is inactive, the element is not shadow boundary
615         and is needed to be rendered.
616         c.f. https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#dfn-active-insertion-point
617
618         Test: update existing tests, i.e.
619         LayoutTests/fast/dom/shadow/shadow-contents-fallback-dynamic.html and
620         LayoutTests/fast/dom/shadow/shadow-contents-fallback.html
621
622         * html/shadow/InsertionPoint.cpp:
623         (WebCore::InsertionPoint::isActive):
624         A new public method for checking whether an insertion point is active or inactive.
625         If active, returns true. Otherwise, false.
626         (WebCore::InsertionPoint::isShadowBoundary):
627         Make the method consider whether an insertin point is active or inactive.
628         (WebCore::InsertionPoint::rendererIsNeeded):
629         Changed to return true If an insertion point is inactive.
630         (WebCore::InsertionPoint::attach):
631         Changed to call only HTMLElement::attach If an insertion point is inactive.
632         (WebCore::InsertionPoint::detach):
633         Changed to call only HTMLElement::detach If an insertion point is inactive.
634         * html/shadow/InsertionPoint.h:
635         (InsertionPoint):
636         Added isActive public method.
637         * dom/NodeRenderingContext.cpp:
638         (WebCore::NodeRenderingContext::NodeRenderingContext):
639         Changed to take into account an insertion point's activeness when parent is an insertion point.
640         (WebCore::NodeRenderingContext::firstRendererOf):
641         (WebCore::NodeRenderingContext::lastRendererOf):
642         Changed to take into account an insertion point's activeness.
643
644 2012-04-16  MORITA Hajime  <morrita@google.com>
645
646         Type tags in NodeFlags could be compressed
647         https://bugs.webkit.org/show_bug.cgi?id=79299
648
649         Because existing node flags which indicate the class of each node
650         are mutually exclusive, these flags can be represented as a enum.
651         This patch introduces Node::NodeTypeTag to turn these flags into a
652         enum, and embeds it into Node::m_nodeFlags.
653
654         Reviewed by Antti Koivisto.
655
656         No new tests. No bahavior change.
657
658         * dom/Node.cpp:
659         (WebCore):
660         * dom/Node.h:
661         (WebCore):
662         (Node):
663         (WebCore::Node::typeTag):
664         (WebCore::Node::parentNode):
665         (WebCore::Node::parentNodeGuaranteedHostFree):
666         (WebCore::Node::isContainerNode):
667         (WebCore::Node::isElementNode):
668         (WebCore::Node::isStyledElement):
669         (WebCore::Node::isTextNode):
670         (WebCore::Node::isHTMLElement):
671         (WebCore::Node::isSVGElement):
672         (WebCore::Node::isShadowRoot):
673
674 2012-04-16  Sheriff Bot  <webkit.review.bot@gmail.com>
675
676         Unreviewed, rolling out r114285.
677         http://trac.webkit.org/changeset/114285
678         https://bugs.webkit.org/show_bug.cgi?id=84107
679
680         broke fast/media/media-query-list-08.html in Mac (Requested by
681         andersca on #webkit).
682
683         * dom/Document.cpp:
684         (WebCore::Document::styleSelectorChanged):
685         * dom/Document.h:
686         (Document):
687         * page/FrameView.cpp:
688         (WebCore::FrameView::layout):
689
690 2012-04-16  Nate Chapin  <japhet@chromium.org>
691
692         Remove unused variable CachedResourceLoader::m_loadFinishing
693         https://bugs.webkit.org/show_bug.cgi?id=84100
694
695         Reviewed by Alexey Proskuryakov.
696
697         No new tests, removing dead code.
698
699         * loader/cache/CachedResourceLoader.cpp:
700         (WebCore::CachedResourceLoader::CachedResourceLoader):
701         (WebCore::CachedResourceLoader::loadDone):
702         (WebCore::CachedResourceLoader::decrementRequestCount):
703         * loader/cache/CachedResourceLoader.h:
704         (CachedResourceLoader):
705         (WebCore::CachedResourceLoader::requestCount):
706
707 2012-04-16  Andreas Kling  <kling@webkit.org>
708
709         Remove contextStyleSheet argument from CSSValuePool::createFontFaceValue().
710         <http://webkit.org/b/83988>
711
712         Reviewed by Antti Koivisto.
713
714         Remove the 'context style sheet' argument to <font face> value parsing.
715         It was only ever used to grab at the CSSValuePool back when they were per-Document.
716
717         * css/CSSParser.h:
718         * css/CSSParser.cpp:
719         (WebCore::CSSParser::parseFontFaceValue):
720         * css/CSSValuePool.h:
721         * css/CSSValuePool.cpp:
722         (WebCore::CSSValuePool::createFontFaceValue):
723         * html/HTMLFontElement.cpp:
724         (WebCore::HTMLFontElement::collectStyleForAttribute):
725
726 2012-04-16  Dana Jansens  <danakj@chromium.org>
727
728         [chromium] Consistent checking for clipped rects when we need the computed result enclosed within the real result
729         https://bugs.webkit.org/show_bug.cgi?id=83543
730
731         Reviewed by Adrienne Walker.
732
733         It should not be possible to make a rect in layer space that is clipped
734         by the camera but for which the screen space transform gives a
735         rectilinear output. But use consistent methods for checking that the
736         result remains enclosed within the actual pixels.
737
738         One day when clipped is true, we can find an interior axis-aligned rect
739         within the clipped result, and checking clipped explicitly makes this
740         more clear.
741
742         Covered by existing tests.
743
744         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
745         (WebCore::computeOcclusionBehindLayer):
746         (WebCore::::markOccludedBehindLayer):
747
748 2012-04-16  Erik Arvidsson  <arv@chromium.org>
749
750         [V8] Don't delete the per context data until the V8IsolatedContext is deleted
751         https://bugs.webkit.org/show_bug.cgi?id=83831
752
753         Reviewed by Nate Chapin.
754
755         Test: http/tests/security/isolatedWorld/context-destroy.html
756
757         * bindings/v8/V8IsolatedContext.cpp:
758         (WebCore::V8IsolatedContext::destroy):
759
760 2012-04-16  Greg Billock  <gbillock@google.com>
761
762         Add V8 code generation support for MessagePortArray attributes.
763         https://bugs.webkit.org/show_bug.cgi?id=83943
764
765         Reviewed by Kentaro Hara.
766
767         * bindings/scripts/CodeGeneratorV8.pm:
768         (GenerateNormalAttrGetter):
769         * bindings/scripts/IDLAttributes.txt:
770         * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.cpp:
771         (WebDOMTestSerializedScriptValueInterface::ports):
772         * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.h:
773         (WebDOMTestSerializedScriptValueInterface):
774         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
775         (webkit_dom_test_serialized_script_value_interface_get_property):
776         (webkit_dom_test_serialized_script_value_interface_class_init):
777         (webkit_dom_test_serialized_script_value_interface_get_ports):
778         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
779         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
780         (WebCore):
781         (WebCore::jsTestSerializedScriptValueInterfacePorts):
782         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
783         (WebCore):
784         * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.h:
785         * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.mm:
786         (-[DOMTestSerializedScriptValueInterface ports]):
787         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
788         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
789         (WebCore::TestSerializedScriptValueInterfaceInternal::portsAttrGetter):
790         (TestSerializedScriptValueInterfaceInternal):
791         (WebCore):
792
793 2012-04-16  Xiaomei Ji  <xji@chromium.org>
794
795         platform/graphics/skia/GlyphPageTreeNodeSkia.cpp mis-use 'continue' for 'break'
796         https://bugs.webkit.org/show_bug.cgi?id=83521
797
798         Reviewed by David Levin.
799
800         No functionality change, so no new tests.
801
802         * platform/graphics/skia/GlyphPageTreeNodeSkia.cpp:
803         (WebCore::GlyphPage::fill):
804
805 2012-04-16  Levi Weintraub  <leviw@chromium.org>
806
807         Make borderBoxRect sub-pixel precise and add a pixel snapped version
808         https://bugs.webkit.org/show_bug.cgi?id=84063
809
810         Reviewed by Eric Seidel.
811
812         In an effort to prevent misuse, we previously decided to have borderBoxRect return a
813         pixel-snapped IntRect. This is because borderBoxRect returns a rect that's positioned
814         at (0,0), and therefore won't snap to the same size as the element it's covering.
815
816         There are a couple uses of borderBoxRect that don't pixel snap the values and require
817         sub-pixel precision. This patch adds a pixelSnappedBorderBoxRect that makes the snapping
818         explicit, and moves uses that would otherwise pixel snap the rect to this version to
819         avoid producing a rect of the incorrect size. For details about pixel snapping with
820         LayoutUnits, please see https://trac.webkit.org/wiki/LayoutUnit
821
822         No new tests. No change in behavior.
823
824         * html/shadow/TextControlInnerElements.cpp:
825         (WebCore::SpinButtonElement::defaultEventHandler):
826         * rendering/RenderBlock.cpp:
827         (WebCore::RenderBlock::addVisualOverflowFromTheme):
828         * rendering/RenderBox.h:
829         (WebCore::RenderBox::borderBoxRect):
830         (WebCore::RenderBox::pixelSnappedBorderBoxRect):
831         (WebCore::RenderBox::borderBoundingBox):
832         (WebCore::RenderBox::hasVisualOverflow):
833         * rendering/RenderLayer.cpp:
834         (WebCore::RenderLayer::scrollCornerRect):
835         (WebCore::RenderLayer::scrollCornerAndResizerRect):
836         (WebCore::RenderLayer::horizontalScrollbarStart):
837         (WebCore::RenderLayer::positionOverflowControls):
838         (WebCore::RenderLayer::paintResizer):
839         (WebCore::RenderLayer::hitTestOverflowControls):
840         * rendering/RenderLayerBacking.cpp:
841         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
842         (WebCore::RenderLayerBacking::startAnimation):
843         (WebCore::RenderLayerBacking::startTransition):
844         * rendering/RenderTable.cpp:
845         (WebCore::RenderTable::addOverflowFromChildren):
846         * rendering/RenderThemeMac.mm:
847         (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
848         (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration):
849         (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
850         * rendering/svg/RenderSVGRoot.cpp:
851         (WebCore::RenderSVGRoot::paintReplaced):
852         (WebCore::RenderSVGRoot::computeFloatRectForRepaint):
853
854 2012-04-16  Anders Carlsson  <andersca@apple.com>
855
856         Crash when running some editing related tests
857         https://bugs.webkit.org/show_bug.cgi?id=84091
858
859         Reviewed by Andreas Kling.
860
861         Null check triggeringEvent.
862
863         * editing/Editor.cpp:
864         (WebCore::Editor::insertTextWithoutSendingTextEvent):
865
866 2012-04-16  Simon Fraser  <simon.fraser@apple.com>
867
868         Rename to updateZOrderListsSlowCase to rebuildZOrderLists
869         https://bugs.webkit.org/show_bug.cgi?id=84071
870
871         Reviewed by Antti Koivisto.
872
873         Use a better name for updateZOrderListsSlowCase().
874
875         * rendering/RenderLayer.cpp:
876         (WebCore::RenderLayer::rebuildZOrderLists):
877         * rendering/RenderLayer.h:
878         (RenderLayer):
879         (WebCore::RenderLayer::updateZOrderLists):
880
881 2012-04-16  Terry Anderson  <tdanderson@chromium.org>
882
883         [chromium] Allow WebGestureEvent to store four floating point values
884         https://bugs.webkit.org/show_bug.cgi?id=84053
885
886         Reviewed by Darin Fisher.
887
888         See bug description for an explanation of the changes made.
889
890         * platform/PlatformGestureEvent.h:
891         (WebCore::PlatformGestureEvent::PlatformGestureEvent):
892         (PlatformGestureEvent):
893         (WebCore::PlatformGestureEvent::gammaX):
894         (WebCore::PlatformGestureEvent::gammaY):
895
896 2012-04-16  Kentaro Hara  <haraken@chromium.org>
897
898         [Refactoring][V8] Remove $indent from NativeToJSValue()
899         https://bugs.webkit.org/show_bug.cgi?id=84077
900
901         Reviewed by Nate Chapin.
902
903         $indent in NativeToJSValue() in CodeGeneratorV8.pm is not used.
904         This patch removes it.
905
906         No new tests. No change in behavior.
907
908         * bindings/scripts/CodeGeneratorV8.pm:
909         (GenerateNormalAttrGetter):
910         (GenerateFunctionCallString):
911         (NativeToJSValue):
912
913 2012-04-16  Luiz Agostini  <luiz.agostini@palm.com>
914
915         matchMedia() MediaQueryList not updating
916         https://bugs.webkit.org/show_bug.cgi?id=75903
917
918         Reviewed by Antti Koivisto.
919
920         Test: fast/media/media-query-list-08.html
921
922         Viewport related MediaQueryList listeners were not triggered and the value
923         of matches were not updated if the document's style selector were not
924         affected by viewport changes.
925
926         The new method evaluateMediaQueries() is now called by FrameView instead of
927         styleSelectorChanged() if the style selector is not affected by viewport changes.
928
929         * dom/Document.cpp:
930         (WebCore::Document::evaluateMediaQueries):
931         (WebCore):
932         (WebCore::Document::styleSelectorChanged):
933         * dom/Document.h:
934         (Document):
935         * page/FrameView.cpp:
936         (WebCore::FrameView::layout):
937
938 2012-04-16  James Robinson  <jamesr@chromium.org>
939
940         [chromium] Delete uncalled unreserveContentsTextures function
941         https://bugs.webkit.org/show_bug.cgi?id=84005
942
943         Reviewed by Adrienne Walker.
944
945         This is vestigal dead code.
946
947         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
948         * platform/graphics/chromium/Canvas2DLayerChromium.h:
949         (Canvas2DLayerChromium):
950         * platform/graphics/chromium/LayerChromium.h:
951         * platform/graphics/chromium/cc/CCLayerImpl.h:
952         (CCLayerImpl):
953
954 2012-04-13  Simon Fraser  <simon.fraser@apple.com>
955
956         Avoid using backing store for compositing layers that just need to clip
957         https://bugs.webkit.org/show_bug.cgi?id=40547
958
959         Reviewed by Dean Jackson.
960         
961         If a layer becomes composited because it needs to clip composited
962         descendants, or if it has perspective, then it doesn't actually
963         needs its own backing store; its contents can be painted by an
964         ancestor, and we can just have an empty layer that does the clipping
965         or applies the perspective transform.
966         
967         This saves backing store memory on some pages.
968
969         Tests: compositing/backing/no-backing-for-clip-overlap.html
970                compositing/backing/no-backing-for-clip.html
971                compositing/backing/no-backing-for-perspective.html
972
973         * rendering/RenderLayer.cpp:
974         (WebCore):
975         (WebCore::RenderLayer::enclosingCompositingLayerForRepaint):
976         (WebCore::RenderLayer::paintLayer):
977         * rendering/RenderLayer.h:
978         (RenderLayer):
979         * rendering/RenderLayerBacking.cpp:
980         (WebCore::RenderLayerBacking::RenderLayerBacking):
981         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
982         (WebCore::RenderLayerBacking::containsPaintedContent):
983         (WebCore::RenderLayerBacking::setContentsNeedDisplay):
984         (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
985         (WebCore::RenderLayerBacking::paintIntoLayer):
986         * rendering/RenderLayerBacking.h:
987         (RenderLayerBacking):
988         (WebCore::RenderLayerBacking::paintsIntoCompositedAncestor):
989         (WebCore::RenderLayerBacking::setRequiresOwnBackingStore):
990         * rendering/RenderLayerCompositor.cpp:
991         (WebCore::RenderLayerCompositor::layerWillBeRemoved):
992         (WebCore::RenderLayerCompositor::recursiveRepaintLayerRect):
993         (WebCore::RenderLayerCompositor::requiresCompositingLayer):
994         (WebCore::RenderLayerCompositor::requiresOwnBackingStore):
995         (WebCore):
996         * rendering/RenderLayerCompositor.h:
997         * rendering/RenderObject.cpp:
998         (WebCore::RenderObject::containerForRepaint):
999         * rendering/RenderTreeAsText.cpp:
1000         (WebCore::write):
1001         * rendering/RenderView.cpp:
1002         (WebCore::RenderView::paintBoxDecorations):
1003
1004 2012-04-16  Brady Eidson  <beidson@apple.com>
1005
1006         <rdar://problem/11249336> and https://bugs.webkit.org/show_bug.cgi?id=84050
1007         WebKit2 back/forward items in the page cache are never removed when the page is closed
1008
1009         Reviewed by Jessie Berlin and unofficially reviewed by Jon Lee.
1010
1011         * WebCore.exp.in: Export PageCache::remove()
1012
1013 2012-04-16  Philippe Normand  <pnormand@igalia.com>
1014
1015         Unreviewed, GTK build fix after r114269.
1016
1017         * GNUmakefile.list.am:
1018
1019 2012-04-16  Andrey Kosyakov  <caseq@chromium.org>
1020
1021         Web Inspector: timeline. Range selection works incorrect with right click
1022         https://bugs.webkit.org/show_bug.cgi?id=83870
1023
1024         Reviewed by Pavel Feldman.
1025
1026         - only start window dragging upon mousedown with left button (right will cause a context menu and we won't see mouseup)
1027
1028         * inspector/front-end/TimelineOverviewPane.js:
1029         (WebInspector.TimelineOverviewWindow.prototype._dragWindow):
1030
1031 2012-04-16  Andrey Kosyakov  <caseq@chromium.org>
1032
1033         Web Inspector: touch pad is pain to use in lower pane of Timeline panel due two two-axis scrolling
1034         https://bugs.webkit.org/show_bug.cgi?id=83946
1035
1036         Reviewed by Pavel Feldman.
1037
1038         Remove delegation of mousewheel events from lower timeline pane to the timeline overview. This disables
1039         support for moving overview window with horizontal swype over lower timeline pane, thus removing
1040         an irritating situation when we try to both change overview window and scroll lower timeline pane
1041         upon a single touchpad gesture. Those willing to move timeline window now would need to position
1042         mouse over overview.
1043
1044         * inspector/front-end/TimelineOverviewPane.js:
1045         (WebInspector.TimelineOverviewWindow.prototype._onMouseWheel):
1046         (WebInspector.TimelineOverviewWindow.prototype._zoom):
1047         * inspector/front-end/TimelinePanel.js:
1048         (WebInspector.TimelinePanel):
1049
1050 2012-04-16  Yury Semikhatsky  <yurys@chromium.org>
1051
1052         Web Inspector: rename heap profiler files and classes DetailedHeapshot* ->HeapSnapshot*
1053         https://bugs.webkit.org/show_bug.cgi?id=84038
1054
1055         A bunch of renames "detailed heapshot" -> "heap snapshot".
1056
1057         Reviewed by Pavel Feldman.
1058
1059         Tests: inspector/profiler/heap-snapshot-comparison-expansion-preserved-when-sorting.html
1060                inspector/profiler/heap-snapshot-comparison-show-all.html
1061                inspector/profiler/heap-snapshot-comparison-show-next.html
1062                inspector/profiler/heap-snapshot-comparison-shown-node-count-preserved-when-sorting.html
1063                inspector/profiler/heap-snapshot-comparison-sorting.html
1064                inspector/profiler/heap-snapshot-containment-expansion-preserved-when-sorting.html
1065                inspector/profiler/heap-snapshot-containment-show-all.html
1066                inspector/profiler/heap-snapshot-containment-show-next.html
1067                inspector/profiler/heap-snapshot-containment-shown-node-count-preserved-when-sorting.html
1068                inspector/profiler/heap-snapshot-containment-sorting.html
1069                inspector/profiler/heap-snapshot-dominators-expansion-preserved-when-sorting.html
1070                inspector/profiler/heap-snapshot-dominators-show-all.html
1071                inspector/profiler/heap-snapshot-dominators-show-next.html
1072                inspector/profiler/heap-snapshot-dominators-shown-node-count-preserved-when-sorting.html
1073                inspector/profiler/heap-snapshot-dominators-sorting.html
1074                inspector/profiler/heap-snapshot-summary-expansion-preserved-when-sorting.html
1075                inspector/profiler/heap-snapshot-summary-show-all.html
1076                inspector/profiler/heap-snapshot-summary-show-next.html
1077                inspector/profiler/heap-snapshot-summary-shown-node-count-preserved-when-sorting.html
1078                inspector/profiler/heap-snapshot-summary-sorting.html
1079
1080         * WebCore.gypi:
1081         * WebCore.vcproj/WebCore.vcproj:
1082         * inspector/compile-front-end.py:
1083         * inspector/front-end/HeapSnapshotGridNodes.js: Renamed from Source/WebCore/inspector/front-end/DetailedHeapshotGridNodes.js.
1084         (WebInspector.HeapSnapshotGridNode):
1085         (WebInspector.HeapSnapshotGridNode.prototype.ensureContentCreated):
1086         (WebInspector.HeapSnapshotGridNode.prototype.createCell):
1087         (WebInspector.HeapSnapshotGridNode.prototype.dispose):
1088         (WebInspector.HeapSnapshotGridNode.prototype.hasHoverMessage.false.queryObjectContent):
1089         (WebInspector.HeapSnapshotGridNode.prototype._toPercentString):
1090         (WebInspector.HeapSnapshotGridNode.prototype._createValueCell):
1091         (WebInspector.HeapSnapshotGridNode.prototype._populate.sorted):
1092         (WebInspector.HeapSnapshotGridNode.prototype._populate):
1093         (WebInspector.HeapSnapshotGridNode.prototype.populateChildren.callSerialize):
1094         (WebInspector.HeapSnapshotGridNode.prototype.populateChildren.childrenRetrieved.notify):
1095         (WebInspector.HeapSnapshotGridNode.prototype.populateChildren.childrenRetrieved):
1096         (WebInspector.HeapSnapshotGridNode.prototype.populateChildren):
1097         (WebInspector.HeapSnapshotGridNode.prototype._saveChildren):
1098         (WebInspector.HeapSnapshotGridNode.prototype.sort.afterSort.afterPopulate):
1099         (WebInspector.HeapSnapshotGridNode.prototype.sort.afterSort):
1100         (WebInspector.HeapSnapshotGridNode.prototype.sort):
1101         (WebInspector.HeapSnapshotLazyGridNode):
1102         (WebInspector.HeapSnapshotLazyGridNode.prototype.ensureContentCreated):
1103         (WebInspector.HeapSnapshotLazyGridNode.prototype.createCells):
1104         (WebInspector.HeapSnapshotGenericObjectNode):
1105         (WebInspector.HeapSnapshotGenericObjectNode.prototype.createCell):
1106         (WebInspector.HeapSnapshotGenericObjectNode.prototype._createObjectCell):
1107         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
1108         (WebInspector.HeapSnapshotGenericObjectNode.prototype.queryObjectContent.else.formatResult):
1109         (WebInspector.HeapSnapshotGenericObjectNode.prototype.queryObjectContent):
1110         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get _retainedSizePercent):
1111         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get _shallowSizePercent):
1112         (WebInspector.HeapSnapshotGenericObjectNode.prototype.updateHasChildren):
1113         (WebInspector.HeapSnapshotGenericObjectNode.prototype.isWindow):
1114         (WebInspector.HeapSnapshotGenericObjectNode.prototype.shortenWindowURL):
1115         (WebInspector.HeapSnapshotObjectNode):
1116         (WebInspector.HeapSnapshotObjectNode.prototype.updateHasChildren):
1117         (WebInspector.HeapSnapshotObjectNode.prototype._createChildNode):
1118         (WebInspector.HeapSnapshotObjectNode.prototype._childHashForEntity):
1119         (WebInspector.HeapSnapshotObjectNode.prototype._childHashForNode):
1120         (WebInspector.HeapSnapshotObjectNode.prototype.comparator):
1121         (WebInspector.HeapSnapshotObjectNode.prototype._emptyData):
1122         (WebInspector.HeapSnapshotObjectNode.prototype._enhanceData):
1123         (WebInspector.HeapSnapshotObjectNode.prototype._prefixObjectCell):
1124         (WebInspector.HeapSnapshotInstanceNode):
1125         (WebInspector.HeapSnapshotInstanceNode.prototype._createChildNode):
1126         (WebInspector.HeapSnapshotInstanceNode.prototype._childHashForEntity):
1127         (WebInspector.HeapSnapshotInstanceNode.prototype._childHashForNode):
1128         (WebInspector.HeapSnapshotInstanceNode.prototype.comparator):
1129         (WebInspector.HeapSnapshotInstanceNode.prototype._emptyData):
1130         (WebInspector.HeapSnapshotInstanceNode.prototype._enhanceData):
1131         (WebInspector.HeapSnapshotInstanceNode.prototype.get isDeletedNode):
1132         (WebInspector.HeapSnapshotConstructorNode):
1133         (WebInspector.HeapSnapshotConstructorNode.prototype.createCell):
1134         (WebInspector.HeapSnapshotConstructorNode.prototype._createChildNode):
1135         (WebInspector.HeapSnapshotConstructorNode.prototype._createNodesProvider):
1136         (WebInspector.HeapSnapshotConstructorNode.prototype.comparator):
1137         (WebInspector.HeapSnapshotConstructorNode.prototype._childHashForEntity):
1138         (WebInspector.HeapSnapshotConstructorNode.prototype._childHashForNode):
1139         (WebInspector.HeapSnapshotConstructorNode.prototype.get data):
1140         (WebInspector.HeapSnapshotConstructorNode.prototype.get _countPercent):
1141         (WebInspector.HeapSnapshotConstructorNode.prototype.get _retainedSizePercent):
1142         (WebInspector.HeapSnapshotConstructorNode.prototype.get _shallowSizePercent):
1143         (WebInspector.HeapSnapshotIteratorsTuple):
1144         (WebInspector.HeapSnapshotIteratorsTuple.prototype.dispose):
1145         (WebInspector.HeapSnapshotIteratorsTuple.prototype.sortAndRewind):
1146         (WebInspector.HeapSnapshotDiffNode):
1147         (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff.diffCalculated):
1148         (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff):
1149         (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff.baseIdsReceived):
1150         (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff.idsReceived):
1151         (WebInspector.HeapSnapshotDiffNode.prototype._createChildNode):
1152         (WebInspector.HeapSnapshotDiffNode.prototype._createNodesProvider.createProvider):
1153         (WebInspector.HeapSnapshotDiffNode.prototype._createNodesProvider):
1154         (WebInspector.HeapSnapshotDiffNode.prototype._childHashForEntity):
1155         (WebInspector.HeapSnapshotDiffNode.prototype._childHashForNode):
1156         (WebInspector.HeapSnapshotDiffNode.prototype.comparator):
1157         (WebInspector.HeapSnapshotDiffNode.prototype.populateChildren.firstProviderPopulated):
1158         (WebInspector.HeapSnapshotDiffNode.prototype.populateChildren.else.firstProviderPopulated):
1159         (WebInspector.HeapSnapshotDiffNode.prototype.populateChildren):
1160         (WebInspector.HeapSnapshotDiffNode.prototype._signForDelta):
1161         (WebInspector.HeapSnapshotDiffNode.prototype.get data):
1162         (WebInspector.HeapSnapshotDominatorObjectNode):
1163         (WebInspector.HeapSnapshotDominatorObjectNode.prototype._createChildNode):
1164         (WebInspector.HeapSnapshotDominatorObjectNode.prototype._createProvider):
1165         (WebInspector.HeapSnapshotDominatorObjectNode.prototype._childHashForEntity):
1166         (WebInspector.HeapSnapshotDominatorObjectNode.prototype._childHashForNode):
1167         (WebInspector.HeapSnapshotDominatorObjectNode.prototype.comparator):
1168         (WebInspector.HeapSnapshotDominatorObjectNode.prototype._emptyData):
1169         (MixInSnapshotNodeFunctions):
1170         * inspector/front-end/HeapSnapshotView.js: Renamed from Source/WebCore/inspector/front-end/DetailedHeapshotView.js.
1171         (WebInspector.HeapSnapshotSortableDataGrid):
1172         (WebInspector.HeapSnapshotSortableDataGrid.prototype.dispose):
1173         (WebInspector.HeapSnapshotSortableDataGrid.prototype.resetSortingCache):
1174         (WebInspector.HeapSnapshotSortableDataGrid.prototype.sortingChanged.SortByTwoFields):
1175         (WebInspector.HeapSnapshotSortableDataGrid.prototype.sortingChanged):
1176         (WebInspector.HeapSnapshotSortableDataGrid.prototype.updateVisibleNodes):
1177         (WebInspector.HeapSnapshotSortableDataGrid.prototype.onResize):
1178         (WebInspector.HeapSnapshotSortableDataGrid.prototype._onScroll):
1179         (WebInspector.HeapSnapshotSortableDataGrid.prototype._performSorting):
1180         (WebInspector.HeapSnapshotSortableDataGrid.prototype.recursiveSortingEnter):
1181         (WebInspector.HeapSnapshotSortableDataGrid.prototype.recursiveSortingLeave):
1182         (WebInspector.HeapSnapshotContainmentDataGrid):
1183         (WebInspector.HeapSnapshotContainmentDataGrid.prototype._defaultPopulateCount.100.expandRoute.nextStep.else.afterExpand):
1184         (WebInspector.HeapSnapshotContainmentDataGrid.prototype._defaultPopulateCount.100.expandRoute):
1185         (WebInspector.HeapSnapshotContainmentDataGrid.prototype.setDataSource):
1186         (WebInspector.HeapSnapshotContainmentDataGrid.prototype.sortingChanged):
1187         (WebInspector.HeapSnapshotRetainmentDataGrid):
1188         (WebInspector.HeapSnapshotRetainmentDataGrid.prototype._sortFields):
1189         (WebInspector.HeapSnapshotRetainmentDataGrid.prototype.reset):
1190         (WebInspector.HeapSnapshotConstructorsDataGrid):
1191         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._defaultPopulateCount.100._sortFields):
1192         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.setDataSource):
1193         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.populateChildren):
1194         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._filterSelectIndexChanged):
1195         (WebInspector.HeapSnapshotDiffDataGrid):
1196         (WebInspector.HeapSnapshotDiffDataGrid.prototype._defaultPopulateCount.50._sortFields):
1197         (WebInspector.HeapSnapshotDiffDataGrid.prototype.setDataSource):
1198         (WebInspector.HeapSnapshotDiffDataGrid.prototype._baseProfileIndexChanged):
1199         (WebInspector.HeapSnapshotDiffDataGrid.prototype.setBaseDataSource):
1200         (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived.addNodeIfNonZeroDiff):
1201         (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived):
1202         (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren):
1203         (WebInspector.HeapSnapshotDominatorsDataGrid):
1204         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype._defaultPopulateCount.25.setDataSource):
1205         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.sortingChanged):
1206         (WebInspector.HeapSnapshotView.profileCallback):
1207         (WebInspector.HeapSnapshotView):
1208         (WebInspector.HeapSnapshotView.prototype.dispose):
1209         (WebInspector.HeapSnapshotView.prototype.get statusBarItems):
1210         (WebInspector.HeapSnapshotView.prototype.get profile):
1211         (WebInspector.HeapSnapshotView.prototype.get profileWrapper):
1212         (WebInspector.HeapSnapshotView.prototype.get baseProfile):
1213         (WebInspector.HeapSnapshotView.prototype.get baseProfileWrapper):
1214         (WebInspector.HeapSnapshotView.prototype.wasShown.profileCallback1):
1215         (WebInspector.HeapSnapshotView.prototype.wasShown.profileCallback2):
1216         (WebInspector.HeapSnapshotView.prototype.wasShown):
1217         (WebInspector.HeapSnapshotView.prototype.willHide):
1218         (WebInspector.HeapSnapshotView.prototype.onResize):
1219         (WebInspector.HeapSnapshotView.prototype.searchCanceled):
1220         (WebInspector.HeapSnapshotView.prototype.performSearch.matchesByName):
1221         (WebInspector.HeapSnapshotView.prototype.performSearch.matchesById):
1222         (WebInspector.HeapSnapshotView.prototype.performSearch.matchesQuery):
1223         (WebInspector.HeapSnapshotView.prototype.performSearch):
1224         (WebInspector.HeapSnapshotView.prototype.jumpToFirstSearchResult):
1225         (WebInspector.HeapSnapshotView.prototype.jumpToLastSearchResult):
1226         (WebInspector.HeapSnapshotView.prototype.jumpToNextSearchResult):
1227         (WebInspector.HeapSnapshotView.prototype.jumpToPreviousSearchResult):
1228         (WebInspector.HeapSnapshotView.prototype.showingFirstSearchResult):
1229         (WebInspector.HeapSnapshotView.prototype.showingLastSearchResult):
1230         (WebInspector.HeapSnapshotView.prototype._jumpToSearchResult):
1231         (WebInspector.HeapSnapshotView.prototype.refreshVisibleData):
1232         (WebInspector.HeapSnapshotView.prototype._changeBase):
1233         (WebInspector.HeapSnapshotView.prototype._changeFilter):
1234         (WebInspector.HeapSnapshotView.prototype._createToolbarWithClassNameFilter):
1235         (WebInspector.HeapSnapshotView.prototype._changeNameFilter):
1236         (WebInspector.HeapSnapshotView.prototype._profiles):
1237         (WebInspector.HeapSnapshotView.prototype._loadProfile):
1238         (WebInspector.HeapSnapshotView.prototype._loadProfileByIndex):
1239         (WebInspector.HeapSnapshotView.prototype.isDetailedSnapshot):
1240         (WebInspector.HeapSnapshotView.prototype.processLoadedSnapshot):
1241         (WebInspector.HeapSnapshotView.prototype._selectionChanged):
1242         (WebInspector.HeapSnapshotView.prototype._inspectedObjectChanged):
1243         (WebInspector.HeapSnapshotView.prototype._setRetainmentDataGridSource):
1244         (WebInspector.HeapSnapshotView.prototype._mouseDownInContentsGrid):
1245         (WebInspector.HeapSnapshotView.prototype.changeView.sortingComplete):
1246         (WebInspector.HeapSnapshotView.prototype.changeView):
1247         (WebInspector.HeapSnapshotView.prototype._changeView):
1248         (WebInspector.HeapSnapshotView.prototype._getHoverAnchor):
1249         (WebInspector.HeapSnapshotView.prototype._resolveObjectForPopover):
1250         (WebInspector.HeapSnapshotView.prototype._helpClicked.appendHelp):
1251         (WebInspector.HeapSnapshotView.prototype._helpClicked):
1252         (WebInspector.HeapSnapshotView.prototype._startRetainersHeaderDragging):
1253         (WebInspector.HeapSnapshotView.prototype._retainersHeaderDragging):
1254         (WebInspector.HeapSnapshotView.prototype._endRetainersHeaderDragging):
1255         (WebInspector.HeapSnapshotView.prototype._updateRetainmentViewHeight):
1256         (WebInspector.HeapSnapshotView.prototype._updateBaseOptions):
1257         (WebInspector.HeapSnapshotView.prototype._updateFilterOptions):
1258         (WebInspector.HeapSnapshotProfileType):
1259         (WebInspector.HeapSnapshotProfileType.prototype.get buttonTooltip):
1260         (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
1261         (WebInspector.HeapSnapshotProfileType.prototype.get treeItemTitle):
1262         (WebInspector.HeapSnapshotProfileType.prototype.get description):
1263         (WebInspector.HeapSnapshotProfileType.prototype.createSidebarTreeElementForProfile):
1264         (WebInspector.HeapSnapshotProfileType.prototype.createView):
1265         * inspector/front-end/ProfilesPanel.js:
1266         (WebInspector.ProfilesPanel.prototype._addHeapSnapshotChunk):
1267         (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot):
1268         (WebInspector.ProfilesPanel.prototype._reportHeapSnapshotProgress):
1269         * inspector/front-end/WebKit.qrc:
1270         * inspector/front-end/heapProfiler.css:
1271         (.heap-snapshot-view):
1272         (.heap-snapshot-view.visible):
1273         (.heap-snapshot-view .view):
1274         (.heap-snapshot-view .view.visible):
1275         (.heap-snapshot-view .data-grid tr:empty):
1276         (.heap-snapshot-view .data-grid):
1277         (.heap-snapshot-view .data-grid td.count-column):
1278         (.heap-snapshot-view .data-grid td.addedCount-column):
1279         (.heap-snapshot-view .data-grid td.removedCount-column):
1280         (.heap-snapshot-view .data-grid td.countDelta-column):
1281         (.heap-snapshot-view .data-grid td.addedSize-column):
1282         (.heap-snapshot-view .data-grid td.removedSize-column):
1283         (.heap-snapshot-view .data-grid td.sizeDelta-column):
1284         (.heap-snapshot-view .data-grid td.shallowSize-column):
1285         (.heap-snapshot-view .data-grid td.retainedSize-column):
1286         (.heap-snapshot-view .data-grid td.distanceToWindow-column):
1287         (.heap-snapshot-view .data-grid span.percent-column):
1288         (.heap-snapshot-view .console-formatted-object, .console-formatted-node):
1289         (.heap-snapshot-view .console-formatted-string):
1290         (.heap-snapshot-view .console-formatted-id):
1291         (.heap-snapshot-view .data-grid tr.selected *):
1292         (.heap-snapshot-view .data-grid:focus tr.selected *):
1293         (.heap-snapshot-view .delimiter):
1294         (.heap-snapshot-view .views-container):
1295         (.heap-snapshot-view .views-container .view):
1296         (.heap-snapshot-view .retaining-paths-view):
1297         (.heap-snapshot-view .class-view-grid):
1298         (.heap-snapshot-view .class-view-toolbar):
1299         (.heap-snapshot-view .class-view-toolbar input.class-name-filter):
1300         (.heap-snapshot-view .retainers-view-header):
1301         (.heap-snapshot-view .retainers-view-header .title > span):
1302         (.heap-snapshot-view tr:not(.selected) td.object-column span.highlight):
1303         (.heap-snapshot-view td.object-column span.grayed):
1304         (.heap-snapshot-help-status-bar-item .glyph):
1305         (table.heap-snapshot-help):
1306         * inspector/front-end/inspector.html:
1307
1308 2012-04-16  Andrey Kosyakov  <caseq@chromium.org>
1309
1310         Web Inspector: touch pad is pain to use in lower pane of Timeline panel due two two-axis scrolling
1311         https://bugs.webkit.org/show_bug.cgi?id=83946
1312
1313         Reviewed by Pavel Feldman.
1314
1315         Remove delegation of mousewheel events from lower timeline pane to the timeline overview. This disables
1316         support for moving overview window with horizontal swype over lower timeline pane, thus removing
1317         an irritating situation when we try to both change overview window and scroll lower timeline pane
1318         upon a single touchpad gesture. Those willing to move timeline window now would need to position
1319         mouse over overview.
1320
1321         * inspector/front-end/TimelineOverviewPane.js:
1322         (WebInspector.TimelineOverviewWindow.prototype._onMouseWheel):
1323         (WebInspector.TimelineOverviewWindow.prototype._zoom):
1324         * inspector/front-end/TimelinePanel.js:
1325         (WebInspector.TimelinePanel):
1326
1327 2012-04-11  Philippe Normand  <pnormand@igalia.com>
1328
1329         [GStreamer] HRTFDatabaseLoader conflicts with AudioFileReader
1330         https://bugs.webkit.org/show_bug.cgi?id=78095
1331
1332         Reviewed by Martin Robinson.
1333
1334         Moved the GStreamer initialization logic to a new
1335         GStreamerUtilities module, used by the MediaPlayer and the
1336         AudioContext. I also removed the static variables as
1337         gst_init_check already handles cases where it's called multiple
1338         times.
1339
1340         * GNUmakefile.list.am:
1341         * Modules/webaudio/AudioContext.cpp:
1342         (WebCore::AudioContext::constructCommon):
1343         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
1344         (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
1345         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
1346         (WebCore::AudioFileReader::createBus):
1347         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
1348         (WTF::adoptGRef):
1349         (WTF):
1350         (WTF::GstElementFactory):
1351         * platform/graphics/gstreamer/GRefPtrGStreamer.h:
1352         (WTF):
1353         * platform/graphics/gstreamer/GStreamerUtilities.cpp: Added.
1354         (WebCore):
1355         (WebCore::initializeGStreamer):
1356         * platform/graphics/gstreamer/GStreamerUtilities.h: Added.
1357         (WebCore):
1358         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1359         (WebCore::doGstInit):
1360
1361 2012-04-16  ChangSeok Oh  <shivamidow@gmail.com>
1362
1363         Update GraphicsContext3DOpenGLES.cpp and fix some issues to build with GLES.
1364         https://bugs.webkit.org/show_bug.cgi?id=83982
1365
1366         Reviewed by Martin Robinson.
1367
1368         GL_BGRA is not defined in GLESv2, so it causes build-break at readRenderingResults.
1369         To resolve this, a helper function readPixelsAndConvertToBGRAIfNecessary is added
1370         in GC3DOpenGL.cpp & GC3DOpenGLES.cpp and it's used in GC3DOpenGLCommon.cpp.
1371         And some other issues to build with GLES are gone with this patch.
1372
1373         No new tests, since no new feature.
1374
1375         * platform/graphics/GraphicsContext3D.h:
1376         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
1377         (WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary):
1378         (WebCore):
1379         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
1380         (WebCore::GraphicsContext3D::readRenderingResults):
1381         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
1382         (WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary):
1383         (WebCore):
1384         (WebCore::GraphicsContext3D::reshapeFBOs):
1385         (WebCore::GraphicsContext3D::resolveMultisamplingIfNecessary):
1386
1387 2012-04-16  Xiaomei Ji  <xji@chromium.org>
1388
1389         [chromium] wrong justification for arabic/persian page in cr-win.
1390         https://bugs.webkit.org/show_bug.cgi?id=83227
1391
1392         Reviewed by Kent Tamura.
1393
1394         Disable kashida justification if using Skia to draw.
1395
1396         Test: fast/text/international/arabic-justify.html
1397
1398         * platform/graphics/chromium/UniscribeHelper.cpp:
1399         (WebCore::UniscribeHelper::justify):
1400
1401 2012-04-16  Jia Pu  <jpu@apple.com>
1402
1403         Build fix.
1404
1405         Change set 114220 broke OS X internal build. Change set 114231 attempted to fix it, but isn't entirely
1406         correct. This patch amends change set 114231.
1407
1408         * WebCore.exp.in:
1409         * editing/DictationAlternative.cpp:
1410         (WebCore::DictationAlternative::DictationAlternative):
1411         * editing/DictationAlternative.h:
1412         (DictationAlternative):
1413
1414 2012-04-16  Antti Koivisto  <antti@apple.com>
1415
1416         REGRESSION (r104445): Style is not recomputed on serenaandlily.com
1417         https://bugs.webkit.org/show_bug.cgi?id=83663
1418
1419         Reviewed by Andreas Kling.
1420         
1421         CSS class and id selectors are case insensitive in non-strict modes. The code
1422         that invalidated the scope elements used getElementByID() which is case
1423         sensitive in all modes. As a result we would fail to invalidate elements
1424         that would match a style rule but used different case in id.
1425         
1426         The new code invalidates by crawling the DOM tree. This often (when there are classes) 
1427         actually faster than the existing code as we can now handle everything in a single pass.
1428         Each class scope required a crawl with the old code.
1429         
1430         The code uses the same functions as the selector matching code to get the same behavior.
1431         
1432         The maximum class limit is lifted as number of classes does not affect complexity anymore.
1433
1434         Test: fast/css/id-or-class-before-stylesheet-strict.html
1435
1436         * css/SelectorChecker.h:
1437         (WebCore::SelectorChecker::elementMatchesSelectorScopes):
1438         (WebCore):
1439         * dom/Document.cpp:
1440         (WebCore::Document::testAddedStylesheetRequiresStyleRecalc):
1441         (WebCore):
1442
1443 2012-04-16  Uday Kiran  <udaykiran@motorola.com>
1444
1445         CSS3 Selectors failures on css3test.com
1446         https://bugs.webkit.org/show_bug.cgi?id=83885
1447
1448         Reviewed by Zoltan Herczeg.
1449
1450         Parsing fix for CSS3 selectors :nth-child(), :nth-last-child() :nth-of-type() :nth-last-of-type()
1451         with values -n-b and n-b as they are of valid form an+b where a and b are integers.
1452         http://www.w3.org/TR/selectors/#structural-pseudos
1453
1454         Descriptors of form n-b or -n-b, where b is number, are valid CSS identifiers.
1455         However, in NthChildMode we need to check whether this identifier is a valid nth child descriptor.
1456         The original code only checked this if the string was n- or -n- but this is not enough.
1457         We need to check everything which starts with an n- or -n- prefix.
1458
1459         Test: css3/parsing-css3-nthchild.html
1460
1461         * css/CSSParser.cpp:
1462         (WebCore::CSSParser::lex):
1463
1464 2012-04-16  Eric Carlson  <eric.carlson@apple.com>
1465
1466         ASSERT in notifyChildInserted when HTMLMediaElement is removed from tree
1467         https://bugs.webkit.org/show_bug.cgi?id=83949
1468
1469         Reviewed by Antti Koivisto.
1470
1471         No new tests. I was not able to create a reproducible test case, but I have been unable
1472         to reproduce the ASSERT that occassionally fired in existing tests since I have been
1473         living on these changes.
1474
1475         * html/HTMLMediaElement.cpp:
1476         (WebCore::HTMLMediaElement::insertedIntoDocument): Call configureMediaControls.
1477         (WebCore::HTMLMediaElement::removedFromDocument): Ditto.
1478         (WebCore::HTMLMediaElement::configureMediaControls): Don't show controls when the
1479             media element is not in a Document.
1480
1481 2012-04-16  Eric Carlson  <eric.carlson@apple.com>
1482
1483         Layout Test media/track/track-delete-during-setup.html is hitting an ASSERT_NOT_REACHED
1484         https://bugs.webkit.org/show_bug.cgi?id=82269
1485
1486         Reviewed by Antti Koivisto.
1487
1488         No new tests, already tested by media/track/track-delete-during-setup.html.
1489
1490         * html/HTMLTrackElement.cpp:
1491         (WebCore::HTMLTrackElement::insertedIntoDocument): Don't notify the media element until/unless
1492         the track element is inserted into the document.
1493         * html/HTMLTrackElement.h:
1494
1495 2012-04-16  Yael Aharon  <yael.aharon@nokia.com>
1496
1497         [Qt][WK2] Fixed elements position is wrong after zooming.
1498         https://bugs.webkit.org/show_bug.cgi?id=83981
1499
1500         Reviewed by Kenneth Rohde Christiansen.
1501
1502         When setFixedVisibleContentRect is called we mark all fixed elements in the frame for layout.
1503         In order to find these elements, RenderView maintains a list of fixed elements.
1504         They are added and removed at the same time that they are added and removed from their parent RenderBlock.
1505         The idea is taken from the iOS5.1 branch, at opensource.apple.com.
1506         Added a manual test that allows removing and adding fixed elements at will.
1507
1508         * page/FrameView.cpp:
1509         (WebCore::FrameView::setFixedVisibleContentRect):
1510         * rendering/RenderBlock.cpp:
1511         (WebCore::RenderBlock::insertPositionedObject):
1512         (WebCore::RenderBlock::removePositionedObject):
1513         * rendering/RenderView.cpp:
1514         (WebCore::RenderView::setFixedPositionedObjectsNeedLayout):
1515         (WebCore):
1516         (WebCore::RenderView::insertFixedPositionedObject):
1517         (WebCore::RenderView::removeFixedPositionedObject):
1518         * rendering/RenderView.h:
1519         (RenderView):
1520
1521 2012-04-13  Pavel Feldman  <pfeldman@chromium.org>
1522
1523         Web Inspector: extract ContentProvider into its own file, make NetworkRequest, Resoruce and others implement it.
1524         https://bugs.webkit.org/show_bug.cgi?id=83922
1525
1526         Reviewed by Yury Semikhatsky.
1527
1528         We have two different types of requestContent methods: one on the source mapping level and one on the resource level.
1529         There are also adapters between the two. I'm aligning it all to a single requestContent method declared in ContentProvider.
1530
1531         * WebCore.gypi:
1532         * WebCore.vcproj/WebCore.vcproj:
1533         * inspector/compile-front-end.py:
1534         * inspector/front-end/BreakpointsSidebarPane.js:
1535         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype.addBreakpoint.didRequestContent):
1536         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype.addBreakpoint):
1537         * inspector/front-end/ContentProvider.js: Added.
1538         (WebInspector.ContentProvider):
1539         (WebInspector.ContentProvider.prototype.contentURL):
1540         (WebInspector.ContentProvider.prototype.requestContent):
1541         (WebInspector.ContentProvider.prototype.searchInContent):
1542         (WebInspector.ContentProvider.SearchMatch):
1543         * inspector/front-end/ContentProviders.js:
1544         (WebInspector.ScriptContentProvider.prototype.contentURL):
1545         (WebInspector.ScriptContentProvider.prototype.requestContent):
1546         (WebInspector.ConcatenatedScriptsContentProvider.prototype.contentURL):
1547         (WebInspector.ConcatenatedScriptsContentProvider.prototype.requestContent):
1548         (WebInspector.CompilerSourceMappingContentProvider.prototype.contentURL):
1549         (WebInspector.CompilerSourceMappingContentProvider.prototype.requestContent):
1550         (WebInspector.StaticContentProvider.prototype.contentURL):
1551         (WebInspector.StaticContentProvider.prototype.requestContent):
1552         * inspector/front-end/DebuggerPresentationModel.js:
1553         * inspector/front-end/ExtensionServer.js:
1554         (WebInspector.ExtensionServer.prototype._getResourceContent):
1555         * inspector/front-end/JavaScriptSourceFrame.js:
1556         (WebInspector.JavaScriptSourceFrame.prototype.requestContent):
1557         * inspector/front-end/NetworkItemView.js:
1558         (WebInspector.RequestContentView.prototype._ensureInnerViewShown.callback):
1559         (WebInspector.RequestContentView.prototype._ensureInnerViewShown):
1560         * inspector/front-end/NetworkRequest.js:
1561         (WebInspector.NetworkRequest.prototype.contentURL):
1562         (WebInspector.NetworkRequest.prototype.requestContent):
1563         (WebInspector.NetworkRequest.prototype.searchInContent):
1564         (WebInspector.NetworkRequest.prototype.populateImageSource):
1565         (WebInspector.NetworkRequest.prototype._innerRequestContent.onResourceContent):
1566         (WebInspector.NetworkRequest.prototype._innerRequestContent):
1567         * inspector/front-end/RawSourceCode.js:
1568         (WebInspector.RawSourceCode.prototype._createContentProvider):
1569         (WebInspector.RawSourceCode.prototype._createSourceMapping.didRequestContent):
1570         (WebInspector.RawSourceCode.prototype._createSourceMapping):
1571         * inspector/front-end/Resource.js:
1572         (WebInspector.Resource.prototype.contentURL):
1573         (WebInspector.Resource.prototype.requestContent):
1574         (WebInspector.Resource.prototype._innerRequestContent.callback):
1575         (WebInspector.Resource.prototype._innerRequestContent):
1576         (WebInspector.ResourceRevision.prototype.contentURL):
1577         (WebInspector.ResourceRevision.prototype.requestContent.callbackWrapper):
1578         (WebInspector.ResourceRevision.prototype.requestContent):
1579         (WebInspector.ResourceRevision.prototype.searchInContent):
1580         * inspector/front-end/ResourceView.js:
1581         (WebInspector.ResourceSourceFrame.prototype.requestContent):
1582         (WebInspector.ResourceSourceFrame.prototype._contentChanged):
1583         (WebInspector.ResourceRevisionSourceFrame.prototype.requestContent):
1584         * inspector/front-end/ScriptFormatter.js:
1585         * inspector/front-end/ScriptsPanel.js:
1586         (WebInspector.ScriptsPanel.prototype.requestVisibleScriptOutline):
1587         * inspector/front-end/SourceFrame.js:
1588         (WebInspector.SourceFrame.prototype.setContent):
1589         * inspector/front-end/UISourceCode.js:
1590         (WebInspector.UISourceCode):
1591         (WebInspector.UISourceCode.prototype.requestContent):
1592         (WebInspector.UISourceCode.prototype._didRequestContent):
1593         * inspector/front-end/WebKit.qrc:
1594         * inspector/front-end/inspector.html:
1595
1596 2012-04-16  Jason Liu  <jason.liu@torchmobile.com.cn>
1597
1598         [BlackBerry] Missing readyState 2 when a XMLHttpRequest calls xmlhttp.open("HEAD","notExist.html",true).
1599         https://bugs.webkit.org/show_bug.cgi?id=83866
1600
1601         Reviewed by George Staikos.
1602         
1603         We receive 404 for a XMLHttpRequest which calls open("HEAD", "notExist.html", true).
1604         There are no data received because its method is HEAD.
1605         This case shouldn't be treated as a failure.
1606
1607         Test: http/tests/xmlhttprequest/xmlhttprequest-check-head-readystate-for-404.html
1608
1609         * platform/network/blackberry/NetworkJob.cpp:
1610         (WebCore::NetworkJob::handleNotifyClose):
1611
1612 2012-04-16  Jon Lee  <jonlee@apple.com>
1613
1614         Build fix.
1615
1616         * WebCore.exp.in:
1617         * editing/DictationAlternative.cpp:
1618         (WebCore::DictationAlternative::DictationAlternative):
1619         * editing/DictationAlternative.h:
1620         (DictationAlternative):
1621
1622 2012-04-16  George Staikos  <staikos@webkit.org>
1623
1624         Fix signed/unsigned mismatch warning for BlackBerry debug builds.
1625         https://bugs.webkit.org/show_bug.cgi?id=80790
1626
1627         Reviewed by Rob Buis.
1628
1629         * platform/blackberry/CookieMap.cpp:
1630         (WebCore::CookieMap::removeCookieAtIndex):
1631
1632 2012-04-15  Kent Tamura  <tkent@chromium.org>
1633
1634         WebCore::weekDayShortLabels() for ICU always returns the fallback labels
1635         https://bugs.webkit.org/show_bug.cgi?id=83991
1636
1637         Reviewed by Hajime Morita.
1638
1639         We need to specfiy 1-based index to udat_getSymbols() with
1640         UDAT_SHORT_WEEKDAYS. Also, udat_countSymbols() with UDAT_SHORT_WEEKDAYS
1641         returns 8.
1642
1643         No new tests because this behavior depends on locale setting.
1644
1645         * platform/text/LocalizedCalendarICU.cpp:
1646         (WebCore::createLabelVector): Add startIndex argument.
1647         (WebCore::createMonthLabels):
1648         Pass UDAT_JANUARRY(0) as startIndex to createLabelVector().
1649         (WebCore::createWeekDayShortLabels):
1650         Pass UDAT_SUNDAY(1) as startIndex to createLabelVector().
1651
1652 2012-04-15  MORITA Hajime  <morrita@google.com>
1653
1654         Unreviewed attempt to chromium-win build fix.
1655
1656         * editing/DictationAlternative.h:
1657
1658 2012-04-15  Noel Gordon  <noel.gordon@gmail.com>
1659
1660         Align JSC/V8 bindings canvas.toDataURL() code flows
1661         https://bugs.webkit.org/show_bug.cgi?id=84003
1662
1663         Reviewed by Eric Seidel.
1664
1665         Align JSC/V8 bindings canvas.toDataURL() code flow so that the binding
1666         code implementations read alike.
1667
1668         No new tests. Covered by existing cnavas toDataURL tests.
1669
1670         * bindings/js/JSHTMLCanvasElementCustom.cpp:
1671         (WebCore::JSHTMLCanvasElement::toDataURL):
1672
1673 2012-04-15  Jia Pu  <jpu@apple.com>
1674
1675         Introducing DictationCommand.
1676         https://bugs.webkit.org/show_bug.cgi?id=83549
1677
1678         Reviewed by Hajime Morita.
1679
1680         No new tests. This patch doesn't introduce any change of new functionality. It prepares for
1681         additional changes which will inlude tests.
1682
1683         On OS X, alternative dictation results need to be stored as document markers. This patch introduces
1684         following changes to achieve this:
1685         1. Added DictationMarkDetails to store non-string type maker detail.
1686         2. Introduce DictationCommand, which is similor to TypingCommand, but allows inserting text with
1687           attached markers.
1688         3. Added Editor::insertDictatedText as interaface to WebKit and WebKit2.
1689         4. Added struct DictationAlternative to pass dictation related info from WebKit to WebCore.
1690
1691         Several fragments of code in TypingCommand can be also used by DictationCommand. So this patch
1692         introduced a new class, TextInsertionBaseCommand. It's a subclass of CompositeEditCommmand, and
1693         base class of both TypingCommand and DictationCommand.
1694
1695         This patch also extends InsertTextCommand class. Its constructor will take an TextInsertionMarkerSupplier
1696         object. After text is inserted to a node, InsertTextCommand would give marker supplier a chance to
1697         add document markers to the inserted text.
1698
1699         * CMakeLists.txt:
1700         * GNUmakefile.list.am:
1701         * Target.pri:
1702         * WebCore.exp.in:
1703         * WebCore.gypi:
1704         * WebCore.vcproj/WebCore.vcproj:
1705         * WebCore.xcodeproj/project.pbxproj:
1706         * dom/Document.cpp:
1707         (WebCore::eventTargetNodeForDocument): Moved this function from EventHandler so that it can be used
1708           by AlternativeTextController.
1709         (WebCore):
1710         * dom/Document.h:
1711         (WebCore):
1712         * dom/DocumentMarker.cpp:
1713         (WebCore::DocumentMarker::DocumentMarker): New constructor that takes a pointer to DocumentMarkerDetails object.
1714         (WebCore):
1715         * dom/DocumentMarker.h:
1716         (WebCore::DocumentMarker::AllMarkers::AllMarkers):
1717         (DocumentMarker):
1718         * dom/DocumentMarkerController.cpp:
1719         (WebCore::DocumentMarkerController::addMarker):
1720         (WebCore):
1721         * dom/DocumentMarkerController.h:
1722         (DocumentMarkerController):
1723         * dom/TextEvent.cpp:
1724         (WebCore::TextEvent::createForDictation):
1725         (WebCore):
1726         (WebCore::TextEvent::TextEvent):
1727         * dom/TextEvent.h: Added member variable for dictation alternatives.
1728         (TextEvent):
1729         (WebCore::TextEvent::isDictation):
1730         (WebCore::TextEvent::dictationAlternatives):
1731         * dom/TextEventInputType.h:
1732         * editing/AlternativeTextController.cpp:
1733         (WebCore::AlternativeTextController::AlternativeTextController):
1734         (WebCore::AlternativeTextController::insertDictatedText): Used by Editor::insertDictatedText().
1735         (WebCore):
1736         * editing/AlternativeTextController.h:
1737         (WebCore):
1738         (DictationMarkerDetails):
1739         (WebCore::DictationMarkerDetails::create):
1740         (WebCore::DictationMarkerDetails::originalText):
1741         (WebCore::DictationMarkerDetails::dictationContext):
1742         (WebCore::DictationMarkerDetails::DictationMarkerDetails):
1743         (AlternativeTextController):
1744         * editing/CompositeEditCommand.h:
1745         (WebCore::CompositeEditCommand::isDictationCommand):
1746         * editing/DictationAlternative.cpp: Added.
1747         (WebCore):
1748         (WebCore::DictationAlternative::DictationAlternative):
1749         * editing/DictationAlternative.h: Added. Data structure for passing dictation related data from WebKit to WebCore.
1750         (DictationAlternative):
1751         (WebCore):
1752         * editing/DictationCommand.cpp: Added.
1753         (WebCore):
1754         (DictationCommandLineOperation):
1755         (WebCore::DictationCommandLineOperation::DictationCommandLineOperation):
1756         (WebCore::DictationCommandLineOperation::operator()):
1757         (DictationMarkerSupplier):
1758         (WebCore::DictationMarkerSupplier::create):
1759         (WebCore::DictationMarkerSupplier::addMarkersToTextNode):
1760         (WebCore::DictationMarkerSupplier::DictationMarkerSupplier):
1761         (WebCore::DictationCommand::DictationCommand):
1762         (WebCore::DictationCommand::insertText):
1763         (WebCore::DictationCommand::doApply):
1764         (WebCore::DictationCommand::insertTextRunWithoutNewlines):
1765         (WebCore::DictationCommand::insertParagraphSeparator):
1766         (WebCore::DictationCommand::collectDictationAlternativesInRange):
1767         * editing/DictationCommand.h: Added.
1768         (WebCore):
1769         (DictationCommand):
1770         (WebCore::DictationCommand::isDictationCommand):
1771         (WebCore::DictationCommand::create):
1772         * editing/EditingAllInOne.cpp:
1773         * editing/Editor.cpp:
1774         (WebCore::Editor::insertDictatedText): Main interface that allows WebKit passes in text with attached dictation information.
1775         (WebCore):
1776         (WebCore::Editor::insertTextWithoutSendingTextEvent):
1777         (WebCore::Editor::updateMarkersForWordsAffectedByEditing):
1778         * editing/Editor.h:
1779         (Editor):
1780         * editing/InsertTextCommand.cpp:
1781         (WebCore::InsertTextCommand::InsertTextCommand):
1782         (WebCore):
1783         (WebCore::InsertTextCommand::doApply):
1784         * editing/InsertTextCommand.h:
1785         (WebCore):
1786         (TextInsertionMarkerSupplier): Interface to allow caller of InsertTextCommand to add document markers to inserted text.
1787         (WebCore::TextInsertionMarkerSupplier::~TextInsertionMarkerSupplier):
1788         (WebCore::TextInsertionMarkerSupplier::TextInsertionMarkerSupplier):
1789         (WebCore::InsertTextCommand::createWithMarkerSupplier):
1790         (InsertTextCommand):
1791         * editing/TextInsertionBaseCommand.cpp: Added. This class contains functions shared by TypingCommand and DictationCommand.
1792         (WebCore):
1793         (WebCore::TextInsertionBaseCommand::TextInsertionBaseCommand):
1794         (WebCore::TextInsertionBaseCommand::applyTextInsertionCommand):
1795         (WebCore::dispatchBeforeTextInsertedEvent):
1796         (WebCore::canAppendNewLineFeedToSelection):
1797         * editing/TextInsertionBaseCommand.h: Added.
1798         (WebCore):
1799         (TextInsertionBaseCommand):
1800         (WebCore::TextInsertionBaseCommand::~TextInsertionBaseCommand):
1801         (WebCore::forEachLineInString):
1802         * editing/TypingCommand.cpp:
1803         (TypingCommandLineOperation):
1804         (WebCore::TypingCommandLineOperation::TypingCommandLineOperation):
1805         (WebCore::TypingCommandLineOperation::operator()):
1806         (WebCore::TypingCommand::TypingCommand):
1807         (WebCore::TypingCommand::insertText):
1808         (WebCore::TypingCommand::insertLineBreak):
1809         (WebCore::TypingCommand::insertParagraphSeparator):
1810         * editing/TypingCommand.h:
1811         * page/EventHandler.cpp:
1812         * rendering/InlineTextBox.cpp:
1813         (WebCore::lineStyleForMarkerType):
1814         (WebCore::InlineTextBox::paintDocumentMarker): Renamed existing function to reflect new funcationality.
1815         (WebCore::InlineTextBox::paintDocumentMarkers):
1816         * rendering/InlineTextBox.h:
1817         (InlineTextBox):
1818         * testing/Internals.cpp:
1819         (WebCore::markerTypesFrom):
1820
1821 2012-04-15  James Robinson  <jamesr@chromium.org>
1822
1823         [chromium] LayerRendererChromium shouldn't know anything about CCLayerImpl
1824         https://bugs.webkit.org/show_bug.cgi?id=83415
1825
1826         Reviewed by Adrienne Walker.
1827
1828         This removes all knowledge of CCLayerImpl from LayerRendererChromium. The most significant move code-wise is
1829         moving the HUD up to live on CCLayerTreeHostImpl, since it's aware of the layer tree. This involves two changes.
1830         First, CCHeadsUpDisplay is in charge of populating a ManagedTexture but the actual drawing code now lives in
1831         LayerRendererChromium. Second, since we don't recreate CCLayerTreeHostImpl on a lost context, the font atlas
1832         ownership is much simpler. Now a CCFontAtlas is created on the main thread if needed and passed asynchronously
1833         to the CCHeadsUpDisplay which takes ownership of the atlas.
1834
1835         * platform/graphics/chromium/LayerRendererChromium.cpp:
1836         (WebCore::LayerRendererChromium::create):
1837         (WebCore::LayerRendererChromium::initialize):
1838         (WebCore::LayerRendererChromium::~LayerRendererChromium):
1839         (WebCore::LayerRendererChromium::beginDrawingFrame):
1840         (WebCore::LayerRendererChromium::drawHeadsUpDisplay):
1841         (WebCore):
1842         (WebCore::LayerRendererChromium::finishDrawingFrame):
1843         (WebCore::LayerRendererChromium::swapBuffers):
1844         * platform/graphics/chromium/LayerRendererChromium.h:
1845         (LayerRendererChromiumClient):
1846         (LayerRendererChromium):
1847         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
1848         (WebCore::CCHeadsUpDisplay::CCHeadsUpDisplay):
1849         (WebCore::CCHeadsUpDisplay::setFontAtlas):
1850         (WebCore):
1851         (WebCore::CCHeadsUpDisplay::enabled):
1852         (WebCore::CCHeadsUpDisplay::showPlatformLayerTree):
1853         (WebCore::CCHeadsUpDisplay::draw):
1854         (WebCore::CCHeadsUpDisplay::drawHudContents):
1855         * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
1856         (WebCore):
1857         (WebCore::CCHeadsUpDisplay::create):
1858         (CCHeadsUpDisplay):
1859         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1860         (WebCore::CCLayerTreeHost::initialize):
1861         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1862         (CCLayerTreeHost):
1863         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1864         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
1865         (WebCore::CCLayerTreeHostImpl::~CCLayerTreeHostImpl):
1866         (WebCore::CCLayerTreeHostImpl::canDraw):
1867         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
1868         (WebCore::CCLayerTreeHostImpl::prepareToDraw):
1869         (WebCore::CCLayerTreeHostImpl::drawLayers):
1870         (WebCore::CCLayerTreeHostImpl::swapBuffers):
1871         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
1872         (WebCore::CCLayerTreeHostImpl::setFullRootLayerDamage):
1873         (WebCore::CCLayerTreeHostImpl::layerTreeAsText):
1874         (WebCore):
1875         (WebCore::CCLayerTreeHostImpl::setFontAtlas):
1876         (WebCore::CCLayerTreeHostImpl::dumpRenderSurfaces):
1877         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1878         (CCLayerTreeHostImpl):
1879         (WebCore::CCLayerTreeHostImpl::rootLayer):
1880         * platform/graphics/chromium/cc/CCProxy.h:
1881         (WebCore):
1882         (CCProxy):
1883         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1884         (WebCore::CCSingleThreadProxy::initializeLayerRenderer):
1885         (WebCore::CCSingleThreadProxy::recreateContext):
1886         (WebCore::CCSingleThreadProxy::setFontAtlas):
1887         (WebCore):
1888         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
1889         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1890         (WebCore::CCThreadProxy::initializeLayerRendererOnImplThread):
1891         (WebCore::CCThreadProxy::setFontAtlas):
1892         (WebCore):
1893         (WebCore::CCThreadProxy::setFontAtlasOnImplThread):
1894         (WebCore::CCThreadProxy::recreateContextOnImplThread):
1895         * platform/graphics/chromium/cc/CCThreadProxy.h:
1896         (CCThreadProxy):
1897
1898 2012-04-15  Antti Koivisto  <antti@apple.com>
1899
1900         Capture CSS parser context
1901         https://bugs.webkit.org/show_bug.cgi?id=83998
1902
1903         Reviewed by Andreas Kling.
1904
1905         Currently the CSS parser calls to the Document and StyleSheetInternal objects to get settings, base URL etc.
1906         The required information should be passed in on parser construction instead. The parser should not need to
1907         know about the document at all.
1908         
1909         The patch adds CSSParserContext struct that captures the parsing context. StyleSheetInternal saves the
1910         parsing context and reuses it for any further parsing.
1911         
1912         If the same stylesheet source is parsed with an identical context then the resulting stylesheet structure will
1913         be identical. This will allow sharing parsed stylesheets in the future.
1914
1915         * css/CSSGrammar.y:
1916         * css/CSSImportRule.cpp:
1917         (WebCore::StyleRuleImport::setCSSStyleSheet):
1918         * css/CSSMediaRule.cpp:
1919         (WebCore::CSSMediaRule::insertRule):
1920         * css/CSSPageRule.cpp:
1921         (WebCore::CSSPageRule::setSelectorText):
1922         * css/CSSParser.cpp:
1923         (WebCore):
1924         (WebCore::strictCSSParserContext):
1925         (WebCore::CSSParserContext::CSSParserContext):
1926         (WebCore::CSSParser::CSSParser):
1927         (WebCore::CSSParser::parseKeyframeRule):
1928         (WebCore::CSSParser::parseValue):
1929         (WebCore::CSSParser::parseSelector):
1930         (WebCore::CSSParser::completeURL):
1931         (WebCore::CSSParser::parseContent):
1932         (WebCore::CSSParser::parseAttr):
1933         (WebCore::CSSParser::parseFillImage):
1934         (WebCore::CSSParser::parseFontFaceSrcURI):
1935         (WebCore::CSSParser::parseFontFaceSrc):
1936         (WebCore::CSSParser::parseBorderImage):
1937         (WebCore::CSSParser::parseImageSet):
1938         (WebCore::CSSParser::parseCustomFilter):
1939         (WebCore::CSSParser::parseFilter):
1940         (WebCore::CSSParser::cssRegionsEnabled):
1941         (WebCore::CSSParser::parseFlowThread):
1942         (WebCore::CSSParser::createMediaRule):
1943         (WebCore::CSSParser::createStyleRule):
1944         (WebCore::CSSParser::createFontFaceRule):
1945         (WebCore::CSSParser::createPageRule):
1946         (WebCore::CSSParser::createKeyframe):
1947         * css/CSSParser.h:
1948         (CSSParser):
1949         (WebCore::CSSParser::inStrictMode):
1950         (WebCore::CSSParser::inQuirksMode):
1951         (WebCore::CSSParser::validUnit):
1952         * css/CSSParserMode.h:
1953         (WebCore):
1954         (CSSParserContext):
1955         * css/CSSRule.h:
1956         (WebCore::CSSRule::parserContext):
1957         (CSSRule):
1958         * css/CSSStyleRule.cpp:
1959         (WebCore::CSSStyleRule::setSelectorText):
1960         * css/CSSStyleSheet.cpp:
1961         (WebCore::StyleSheetInternal::StyleSheetInternal):
1962         (WebCore::StyleSheetInternal::parseString):
1963         (WebCore::StyleSheetInternal::parseStringAtLine):
1964         (WebCore):
1965         (WebCore::StyleSheetInternal::updateBaseURL):
1966         (WebCore::StyleSheetInternal::completeURL):
1967         (WebCore::CSSStyleSheet::insertRule):
1968         * css/CSSStyleSheet.h:
1969         (StyleSheetInternal):
1970         (WebCore::StyleSheetInternal::parserContext):
1971         (WebCore::StyleSheetInternal::charset):
1972         (WebCore::StyleSheetInternal::setFinalURL):
1973         (WebCore::StyleSheetInternal::baseURL):
1974         * css/CSSValuePool.cpp:
1975         * css/StylePropertySet.cpp:
1976         (WebCore::StylePropertySet::parseDeclaration):
1977         * css/WebKitCSSKeyframesRule.cpp:
1978         (WebCore::WebKitCSSKeyframesRule::insertRule):
1979         * dom/Document.cpp:
1980         (WebCore::Document::webkitGetFlowByName):
1981         (WebCore::Document::pageUserSheet):
1982         (WebCore::Document::pageGroupUserSheets):
1983         * dom/Element.cpp:
1984         (WebCore::Element::webkitMatchesSelector):
1985         * dom/Node.cpp:
1986         (WebCore::Node::querySelector):
1987         (WebCore::Node::querySelectorAll):
1988         * dom/ProcessingInstruction.cpp:
1989         (WebCore::ProcessingInstruction::parseStyleSheet):
1990         * dom/StyleElement.cpp:
1991         (WebCore::StyleElement::createSheet):
1992         * html/HTMLLinkElement.cpp:
1993         (WebCore::HTMLLinkElement::setCSSStyleSheet):
1994         * html/shadow/ContentSelectorQuery.cpp:
1995         (WebCore::ContentSelectorQuery::ContentSelectorQuery):
1996         * inspector/InspectorStyleSheet.cpp:
1997         (WebCore::InspectorStyle::setPropertyText):
1998         (WebCore::InspectorStyleSheet::reparseStyleSheet):
1999         (WebCore::InspectorStyleSheet::ensureSourceData):
2000         (WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
2001
2002 2012-04-15  Noel Gordon  <noel.gordon@gmail.com>
2003
2004         [Cairo] Separate image encoding from dataURL construction
2005         https://bugs.webkit.org/show_bug.cgi?id=83975
2006
2007         Reviewed by Martin Robinson.
2008
2009         Remove the implicit assumption that a dataURL is the only desired output format
2010         of the image encoding phase.
2011
2012         No new tests. Covered by existing canvas toDataURL tests.
2013
2014         * platform/graphics/cairo/ImageBufferCairo.cpp:
2015         (WebCore::writeFunction): Rename closure to output.
2016         (WebCore::encodeImage): Output the encoded image to the provided Vector<char>.
2017         PNG format is only supported per the Cairo encoding MIMETypeRegistry.
2018         (WebCore):
2019         (WebCore::ImageBuffer::toDataURL): Refactor to use encodeImage().
2020
2021 2012-04-15  Yuta Kitamura  <yutak@chromium.org>
2022
2023         Leak in WebSocketChannel with workers/worker-reload.html (part 2)
2024         https://bugs.webkit.org/show_bug.cgi?id=83749
2025
2026         Reviewed by David Levin.
2027
2028         Second attempt to remove leaks around WorkerThreadableWebSocketChannel.
2029
2030         No new tests, as this patch does not impose any functional change.
2031
2032         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
2033         (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
2034         (WebCore::ThreadableWebSocketChannelClientWrapper::failedWebSocketChannelCreation):
2035         (WebCore::ThreadableWebSocketChannelClientWrapper::setFailedWebSocketChannelCreation):
2036         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
2037         Add a boolean flag indicating whether Bridge::initialize() has exited without receiving
2038         a pointer to the peer object.
2039         * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
2040         (WebCore::WorkerThreadableWebSocketChannel::WorkerContextDidInitializeTask::create):
2041         (WebCore::WorkerThreadableWebSocketChannel::WorkerContextDidInitializeTask::WorkerContextDidInitializeTask):
2042         (WebCore::WorkerThreadableWebSocketChannel::WorkerContextDidInitializeTask::performTask):
2043         Kick mainThreadDestroy() to delete the peer if the bridge has failed to receive
2044         a pointer to the peer (waitForMethodCompletion() exited due to message queue's
2045         termination).
2046         (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
2047         (WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize):
2048         * Modules/websockets/WorkerThreadableWebSocketChannel.h:
2049         (WorkerThreadableWebSocketChannel):
2050         Make WorkerContextDidInitializeTask an inner class of WorkerThreadableWebSocketChannel
2051         so it can refer WorkerThreadableWebSocketChannel's static member function (mainThreadDestroy()).
2052
2053 2012-04-14  Emil A Eklund  <eae@chromium.org>
2054
2055         Fix pixelSnapping for CalendarPicker, MediaControl and ScrollbarPart
2056         https://bugs.webkit.org/show_bug.cgi?id=83929
2057
2058         Reviewed by Eric Seidel.
2059
2060         Update CalendarPickerElement and MediaControlElements to use
2061         pixelSnappedSize in preparation for turning on subpixel support.
2062         Update RenderScrollbarPart to pixel snap rect before painting to ensure
2063         that it is painted on device pixel boundaries.
2064
2065         No new tests, no change in functionality.
2066
2067         * html/shadow/CalendarPickerElement.cpp:
2068         (WebCore::CalendarPickerElement::openPopup):
2069         * html/shadow/MediaControlElements.cpp:
2070         (WebCore::RenderMediaVolumeSliderContainer::layout):
2071         * rendering/RenderScrollbarPart.cpp:
2072         (WebCore::RenderScrollbarPart::paintIntoRect):
2073
2074 2012-04-14  Kent Tamura  <tkent@chromium.org>
2075
2076         Day of week labels are wrong if WebCore::firstDayOfWeek() is not 0
2077         https://bugs.webkit.org/show_bug.cgi?id=83990
2078
2079         Reviewed by Kentaro Hara.
2080
2081         We passed the "weekStartDay" property value as a
2082         string. CalendarPickerElement::writeDocument() created:
2083             weekStartDay: "1",
2084         and the JavaScript code used it in the following code:
2085             dayLabels[(weekStartDay + i) % 7]
2086         If weekStartDay was "1", the expression (weekStartDay + i)
2087         produced "10", "11", "12", ... We expected "1", "2", "3", ...
2088
2089         We need to pass the "weekStartDay" property as a number.
2090
2091         No new tests because we have no ways to test this for now. We'll
2092         introduce tests for the calendar picker later.
2093
2094         * html/shadow/CalendarPickerElement.cpp:
2095         (WebCore::addProperty): Add addProperty() function for a number.
2096         (WebCore::CalendarPickerElement::writeDocument):
2097         Pass a number, not a serialized number.
2098
2099 2012-04-14  Joe Thomas  <joethomas@motorola.com>
2100
2101         Viewport-percentage Length units does not work for Replaced elements size
2102         https://bugs.webkit.org/show_bug.cgi?id=83425
2103
2104         Reviewed by Antti Koivisto.
2105
2106         Added the support for viewport-percentage length units while calculating the width/height of replaced elements.
2107
2108         Tests: css3/viewport-percentage-lengths/viewport-percentage-image-size.html
2109
2110         * platform/Length.h:
2111         (WebCore::Length::isSpecified):
2112         * rendering/RenderBox.cpp:
2113         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
2114
2115 2012-04-14  Joe Thomas  <joethomas@motorola.com>
2116
2117         CSSStyleDeclaration.getPropertyValue() for 'border-radius' returns null when value is set
2118         https://bugs.webkit.org/show_bug.cgi?id=80736
2119
2120         Reviewed by Antti Koivisto.
2121
2122         Added support for fetching the value of 'border-radius' CSS property which was missing.
2123
2124         Test: fast/css/border-radius-property-value.html
2125
2126         * css/StylePropertySet.cpp:
2127         (WebCore::StylePropertySet::getPropertyValue):
2128
2129 2012-04-14  David Hyatt  <hyatt@apple.com>
2130
2131         https://bugs.webkit.org/show_bug.cgi?id=83826
2132         
2133         Wrong Font code path was chosen after r114032. The TextRun constructor has an additional argument that
2134         needs to be included if rounding hacks are mentioned.
2135
2136         Reviewed by Dan Bernstein.
2137
2138         * html/canvas/CanvasRenderingContext2D.cpp:
2139         (WebCore::CanvasRenderingContext2D::drawTextInternal):
2140         * rendering/RenderListBox.cpp:
2141         (WebCore::RenderListBox::paintItemForeground):
2142         * rendering/break_lines.cpp:
2143         (WebCore::nextBreakablePosition):
2144
2145 2012-04-14  Noel Gordon  <noel.gordon@gmail.com>
2146
2147         [Cairo] ImageBuffer::toDataURL(): improve error handling, add mimeType ASSERTs
2148         https://bugs.webkit.org/show_bug.cgi?id=83569
2149
2150         Reviewed by Eric Seidel.
2151
2152         No new tests. Covered by exiting fast/canvas/*toDataURL* tests.
2153
2154         * platform/graphics/cairo/ImageBufferCairo.cpp:
2155         (WebCore::writeFunction): Return write success or failure with the appropriate
2156         cairo status code per http://cairographics.org/manual/cairo-PNG-Support.html
2157         (WebCore::ImageBuffer::toDataURL): Add mimeType ASSERT()s. <canvas> ensures that
2158         a valid mimeType (supported by the port) is sent to toDataURL() calls. Check for
2159         encoding failure and return "data:," if so.
2160
2161 2012-04-13  David Reveman  <reveman@chromium.org>
2162
2163         [Chromium] Avoid unnecessary full tile updates for checkerboard tiles.
2164         https://bugs.webkit.org/show_bug.cgi?id=83804
2165
2166         Reviewed by James Robinson.
2167
2168         Cleanup code that determines if we need to use a buffered update and
2169         avoid buffering of tiles that are not in use by the impl thread.
2170
2171         Tests: CCLayerTreeHostTestAtomicCommitWithPartialUpdate.runMultiThread
2172                TiledLayerChromiumTest.partialUpdates
2173
2174         * platform/graphics/chromium/TiledLayerChromium.cpp:
2175         (UpdatableTile):
2176         (WebCore::UpdatableTile::UpdatableTile):
2177         (WebCore::TiledLayerChromium::pushPropertiesTo):
2178         (WebCore::TiledLayerChromium::tileOnlyNeedsPartialUpdate):
2179         (WebCore::TiledLayerChromium::tileNeedsBufferedUpdate):
2180         (WebCore::TiledLayerChromium::updateTiles):
2181         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2182         (WebCore::CCLayerTreeHost::bufferedUpdates):
2183         (WebCore):
2184         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2185         (CCLayerTreeHost):
2186
2187 2012-04-13  Dana Jansens  <danakj@chromium.org>
2188
2189         [chromium] Cleanup texture memory eviction when LayerTreeHost becomes invisible
2190         https://bugs.webkit.org/show_bug.cgi?id=83899
2191
2192         Reviewed by Adrienne Walker.
2193
2194         When a LTH becomes invisible, the texture eviction is spread out across
2195         two different functions and is not entirely clear. We move all the logic
2196         together into a single place in didBecomeInvisibleOnImplThread() and
2197         make the consequences of the current code more clear.
2198
2199         Covered by existing tests.
2200
2201         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2202         (WebCore::CCLayerTreeHost::deleteContentsTexturesOnImplThread):
2203         (WebCore::CCLayerTreeHost::setVisible):
2204         (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread):
2205
2206 2012-04-13  Sheriff Bot  <webkit.review.bot@gmail.com>
2207
2208         Unreviewed, rolling out r114036.
2209         http://trac.webkit.org/changeset/114036
2210         https://bugs.webkit.org/show_bug.cgi?id=83969
2211
2212         Breaks gmail.com causing it to never finish loading (Requested
2213         by danakj on #webkit).
2214
2215         * bindings/scripts/CodeGeneratorJS.pm:
2216         (GenerateHeader):
2217         (GenerateImplementation):
2218         * bindings/scripts/CodeGeneratorV8.pm:
2219         (GenerateNamedConstructorCallback):
2220         (GenerateImplementation):
2221         * bindings/scripts/IDLAttributes.txt:
2222         * bindings/scripts/test/JS/JSTestObj.cpp:
2223         (WebCore::JSTestObj::createPrototype):
2224         * bindings/scripts/test/JS/JSTestObj.h:
2225         * bindings/scripts/test/TestObj.idl:
2226         * bindings/scripts/test/V8/V8Float64Array.cpp:
2227         (WebCore):
2228         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2229         (WebCore):
2230         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2231         (WebCore):
2232         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2233         (WebCore):
2234         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2235         (WebCore):
2236         * bindings/scripts/test/V8/V8TestInterface.cpp:
2237         (WebCore):
2238         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2239         (WebCore):
2240         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2241         (WebCore):
2242         * bindings/scripts/test/V8/V8TestNode.cpp:
2243         (WebCore):
2244         * bindings/scripts/test/V8/V8TestObj.cpp:
2245         (WebCore):
2246         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2247         (WebCore):
2248         * bindings/v8/NPV8Object.cpp:
2249         (WebCore::npObjectTypeInfo):
2250         * bindings/v8/V8BindingPerContextData.cpp:
2251         (WebCore::V8BindingPerContextData::init):
2252         (WebCore::V8BindingPerContextData::createWrapperFromCacheSlowCase):
2253         (WebCore::V8BindingPerContextData::constructorForTypeSlowCase):
2254         * bindings/v8/V8BindingPerContextData.h:
2255         (V8BindingPerContextData):
2256         * bindings/v8/V8HiddenPropertyName.h:
2257         (WebCore):
2258         * bindings/v8/WrapperTypeInfo.h:
2259         (WrapperTypeInfo):
2260         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
2261         (WebCore):
2262         * dom/NodeList.idl:
2263
2264 2012-04-13  Alexandre Elias  <aelias@google.com>
2265
2266         [chromium] Add null pointer check to animatePageScale
2267         https://bugs.webkit.org/show_bug.cgi?id=83940
2268
2269         Reviewed by James Robinson.
2270
2271         Add null pointer check to startPageScaleAnimation.
2272
2273         If the root scroll layer goes away in the middle of a page scale
2274         animation, there can be a null pointer access here.
2275
2276         No new tests.
2277
2278         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2279         (WebCore::CCLayerTreeHostImpl::animatePageScale):
2280
2281 2012-04-13  Dana Jansens  <danakj@chromium.org>
2282
2283         [chromium] Replicas should be included in the computed occlusion
2284         https://bugs.webkit.org/show_bug.cgi?id=82262
2285
2286         Reviewed by Adrienne Walker.
2287
2288         When merging a surface's occlusion up to its target, make a copy of it
2289         where the replica will be as well, and make sure that occlusion from a
2290         RenderSurface does not leave its clipRect.
2291
2292         Unit test: CCOcclusionTrackerTestReplicaDoesOcclude
2293                    CCOcclusionTrackerTestReplicaWithClipping
2294                    CCOcclusionTrackerTestSurfaceChildOfSurface
2295
2296         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
2297         (WebCore::RenderSurfaceChromium::hasReplica):
2298         (WebCore):
2299         * platform/graphics/chromium/RenderSurfaceChromium.h:
2300         (RenderSurfaceChromium):
2301         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
2302         (WebCore::transformSurfaceOpaqueRegion):
2303         (WebCore::::leaveToTargetRenderSurface):
2304
2305 2012-04-13  Raymond Liu  <raymond.liu@intel.com>
2306
2307         AudioContext createChannelMerger() method should have optional argument for number of inputs.
2308         https://bugs.webkit.org/show_bug.cgi?id=83759
2309
2310         Reviewed by Chris Rogers.
2311
2312         Check https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html for the optional argument.
2313
2314         Test: webaudio/audiochannelmerger-basic.html
2315
2316         * Modules/webaudio/AudioChannelMerger.cpp:
2317         (WebCore):
2318         (WebCore::AudioChannelMerger::create):
2319         (WebCore::AudioChannelMerger::AudioChannelMerger):
2320         * Modules/webaudio/AudioChannelMerger.h:
2321         (AudioChannelMerger):
2322         * Modules/webaudio/AudioContext.cpp:
2323         (WebCore::AudioContext::createChannelMerger):
2324         (WebCore):
2325         * Modules/webaudio/AudioContext.h:
2326         (AudioContext):
2327         * Modules/webaudio/AudioContext.idl:
2328
2329 2012-04-13  Dana Jansens  <danakj@chromium.org>
2330
2331         [chromium] Remove viewport memory restrictions
2332         https://bugs.webkit.org/show_bug.cgi?id=83316
2333
2334         Reviewed by Adrienne Walker.
2335
2336         We remove the memory restriction on web pages based on viewport size
2337         on desktop. This is causing pages that have complex use of layers to
2338         end up hitting our memory limits, and moreso when the window is small.
2339         Page complexity is not really a function of the viewport size.
2340
2341         We drop the mininum memory limit entirely, and just evict all
2342         unprotected textures instead.
2343
2344         Covered by existing tests.
2345
2346         * platform/graphics/chromium/TextureManager.cpp:
2347         (WebCore::TextureManager::highLimitBytes):
2348         (WebCore::TextureManager::reclaimLimitBytes):
2349         * platform/graphics/chromium/TextureManager.h:
2350         (TextureManager):
2351         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2352         (WebCore::CCLayerTreeHost::beginCommitOnImplThread):
2353         (WebCore::CCLayerTreeHost::setVisible):
2354         (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread):
2355         (WebCore::CCLayerTreeHost::updateLayers):
2356
2357 2012-04-13  Ken Buchanan  <kenrb@chromium.org>
2358
2359         Optimize tracking of intruding floats being removed from RenderBlock during layout
2360         https://bugs.webkit.org/show_bug.cgi?id=82928
2361
2362         Reviewed by David Hyatt.
2363
2364         Performance tweaks in RenderBlock layout as a follow up to r112935.
2365
2366         * rendering/RenderBlock.cpp:
2367         (WebCore::RenderBlock::clearFloats):
2368
2369 2012-04-13  Mihnea Ovidenie  <mihnea@adobe.com>
2370
2371         [CSSRegions]Implement NamedFlow::contentNodes attribute
2372         https://bugs.webkit.org/show_bug.cgi?id=80134
2373
2374         Reviewed by David Hyatt.
2375
2376         The named flow content nodes collection contains those nodes with webkitFlowInto property set to 'flow'.
2377         In the list, the nodes are placed in document order. Nodes with display:none are also part of the list.
2378         The list of nodes is returned as a static node list.
2379
2380         The content nodes are stored in RenderNamedFlowThread. The content nodes are added to the list in NodeRenderingContext::moveToFlowThreadIfNeeded
2381         and removed from the list in Element::detach. When an element -webkit-flow-into property is changed, the element is detached and attached.
2382         I have also added a bit in NodeFlags to mark that an element is part of a named flow (and the corresponding inNamedFlow/setInNamedFlow/clearInNamedFlow functions).
2383
2384         Test: fast/regions/webkit-named-flow-content-nodes.html
2385
2386         * dom/Document.cpp:
2387         (WebCore::Document::webkitGetFlowByName):
2388         * dom/Document.h:
2389         * dom/Element.cpp:
2390         (WebCore::Element::detach):
2391         * dom/Node.h:
2392         (WebCore::Node::inNamedFlow):
2393         (WebCore::Node::setInNamedFlow):
2394         (WebCore::Node::clearInNamedFlow):
2395         (Node):
2396         * dom/NodeRenderingContext.cpp:
2397         (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
2398         * dom/WebKitNamedFlow.cpp:
2399         (WebCore::WebKitNamedFlow::contentNodes):
2400         (WebCore):
2401         * dom/WebKitNamedFlow.h:
2402         (WebKitNamedFlow):
2403         * dom/WebKitNamedFlow.idl:
2404         * rendering/FlowThreadController.cpp:
2405         (WebCore::FlowThreadController::registerNamedFlowContentNode):
2406         (WebCore):
2407         (WebCore::FlowThreadController::unregisterNamedFlowContentNode):
2408         * rendering/FlowThreadController.h:
2409         (FlowThreadController):
2410         * rendering/RenderNamedFlowThread.cpp:
2411         (WebCore):
2412         (WebCore::RenderNamedFlowThread::registerNamedFlowContentNode):
2413         (WebCore::RenderNamedFlowThread::unregisterNamedFlowContentNode):
2414         * rendering/RenderNamedFlowThread.h:
2415         (WebCore):
2416         (RenderNamedFlowThread):
2417         (WebCore::RenderNamedFlowThread::contentNodes):
2418         (WebCore::RenderNamedFlowThread::hasContentNode):
2419
2420 2012-04-13  Jessie Berlin  <jberlin@apple.com>
2421
2422         Remove the calls to CRASH() from ResourceLoader.cpp.
2423         https://bugs.webkit.org/show_bug.cgi?id=83962
2424
2425         Reviewed by Alexey Proskuryakov.
2426
2427         They were added in r91316 to aid debugging for the issue fixed in r105556 and r106130.
2428
2429         * loader/ResourceLoader.cpp:
2430         (WebCore::ResourceLoader::willSendRequest):
2431         (WebCore::ResourceLoader::didSendData):
2432         (WebCore::ResourceLoader::didReceiveResponse):
2433         (WebCore::ResourceLoader::didReceiveData):
2434         (WebCore::ResourceLoader::didFinishLoading):
2435         (WebCore::ResourceLoader::didFail):
2436         (WebCore::ResourceLoader::wasBlocked):
2437         (WebCore::ResourceLoader::cannotShowURL):
2438         (WebCore::ResourceLoader::shouldUseCredentialStorage):
2439         (WebCore::ResourceLoader::willCacheResponse):
2440
2441 2012-04-13  Xiaomei Ji  <xji@chromium.org>
2442
2443         REGRESSION(r102190) [chromium] text rendering (font and font size) in some Arabic/Persian page is wrong
2444         when using certain fonts
2445         https://bugs.webkit.org/show_bug.cgi?id=83523
2446
2447         Reviewed by Kent Tamura.
2448
2449         Revert r102190.
2450         Convert characters being treatAsSpace to white space. 
2451
2452         * platform/graphics/chromium/UniscribeHelper.cpp:
2453         (WebCore::UniscribeHelper::fillRuns):
2454         (WebCore::UniscribeHelper::adjustSpaceAdvances):
2455
2456 2012-04-13  Timothy Hatcher  <timothy@apple.com>
2457
2458         Change how the Web Insector is installed on Mac builds.
2459
2460         <rdar://problem/10857918>
2461
2462         Reviewed by Mark Rowe.
2463
2464         * WebCore.xcodeproj/project.pbxproj: Updated Copy Inspector Resources
2465         and Streamline Inspector Source build phases.
2466
2467 2012-04-13  Jer Noble  <jer.noble@apple.com>
2468
2469         Video at apple.com gets standard controls in addition to custom controls after returning from full screen
2470         https://bugs.webkit.org/show_bug.cgi?id=83939
2471
2472         Reviewed by Eric Carlson.
2473
2474         No new tests; DRT and WKTR don't have the infrastructure to test full-screen animation related bugs.
2475
2476         Instead of asking the media element whether it is in full screen or not, rely on when the media root element
2477         was told that it enteredFullscreen() or exitedFullscreen(), which may occur at a different time than the
2478         media element due to animations.
2479
2480         * html/shadow/MediaControlRootElement.cpp:
2481         (WebCore::MediaControlRootElement::reset):
2482         (WebCore::MediaControlRootElement::playbackStarted):
2483         (WebCore::MediaControlRootElement::enteredFullscreen):
2484         (WebCore::MediaControlRootElement::exitedFullscreen):
2485         (WebCore::MediaControlRootElement::defaultEventHandler):
2486         (WebCore::MediaControlRootElement::startHideFullscreenControlsTimer):
2487         (WebCore::MediaControlRootElement::hideFullscreenControlsTimerFired):
2488         * html/shadow/MediaControlRootElement.h:
2489         (MediaControlRootElement): Added m_isFullscreen;
2490
2491 2012-04-13  Jer Noble  <jer.noble@apple.com>
2492
2493         fullscreen/video-controls-drag.html failing on Mac
2494         https://bugs.webkit.org/show_bug.cgi?id=81176
2495
2496         Reviewed by Eric Carlson.
2497
2498         No new tests.  Fixes fullscreen/video-controls-drag.html.
2499
2500         Regressed in r110409.  When the -webkit-media-controls-panel were changed
2501         from position:absolute to position:relative, this broke dragging of the 
2502         controls in fullscreen, which relies on the panel being absolutely positioned
2503         to do its drag positioning. Change the way drag positioning is calculated to
2504         accommodate position:relative.
2505
2506         * css/fullscreenQuickTime.css:
2507         (video:-webkit-full-screen::-webkit-media-controls-panel): Instead of bottom:50px,
2508             use margin-bottom:50px to push panel up from the bottom of the screen.
2509         * html/shadow/MediaControlElements.cpp:
2510         (WebCore::MediaControlPanelElement::startDrag): Do not ask for the current renderer location.
2511         (WebCore::MediaControlPanelElement::continueDrag): Use the delta between the event locations
2512             only to calculate the new panel position.
2513         * html/shadow/MediaControlElements.h:
2514
2515 2012-04-13  Simon Fraser  <simon.fraser@apple.com>
2516
2517         Compositing layers not updated after scroll in WebKit1
2518         https://bugs.webkit.org/show_bug.cgi?id=83945
2519
2520         Reviewed by James Robinson.
2521         
2522         Fix the WebKit1 code path to correctly update compositing layers
2523         after a scroll, by calling updateFixedElementsAfterScrolling() from
2524         scrollPositionChangedViaPlatformWidget().
2525
2526         Covered by existing tests.
2527
2528         * page/FrameView.cpp:
2529         (WebCore::FrameView::scrollPositionChangedViaPlatformWidget):
2530
2531 2012-04-13  Dean Jackson  <dino@apple.com>
2532
2533         Don't process filters if the input region is exceptionally large.
2534         https://bugs.webkit.org/show_bug.cgi?id=83317
2535
2536         Reviewed by Simon Fraser.
2537
2538         An extremely large element causes problems with filters, either by
2539         taking too long to compute the output or using too much memory. The
2540         filter engine already has some constants for maximum expected size.
2541         Make sure the render tree checks them before deciding to apply
2542         effects.
2543
2544         Tests: css3/filters/huge-region-composited.html
2545                css3/filters/huge-region.html
2546
2547         * platform/graphics/filters/FilterEffect.cpp:
2548         (WebCore::FilterEffect::apply):
2549         * rendering/FilterEffectRenderer.cpp:
2550         (WebCore):
2551         (WebCore::isFilterSizeValid):
2552         (WebCore::FilterEffectRenderer::build):
2553         (WebCore::FilterEffectRenderer::updateBackingStore):
2554         (WebCore::FilterEffectRendererHelper::beginFilterEffect):
2555         * rendering/FilterEffectRenderer.h:
2556         (FilterEffectRenderer):
2557         * rendering/RenderLayer.cpp:
2558         (WebCore::RenderLayer::updateOrRemoveFilterEffect):
2559
2560 2012-04-13  Anna Cavender  <annacc@chromium.org>
2561
2562         Queue the cuechange event on HTMLTrackElement for proper sorting.
2563         https://bugs.webkit.org/show_bug.cgi?id=83858
2564
2565         Reviewed by Eric Carlson.
2566
2567         No new tests. Updates to media/track/track-cues-cuechange.html and
2568         media/track/track-mode.html
2569
2570         * html/HTMLMediaElement.cpp:
2571         (WebCore::HTMLMediaElement::updateActiveTextTrackCues):
2572             Add HTMLTrackElement's cuechange event to the event queue rather than 
2573             firing it synchronously.
2574         * html/track/LoadableTextTrack.cpp:
2575             Remove fireCueChangeEvent() as it is no longer used.
2576         * html/track/LoadableTextTrack.h:
2577             Ditto.
2578         * html/track/TextTrack.h:
2579         (TextTrack):
2580             Ditto.
2581
2582 2012-04-11  Antonio Gomes  <agomes@rim.com>
2583
2584         Be more restrictive when adding ScrollableArea's to FrameView's ScrollableArea's map
2585         https://bugs.webkit.org/show_bug.cgi?id=79611
2586
2587         Reviewed by James Robinson.
2588
2589         Source/WebCore:
2590
2591         As of today, any FrameView attached to the Widget-tree or any
2592         RenderLayer whose corresponding RenderBox's style has a 'overflow'
2593         property set to 'auto' is cached in its containing scrollable areas set.
2594         We could be more restrictive about what we in fact want to
2595         cache as scrollable areas, by checking if the element as an overflow
2596         (i.e. more content than its viewport).
2597
2598         * page/FrameView.cpp:
2599         (WebCore::FrameView::setFrameRect):
2600
2601         Whenever the viewport changes, check if we have an scrollable/overflowed
2602         content, and update the cache accordingly.
2603
2604         (WebCore::FrameView::setContentsSize):
2605
2606         Whenever the contents size changes, check if we have a scrollable/overflowed
2607         content, and update the cache accordingly.
2608
2609         (WebCore::FrameView::calculateScrollbarModesForLayout):
2610
2611         Introduces a way to query for the scrollbars by only
2612         taking into account the "rules" set by the web author.
2613         For that, a new enum was added called SrollbarModesCalculationStrategy,
2614         which allows callers to discard for example client-side scrollbar policies
2615         in order to verify if a given frameview is scrollable or not.
2616
2617         (WebCore::FrameView::updateScrollableAreaSet):
2618
2619         Take into account various factors before considering a FrameView as
2620         scrollable. If in the end it is, it gets added to its parent FrameView
2621         scrollable areas map, otherwise removed.
2622
2623         (WebCore):
2624         (WebCore::FrameView::addScrollableArea):
2625
2626         Became unneeded, thus removed.
2627
2628         (WebCore::FrameView::removeScrollableArea):
2629
2630         Whenever a FrameView is removed from the Widget-tree,
2631         remove it from the cache.
2632
2633         * page/FrameView.h:
2634         (FrameView):
2635         * rendering/RenderLayer.cpp:
2636         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
2637
2638         Update scrollable area set after layout.
2639
2640         (WebCore::RenderLayer::updateScrollbarsAfterStyleChange):
2641
2642         Update scrollable area set after style changes.
2643
2644         (WebCore::RenderLayer::styleChanged):
2645
2646         Removed the scrollable areas logic detection from it.
2647
2648         (WebCore::RenderLayer::updateScrollableAreaSet):
2649
2650         Updates the containing FrameView scrollable areas cache
2651         only when needed (i.e. an overflow exists).
2652
2653         (WebCore):
2654         * rendering/RenderLayer.h:
2655         (RenderLayer):
2656         * testing/Internals.cpp:
2657         (WebCore::Internals::numberOfScrollableAreas):
2658         (WebCore):
2659         * testing/Internals.h:
2660         (Internals):
2661         * testing/Internals.idl:
2662
2663         Tests: fast/scrolling/scrollable-area-frame-inherited-visibility-hidden.html
2664                fast/scrolling/scrollable-area-frame-overflow-hidden.html
2665                fast/scrolling/scrollable-area-frame-overried-inherited-visibility-hidden.html
2666                fast/scrolling/scrollable-area-frame-scrolling-no-overried-inherited-visibility-hidden.html
2667                fast/scrolling/scrollable-area-frame-scrolling-no-visibility-hidden-child.html
2668                fast/scrolling/scrollable-area-frame-scrolling-no.html
2669                fast/scrolling/scrollable-area-frame-scrolling-yes-display-none.html
2670                fast/scrolling/scrollable-area-frame-scrolling-yes.html
2671                fast/scrolling/scrollable-area-frame-visibility-hidden-child.html
2672                fast/scrolling/scrollable-area-frame-zero-size-and-border.html
2673                fast/scrolling/scrollable-area-frame.html
2674                fast/scrolling/scrollable-area-overflow-auto-display-none-in-parent.html
2675                fast/scrolling/scrollable-area-overflow-auto-display-none.html
2676                fast/scrolling/scrollable-area-overflow-auto-visibility-hidden-in-parent.html
2677                fast/scrolling/scrollable-area-overflow-auto-visibility-hidden.html
2678                fast/scrolling/scrollable-area-overflow-auto-visibility-override.html
2679                fast/scrolling/scrollable-area-overflow-auto-visibility-visible.html
2680                fast/scrolling/scrollable-area-overflow-auto.html
2681                fast/scrolling/scrollable-area-overflow-not-set.html
2682                fast/scrolling/scrollable-area-overflow-visible.html
2683
2684 2012-04-13  Antti Koivisto  <antti@apple.com>
2685
2686         Track rem unit usage in StyleSheetInternal
2687         https://bugs.webkit.org/show_bug.cgi?id=83923
2688
2689         Reviewed by Andreas Kling.
2690
2691         Currently CSSParser sets usesRemUnits flag directly to Document. It should be set to 
2692         the stylesheet instead so parser does not need to know about the document. This also 
2693         avoids setting the flag unnecessarily when the stylesheet is not used.
2694
2695         * css/CSSGrammar.y:
2696         * css/CSSStyleSheet.cpp:
2697         (WebCore::StyleSheetInternal::StyleSheetInternal):
2698         * css/CSSStyleSheet.h:
2699         (WebCore::StyleSheetInternal::parserSetUsesRemUnits):
2700         (WebCore::StyleSheetInternal::usesRemUnits):
2701         (StyleSheetInternal):
2702         * dom/Document.cpp:
2703         (WebCore):
2704         (WebCore::checkUsesRemUnits):
2705         (WebCore::Document::updateActiveStylesheets):
2706         * dom/Document.h:
2707         (WebCore::Document::usesRemUnits):
2708
2709 2012-04-11  James Robinson  <jamesr@chromium.org>
2710
2711         [chromium] Remove unused compositeToTexture / compositeOffscreen setting
2712         https://bugs.webkit.org/show_bug.cgi?id=83733
2713
2714         Reviewed by Adrienne Walker.
2715
2716         Remove compositeOffscreen setting and implementation. This was an experiment that is no longer needed.
2717
2718         * platform/graphics/chromium/LayerRendererChromium.cpp:
2719         (WebCore::LayerRendererChromium::finishDrawingFrame):
2720         (WebCore::LayerRendererChromium::useRenderSurface):
2721         (WebCore::LayerRendererChromium::setScissorToRect):
2722         * platform/graphics/chromium/LayerRendererChromium.h:
2723         (LayerRendererChromium):
2724         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2725         (WebCore::CCSettings::CCSettings):
2726         (CCSettings):
2727
2728 2012-04-13  Alexey Proskuryakov  <ap@apple.com>
2729
2730         REGRESSION (XHR Caching): Uncacheable responses sent by Rails through Apache are cached
2731         https://bugs.webkit.org/show_bug.cgi?id=83925
2732         <rdar://problem/11231790>
2733
2734         Reviewed by Antti Koivisto.
2735
2736         Added subtests to http/tests/cache/subresource-expiration-2.html.
2737
2738         * platform/network/ResourceResponseBase.cpp:
2739         (WebCore::ResourceResponseBase::parseCacheControlDirectives): Honor first max-age
2740         instead of the last. New behavior matches both Firefox and IE.
2741
2742 2012-04-13  James Robinson  <jamesr@chromium.org>
2743
2744         [chromium] Move WebVideoFrame into Platform and remove WebCore::VideoFrameChromium wrapper API
2745         https://bugs.webkit.org/show_bug.cgi?id=83851
2746
2747         Reviewed by Adam Barth.
2748
2749         Remove VideoFrameChromium wrapper and converts WebCore code to using the Platform WebVideoFrame API directly.
2750         Some utility code that previously existed on VideoFrameChromium and only had one caller, such as doing
2751         width/height adjustements for YV12 frames, is moved into the calling code (CCVideoLayerImpl).
2752
2753         Covered by existing media/ and compositing/ layout tests.
2754
2755         * WebCore.gypi:
2756         * platform/graphics/chromium/LayerRendererChromium.cpp:
2757         (WebCore::LayerRendererChromium::drawYUV):
2758         (WebCore::LayerRendererChromium::drawRGBA):
2759         (WebCore::LayerRendererChromium::copyFrameToTextures):
2760         * platform/graphics/chromium/LayerRendererChromium.h:
2761         * platform/graphics/chromium/VideoFrameProvider.h:
2762         (VideoFrameProvider):
2763         * platform/graphics/chromium/cc/CCVideoDrawQuad.cpp:
2764         (WebCore::CCVideoDrawQuad::create):
2765         (WebCore::CCVideoDrawQuad::CCVideoDrawQuad):
2766         * platform/graphics/chromium/cc/CCVideoDrawQuad.h:
2767         (WebKit):
2768         (CCVideoDrawQuad):
2769         (WebCore::CCVideoDrawQuad::frame):
2770         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2771         (WebCore):
2772         (WebCore::convertVFCFormatToGC3DFormat):
2773         (WebCore::CCVideoLayerImpl::willDraw):
2774         (WebCore::videoFrameDimension):
2775         (WebCore::hasPaddingBytes):
2776         (WebCore::CCVideoLayerImpl::computeVisibleSize):
2777         (WebCore::CCVideoLayerImpl::reserveTextures):
2778         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
2779         (WebKit):
2780
2781 2012-04-13  Rob Flack  <flackr@chromium.org>
2782
2783         Chromium: Should enable -webkit-image-set
2784         https://bugs.webkit.org/show_bug.cgi?id=81859
2785
2786         Reviewed by Adam Barth.
2787
2788         Test: fast/css/image-set-parsing.html
2789
2790         * WebCore.gypi:
2791
2792 2012-04-12  Michael Nordman  <michaeln@google.com>
2793
2794         [chromium] Now that the chromium port is using a different dom_storage backend
2795         library in its main browser process, there are a handful of files that should no
2796         longer be included in the build, and a few files than should be deleted
2797         outright, and the webkit api should be modified to reflect the new (and smaller)
2798         contract between the embedder and webkit/webcore.
2799         https://bugs.webkit.org/show_bug.cgi?id=83807
2800
2801         Reviewed by Adam Barth.
2802
2803         No new tests, existing tests apply.
2804
2805         * WebCore.gyp/WebCore.gyp: Exclude several files from the WebCore/storage directory.
2806         * storage/StorageEventDispatcher.h: Delete a stale comment.
2807
2808 2012-04-13  Sheriff Bot  <webkit.review.bot@gmail.com>
2809
2810         Unreviewed, rolling out r114140.
2811         http://trac.webkit.org/changeset/114140
2812         https://bugs.webkit.org/show_bug.cgi?id=83921
2813
2814         Fails fast/css/image-set-parsing.html test it attempts to
2815         introduce. (Requested by scheib on #webkit).
2816
2817         * WebCore.gypi:
2818
2819 2012-04-13  Dan Bernstein  <mitz@apple.com>
2820
2821         <rdar://problem/10912680> Pixel access canvas APIs do not operate at backing store resolution
2822         https://bugs.webkit.org/show_bug.cgi?id=83836
2823
2824         Reviewed by Darin Adler.
2825
2826         Test: fast/canvas/2d.imageDataHD.html
2827
2828         Added getImageDataHD and putImageDataHD functions to CanvasRenderingContext2D, as proposed in
2829         <http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-March/035112.html>. The functions
2830         are prefixed with “webkit” for now.
2831
2832         * html/canvas/CanvasRenderingContext2D.cpp:
2833         (WebCore::CanvasRenderingContext2D::getImageData): Added this cover function that calls
2834         through to getImageData with LogicalCoordinateSystem.
2835         (WebCore::CanvasRenderingContext2D::webkitGetImageDataHD): Added. Calls through to
2836         getImageData with BackingStoreCoordinateSystem.
2837         (WebCore::CanvasRenderingContext2D::getImageData): Added a CoordinateSystem parameter to this
2838         now-private function. It is passed through to ImageBuffer::getUnmultipliedImageData().
2839         (WebCore::CanvasRenderingContext2D::putImageData): Added this cover function that calls
2840         through to putImageData with LogicalCoordinateSystem.
2841         (WebCore::CanvasRenderingContext2D::webkitPutImageDataHD): Added. Calls through to
2842         putImageData with BackingStoreCoordinateSystem.
2843         (WebCore::CanvasRenderingContext2D::putImageData): Added a CoordinateSystem parameter to this
2844         function. It is passed through to ImageBuffer::putByteArray, and used to compute the rect to
2845         invalidate after the drawing operation.
2846         * html/canvas/CanvasRenderingContext2D.h:
2847         * html/canvas/CanvasRenderingContext2D.idl: Added webkitPutImageDataHD() and
2848         webkitGetImageDataHD().
2849         * platform/graphics/ImageBuffer.h: Added a CoordinateSystem enum with the values
2850         LogicalCoordinateSystem and BackingStoreCoordinateSystem. Added a CoordinateSystem parameter,
2851         which defaults to LogicalCoordinateSystem, to getUnmultipliedImageData,
2852         getPremultipliedImageData, and putByteArray.
2853         * platform/graphics/cairo/ImageBufferCairo.cpp:
2854         (WebCore::ImageBuffer::getUnmultipliedImageData):
2855         (WebCore::ImageBuffer::getPremultipliedImageData):
2856         (WebCore::ImageBuffer::putByteArray):
2857         (WebCore::ImageBuffer::toDataURL):
2858         * platform/graphics/cg/ImageBufferCG.cpp:
2859         (WebCore::ImageBuffer::getUnmultipliedImageData): Now uses the CoordinateSystem parameter to
2860         decide whether to ask ImageBufferDaya::getData() to apply the resolution scale or not.
2861         (WebCore::ImageBuffer::getPremultipliedImageData): Ditto.
2862         (WebCore::ImageBuffer::putByteArray): Now uses the CoordinateSystem parameter to decide
2863         whether to maintain the resolution scale while drawing or not.
2864         (WebCore::ImageBuffer::toDataURL):
2865         * platform/graphics/gtk/ImageBufferGtk.cpp:
2866         (WebCore::ImageBuffer::toDataURL):
2867         * platform/graphics/qt/ImageBufferQt.cpp:
2868         (WebCore::ImageBuffer::getUnmultipliedImageData):
2869         (WebCore::ImageBuffer::getPremultipliedImageData):
2870         (WebCore::ImageBuffer::putByteArray):
2871         (WebCore::ImageBuffer::toDataURL):
2872         * platform/graphics/skia/ImageBufferSkia.cpp:
2873         (WebCore::ImageBuffer::getUnmultipliedImageData):
2874         (WebCore::ImageBuffer::getPremultipliedImageData):
2875         (WebCore::ImageBuffer::putByteArray):
2876         (WebCore::ImageBuffer::toDataURL):
2877         * platform/graphics/wince/ImageBufferWinCE.cpp:
2878         (WebCore::ImageBuffer::getUnmultipliedImageData):
2879         (WebCore::ImageBuffer::getPremultipliedImageData):
2880         (WebCore::ImageBuffer::putByteArray):
2881         (WebCore::ImageBuffer::toDataURL):
2882         * platform/graphics/wx/ImageBufferWx.cpp:
2883         (WebCore::ImageBuffer::getUnmultipliedImageData):
2884         (WebCore::ImageBuffer::getPremultipliedImageData):
2885         (WebCore::ImageBuffer::putByteArray):
2886         (WebCore::ImageBuffer::toDataURL):
2887
2888 2012-04-12  Shawn Singh  <shawnsingh@chromium.org>
2889
2890         [chromium] Support CCHeadsUpDisplay in threaded compositing mode
2891         https://bugs.webkit.org/show_bug.cgi?id=67499
2892
2893         Reviewed by James Robinson.
2894
2895         No new tests because this code is debugging code itself.
2896
2897         The last item that was needed to make the CCHeadsUpDisplay work in
2898         threaded compositing mode was to remove the font rendering code
2899         used on the impl-side thread. To solve this, this patch adds a
2900         CCFontAtlas that is initialized on the main thread (where the font
2901         rendering takes place). Then, when the HUD draws text on the impl
2902         thread, it uses the font atlas directly.
2903
2904         * WebCore.gypi:
2905         * platform/graphics/chromium/LayerRendererChromium.cpp:
2906         (WebCore::LayerRendererChromium::create):
2907         (WebCore::LayerRendererChromium::initialize):
2908         * platform/graphics/chromium/LayerRendererChromium.h:
2909         (WebCore):
2910         (LayerRendererChromium):
2911         * platform/graphics/chromium/cc/CCFontAtlas.cpp: Added.
2912         (WebCore):
2913         (WebCore::CCFontAtlas::CCFontAtlas):
2914         (WebCore::wrapPositionIfNeeded):
2915         (WebCore::CCFontAtlas::generateAtlasForFont):
2916         (WebCore::CCFontAtlas::initialize):
2917         (WebCore::CCFontAtlas::drawText):
2918         (WebCore::CCFontAtlas::drawOneLineOfTextInternal):
2919         (WebCore::CCFontAtlas::drawDebugAtlas):
2920         * platform/graphics/chromium/cc/CCFontAtlas.h: Added.
2921         (WebCore):
2922         (CCFontAtlas):
2923         (WebCore::CCFontAtlas::create):
2924         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
2925         (WebCore::CCHeadsUpDisplay::CCHeadsUpDisplay):
2926         (WebCore):
2927         (WebCore::CCHeadsUpDisplay::showPlatformLayerTree):
2928         (WebCore::CCHeadsUpDisplay::drawHudContents):
2929         (WebCore::CCHeadsUpDisplay::drawFPSCounter):
2930         (WebCore::CCHeadsUpDisplay::drawFPSCounterText):
2931         (WebCore::CCHeadsUpDisplay::drawPlatformLayerTree):
2932         * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
2933         (WebCore::CCHeadsUpDisplay::create):
2934         (CCHeadsUpDisplay):
2935         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2936         (WebCore::CCLayerTreeHost::initialize):
2937         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2938         (WebCore):
2939         (WebCore::CCLayerTreeHost::headsUpDisplayFontAtlas):
2940         (CCLayerTreeHost):
2941         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2942         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
2943         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2944         (WebCore):
2945         (CCLayerTreeHostImpl):
2946         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2947         (WebCore::CCSingleThreadProxy::initializeLayerRenderer):
2948         (WebCore::CCSingleThreadProxy::recreateContext):
2949         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2950         (WebCore::CCThreadProxy::initializeLayerRendererOnImplThread):
2951         (WebCore::CCThreadProxy::recreateContextOnImplThread):
2952
2953 2012-04-13  Rob Flack  <flackr@chromium.org>
2954
2955         Chromium: Should enable -webkit-image-set
2956         https://bugs.webkit.org/show_bug.cgi?id=81859
2957
2958         Reviewed by Adam Barth.
2959
2960         Test: fast/css/image-set-parsing.html
2961
2962         * WebCore.gypi:
2963
2964 2012-04-13  Pavel Feldman  <pfeldman@chromium.org>
2965
2966         Web Inspector: do not attempt to load content from resource until request finished loading.
2967         https://bugs.webkit.org/show_bug.cgi?id=83896
2968
2969         Reviewed by Yury Semikhatsky.
2970
2971         When we stop in the inline script on reload, we should only show concatenated script content.
2972         When we resume, we should replace UI source code with the actual HTML content. We should not attempt to
2973         fetch resource content until request finished loading. I regressed it in the Request extraction
2974         and now am bringing it back.
2975
2976         * inspector/front-end/RawSourceCode.js:
2977         (WebInspector.RawSourceCode):
2978         (WebInspector.RawSourceCode.prototype._finishedLoading):
2979         * inspector/front-end/ResourceScriptMapping.js:
2980         (WebInspector.ResourceScriptMapping.prototype.addScript):
2981
2982 2012-04-13  Pavel Feldman  <pfeldman@chromium.org>
2983
2984         Web Inspector: follow up to r114116 - fixing QT test
2985         https://bugs.webkit.org/show_bug.cgi?id=83892
2986
2987         Reviewed by Yury Semikhatsky.
2988
2989         Requesting content for the scripts exclusively via the page agent now.
2990
2991         * inspector/front-end/Resource.js:
2992         (WebInspector.Resource.prototype.get content):
2993         (WebInspector.Resource.prototype.get contentEncoded):
2994         (WebInspector.Resource.prototype.requestContent):
2995         (WebInspector.ResourceRevision.prototype.requestContent):
2996
2997 2012-04-13  Yi Shen  <yi.4.shen@nokia.com>
2998
2999         InsertHTML fails to insert h6 if the insertion point is before some text.
3000         https://bugs.webkit.org/show_bug.cgi?id=82689
3001
3002         Reviewed by Ryosuke Niwa.
3003
3004         Added the missing h6 tag for the isHeaderElement.
3005
3006         No new tests: updated existing test (editing/execCommand/4128080-1.html)
3007
3008         * editing/ReplaceSelectionCommand.cpp:
3009         (WebCore::isHeaderElement):
3010
3011 2012-04-13  Yury Semikhatsky  <yurys@chromium.org>
3012
3013         Web Inspector: exception in heap profiler when expanding a class in summary view
3014         https://bugs.webkit.org/show_bug.cgi?id=83883
3015
3016         Moved all DOM-specific inspector utilities into DOMExtension.js
3017
3018         Merged BinarySearch.js and PartialQuickSort.js into utilities.js, HeapSnapshotWorker.js now
3019         imports utilities.js which contains all required routines.
3020
3021         Reviewed by Pavel Feldman.
3022
3023         * WebCore.gypi:
3024         * WebCore.vcproj/WebCore.vcproj:
3025         * inspector/compile-front-end.py:
3026         * inspector/front-end/BinarySearch.js: Removed.
3027         * inspector/front-end/DOMExtension.js: Copied from Source/WebCore/inspector/front-end/utilities.js.
3028         (Node.prototype.rangeOfWord):
3029         (Node.prototype.traverseNextTextNode):
3030         (Node.prototype.rangeBoundaryForOffset):
3031         (Element.prototype.removeStyleClass):
3032         (Element.prototype.removeMatchingStyleClasses):
3033         (Element.prototype.addStyleClass):
3034         (Element.prototype.hasStyleClass):
3035         (Element.prototype.positionAt):
3036         (Element.prototype.pruneEmptyTextNodes):
3037         (Element.prototype.isScrolledToBottom):
3038         (Node.prototype.enclosingNodeOrSelfWithNodeNameInArray):
3039         (Node.prototype.enclosingNodeOrSelfWithNodeName):
3040         (Node.prototype.enclosingNodeOrSelfWithClass):
3041         (Node.prototype.enclosingNodeWithClass):
3042         (Element.prototype.query):
3043         (Element.prototype.removeChildren):
3044         (Element.prototype.isInsertionCaretInside):
3045         (Element.prototype.createChild):
3046         (Element.prototype.totalOffsetLeft):
3047         (Element.prototype.totalOffsetTop):
3048         (Element.prototype.totalOffset):
3049         (Element.prototype.scrollOffset):
3050         (AnchorBox):
3051         (Element.prototype.offsetRelativeToWindow):
3052         (Element.prototype.boxInWindow):
3053         (Element.prototype.setTextAndTitle):
3054         (Event.prototype.consume):
3055         (Text.prototype.select):
3056         (Element.prototype.selectionLeftOffset):
3057         (Node.prototype.isAncestor):
3058         (Node.prototype.isDescendant):
3059         (Node.prototype.isSelfOrAncestor):
3060         (Node.prototype.isSelfOrDescendant):
3061         (Node.prototype.traverseNextNode):
3062         (Node.prototype.traversePreviousNode):
3063         (HTMLTextAreaElement.prototype.moveCursorToEnd):
3064         (isEnterKey):
3065         (consumeEvent):
3066         (highlightSearchResult):
3067         (highlightSearchResults):
3068         (highlightRangesWithStyleClass):
3069         (applyDomChanges):
3070         (revertDomChanges):
3071         * inspector/front-end/HeapSnapshot.js: Fixed a couple of js compiler warnings
3072         by describing structure of heap snapshot header in the protocol.
3073         (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk):
3074         * inspector/front-end/HeapSnapshotWorker.js:
3075         * inspector/front-end/PartialQuickSort.js: Removed.
3076         * inspector/front-end/WebKit.qrc:
3077         * inspector/front-end/inspector.html:
3078         * inspector/front-end/utilities.js:
3079         (.):
3080
3081 2012-04-13  Sheriff Bot  <webkit.review.bot@gmail.com>
3082
3083         Unreviewed, rolling out r114103.
3084         http://trac.webkit.org/changeset/114103
3085         https://bugs.webkit.org/show_bug.cgi?id=83884
3086
3087         New breakpoint UI looks bad / needs polish. (Requested by
3088         pfeldman_ on #webkit).
3089
3090         * inspector/front-end/Images/breakpointConditionalCounterBorder.png:
3091         * inspector/front-end/Images/breakpointCounterBorder.png:
3092         * inspector/front-end/Images/programCounterBorder.png:
3093         * inspector/front-end/textViewer.css:
3094         (.webkit-execution-line .webkit-line-number-outer):
3095         (.webkit-breakpoint.webkit-execution-line .webkit-line-number-outer):
3096         (.webkit-breakpoint-conditional.webkit-execution-line .webkit-line-number-outer):
3097
3098 2012-04-13  Jason Liu  <jason.liu@torchmobile.com.cn>
3099
3100         [BlackBerry] Sign in cookie for ESPN.com does not retain login account (for fantasy sports).
3101         https://bugs.webkit.org/show_bug.cgi?id=83760
3102
3103         Reviewed by George Staikos.
3104
3105         When we update cookies' database, protocol shouldn't be checked since it is not a cookie's key.
3106         ESPN.com's https cookies should replace old http cookies if they have the same keys(name, path, domain).
3107
3108         We must restart the browser to test, so have to write a manual test case.
3109
3110         Test: ManualTests/blackberry/http-cookie-database-set.php
3111
3112         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
3113         (WebCore::CookieDatabaseBackingStore::invokeOpen):
3114
3115 2012-04-12  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3116
3117         [Qt] Use QQuickFlickable::setPixelAligned instead of doing pixel-alignment when rendering.
3118         https://bugs.webkit.org/show_bug.cgi?id=83770
3119
3120         Reviewed by Kenneth Rohde Christiansen.
3121
3122         Revert the previous way of dealing with things. The problem is that different layers
3123         would end up rounding in different directions, and would cause jittering between
3124         layers or with the QQuickWebPage's background.
3125
3126         * platform/graphics/texmap/TextureMapperGL.cpp:
3127         (WebCore::TextureMapperGL::drawTexture):
3128
3129 2012-04-13  Pavel Feldman  <pfeldman@chromium.org>
3130
3131         Web Inspector: introduce ParsedURL type, clean up url and displayName mess in Resource and NetworkRequest.
3132         https://bugs.webkit.org/show_bug.cgi?id=83871
3133
3134         Reviewed by Yury Semikhatsky.
3135
3136         There is a number of random properties created on Resource and NetworkRequest that represent various url
3137         fragments. Display name is being based on them and sometimes requires fake Resource instance to be created.
3138         This change (officially) introduces WebInspector.ParsedURL as a type that encapsulates this complexity.
3139
3140         This change also moves documentURL property into the Resource and NetworkRequest constructors and brushes up
3141         factory methods used to create the objects.
3142
3143         * inspector/front-end/AuditRules.js:
3144         (WebInspector.AuditRules.GzipRule.prototype._shouldCompress):
3145         (WebInspector.AuditRules.CookieSizeRule.prototype.processCookies):
3146         * inspector/front-end/Database.js:
3147         (WebInspector.Database.prototype.get displayDomain):
3148         * inspector/front-end/JavaScriptContextManager.js:
3149         (WebInspector.FrameEvaluationContext.prototype.get displayName):
3150         * inspector/front-end/NetworkManager.js:
3151         (WebInspector.NetworkDispatcher.prototype.webSocketCreated):
3152         (WebInspector.NetworkDispatcher.prototype._createNetworkRequest):
3153         (get WebInspector):
3154         * inspector/front-end/NetworkPanel.js:
3155         (WebInspector.NetworkLogView.prototype._highlightNthMatchedRequest):
3156         (WebInspector.NetworkDataGridNode.prototype._refreshNameCell):
3157         * inspector/front-end/NetworkRequest.js:
3158         (WebInspector.NetworkRequest):
3159         (WebInspector.NetworkRequest.prototype.set url):
3160         (WebInspector.NetworkRequest.prototype.get documentURL):
3161         (WebInspector.NetworkRequest.prototype.get parsedURL):
3162         (WebInspector.NetworkRequest.prototype.get displayName):
3163         (WebInspector.NetworkRequest.prototype.get folder):
3164         * inspector/front-end/RequestHeadersView.js:
3165         (WebInspector.RequestHeadersView.prototype._refreshUrlFragment):
3166         * inspector/front-end/Resource.js:
3167         (WebInspector.Resource):
3168         (WebInspector.Resource.prototype.set url):
3169         (WebInspector.Resource.prototype.get parsedURL):
3170         (WebInspector.Resource.prototype.get frameId):
3171         (WebInspector.Resource.prototype.get loaderId):
3172         (WebInspector.Resource.prototype.get displayName):
3173         * inspector/front-end/ResourceTreeModel.js:
3174         (WebInspector.ResourceTreeModel.prototype._onRequestUpdateDropped):
3175         (WebInspector.ResourceTreeModel.prototype._addFramesRecursively):
3176         (WebInspector.ResourceTreeModel.prototype._createResourceFromFramePayload):
3177         (WebInspector.ResourceTreeFrame.prototype._addRequest):
3178         * inspector/front-end/ResourceUtils.js:
3179         (WebInspector.ParsedURL):
3180         (WebInspector.ParsedURL.prototype.get displayName):
3181         (String.prototype.asParsedURL):
3182         (WebInspector.displayDomain):
3183         (WebInspector.resourceURLForRelatedNode.callback):
3184         (WebInspector.resourceURLForRelatedNode):
3185         * inspector/front-end/ResourcesPanel.js:
3186         (WebInspector.FrameTreeElement.prototype.frameNavigated):
3187         (WebInspector.ApplicationCacheManifestTreeElement):
3188         (WebInspector.ApplicationCacheFrameTreeElement.prototype._refreshTitles):
3189         * inspector/front-end/utilities.js:
3190
3191 2012-04-13  Pavel Feldman  <pfeldman@chromium.org>
3192
3193         Web Inspector: extracting NetworkRequest from Resource (step 3)
3194         https://bugs.webkit.org/show_bug.cgi?id=83802
3195
3196         Reviewed by Yury Semikhatsky.
3197
3198         This change extracts NetworkRequest from the Resource. It is now clear that these two
3199         should have super class that would be responsible for parsing URL and would define the
3200         requestContent signature. Corresponding patch will follow.
3201
3202         * inspector/front-end/NetworkManager.js:
3203         * inspector/front-end/NetworkRequest.js:
3204         (WebInspector.NetworkRequest):
3205         (WebInspector.NetworkRequest.prototype.get requestId):
3206         (WebInspector.NetworkRequest.prototype.set requestId):
3207         (WebInspector.NetworkRequest.prototype.get url):
3208         (WebInspector.NetworkRequest.prototype.get frameId):
3209         (WebInspector.NetworkRequest.prototype.get loaderId):
3210         (WebInspector.NetworkRequest.prototype.get startTime):
3211         (WebInspector.NetworkRequest.prototype.set startTime):
3212         (WebInspector.NetworkRequest.prototype.get responseReceivedTime):
3213         (WebInspector.NetworkRequest.prototype.set responseReceivedTime):
3214         (WebInspector.NetworkRequest.prototype.get endTime):
3215         (WebInspector.NetworkRequest.prototype.set endTime):
3216         (WebInspector.NetworkRequest.prototype.get duration):
3217         (WebInspector.NetworkRequest.prototype.get latency):
3218         (WebInspector.NetworkRequest.prototype.get receiveDuration):
3219         (WebInspector.NetworkRequest.prototype.get resourceSize):
3220         (WebInspector.NetworkRequest.prototype.set resourceSize):
3221         (WebInspector.NetworkRequest.prototype.get transferSize):
3222         (WebInspector.NetworkRequest.prototype.increaseTransferSize):
3223         (WebInspector.NetworkRequest.prototype.get finished):
3224         (WebInspector.NetworkRequest.prototype.set finished):
3225         (WebInspector.NetworkRequest.prototype.get failed):
3226         (WebInspector.NetworkRequest.prototype.set failed):
3227         (WebInspector.NetworkRequest.prototype.get canceled):
3228         (WebInspector.NetworkRequest.prototype.set canceled):
3229         (WebInspector.NetworkRequest.prototype.get cached):
3230         (WebInspector.NetworkRequest.prototype.set cached):
3231         (WebInspector.NetworkRequest.prototype.get timing):
3232         (WebInspector.NetworkRequest.prototype.set timing):
3233         (WebInspector.NetworkRequest.prototype.get mimeType):
3234         (WebInspector.NetworkRequest.prototype.set mimeType):
3235         (WebInspector.NetworkRequest.prototype.get displayName):
3236         (WebInspector.NetworkRequest.prototype.get folder):
3237         (WebInspector.NetworkRequest.prototype.get displayDomain):
3238         (WebInspector.NetworkRequest.prototype.get type):
3239         (WebInspector.NetworkRequest.prototype.set type):
3240         (WebInspector.NetworkRequest.prototype.get redirectSource):
3241         (WebInspector.NetworkRequest.prototype.set redirectSource):
3242         (WebInspector.NetworkRequest.prototype.get requestHeaders):
3243         (WebInspector.NetworkRequest.prototype.set requestHeaders):
3244         (WebInspector.NetworkRequest.prototype.get requestHeadersText):
3245         (WebInspector.NetworkRequest.prototype.set requestHeadersText):
3246         (WebInspector.NetworkRequest.prototype.get requestHeadersSize):
3247         (WebInspector.NetworkRequest.prototype.requestHeaderValue):
3248         (WebInspector.NetworkRequest.prototype.get requestCookies):
3249         (WebInspector.NetworkRequest.prototype.get requestFormData):
3250         (WebInspector.NetworkRequest.prototype.set requestFormData):
3251         (WebInspector.NetworkRequest.prototype.get requestHttpVersion):
3252         (WebInspector.NetworkRequest.prototype.get responseHeaders):
3253         (WebInspector.NetworkRequest.prototype.set responseHeaders):
3254         (WebInspector.NetworkRequest.prototype.get responseHeadersText):
3255         (WebInspector.NetworkRequest.prototype.set responseHeadersText):
3256         (WebInspector.NetworkRequest.prototype.get responseHeadersSize):
3257         (WebInspector.NetworkRequest.prototype.responseHeaderValue):
3258         (WebInspector.NetworkRequest.prototype.get responseCookies):
3259         (WebInspector.NetworkRequest.prototype.get queryParameters):
3260         (WebInspector.NetworkRequest.prototype.get formParameters):
3261         (WebInspector.NetworkRequest.prototype.get responseHttpVersion):
3262         (WebInspector.NetworkRequest.prototype._parseParameters):
3263         (WebInspector.NetworkRequest.prototype._headerValue):
3264         (WebInspector.NetworkRequest.prototype.get content):
3265         (WebInspector.NetworkRequest.prototype.get contentEncoded):
3266         (WebInspector.NetworkRequest.prototype.requestContent):
3267         (WebInspector.NetworkRequest.prototype.isHttpFamily):
3268         (WebInspector.NetworkRequest.prototype.requestContentType):
3269         (WebInspector.NetworkRequest.prototype.isPingRequest):
3270         (WebInspector.NetworkRequest.prototype.hasErrorStatusCode):
3271         (WebInspector.NetworkRequest.prototype.populateImageSource):
3272         (WebInspector.NetworkRequest.prototype._contentURL):
3273         (WebInspector.NetworkRequest.prototype._innerRequestContent.onResourceContent):
3274         (WebInspector.NetworkRequest.prototype._innerRequestContent):
3275         (WebInspector.NetworkRequest.prototype.setResource):
3276         (WebInspector.NetworkRequest.prototype.resource):
3277         * inspector/front-end/RawSourceCode.js:
3278         (WebInspector.RawSourceCode):
3279         (WebInspector.RawSourceCode.prototype._resourceAdded):
3280         (WebInspector.RawSourceCode.prototype.forceUpdateSourceMapping):
3281         (WebInspector.RawSourceCode.prototype._createContentProvider):
3282         * inspector/front-end/Resource.js:
3283         (WebInspector.Resource):
3284         (WebInspector.Resource.displayName):
3285         (WebInspector.Resource.prototype.get request):
3286         (WebInspector.Resource.prototype.set url):
3287         (WebInspector.Resource.prototype.get type):
3288         (WebInspector.Resource.prototype.get mimeType):
3289         (WebInspector.Resource.prototype.set mimeType):
3290         (WebInspector.Resource.prototype.get content):
3291         (WebInspector.Resource.prototype.get contentEncoded):
3292         (WebInspector.Resource.prototype.requestContent):
3293         (WebInspector.Resource.prototype._innerRequestContent.callback):
3294         (WebInspector.Resource.prototype._innerRequestContent):
3295         (WebInspector.ResourceRevision.prototype.requestContent.callbackWrapper):
3296         (WebInspector.ResourceRevision.prototype.requestContent):
3297         * inspector/front-end/ResourceScriptMapping.js:
3298         (WebInspector.ResourceScriptMapping.prototype.addScript):
3299
3300 2012-04-13  Mike Reed  <reed@google.com>
3301
3302         use getClipDeviceBounds, rather than (deprecated) getTotalClip
3303         https://bugs.webkit.org/show_bug.cgi?id=83808
3304
3305         Reviewed by Stephen White.
3306
3307         Equivalent functionality, existing tests apply.
3308
3309         * platform/graphics/skia/OpaqueRegionSkia.cpp:
3310         (WebCore::OpaqueRegionSkia::didDraw):
3311
3312 2012-04-13  Thiago Marcos P. Santos  <thiago.santos@intel.com>
3313
3314         [EFL] Add API for color chooser
3315         https://bugs.webkit.org/show_bug.cgi?id=83692
3316
3317         Added new API to enable browsers to display a custom color picker
3318         when an input field of type "color" is activated.
3319
3320         Reviewed by Kenneth Rohde Christiansen.
3321
3322         * PlatformEfl.cmake:
3323         * platform/efl/ColorChooserEfl.cpp: Added.
3324         (WebCore):
3325         (WebCore::ColorChooserEfl::ColorChooserEfl):
3326         (WebCore::ColorChooserEfl::~ColorChooserEfl):
3327         (WebCore::ColorChooserEfl::setSelectedColor):
3328         (WebCore::ColorChooserEfl::endChooser):
3329         * platform/efl/ColorChooserEfl.h: Added.
3330         (WebCore):
3331         (ColorChooserEfl):
3332
3333 2012-04-13  Zalan Bujtas  <zbujtas@gmail.com>
3334
3335         Enabling/disabling delegates scrolling when page has no composited content asserts on WK1.
3336         https://bugs.webkit.org/show_bug.cgi?id=83860
3337
3338         Reviewed by Kenneth Rohde Christiansen.
3339
3340         WK2 has compositing mode on all the time, while Wk1 turns it on only when
3341         the page has composited content. This patch ensures that, when delegates scrolling behavior
3342         is changed, backing stores are cleared only when there's an actual composition,
3343         similarly to what CachedFrame does.
3344
3345         Test: fast/viewport/scroll-delegates-switch-on-page-with-no-composition-mode-asserts.html
3346
3347         * page/FrameView.cpp:
3348         (WebCore::FrameView::delegatesScrollingDidChange):
3349
3350 2012-04-13  Vivek Galatage  <vivekgalatage@gmail.com>
3351
3352         Web Inspector: Line number is not displayed while debugging javascript
3353         https://bugs.webkit.org/show_bug.cgi?id=83786
3354
3355         Reviewed by Pavel Feldman.
3356
3357         Changed the textViewer.css to start displaying the line number with
3358         appropriate color property. Added outline property for enhanced view
3359
3360         No additional test cases required for the above fix.
3361
3362         * inspector/front-end/Images/breakpointConditionalCounterBorder.png:
3363         * inspector/front-end/Images/breakpointCounterBorder.png:
3364         * inspector/front-end/Images/programCounterBorder.png:
3365         * inspector/front-end/textViewer.css:
3366         (.webkit-execution-line .webkit-line-number-outer):
3367         (.webkit-breakpoint.webkit-execution-line .webkit-line-number-outer):
3368         (.webkit-breakpoint-conditional.webkit-execution-line .webkit-line-number-outer):
3369
3370 2012-04-13  Kent Tamura  <tkent@chromium.org>
3371
3372         Add a runtime flag for <input type=date>
3373         https://bugs.webkit.org/show_bug.cgi?id=83853
3374
3375         Reviewed by Adam Barth.
3376
3377         * bindings/generic/RuntimeEnabledFeatures.cpp:
3378         * bindings/generic/RuntimeEnabledFeatures.h:
3379         (WebCore::RuntimeEnabledFeatures::inputTypeDateEnabled): Added.
3380         (WebCore::RuntimeEnabledFeatures::setInputTypeDateEnabled): Added.
3381         * html/InputType.cpp:
3382         (WebCore::createInputTypeFactoryMap):
3383         Don't register type=date if !RuntimeEnabledFeatures::inputTypeDateEnabled()
3384
3385 2012-04-13  Adam Barth  <abarth@webkit.org>
3386
3387         JSDocument::setLocation does too much bare-handed lifting
3388         https://bugs.webkit.org/show_bug.cgi?id=83850
3389
3390         Reviewed by Sam Weinig.
3391
3392         As part of auditing all the ways of kicking off a navigation, I
3393         happened to read JSDocument::setLocation, which uses very old patterns.
3394         This patch updates it to do things the "modern" way.  There shouldn't
3395         be any behavior change.
3396
3397         * bindings/js/JSDocumentCustom.cpp:
3398         (WebCore::JSDocument::setLocation):
3399
3400 2012-04-13  Shinya Kawanaka  <shinyak@chromium.org>
3401
3402         Background width (or height) is wrong if width (or height) * zoom < 1.
3403         https://bugs.webkit.org/show_bug.cgi?id=83350
3404
3405         Reviewed by Nikolas Zimmermann.
3406
3407         calculateImageIntrinsicDimension will return wrong size if the calculated size is 0.
3408         0 is used for expressing unspecfied, so the method returns the box width(height) instead.
3409
3410         Since CachedImage has already similar code, we moved it to IntSize and shared it.
3411
3412         Tests: fast/css/zoom-background-repeat-x-expected.html
3413                fast/css/zoom-background-repeat-x.html
3414                fast/css/zoom-background-repeat-y-expected.html
3415                fast/css/zoom-background-repeat-y.html
3416
3417         * loader/cache/CachedImage.cpp:
3418         (WebCore::CachedImage::imageSizeForRenderer):
3419         * platform/graphics/IntSize.h:
3420         (IntSize):
3421         (WebCore::IntSize::scale):
3422         (WebCore::IntSize::clampToMinimumSize):
3423         * rendering/RenderBoxModelObject.cpp:
3424         (WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions):
3425
3426 2012-04-13  Adam Barth  <abarth@webkit.org>
3427
3428         Prepare submitForm for seamless navigation
3429         https://bugs.webkit.org/show_bug.cgi?id=83838
3430
3431         Reviewed by Ryosuke Niwa.
3432
3433         Previously, FrameLoader::submitForm called FrameTree::find and
3434         Document::canNavigate separately.  This patch refactors this function
3435         to call findFrameForNavigation, which does both checks.
3436
3437         This doesn't change any behavior today, but it prepares us to implement
3438         seamless navigation.  Once the seamless branch lands, this change will
3439         be tested by seamless-form-* in https://github.com/eseidel/webkit/tree/seamless/LayoutTests/fast/frames/seamless
3440
3441         For context, see:
3442         https://github.com/eseidel/webkit/commit/3f27340577ac91b2cc0a834dd2c6fdfcac296c32
3443