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