Radical sign drawn incorrectly due to refactoring typo
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-12-17  David Barton  <dbarton@mathscribe.com>
2
3         Radical sign drawn incorrectly due to refactoring typo
4         https://bugs.webkit.org/show_bug.cgi?id=74780
5
6         Reviewed by Dan Bernstein.
7
8         LayoutTests/mathml/presentation/roots.xhtml shows the bug, but apparently its .png
9         checksum is ok so run-webkit-tests can't detect the problem.
10
11         * rendering/mathml/RenderMathMLRoot.cpp:
12         (WebCore::RenderMathMLRoot::paint):
13         In revision 88250, one paintOffset should have been adjustedPaintOffset.
14
15 2011-12-17  Adrienne Walker  <enne@google.com>
16
17         [chromium] Reverting r103011, r103135 due to Aura test failures
18
19         Unreviewed gardening.
20
21         * platform/graphics/chromium/ContentLayerChromium.cpp:
22         (WebCore::ContentLayerChromium::~ContentLayerChromium):
23         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
24         (WebCore::GraphicsLayerChromium::notifySyncRequired):
25         * platform/graphics/chromium/GraphicsLayerChromium.h:
26         * platform/graphics/chromium/ImageLayerChromium.cpp:
27         (WebCore::ImageLayerChromium::paintContentsIfDirty):
28         * platform/graphics/chromium/LayerChromium.cpp:
29         (WebCore::LayerChromium::setLayerTreeHost):
30         (WebCore::LayerChromium::setNeedsCommit):
31         (WebCore::LayerChromium::setParent):
32         (WebCore::LayerChromium::setMaskLayer):
33         * platform/graphics/chromium/LayerChromium.h:
34         (WebCore::LayerChromium::setReplicaLayer):
35         * platform/graphics/chromium/TiledLayerChromium.cpp:
36         (WebCore::TiledLayerChromium::setLayerTreeHost):
37         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
38         (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
39         (WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
40         (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
41         (WebCore::CCLayerTreeHost::paintLayerContents):
42         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
43         (WebCore::CCLayerTreeHost::setRootLayer):
44
45 2011-12-16  Chris Marrin  <cmarrin@apple.com>
46
47         Hardware acceleration of W3C Filter Effects
48         https://bugs.webkit.org/show_bug.cgi?id=68479
49
50         Reviewed by Simon Fraser.
51
52         Tests: css3/filters/effect-blur-hw.html
53                css3/filters/effect-combined-hw.html
54                css3/filters/effect-drop-shadow-hw.html
55                css3/filters/effect-grayscale-hw.html
56                css3/filters/effect-hue-rotate-hw.html
57                css3/filters/effect-invert-hw.html
58                css3/filters/effect-opacity-hw.html
59                css3/filters/effect-saturate-hw.html
60                css3/filters/effect-sepia-hw.html
61
62         Implement hardware acceleration of filters. If a filter is
63         on a RenderLayer and that layer has a GraphicsLayer, a test
64         is done to see if the desired filter can be rendered in hardware.
65         If so, skip rendering it when painting, and add the filters to the
66         CALayer. Currently Mac only, using CoreImage. Animation is done in
67         software, with the filters being recreated every frame. There are
68         some fidelity issues with the software renderer, but those will
69         be dealt with as bugs to be fixed.
70
71         * platform/graphics/GraphicsLayer.h: Pass down FilterOperations
72         (WebCore::GraphicsLayer::filter):
73         (WebCore::GraphicsLayer::setFilter):
74         * platform/graphics/ca/GraphicsLayerCA.cpp: Deferred passdown of FilterOperations to PlatformCALayer
75         (WebCore::GraphicsLayerCA::setFilter):
76         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
77         (WebCore::GraphicsLayerCA::updateFilter):
78         (WebCore::GraphicsLayerCA::ensureStructuralLayer):
79         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
80         * platform/graphics/ca/GraphicsLayerCA.h:
81         * platform/graphics/ca/PlatformCALayer.h:
82         * platform/graphics/ca/mac/PlatformCALayerMac.mm: Mac implementation using CI
83         (PlatformCALayer::setFilter):
84         (PlatformCALayer::filterCanBeComposited): Static function to tell GraphicsLayer if this Filter object can be rendered
85         * platform/graphics/filters/FilterOperations.cpp:
86         (WebCore::FilterOperations::operator=):
87         * platform/graphics/filters/FilterOperations.h:
88         (WebCore::FilterOperations::FilterOperations):
89         * rendering/RenderLayer.cpp: Pass filter object to GraphicsLayer
90         (WebCore::RenderLayer::rendersFilter):
91         (WebCore::RenderLayer::paintLayer):
92         (WebCore::RenderLayer::updateOrRemoveFilterEffect):
93         * rendering/RenderLayer.h:
94         * rendering/RenderLayerBacking.cpp:
95         (WebCore::RenderLayerBacking::RenderLayerBacking):
96         (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
97         (WebCore::RenderLayerBacking::updateLayerFilter):
98         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
99         * rendering/RenderLayerBacking.h:
100         (WebCore::RenderLayerBacking::canCompositeFilter):
101
102 2011-12-17  Philippe Normand  <pnormand@igalia.com>
103
104         Unreviewed, GTK build fix after r103131.
105
106         * GNUmakefile.list.am: Fix typo... s/.cop/.cpp
107
108 2011-12-16  Benjamin Poulain  <bpoulain@apple.com>
109
110         FEComposite does not build when you disable filters on ARMv7
111         https://bugs.webkit.org/show_bug.cgi?id=74772
112
113         Reviewed by David Kilzer.
114
115         Add the missing ENABLE(FILTERS).
116
117         * platform/graphics/filters/arm/FECompositeArithmeticNEON.cpp:
118         * platform/graphics/filters/arm/FECompositeArithmeticNEON.h:
119
120 2011-12-16  Ryosuke Niwa  <rniwa@webkit.org>
121
122         Mac build fix after r103104.
123
124         * WebCore.xcodeproj/project.pbxproj:
125
126 2011-12-16  Adam Klein  <adamk@chromium.org>
127
128         Consolidate before-advice regarding attribute modification into a single method
129         https://bugs.webkit.org/show_bug.cgi?id=74752
130
131         Reviewed by Ryosuke Niwa.
132
133         Adds a willModifyAttribute method to Element, meant to be called
134         before an attribute on that Element is added/removed/changed.
135
136         Replace most calls to Element::updateId and all calls to
137         Element::enqueueAttributesMutationRecordIfRequested with calls to
138         willModifyAttribute. Moreover, enqueueAttributesMutation... can now
139         be private since its only caller is willModifyAttribute.
140
141         The only remaining direct calls to updateId are in cases the entire
142         NamedNodeMap is being replaced. These are implementation details of
143         WebCore that shouldn't be exposed via MutationObservers.
144
145         No new tests, no expected change in behavior.
146
147         * dom/Attr.cpp:
148         (WebCore::Attr::setValue):
149         (WebCore::Attr::childrenChanged): Besides the above change, use a
150         StringBuilder to build up value, and only do String -> AtomicString
151         conversion once.
152         * dom/Element.cpp:
153         (WebCore::Element::setAttributeInternal):
154         * dom/Element.h:
155         (WebCore::Element::willModifyAttribute):
156         * dom/NamedNodeMap.cpp:
157         (WebCore::NamedNodeMap::setNamedItem):
158         (WebCore::NamedNodeMap::removeNamedItem):
159
160 2011-12-16  James Robinson  <jamesr@chromium.org>
161
162         [chromium] CCLayerDelegate and WebLayerClient do not need notifySyncRequired
163         https://bugs.webkit.org/show_bug.cgi?id=74376
164
165         Reviewed by Kenneth Russell.
166
167         CCLayerDelegate::notifySyncRequired is an odd bit of interface that we originally cargo-culted from the
168         CoreAnimation compositor implementation. It is a mechanism by which a LayerChromium instance may request a new
169         frame via its CCLayerDelegate, which in WebCore is always a GraphicsLayerClient. In practice, all
170         implementations eventually ended up routing to CCLayerTreeHost::setNeedsCommit which then made the proper
171         scheduling decision.
172
173         This patch routes all changes that would have gone through CCLayerDelegate::notifySyncRequired directly to
174         CCLayerTreeHost::setNeedsCommit, which greatly simplifies the scheduling logic.
175
176         There is a large amount of unit test coverage for this change, largely in LayerChromiumTest
177
178         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
179         * platform/graphics/chromium/GraphicsLayerChromium.h:
180         * platform/graphics/chromium/LayerChromium.cpp:
181         (WebCore::LayerChromium::setNeedsCommit):
182         (WebCore::LayerChromium::insertChild):
183         * platform/graphics/chromium/LayerChromium.h:
184         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
185         (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
186         (WebCore::CCLayerTreeHost::setRootLayer):
187         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
188         * platform/graphics/chromium/cc/CCScopedThreadProxy.h:
189         (WebCore::CCScopedThreadProxy::runTaskIfNotShutdown):
190
191 2011-12-16  Adam Klein  <adamk@chromium.org>
192
193         Fix typo in MarkupTokenBase: rename takeAtributes to takeAttributes
194         https://bugs.webkit.org/show_bug.cgi?id=74766
195
196         Reviewed by Darin Adler.
197
198         * html/parser/HTMLConstructionSite.cpp:
199         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
200         (WebCore::HTMLConstructionSite::insertScriptElement):
201         (WebCore::HTMLConstructionSite::createElement):
202         (WebCore::HTMLConstructionSite::createHTMLElement):
203         * html/parser/HTMLTreeBuilder.cpp:
204         (WebCore::HTMLTreeBuilder::attributesForIsindexInput):
205         * xml/parser/MarkupTokenBase.h:
206         (WebCore::AtomicMarkupTokenBase::takeAttributes):
207
208 2011-12-16  Adam Barth  <abarth@webkit.org>
209
210         <option><span><option> doesn't parse correctly
211         https://bugs.webkit.org/show_bug.cgi?id=74760
212
213         Reviewed by Eric Seidel.
214
215         The <option> start tag shouldn't be quite as aggressive in closing open
216         <option> tags.  I'm not sure whether this was a change in the spec or a
217         mistranscription, but this patch causes us to match the spec.  I've
218         checked the other optionTag checks, and they all seem to be correct.
219
220         * html/parser/HTMLTreeBuilder.cpp:
221
222 2011-12-16  Rafael Weinstein  <rafaelw@chromium.org>
223
224         [MutationObservers] Remove platform-dependent code in Document.cpp resulting from Mutation Event histogram collection
225         https://bugs.webkit.org/show_bug.cgi?id=73026
226
227         Reviewed by Ryosuke Niwa.
228
229         This patch adds platform/HistogramSupport which has an empty implementation for all ports
230         except Chromium.
231
232         No tests need. This patch is just a refactor.
233
234         * GNUmakefile.list.am:
235         * Target.pri:
236         * WebCore.gypi:
237         * WebCore.xcodeproj/project.pbxproj:
238         * dom/Document.cpp:
239         (WebCore::histogramMutationEventUsage):
240         (WebCore::Document::~Document):
241         * platform/HistogramSupport.h: Added.
242         (WebCore::HistogramSupport::histogramEnumeration):
243         * platform/chromium/HistogramSupportChromium.cpp: Added.
244         (WebCore::HistogramSupport::histogramEnumeration):
245
246 2011-12-16  Brady Eidson  <beidson@apple.com>
247
248         <rdar://problem/10576732> and https://bugs.webkit.org/show_bug.cgi?id=74533
249         REGRESSION(r102619): Reproducible crash closing window with video + poster image inside an object element
250
251         Reviewed by Darin Adler.
252
253         Test: media/crash-closing-page-with-media-as-plugin-fallback.html
254
255         At some point documentWillBecomeInactive() was overloaded to not only notify elements they were going in to the page
256         cache but also do some other work that was necessary during Document teardown.
257
258         This crash occurs because we're notifying elements they're going in to the page cache at document teardown, so this
259         patch breaks that work back out in to a separate function.
260
261         * dom/Document.cpp:
262         (WebCore::Document::detach): Remove obsolete comment.
263         (WebCore::Document::documentWillBecomeInactive): Handle only accelerated compositing cleanup.
264         (WebCore::Document::documentWillSuspendForPageCache): Call documentWillBecomeInactive before notifying elements of suspension.
265         (WebCore::Document::documentDidResumeFromPageCache):
266         (WebCore::Document::registerForPageCacheSuspensionCallbacks):
267         (WebCore::Document::unregisterForPageCacheSuspensionCallbacks):
268         * dom/Document.h:
269
270         * history/CachedFrame.cpp:
271         (WebCore::CachedFrameBase::restore): Call the renamed documentDidResumeFromPageCache.
272         (WebCore::CachedFrame::CachedFrame): Call documentWillSuspendForPageCache instead of documentDidBecomeInactive.
273
274         * loader/FrameLoader.cpp:
275         (WebCore::FrameLoader::commitProvisionalLoad): Call the renamed documentDidResumeFromPageCache.
276
277         * dom/Element.h:
278         (WebCore::Element::documentWillSuspendForPageCache): Renamed from documentWillBecomeInactive()
279         (WebCore::Element::documentDidResumeFromPageCache): Renamed from documentDidBecomeActive()
280
281         Change to the renamed registration and callbacks functions in the handful of classes that use them:
282         * html/HTMLFormElement.cpp:
283         (WebCore::HTMLFormElement::~HTMLFormElement):
284         (WebCore::HTMLFormElement::parseMappedAttribute):
285         (WebCore::HTMLFormElement::documentDidResumeFromPageCache):
286         (WebCore::HTMLFormElement::willMoveToNewOwnerDocument):
287         (WebCore::HTMLFormElement::didMoveToNewOwnerDocument):
288         * html/HTMLFormElement.h:
289
290         * html/HTMLInputElement.cpp:
291         (WebCore::HTMLInputElement::~HTMLInputElement):
292         (WebCore::HTMLInputElement::updateType):
293         (WebCore::HTMLInputElement::parseMappedAttribute):
294         (WebCore::HTMLInputElement::needsSuspensionCallback):
295         (WebCore::HTMLInputElement::registerForSuspensionCallbackIfNeeded):
296         (WebCore::HTMLInputElement::unregisterForSuspensionCallbackIfNeeded):
297         (WebCore::HTMLInputElement::documentDidResumeFromPageCache):
298         (WebCore::HTMLInputElement::willMoveToNewOwnerDocument):
299         (WebCore::HTMLInputElement::didMoveToNewOwnerDocument):
300         * html/HTMLInputElement.h:
301
302         * html/HTMLPlugInImageElement.cpp:
303         (WebCore::HTMLPlugInImageElement::~HTMLPlugInImageElement):
304         (WebCore::HTMLPlugInImageElement::createRenderer):
305         (WebCore::HTMLPlugInImageElement::willMoveToNewOwnerDocument):
306         (WebCore::HTMLPlugInImageElement::didMoveToNewOwnerDocument):
307         (WebCore::HTMLPlugInImageElement::documentWillSuspendForPageCache):
308         (WebCore::HTMLPlugInImageElement::documentDidResumeFromPageCache):
309         * html/HTMLPlugInImageElement.h:
310
311         * svg/SVGSVGElement.cpp:
312         (WebCore::SVGSVGElement::SVGSVGElement):
313         (WebCore::SVGSVGElement::~SVGSVGElement):
314         (WebCore::SVGSVGElement::willMoveToNewOwnerDocument):
315         (WebCore::SVGSVGElement::didMoveToNewOwnerDocument):
316         (WebCore::SVGSVGElement::documentWillSuspendForPageCache):
317         (WebCore::SVGSVGElement::documentDidResumeFromPageCache):
318         * svg/SVGSVGElement.h:
319
320 2011-12-16  Eric Penner  <epenner@google.com>
321
322         [chromium] Need to prepaint tiles in TiledLayerChromium
323         https://bugs.webkit.org/show_bug.cgi?id=72686
324
325         Reviewed by James Robinson.
326
327         Tests: TiledLayerChromiumTest (idlePaintOutOfMemory, pushIdlePaintTiles)
328
329         * platform/graphics/chromium/ContentLayerChromium.cpp:
330         (WebCore::ContentLayerChromium::idlePaintContentsIfDirty): added idle paint function
331         * platform/graphics/chromium/ContentLayerChromium.h: ditto
332         * platform/graphics/chromium/LayerChromium.h: ditto
333         (WebCore::LayerChromium::idlePaintContentsIfDirty): ditto
334         * platform/graphics/chromium/TextureManager.cpp:
335         (WebCore::TextureManager::protectTexture): removed assert for protecting a texture twice
336         * platform/graphics/chromium/TiledLayerChromium.cpp:
337         (WebCore::TiledLayerChromium::TiledLayerChromium):
338         (WebCore::TiledLayerChromium::cleanupResources):
339         (WebCore::TiledLayerChromium::updateCompositorResources): refactoring to use tile indices
340         (WebCore::TiledLayerChromium::prepareToUpdateTiles): refactored common code and made idle/visible versions
341         (WebCore::TiledLayerChromium::prepareToUpdate): ditto
342         (WebCore::TiledLayerChromium::prepareToUpdateIdle): ditto
343         (WebCore::TiledLayerChromium::needsIdlePaint): 
344         (WebCore::TiledLayerChromium::idlePaintRect):
345         * platform/graphics/chromium/TiledLayerChromium.h:
346         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
347         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
348         (WebCore::CCLayerTreeHost::compositeAndReadback): set flag to avoid idle paint durring composite and readback
349         (WebCore::CCLayerTreeHost::updateLayers): added idle flag parameter
350         (WebCore::CCLayerTreeHost::paintContentsIfDirty): ditto
351         (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface): ditto
352         (WebCore::CCLayerTreeHost::paintLayerContents): chooses idle or visible paint
353         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
354
355 2011-12-16  Dean Jackson  <dino@apple.com>
356
357         Miscellaneous Filter updates to align with spec
358         https://bugs.webkit.org/show_bug.cgi?id=74736
359
360         Reviewed by Simon Fraser.
361
362         Combine a bunch of small updates to filters where
363         we were not compliant with the specification.
364
365         - blur() only takes one value, not two
366         - blur() does not accept percentages. This allowed us
367           to stop passing the borderBoxSize around while building
368           the filter chain or calculating visual overflow.
369         - gamma() and sharpen() removed
370         - brightness() and contrast() added
371
372         Tests: css3/filters/effect-brightness.html
373                css3/filters/effect-contrast.html
374
375         * css/CSSComputedStyleDeclaration.cpp:
376         (WebCore::CSSComputedStyleDeclaration::valueForFilter): Create new
377         variations on component transfer functions for brightness() and
378         contrast() effects. Also remove sharpen() and gamma().
379         * css/CSSParser.cpp:
380         (WebCore::filterInfoForName):
381         (WebCore::CSSParser::parseBuiltinFilterArguments): Ditto, and blur
382         only takes one argument.
383         * css/CSSStyleSelector.cpp:
384         (WebCore::filterOperationForType):
385         (WebCore::CSSStyleSelector::createFilterOperations): Ditto, and
386         use ->isPercentage() to test rather than getting the type.
387         * css/WebKitCSSFilterValue.cpp:
388         (WebCore::WebKitCSSFilterValue::customCssText):
389         * css/WebKitCSSFilterValue.h:
390         * css/WebKitCSSFilterValue.idl: Remove sharpen and gamma, add
391         brightness and contrast.
392         * platform/graphics/filters/FilterOperation.cpp:
393         (WebCore::BlurFilterOperation::blend): Blurs only need to blend
394         between one standard deviation parameter.
395         * platform/graphics/filters/FilterOperation.h: Remove sharpen and
396         gamma, add brightness and contrast.
397         (WebCore::BlurFilterOperation::create):
398         (WebCore::BlurFilterOperation::stdDeviation):
399         (WebCore::BlurFilterOperation::operator==):
400         (WebCore::BlurFilterOperation::BlurFilterOperation): Blur only takes
401         one standard deviation / radius parameter.
402         * platform/graphics/filters/FilterOperations.cpp:
403         (WebCore::outsetSizeForBlur):
404         (WebCore::FilterOperations::getOutsets): No need for borderBox now.
405         * platform/graphics/filters/FilterOperations.h:
406         * rendering/FilterEffectRenderer.cpp:
407         (WebCore::FilterEffectRenderer::build): Build new effect types.
408         * rendering/FilterEffectRenderer.h:
409         * rendering/RenderBox.cpp:
410         (WebCore::RenderBox::addVisualEffectOverflow): No need to pass
411         borderBox size when calculating overflow on filter.
412         * rendering/RenderLayer.cpp:
413         (WebCore::RenderLayer::updateOrRemoveFilterEffect):
414         * rendering/style/RenderStyle.h:
415         (WebCore::InheritedFlags::getFilterOutsets): Ditto.
416
417 2011-12-16  Andreas Kling  <kling@webkit.org>
418
419         Unreviewed debug build fix after r103115.
420
421         * dom/Document.cpp:
422         (WebCore::Document::cachedCollection):
423
424 2011-12-16  Mark Hahnenberg  <mhahnenberg@apple.com>
425
426         Windows test fix
427
428         No new tests.
429
430         Unreviewed test fix. All Windows tests were crashing when objects who were pointing to 
431         static data members across DLL boundaries were getting garbage in their pointers.
432
433         * WebCore.exp.in:
434         * bindings/js/JSDOMWrapper.cpp:
435         * bindings/js/JSDOMWrapper.h:
436
437 2011-12-16  Ryosuke Niwa  <rniwa@webkit.org>
438
439         Rename registerCommandFor(Undo|Redo) to register(Undo|Redo)Step
440         https://bugs.webkit.org/show_bug.cgi?id=74748
441
442         Reviewed by Eric Seidel.
443
444         Renamed registerCommandForUndo and registerCommandForRedo to
445         registerUndoStep and registerRedoStep respectively.
446
447         * editing/Editor.cpp:
448         (WebCore::Editor::appliedEditing):
449         (WebCore::Editor::unappliedEditing):
450         (WebCore::Editor::reappliedEditing):
451         * loader/EmptyClients.h:
452         (WebCore::EmptyEditorClient::registerUndoStep):
453         (WebCore::EmptyEditorClient::registerRedoStep):
454         * page/EditorClient.h:
455
456 2011-12-16  Tim Horton  <timothy_horton@apple.com>
457
458         Canvas should respect backing store scale ratio when used as drawImage() source
459         https://bugs.webkit.org/show_bug.cgi?id=74758
460         <rdar://problem/10350194>
461
462         Reviewed by Simon Fraser.
463
464         Interpret the source rectangle passed into drawImage() when using a Canvas source in the source Canvas coordinate space,
465         instead of in the backing store coordinate space, without changing the behavior of drawImage(canvas, x, y).
466
467         No new tests.
468
469         * html/HTMLCanvasElement.cpp:
470         (WebCore::HTMLCanvasElement::convertDeviceToLogical):
471         * html/HTMLCanvasElement.h:
472         * html/canvas/CanvasRenderingContext2D.cpp:
473         (WebCore::CanvasRenderingContext2D::drawImage):
474
475 2011-12-16  Anders Carlsson  <andersca@apple.com>
476
477         Subpixel antialiasing not working in tiled mode
478         https://bugs.webkit.org/show_bug.cgi?id=74759
479
480         Reviewed by Simon Fraser.
481
482         Call setContentsOpaque(true) on the main frame render view layer so subpixel aa will be used
483         when drawing text into that layer.
484
485         * rendering/RenderLayerBacking.cpp:
486         (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
487
488 2011-12-16  Ryosuke Niwa  <rniwa@webkit.org>
489
490         invalidateNodeListsCacheAfterAttributeChanged has too many callers
491         https://bugs.webkit.org/show_bug.cgi?id=74692
492
493         Reviewed by Sam Weinig.
494
495         Call invalidateNodeListsCacheAfterAttributeChanged in Element::updateAfterAttributeChanged instead of
496         parsedMappedAttribute of various elements. Also make invalidateNodeListsCacheAfterAttributeChanged take
497         the qualified name of the changed attribute so that we can exit early when the changed attribute isn't
498         one of attributes we care.
499
500         In addition, added a missing call to invalidateNodeListsCacheAfterAttributeChanged in Attr::setValue.
501
502         Test: fast/dom/Attr/invalidate-nodelist-after-attr-setvalue.html
503
504         * dom/Attr.cpp:
505         (WebCore::Attr::childrenChanged):
506         * dom/Element.cpp:
507         (WebCore::Element::updateAfterAttributeChanged):
508         * dom/NamedNodeMap.cpp:
509         (WebCore::NamedNodeMap::addAttribute):
510         (WebCore::NamedNodeMap::removeAttribute):
511         * dom/Node.cpp:
512         (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged):
513         * dom/Node.h:
514         * dom/StyledElement.cpp:
515         (WebCore::StyledElement::classAttributeChanged):
516         * html/HTMLAnchorElement.cpp:
517         (WebCore::HTMLAnchorElement::parseMappedAttribute):
518         * html/HTMLAppletElement.cpp:
519         (WebCore::HTMLAppletElement::parseMappedAttribute):
520         * html/HTMLElement.cpp:
521         (WebCore::HTMLElement::parseMappedAttribute):
522         * html/HTMLEmbedElement.cpp:
523         (WebCore::HTMLEmbedElement::parseMappedAttribute):
524         * html/HTMLFormElement.cpp:
525         (WebCore::HTMLFormElement::parseMappedAttribute):
526         * html/HTMLFrameElementBase.cpp:
527         (WebCore::HTMLFrameElementBase::parseMappedAttribute):
528         * html/HTMLIFrameElement.cpp:
529         (WebCore::HTMLIFrameElement::parseMappedAttribute):
530         * html/HTMLImageElement.cpp:
531         (WebCore::HTMLImageElement::parseMappedAttribute):
532         * html/HTMLMapElement.cpp:
533         (WebCore::HTMLMapElement::parseMappedAttribute):
534         * html/HTMLMetaElement.cpp:
535         (WebCore::HTMLMetaElement::parseMappedAttribute):
536         * html/HTMLObjectElement.cpp:
537         (WebCore::HTMLObjectElement::parseMappedAttribute):
538         * html/HTMLParamElement.cpp:
539         (WebCore::HTMLParamElement::parseMappedAttribute):
540
541 2011-12-16  Andreas Kling  <kling@webkit.org>
542
543         Cache and reuse HTMLCollections exposed by Document.
544         <http://webkit.org/b/71956>
545
546         Reviewed by Antti Koivisto.
547
548         Let Document cache the various HTMLCollection objects it exposes.
549         This is a behavior change in two ways:
550
551         1) The lifetime of returned collections is now tied to the lifetime
552            of the Document. This matches the behavior of Firefox and Opera.
553
554         2) The cached collections returned by document are now exactly equal
555            to those returned by subsequent calls to the same getters.
556
557         This reduces memory consumption by ~800 kB (on 64-bit) when loading
558         the full HTML5 spec. document.links was called 34001 times, yielding
559         34001 separate HTMLCollections, and now we only need 1.
560
561         The document.all collection retains the old behavior, as caching it
562         will be a bit more complicated.
563
564         To avoid a reference cycle between Document and HTMLCollection,
565         collections that are cached on Document do not retained their base
566         node pointer (controlled by a m_baseIsRetained flag.)
567
568         Tests: fast/dom/document-collection-idempotence.html
569                fast/dom/gc-9.html
570
571         * dom/Document.cpp:
572         (WebCore::Document::detach):
573         (WebCore::Document::cachedCollection):
574         (WebCore::Document::images):
575         (WebCore::Document::applets):
576         (WebCore::Document::embeds):
577         (WebCore::Document::plugins):
578         (WebCore::Document::objects):
579         (WebCore::Document::scripts):
580         (WebCore::Document::links):
581         (WebCore::Document::forms):
582         (WebCore::Document::anchors):
583         * dom/Document.h:
584         * html/HTMLCollection.cpp:
585         (WebCore::HTMLCollection::HTMLCollection):
586         (WebCore::HTMLCollection::createForCachingOnDocument):
587         (WebCore::HTMLCollection::~HTMLCollection):
588         (WebCore::HTMLCollection::itemAfter):
589         * html/HTMLCollection.h:
590         (WebCore::HTMLCollection::base):
591
592 2011-12-16  Anders Carlsson  <andersca@apple.com>
593
594         Add a pretty dumb tile cache to WebTileCacheLayer
595         https://bugs.webkit.org/show_bug.cgi?id=74753
596
597         Reviewed by Simon Fraser.
598
599         * WebCore.xcodeproj/project.pbxproj:
600         * platform/graphics/ca/GraphicsLayerCA.cpp:
601         (WebCore::GraphicsLayerCA::requiresTiledLayer):
602         If a layer is a tile cache layer, we never want to swap it out for a tiled layer.
603
604         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
605         Assert that we don't have a tile cache layer.
606
607         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
608         (PlatformCALayer::PlatformCALayer):
609         If we have a tile cache layer, add its tile container to the list of custom sublayers.
610
611         * platform/graphics/ca/mac/TileCache.h: Added.
612         (WebCore::TileCache::tileContainerLayer):
613         Return the tile container layer.
614
615         * platform/graphics/ca/mac/TileCache.mm: Added.
616         (WebCore::TileCache::tileCacheLayerBoundsChanged):
617         Resize the tile grid if necessary.
618
619         (WebCore::TileCache::setNeedsDisplayInRect):
620         Invalidate the necessary tiles.
621
622         (WebCore::TileCache::drawLayer):
623         Set up the transform and draw the layer.
624
625         (WebCore::TileCache::getTileRangeForRect):
626         Given a rect, return the range of tiles that it covers.
627
628         (WebCore::TileCache::numTilesForGridSize):
629         Given a size, return how many tiles are needed to completely cover it.
630
631         (WebCore::TileCache::resizeTileGrid):
632         Create new tile layers if needed, or reuse already existing ones.
633
634         (WebCore::TileCache::tileLayerAtPosition):
635         Given a position in the grid, return the tile layer.
636
637         (WebCore::TileCache::createTileLayer):
638         Create a WebTileLayer and set it up.
639
640         * platform/graphics/ca/mac/WebTileCacheLayer.h:
641         * platform/graphics/ca/mac/WebTileCacheLayer.mm:
642         (-[WebTileCacheLayer setBounds:]):
643         (-[WebTileCacheLayer setNeedsDisplayInRect:]):
644         (-[WebTileCacheLayer tileContainerLayer]):
645         Call down to the tile cache object.
646
647         * platform/graphics/ca/mac/WebTileLayer.h: Added.
648         * platform/graphics/ca/mac/WebTileLayer.mm: Added.
649
650         (-[WebTileLayer drawInContext:]):
651         Ask the tile cache to draw the given layer.
652
653         (-[WebTileLayer setTileCache:WebCore::]):
654
655 2011-12-16  Sam Weinig  <sam@webkit.org>
656
657         Give PlatformEvents a base class
658         https://bugs.webkit.org/show_bug.cgi?id=74685
659
660         Reviewed by Anders Carlsson.
661
662         Add a base class for PlatformMouseEvent, PlatformKeyboardEvent, PlatformWheelEvent
663         and PlatformGestureEvent and move Type enumeration and modifiers down to it.
664
665         * CMakeLists.txt:
666         * GNUmakefile.list.am:
667         * Target.pri:
668         * WebCore.exp.in:
669         * WebCore.gypi:
670         * WebCore.vcproj/WebCore.vcproj:
671         * WebCore.xcodeproj/project.pbxproj:
672         Add new files.
673
674         * platform/PlatformEvent.cpp: Added.
675         * platform/PlatformEvent.h: Added.
676         (WebCore::PlatformEvent::type):
677         (WebCore::PlatformEvent::shiftKey):
678         (WebCore::PlatformEvent::ctrlKey):
679         (WebCore::PlatformEvent::altKey):
680         (WebCore::PlatformEvent::metaKey):
681         (WebCore::PlatformEvent::modifiers):
682         (WebCore::PlatformEvent::PlatformEvent):
683         Add new class.
684
685         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
686         (-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):
687         * dom/KeyboardEvent.cpp:
688         (WebCore::eventTypeForKeyboardEventType):
689         * dom/MouseEvent.cpp:
690         (WebCore::MouseEvent::create):
691         * page/DragController.cpp:
692         (WebCore::createMouseEvent):
693         * page/EventHandler.cpp:
694         (WebCore::EventHandler::handleGestureEvent):
695         (WebCore::EventHandler::sendContextMenuEventForKey):
696         (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
697         (WebCore::EventHandler::handleAccessKey):
698         (WebCore::EventHandler::keyEvent):
699         (WebCore::EventHandler::handleDrag):
700         * page/blackberry/EventHandlerBlackBerry.cpp:
701         (WebCore::EventHandler::accessKeyModifiers):
702         * page/chromium/EventHandlerChromium.cpp:
703         (WebCore::EventHandler::accessKeyModifiers):
704         * page/efl/EventHandlerEfl.cpp:
705         (WebCore::EventHandler::accessKeyModifiers):
706         * page/gtk/EventHandlerGtk.cpp:
707         (WebCore::EventHandler::accessKeyModifiers):
708         * page/mac/EventHandlerMac.mm:
709         (WebCore::EventHandler::accessKeyModifiers):
710         * page/qt/EventHandlerQt.cpp:
711         (WebCore::EventHandler::accessKeyModifiers):
712         * page/win/EventHandlerWin.cpp:
713         (WebCore::EventHandler::accessKeyModifiers):
714         * page/wx/EventHandlerWx.cpp:
715         (WebCore::EventHandler::accessKeyModifiers):
716         * platform/PlatformGestureEvent.h:
717         (WebCore::PlatformGestureEvent::PlatformGestureEvent):
718         * platform/PlatformKeyboardEvent.h:
719         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
720         (WebCore::PlatformKeyboardEvent::isKeypad):
721         * platform/PlatformMouseEvent.h:
722         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
723         (WebCore::PlatformMouseEvent::button):
724         * platform/PlatformWheelEvent.h:
725         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
726         * platform/ScrollAnimatorNone.cpp:
727         (WebCore::ScrollAnimatorNone::zoom):
728         (WebCore::ScrollAnimatorNone::handleGestureEvent):
729         * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
730         (WebCore::toWebCorePlatformKeyboardEventType):
731         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
732         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
733         * platform/chromium/GestureRecognizerChromium.cpp:
734         (WebCore::GestureRecognizerChromium::appendTapDownGestureEvent):
735         (WebCore::GestureRecognizerChromium::appendClickGestureEvent):
736         (WebCore::GestureRecognizerChromium::appendDoubleClickGestureEvent):
737         (WebCore::GestureRecognizerChromium::appendScrollGestureBegin):
738         (WebCore::GestureRecognizerChromium::appendScrollGestureEnd):
739         (WebCore::GestureRecognizerChromium::appendScrollGestureUpdate):
740         * platform/chromium/PlatformKeyboardEventChromium.cpp:
741         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
742         * platform/chromium/PopupContainer.cpp:
743         (WebCore::PopupContainer::handleGestureEvent):
744         * platform/chromium/PopupListBox.cpp:
745         (WebCore::isCharacterTypeEvent):
746         (WebCore::PopupListBox::handleKeyEvent):
747         * platform/chromium/ScrollAnimatorChromiumMac.mm:
748         (WebCore::ScrollAnimatorChromiumMac::handleGestureEvent):
749         * platform/efl/PlatformKeyboardEventEfl.cpp:
750         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
751         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
752         * platform/efl/PlatformMouseEventEfl.cpp:
753         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
754         * platform/efl/PlatformWheelEventEfl.cpp:
755         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
756         * platform/gtk/PlatformKeyboardEventGtk.cpp:
757         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
758         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
759         * platform/gtk/PlatformMouseEventGtk.cpp:
760         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
761         * platform/gtk/PlatformWheelEventGtk.cpp:
762         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
763         * platform/ios/KeyEventIOS.mm:
764         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
765         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
766         * platform/mac/KeyEventMac.mm:
767         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
768         * platform/mac/PlatformMouseEventMac.mm:
769         (WebCore::mouseEventForNSEvent):
770         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
771         * platform/mac/ScrollAnimatorMac.mm:
772         (WebCore::ScrollAnimatorMac::handleGestureEvent):
773         * platform/mac/WheelEventMac.mm:
774         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
775         * platform/qt/PlatformKeyboardEventQt.cpp:
776         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
777         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
778         * platform/qt/PlatformMouseEventQt.cpp:
779         (WebCore::mouseEventTypeAndMouseButtonFromQEvent):
780         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
781         * platform/qt/WheelEventQt.cpp:
782         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
783         * platform/win/KeyEventWin.cpp:
784         (WebCore::isKeypadEvent):
785         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
786         * platform/win/PlatformMouseEventWin.cpp:
787         (WebCore::messageToEventType):
788         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
789         * platform/win/WheelEventWin.cpp:
790         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
791         * platform/wx/KeyboardEventWx.cpp:
792         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
793         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
794         * platform/wx/MouseEventWx.cpp:
795         (WebCore::typeFromMouseEvent):
796         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
797         * platform/wx/MouseWheelEventWx.cpp:
798         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
799         * plugins/mac/PluginViewMac.mm:
800         (WebCore::PluginView::handleKeyboardEvent):
801         * testing/Internals.cpp:
802         (WebCore::Internals::setZoomAnimatorTransform):
803         Switch to using new names/class modifier as necessary.
804
805 2011-12-16  Adam Barth  <abarth@webkit.org>
806
807         <!doctype html><div><body><frameset> doesn't parse correctly
808         https://bugs.webkit.org/show_bug.cgi?id=74745
809
810         Reviewed by Eric Seidel.
811
812         We were missing one place the spec tells us to set this bool.
813
814         Tests: html5lib/runner.html
815
816         * html/parser/HTMLTreeBuilder.cpp:
817
818 2011-12-16  Jarred Nicholls  <jarred@sencha.com>
819
820         Support HTML documents in XHR.responseXML
821         https://bugs.webkit.org/show_bug.cgi?id=74626
822
823         Latest W3C XHR spec details for the responseXML attribute:
824         http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#the-responsexml-attribute
825         http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#document-response-entity-body
826
827         XHR.responseXML was not compliant per the latest editor's draft of the XHR spec.
828         The following compliance issue have been corrected:
829           - A responseType of "text" should disallow access to responseXML by throwing an InvalidState exception.
830           - When the error flag is toggled, responseXML should return "null" immediately and not attempt to create a new Document.
831           - responseXML should return a valid HTML document when the MIME type is "text/html", but only when the caller has
832             explicitly set responseType to "document".
833
834         Reviewed by Alexey Proskuryakov.
835
836         Tests: fast/xmlhttprequest/xmlhttprequest-responseXML-html-document-responsetype-quirks.html
837                fast/xmlhttprequest/xmlhttprequest-responseXML-html-document-responsetype-strict.html
838                fast/xmlhttprequest/xmlhttprequest-responseXML-html-no-responsetype.html
839                fast/xmlhttprequest/xmlhttprequest-responseXML-invalid-xml.html
840                fast/xmlhttprequest/xmlhttprequest-responseXML-xml-document-responsetype.html
841                fast/xmlhttprequest/xmlhttprequest-responseXML-xml-text-responsetype.html
842
843         * xml/XMLHttpRequest.cpp:
844         (WebCore::XMLHttpRequest::responseXML):
845         (WebCore::XMLHttpRequest::clearResponseBuffers):
846         * xml/XMLHttpRequest.h: Rename m_responseXML to m_responseDocument
847         (WebCore::XMLHttpRequest::optionalResponseXML):
848
849 2011-12-16  Ryosuke Niwa  <rniwa@webkit.org>
850
851         Only EditCommandComposition should implement unapply and reapply
852         https://bugs.webkit.org/show_bug.cgi?id=74490
853
854         Reviewed by Eric Seidel.
855
856         Introduce new abstract class UndoStep to replace EditCommand for EditorClient, and make EditCommand
857         private to WebCore.
858
859         * GNUmakefile.list.am:
860         * Target.pri:
861         * WebCore.exp.in:
862         * WebCore.gypi:
863         * WebCore.vcproj/WebCore.vcproj:
864         * WebCore.xcodeproj/project.pbxproj:
865         * editing/CompositeEditCommand.cpp:
866         (WebCore::EditCommandComposition::create): Takes EditAction instead of boolean for CreateLinkCommand.
867         (WebCore::EditCommandComposition::EditCommandComposition): Ditto.
868         (WebCore::EditCommandComposition::unapply): Moved from EditCommand; we don't have to call isTopLevelCommand
869         anymore because EditCommandComposition is always top-level. In fact, the only thing unapply/reapply do
870         in addition to what doUnapply/doReapply do for sub-level commands is disabling and enabling delete button
871         and defining an event queue scope. However, these can be done at top-level command anyway, so we now only call
872         doApply for sub-level commands.
873         (WebCore::EditCommandComposition::reapply): Ditto.
874         (WebCore::EditCommandComposition::setStartingSelection): Added.
875         (WebCore::EditCommandComposition::setEndingSelection): Added.
876         (WebCore::applyCommand): Moved from EditCommand.
877         (WebCore::CompositeEditCommand::apply): Moved from EditCommand; doesn't call isTopLevelCommand for the same reason.
878         (WebCore::CompositeEditCommand::ensureComposition):
879         (WebCore::CompositeEditCommand::applyCommandToComposite): Call doApply instead of apply for the same reason.
880         * editing/CompositeEditCommand.h:
881         (WebCore::EditCommandComposition::wasCreateLinkCommand):
882         (WebCore::EditCommandComposition::startingSelection): Added.
883         (WebCore::EditCommandComposition::endingSelection): Added.
884         * editing/EditCommand.cpp:
885         (WebCore::EditCommand::setStartingSelection):
886         (WebCore::EditCommand::setEndingSelection):
887         (WebCore::SimpleEditCommand::doReapply): Moved from EditCommand.
888         * editing/EditCommand.h:
889         * editing/UndoStep.h: Added.
890         (WebCore::UndoStep::~UndoStep):
891         * loader/EmptyClients.h:
892         (WebCore::EmptyEditorClient::shouldInsertNode):
893         (WebCore::EmptyEditorClient::didSetSelectionTypesForPasteboard):
894         (WebCore::EmptyEditorClient::registerCommandForUndo): Takes UndoStep instead of EditCommand.
895         (WebCore::EmptyEditorClient::registerCommandForRedo): Ditto.
896         * page/EditorClient.h:
897
898 2011-12-16  Simon Fraser  <simon.fraser@apple.com>
899
900         Allow a PlatformCALayer to own its own sublayers
901         https://bugs.webkit.org/show_bug.cgi?id=74744
902
903         Reviewed by Anders Carlsson.
904
905         GraphicsLayerCA rebuilds the sublayer list of CALayers, which would
906         blow away any custom layers that a PlatformCALayer wants to maintain
907         as children.
908         
909         Make it possible for a PlatformLayerCA to indicate that it wants
910         a specific list of sublayers to be maintained as the first layers
911         in the child list.
912         
913         * platform/graphics/ca/GraphicsLayerCA.cpp:
914         (WebCore::GraphicsLayerCA::updateSublayerList):
915         * platform/graphics/ca/PlatformCALayer.h:
916         (WebCore::PlatformCALayer::customSublayers):
917         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
918         (PlatformCALayer::PlatformCALayer):
919
920 2011-12-16  Adam Barth  <abarth@webkit.org>
921
922         <!DOCTYPE html><pre>&#x0a;&#x0a;A</pre> doesn't parse correctly
923         https://bugs.webkit.org/show_bug.cgi?id=74658
924
925         Reviewed by Darin Adler.
926
927         Previously, we handled skipping newlines after <pre> in the tokenizer,
928         which isn't how the spec handles them.  Instead, the spec skips them in
929         the tree builder.  This isn't usually observable, except in the case of
930         an HTML entity.  In that case, the tokenzier sees '&' (because the
931         entity hasn't been decoded yet), but the tree builder sees '\n' (the
932         decoded entity).  This patch fixes the bug by more closely aligning our
933         implementation with the spec.
934
935         Test: html5lib/runner.html
936
937         * html/parser/HTMLTokenizer.cpp:
938         (WebCore::HTMLTokenizer::reset):
939         (WebCore::HTMLTokenizer::nextToken):
940         * html/parser/HTMLTokenizer.h:
941         * html/parser/HTMLTreeBuilder.cpp:
942         (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::skipAtMostOneLeadingNewline):
943         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
944         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
945         (WebCore::HTMLTreeBuilder::processCharacterBuffer):
946         * html/parser/HTMLTreeBuilder.h:
947         * xml/parser/MarkupTokenizerBase.h:
948
949 2011-12-16  Joshua Bell  <jsbell@chromium.org>
950
951         IndexedDB: Implement IDBObjectStore.count() and IDBIndex.count()
952         https://bugs.webkit.org/show_bug.cgi?id=73686
953
954         Reviewed by Tony Chang.
955
956         These new methods open an internal cursor and iterate through the
957         results, returning the number of items found. Note that only
958         passing an IDBKeyRange is supported, not an IDBKey. Supporting
959         that will require some IDL/binding monkeying; several other
960         methods also need the same Key-or-KeyRange behavior.
961
962         Tests: storage/indexeddb/index-count.html
963                storage/indexeddb/objectstore-count.html
964
965         * bindings/v8/SerializedScriptValue.cpp:
966         (WebCore::SerializedScriptValue::numberValue):
967         * bindings/v8/SerializedScriptValue.h:
968         * storage/IDBIndex.cpp:
969         (WebCore::IDBIndex::openCursor):
970         (WebCore::IDBIndex::count):
971         * storage/IDBIndex.h:
972         (WebCore::IDBIndex::count):
973         * storage/IDBIndex.idl:
974         * storage/IDBIndexBackendImpl.cpp:
975         (WebCore::IDBIndexBackendImpl::countInternal):
976         (WebCore::IDBIndexBackendImpl::count):
977         * storage/IDBIndexBackendImpl.h:
978         * storage/IDBIndexBackendInterface.h:
979         * storage/IDBObjectStore.cpp:
980         (WebCore::IDBObjectStore::count):
981         * storage/IDBObjectStore.h:
982         (WebCore::IDBObjectStore::count):
983         * storage/IDBObjectStore.idl:
984         * storage/IDBObjectStoreBackendImpl.cpp:
985         (WebCore::IDBObjectStoreBackendImpl::count):
986         (WebCore::IDBObjectStoreBackendImpl::countInternal):
987         * storage/IDBObjectStoreBackendImpl.h:
988         * storage/IDBObjectStoreBackendInterface.h:
989
990 2011-12-16  Yael Aharon  <yael.aharon@nokia.com>
991
992         Audio file in video element has a size of 0x0 .
993         https://bugs.webkit.org/show_bug.cgi?id=74738
994
995         Reviewed by Kenneth Rohde Christiansen.
996
997         When the source of a video element has audio only, the intrinsic size of the video should
998         not be 0x0. Instead, it should be the same as as no media was loaded.
999
1000         No new tests. An existing test is covering this case and was modified to reflect this change.
1001
1002         * rendering/RenderVideo.cpp:
1003         (WebCore::RenderVideo::calculateIntrinsicSize):
1004
1005 2011-12-16  Alexis Menard  <alexis.menard@openbossa.org>
1006
1007         getComputedStyle for border-width is not implemented.
1008         https://bugs.webkit.org/show_bug.cgi?id=74635
1009
1010         Reviewed by Tony Chang.
1011
1012         Implement getComputedStyle for border-width.
1013
1014         Test: fast/css/getComputedStyle/getComputedStyle-border-width.html
1015
1016         * css/CSSComputedStyleDeclaration.cpp:
1017         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1018
1019 2011-12-16  Branimir Lambov  <blambov@google.com>
1020
1021         [chromium] svg/clip-path/clip-in-mask.svg fails on Windows and Linux
1022         https://bugs.webkit.org/show_bug.cgi?id=53378
1023
1024         Reviewed by Tony Chang.
1025
1026         Fixes a problem in Skia's clipping layer code's handling of coordinate
1027         transformations that was causing all complex clipping (including text
1028         and/or masks) to fail.
1029
1030         The method beginLayerClippedToImage was taking rectangle coordinates
1031         in one local coordinate space, but it was applying them in a different  
1032         one because of the delay between the time it is called and the actual 
1033         application occurs in applyClipFromImage. The fix translates the 
1034         coordinates passed to beginLayerClippedToImage to absolute ones, so 
1035         that they are not affected by any change in the transform matrix, and 
1036         makes sure that applyClipFromImage clears the matrix before drawing
1037         the clip layer to correctly apply the absolute coordinates.
1038
1039         * platform/graphics/skia/PlatformContextSkia.cpp:
1040         (WebCore::PlatformContextSkia::beginLayerClippedToImage):
1041         (WebCore::PlatformContextSkia::applyClipFromImage):
1042         * platform/graphics/skia/PlatformContextSkia.h:
1043
1044 2011-12-16  Mark Hahnenberg  <mhahnenberg@apple.com>
1045
1046         De-virtualize destructors
1047         https://bugs.webkit.org/show_bug.cgi?id=74331
1048
1049         Reviewed by Geoffrey Garen.
1050
1051         No new tests.
1052
1053         Doing everything here that was done to the JSCell hierarchy in JavaScriptCore. 
1054         See the ChangeLog for this commit for a more in-depth description.
1055
1056         * WebCore.exp.in: Add/remove symbols.
1057         * bindings/js/JSCanvasRenderingContext2DCustom.cpp: Remove first arg from isJSArray call.
1058         (WebCore::JSCanvasRenderingContext2D::setWebkitLineDash):
1059         * bindings/js/JSDOMBinding.cpp: Add trival destructor assert for DOMConstructorObject 
1060         and DOMConstructorWithDocument.
1061         * bindings/js/JSDOMGlobalObject.cpp: Add static destroy.  Add implementation for 
1062         scriptExecutionContext that dispatches to different functions in subclasses 
1063         depending on our current ClassInfo.  We do this so that we can get rid of the 
1064         virtual-ness of scriptExecutionContext, because any virtual functions will throw 
1065         off the layout of the object and we'll crash at runtime.
1066         (WebCore::JSDOMGlobalObject::destroy):
1067         (WebCore::JSDOMGlobalObject::scriptExecutionContext):
1068         * bindings/js/JSDOMGlobalObject.h:
1069         * bindings/js/JSDOMWindowBase.cpp: Add static destroy.
1070         (WebCore::JSDOMWindowBase::destroy):
1071         * bindings/js/JSDOMWindowBase.h: De-virtualize scriptExecutionContext.
1072         * bindings/js/JSDOMWindowShell.cpp: Add static destroy.
1073         (WebCore::JSDOMWindowShell::destroy):
1074         * bindings/js/JSDOMWindowShell.h:
1075         * bindings/js/JSDOMWrapper.cpp: Add trivial destructor assert.
1076         * bindings/js/JSDOMWrapper.h: Add a ClassInfo to JSDOMWrapper since it now overrides 
1077         a MethodTable function. Remove vtableAnchor virtual function.
1078         * bindings/js/JSImageConstructor.cpp: Add trivial destructor assert.
1079         * bindings/js/JSNodeCustom.cpp: Change implementation of pushEventHandlerScope so that 
1080         it dispatches to the correct function depending on the 
1081         identity of the class as specified by the ClassInfo.  
1082         See JSDOMGlobalObject::scriptExecutionContext for explanation.
1083         (WebCore::JSNode::pushEventHandlerScope):
1084         * bindings/js/JSWebSocketCustom.cpp: Remove first arg to isJSArray call.
1085         (WebCore::JSWebSocketConstructor::constructJSWebSocket):
1086         * bindings/js/JSWorkerContextBase.cpp: Add static destroy.
1087         (WebCore::JSWorkerContextBase::destroy):
1088         * bindings/js/JSWorkerContextBase.h: 
1089         * bindings/js/ScriptValue.cpp: Remove first arg to isJSArray call.
1090         (WebCore::jsToInspectorValue): 
1091         * bindings/js/SerializedScriptValue.cpp: Ditto.
1092         (WebCore::CloneSerializer::isArray):
1093         (WebCore::CloneSerializer::getSparseIndex):
1094         * bindings/scripts/CodeGeneratorJS.pm:
1095         (GenerateHeader): Remove virtual-ness of any custom pushEventHandlerScope (see 
1096         JSNodeCustom::pushEventHandlerScope for explanation).  Remove virtual toBoolean 
1097         for anybody who masquerades as undefined, since our JSObject implementation handles 
1098         this based on the TypeInfo in the Structure. Add trivial destructor assert for any 
1099         class other than DOMWindow or WorkerContexts.
1100         (GenerateImplementation): Change ClassInfo definitions to use Base::s_info, since 
1101         typing the parent class more than once is duplication of information and increases 
1102         the likelihood of mistakes.  Pass ClassInfo to TypeArrayDescriptors instead of vptr. 
1103         (GenerateConstructorDefinition): Add trivial destructor assert for all generated constructors.
1104         * bridge/c/CRuntimeObject.cpp: Remove empty virtual destructor.
1105         * bridge/c/CRuntimeObject.h: 
1106         * bridge/jni/jsc/JavaRuntimeObject.cpp: Ditto.
1107         * bridge/jni/jsc/JavaRuntimeObject.h: 
1108         * bridge/objc/ObjCRuntimeObject.h: Ditto.
1109         * bridge/objc/ObjCRuntimeObject.mm:
1110         * bridge/objc/objc_runtime.h: Add static destroy for ObjcFallbackObjectImp. De-virtualize 
1111         toBoolean in the short term.  Need longer term fix.
1112         * bridge/objc/objc_runtime.mm:
1113         (JSC::Bindings::ObjcFallbackObjectImp::destroy):
1114         * bridge/qt/qt_runtime.cpp: Add static destroy to QtRuntimeMethod.
1115         (JSC::Bindings::QtRuntimeMethod::destroy):
1116         * bridge/qt/qt_runtime.h: De-virtualize ~QtRuntimeMethod.
1117         * bridge/runtime_array.cpp: De-virtualize destructor. Add static destroy.
1118         (JSC::RuntimeArray::destroy):
1119         * bridge/runtime_array.h:
1120         * bridge/runtime_method.cpp: Remove vtableAnchor. Add static destroy.
1121         (JSC::RuntimeMethod::destroy):
1122         * bridge/runtime_method.h:
1123         * bridge/runtime_object.cpp: Add static destroy.
1124         (JSC::Bindings::RuntimeObject::destroy):
1125         * bridge/runtime_object.h:
1126
1127 2011-12-15  Alexey Proskuryakov  <ap@apple.com>
1128
1129         Poor XPath performance when evaluating an expression that returns a lot of nodes
1130         https://bugs.webkit.org/show_bug.cgi?id=74665
1131         <rdar://problem/10517146>
1132
1133         Reviewed by Darin Adler.
1134
1135         No change in funcitonality. Well covered by existing tests (ran them with zero cutoff to
1136         execute the new code path).
1137
1138         Our sorting function is optimized for small node sets in large documents, and this is the
1139         opposite of it. Added another one that traverses the whole document, adding nodes from the
1140         node set to sorted list. That doesn't grow with the number of nodes nearly as fast.
1141
1142         Cutoff amount chosen for the document referenced in bug - this is roughly where the algorithms
1143         have the same performance on it.
1144
1145         * xml/XPathNodeSet.cpp:
1146         (WebCore::XPath::NodeSet::sort):
1147         (WebCore::XPath::findRootNode):
1148         (WebCore::XPath::NodeSet::traversalSort):
1149         * xml/XPathNodeSet.h:
1150
1151 2011-12-15  Antti Koivisto  <antti@apple.com>
1152
1153         https://bugs.webkit.org/show_bug.cgi?id=74677
1154         Count ResourceLoadScheduler suspends/resumes
1155
1156         Reviewed by Andreas Kling.
1157
1158         Using boolean is not robust when there are multiple clients calling suspendPendingRequests/resumePendingRequests.
1159         
1160         Increment and decrement suspend count instead of just setting/unsetting a boolean.
1161
1162         * loader/ResourceLoadScheduler.cpp:
1163         (WebCore::ResourceLoadScheduler::ResourceLoadScheduler):
1164         (WebCore::ResourceLoadScheduler::servePendingRequests):
1165         (WebCore::ResourceLoadScheduler::suspendPendingRequests):
1166         (WebCore::ResourceLoadScheduler::resumePendingRequests):
1167         * loader/ResourceLoadScheduler.h:
1168         (WebCore::ResourceLoadScheduler::isSuspendingPendingRequests):
1169
1170 2011-12-16  Adam Klein  <adamk@chromium.org>
1171
1172         Improve performance of ChildListMutationScope when no MutationObservers are present
1173         https://bugs.webkit.org/show_bug.cgi?id=74671
1174
1175         Reviewed by Ojan Vafai.
1176
1177         Inline ChildListMutationScope's methods (including constructor and
1178         destructor), and provide a fast-fail case when no mutation observers
1179         are present.
1180
1181         The code reorganization necessary for the above also removed the
1182         anonymous namespace in ChildListMutationScope.cpp, making both helper
1183         classes private inner classes of ChildListMutationScope.
1184
1185         No new tests, refactoring only.
1186
1187         * dom/ChildListMutationScope.cpp:
1188         (WebCore::ChildListMutationScope::MutationAccumulator::MutationAccumulator):
1189         (WebCore::ChildListMutationScope::MutationAccumulator::~MutationAccumulator):
1190         (WebCore::ChildListMutationScope::MutationAccumulator::isAddedNodeInOrder):
1191         (WebCore::ChildListMutationScope::MutationAccumulator::childAdded):
1192         (WebCore::ChildListMutationScope::MutationAccumulator::isRemovedNodeInOrder):
1193         (WebCore::ChildListMutationScope::MutationAccumulator::willRemoveChild):
1194         (WebCore::ChildListMutationScope::MutationAccumulator::enqueueMutationRecord):
1195         (WebCore::ChildListMutationScope::MutationAccumulator::clear):
1196         (WebCore::ChildListMutationScope::MutationAccumulator::isEmpty):
1197         (WebCore::ChildListMutationScope::MutationAccumulationRouter::MutationAccumulationRouter):
1198         (WebCore::ChildListMutationScope::MutationAccumulationRouter::~MutationAccumulationRouter):
1199         (WebCore::ChildListMutationScope::MutationAccumulationRouter::initialize):
1200         (WebCore::ChildListMutationScope::MutationAccumulationRouter::instance):
1201         (WebCore::ChildListMutationScope::MutationAccumulationRouter::childAdded):
1202         (WebCore::ChildListMutationScope::MutationAccumulationRouter::willRemoveChild):
1203         (WebCore::ChildListMutationScope::MutationAccumulationRouter::incrementScopingLevel):
1204         (WebCore::ChildListMutationScope::MutationAccumulationRouter::decrementScopingLevel):
1205         * dom/ChildListMutationScope.h:
1206         (WebCore::ChildListMutationScope::ChildListMutationScope):
1207         (WebCore::ChildListMutationScope::~ChildListMutationScope):
1208         (WebCore::ChildListMutationScope::childAdded):
1209         (WebCore::ChildListMutationScope::willRemoveChild):
1210
1211 2011-12-16  Dean Jackson  <dino@apple.com>
1212
1213         Filters need to affect visual overflow
1214         https://bugs.webkit.org/show_bug.cgi?id=71930
1215
1216         Reviewed by Simon Fraser.
1217
1218         Make sure filters are included in visual overflow.
1219         Add a new method to calculate the expansion of overflow
1220         region given a list of FilterOperations. This is a slight
1221         duplication of code from the rendering path, but is needed
1222         because overflow is calculated before the FilterEffect
1223         chain is built.
1224
1225         Also, filters were always rendered into their
1226         input rectangle which was wrong for any effect
1227         that produced a different sized result - drop-shadow
1228         and blur. This required two changes. First, FilterEffect
1229         needed a flag to decide whether or not to clip
1230         output to primitive regions (as required by SVG but not
1231         what we want here). Second, the rendering operation
1232         draws into the rectangle the filter claims is its painting
1233         rectangle.
1234
1235         Test: css3/filters/regions-expanding.html
1236
1237         * platform/graphics/filters/FEDropShadow.cpp:
1238         (WebCore::FEDropShadow::determineAbsolutePaintRect): Only
1239         clipToBounds if necessary.
1240         * platform/graphics/filters/FEGaussianBlur.cpp:
1241         (WebCore::FEGaussianBlur::calculateUnscaledKernelSize): CSS filters
1242         ask for the kernel size before the Filter object is created, so
1243         add a new method to return an unscaled kernel.
1244         (WebCore::FEGaussianBlur::calculateKernelSize):
1245         (WebCore::FEGaussianBlur::determineAbsolutePaintRect): Only
1246         clipToBounds if necessary.
1247         * platform/graphics/filters/FEGaussianBlur.h:
1248         * platform/graphics/filters/FEMorphology.cpp:
1249         (WebCore::FEMorphology::determineAbsolutePaintRect): Only
1250         clipToBounds if necessary.
1251         * platform/graphics/filters/FEOffset.cpp:
1252         (WebCore::FEOffset::determineAbsolutePaintRect): Only
1253         clipToBounds if necessary.
1254         * platform/graphics/filters/FilterEffect.cpp:
1255         (WebCore::FilterEffect::FilterEffect): Initialize clipToBounds
1256         as false so SVG remains unchanged.
1257         (WebCore::FilterEffect::determineAbsolutePaintRect): Only
1258         clipToBounds if necessary.
1259         * platform/graphics/filters/FilterEffect.h:
1260         (WebCore::FilterEffect::clipsToBounds):
1261         (WebCore::FilterEffect::setClipsToBounds):
1262         * rendering/FilterEffectRenderer.cpp:
1263         (WebCore::FilterEffectRenderer::build): Make sure we set our
1264         filters here to NOT clip to bounds.
1265         * rendering/FilterEffectRenderer.h:
1266         (WebCore::FilterEffectRenderer::outputRect): Asks the filter
1267         operation for the size of the result image.
1268         * rendering/RenderBlock.cpp:
1269         (WebCore::RenderBlock::computeOverflow):
1270         * rendering/RenderBox.cpp:
1271         (WebCore::RenderBox::addVisualEffectOverflow): Change the name
1272         from addBoxShadowAndBorderOverflow().
1273         * rendering/RenderBox.h:
1274         * rendering/RenderEmbeddedObject.cpp:
1275         (WebCore::RenderEmbeddedObject::layout):
1276         * rendering/RenderIFrame.cpp:
1277         (WebCore::RenderIFrame::layout):
1278         * rendering/RenderLayer.cpp:
1279         (WebCore::RenderLayer::paintLayer):
1280         * rendering/RenderLayerBacking.cpp:
1281         (WebCore::hasBoxDecorations): Change name from
1282         hasBorderOutlineOrShadow().
1283         (WebCore::hasBoxDecorationsOrBackground):
1284         (WebCore::hasBoxDecorationsOrBackgroundImage):
1285         * rendering/RenderReplaced.cpp:
1286         (WebCore::RenderReplaced::layout):
1287         * rendering/style/FilterOperations.cpp:
1288         (WebCore::outsetSizeForBlur): Return an IntSize that is the amount
1289         of offset.
1290         (WebCore::FilterOperations::hasOutsets):
1291         (WebCore::FilterOperations::getOutsets):
1292         * rendering/style/FilterOperations.h:
1293         * rendering/style/RenderStyle.h:
1294         (WebCore::InheritedFlags::getFilterOutsets):
1295         (WebCore::InheritedFlags::hasFilterOutsets):
1296         * svg/graphics/filters/SVGFEImage.cpp:
1297         (WebCore::FEImage::determineAbsolutePaintRect): Only
1298         clipToBounds if necessary.
1299
1300 2011-12-16  Alexis Menard  <alexis.menard@openbossa.org>, Jakub Wieczorek  <jwieczorek@webkit.org>
1301
1302         Add support for <ol reversed>.
1303         https://bugs.webkit.org/show_bug.cgi?id=36724
1304
1305         The reversed attribute makes an ordered list appear with marker values
1306         decreasing from n, where n is the number of items.
1307         See: http://www.whatwg.org/specs/web-apps/current-work/#attr-ol-reversed
1308
1309         Reviewed by Darin Adler.
1310
1311         Tests: fast/lists/ol-reversed-dynamic-simple.html
1312                fast/lists/ol-reversed-dynamic.html
1313                fast/lists/ol-reversed-nested-items.html
1314                fast/lists/ol-reversed-nested-list.html
1315                fast/lists/ol-reversed-simple.html
1316
1317         * html/HTMLAttributeNames.in:
1318         * html/HTMLOListElement.cpp:
1319         (WebCore::HTMLOListElement::HTMLOListElement):
1320         (WebCore::HTMLOListElement::parseMappedAttribute):
1321         (WebCore::HTMLOListElement::updateItemValues):
1322         (WebCore::HTMLOListElement::recalculateItemCount):
1323         * html/HTMLOListElement.h:
1324         (WebCore::HTMLOListElement::start):
1325         (WebCore::HTMLOListElement::isReversed):
1326         (WebCore::HTMLOListElement::itemCountChanged):
1327         (WebCore::HTMLOListElement::itemCount):
1328         * html/HTMLOListElement.idl:
1329         * rendering/RenderListItem.cpp:
1330         (WebCore::RenderListItem::nextListItem):
1331         (WebCore::previousListItem):
1332         (WebCore::RenderListItem::calcValue):
1333         (WebCore::RenderListItem::explicitValueChanged):
1334         (WebCore::previousOrNextItem):
1335         (WebCore::RenderListItem::updateListMarkerNumbers):
1336         * rendering/RenderListItem.h:
1337
1338 2011-12-16  Mikhail Naganov  <mnaganov@chromium.org>
1339
1340         Scroll non-visible edit controls and caret into the center of the view when starting typing.
1341         https://bugs.webkit.org/show_bug.cgi?id=65027
1342
1343         Reviewed by Ryosuke Niwa.
1344
1345         Tests: editing/input/caret-at-the-edge-of-contenteditable.html
1346                editing/input/caret-at-the-edge-of-input.html
1347                editing/input/reveal-caret-of-multiline-contenteditable.html
1348                editing/input/reveal-caret-of-multiline-input.html
1349                editing/input/reveal-contenteditable-on-input-vertically.html
1350                editing/input/reveal-contenteditable-on-paste-vertically.html
1351                editing/input/reveal-edit-on-input-vertically.html
1352                editing/input/reveal-edit-on-paste-vertically.html
1353
1354         * editing/Editor.cpp:
1355         (WebCore::Editor::insertTextWithoutSendingTextEvent):
1356         (WebCore::Editor::revealSelectionAfterEditingOperation):
1357
1358 2011-12-16  Ryosuke Niwa  <rniwa@webkit.org>
1359
1360         Touch RenderStyle in an attempt to fix linking errors on Chromium Windows bots.
1361
1362         * rendering/style/RenderStyle.h:
1363
1364 2011-12-14  Nat Duca  <nduca@chromium.org>
1365
1366         [chromium] DelayBasedTimeSource should not change its timebase on late ticks
1367         https://bugs.webkit.org/show_bug.cgi?id=74573
1368
1369         The original DelayBasedTimeSource was designed to shift its timebase
1370         to the tick time when a tick came back "late." The rationale was that it is
1371         better to just "start fresh" after a stutter. After profiling this,
1372         this time-rebasing just destabilizes frame rate anytime the thread gets
1373         loaded.  This patch keeps the timebase stationary, leading to vastly
1374         smoother framerates when the message loop is under load.
1375
1376         Reviewed by James Robinson.
1377
1378         * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
1379         (WebCore::CCDelayBasedTimeSource::updateState):
1380
1381 2011-12-16  Sheriff Bot  <webkit.review.bot@gmail.com>
1382
1383         Unreviewed, rolling out r103062.
1384         http://trac.webkit.org/changeset/103062
1385         https://bugs.webkit.org/show_bug.cgi?id=74715
1386
1387         It broke many tests (Requested by Ossy on #webkit).
1388
1389         * html/HTMLAttributeNames.in:
1390         * html/HTMLOListElement.cpp:
1391         (WebCore::HTMLOListElement::HTMLOListElement):
1392         (WebCore::HTMLOListElement::parseMappedAttribute):
1393         * html/HTMLOListElement.h:
1394         (WebCore::HTMLOListElement::start):
1395         * html/HTMLOListElement.idl:
1396         * rendering/RenderListItem.cpp:
1397         (WebCore::previousListItem):
1398         (WebCore::RenderListItem::calcValue):
1399         (WebCore::RenderListItem::explicitValueChanged):
1400         (WebCore::RenderListItem::updateListMarkerNumbers):
1401         * rendering/RenderListItem.h:
1402
1403 2011-12-16  Alexis Menard  <alexis.menard@openbossa.org>, Jakub Wieczorek  <jwieczorek@webkit.org>
1404
1405         Add support for <ol reversed>.
1406         https://bugs.webkit.org/show_bug.cgi?id=36724
1407
1408         The reversed attribute makes an ordered list appear with marker values
1409         decreasing from n, where n is the number of items.
1410         See: http://www.whatwg.org/specs/web-apps/current-work/#attr-ol-reversed
1411
1412         Reviewed by Darin Adler.
1413
1414         Tests: fast/lists/ol-reversed-dynamic-simple.html
1415                fast/lists/ol-reversed-dynamic.html
1416                fast/lists/ol-reversed-nested-items.html
1417                fast/lists/ol-reversed-nested-list.html
1418                fast/lists/ol-reversed-simple.html
1419
1420         * html/HTMLAttributeNames.in:
1421         * html/HTMLOListElement.cpp:
1422         (WebCore::HTMLOListElement::HTMLOListElement):
1423         (WebCore::HTMLOListElement::parseMappedAttribute):
1424         (WebCore::HTMLOListElement::updateItemValues):
1425         (WebCore::HTMLOListElement::recalculateItemCount):
1426         * html/HTMLOListElement.h:
1427         (WebCore::HTMLOListElement::start):
1428         (WebCore::HTMLOListElement::isReversed):
1429         (WebCore::HTMLOListElement::itemCountChanged):
1430         (WebCore::HTMLOListElement::itemCount):
1431         * html/HTMLOListElement.idl:
1432         * rendering/RenderListItem.cpp:
1433         (WebCore::RenderListItem::nextListItem):
1434         (WebCore::previousListItem):
1435         (WebCore::RenderListItem::calcValue):
1436         (WebCore::RenderListItem::explicitValueChanged):
1437         (WebCore::previousOrNextItem):
1438         (WebCore::RenderListItem::updateListMarkerNumbers):
1439         * rendering/RenderListItem.h:
1440
1441 2011-12-15  Stephen White  <senorblanco@chromium.org>
1442
1443         Enable CSS_FILTERS in Chromium.
1444         https://bugs.webkit.org/show_bug.cgi?id=74334
1445
1446         Reviewed by Chris Marrin.
1447
1448         Covered by css3/filters (when enabled).
1449
1450         * platform/graphics/filters/FilterOperation.h:
1451         (WebCore::PassthroughFilterOperation::PassthroughFilterOperation):
1452         Since wingdi.h #define's PASSTHROUGH, #undef it after the includes.
1453
1454 2011-12-16  Patrick Gansterer  <paroga@webkit.org>
1455
1456         Unreviewed WinCE build fix after r102979.
1457
1458         Make everHadLayout() public accessible as it was before the change.
1459
1460         * rendering/RenderObject.h:
1461         (WebCore::RenderObject::everHadLayout):
1462
1463 2011-12-15  Hans Wennborg  <hans@chromium.org>
1464
1465         IndexedDB: Don't prefetch values from key cursors
1466         https://bugs.webkit.org/show_bug.cgi?id=74604
1467
1468         Reviewed by Tony Chang.
1469
1470         Since index key cursors don't have values, prefetching should not try
1471         to retrieve them. Doing so trips an ASSERT in debug builds.
1472
1473         This will be tested Chromium-side.
1474
1475         * storage/IDBCursorBackendImpl.cpp:
1476         (WebCore::IDBCursorBackendImpl::prefetchContinueInternal):
1477
1478 2011-12-16  Yosifumi Inoue  <yosin@chromium.org>
1479
1480         [Forms] The "maxlength" attribute on "textarea" tag miscounts hard newlines
1481         https://bugs.webkit.org/show_bug.cgi?id=74686
1482
1483         Reviewed by Kent Tamura.
1484
1485         This patch counts LF in textarea value as two for LF to CRLF conversion on submission.
1486
1487         No new tests. Existing tests cover all changes.
1488
1489         * html/HTMLTextAreaElement.cpp:
1490         (WebCore::computeLengthForSubmission): Count LF as 2 for CR LF conversion on submission.
1491         (WebCore::HTMLTextAreaElement::handleBeforeTextInsertedEvent): Use computeLengthForSubmission instead of numGraphemeClusters.
1492         (WebCore::HTMLTextAreaElement::tooLong): Use computeLengthForSubmission instead of numGraphemeClusters.
1493
1494 2011-12-16  Hajime Morrita  <morrita@chromium.org>
1495
1496         Unreviewed, rolling out r103045.
1497         http://trac.webkit.org/changeset/103045
1498         https://bugs.webkit.org/show_bug.cgi?id=74590
1499
1500         Breaks select-script-onchange.html on Chromium Windows
1501
1502         * html/HTMLSelectElement.cpp:
1503         (WebCore::HTMLSelectElement::typeAheadFind):
1504
1505 2011-12-16  Carlos Garcia Campos  <cgarcia@igalia.com>
1506
1507         Unreviewed. Fix make distcheck.
1508
1509         * GNUmakefile.list.am: Add missing header file.
1510
1511 2011-12-16  Yosifumi Inoue  <yosin@chromium.org>
1512
1513         [Forms] Selection change by type-ahead doesn't fire 'change' event
1514         https://bugs.webkit.org/show_bug.cgi?id=74590
1515
1516         Reviewed by Kent Tamura.
1517
1518         Fire onchange even for type ahead selection.
1519
1520         Test: fast/forms/select/menulist-type-ahead-find.html
1521
1522         * html/HTMLSelectElement.cpp:
1523         (WebCore::HTMLSelectElement::typeAheadFind): Add DispatchChangeEvent when
1524         calling selectOption method.
1525
1526 2011-12-16  Andreas Kling  <kling@webkit.org>
1527
1528         Don't call Document::body() twice in the same function.
1529         <http://webkit.org/b/74683>
1530
1531         Reviewed by Dan Bernstein.
1532
1533         Document::body() is O(n), so we should avoid calling it multiple
1534         times unnecessarily.
1535
1536         * dom/Document.cpp:
1537         (WebCore::Document::updateLayoutIgnorePendingStylesheets):
1538
1539 2011-12-16  Daniel Sievers  <sievers@chromium.org>
1540
1541         [Chromium] Add trace events for decoding and drawing images.
1542         https://bugs.webkit.org/show_bug.cgi?id=74547
1543
1544         Reviewed by James Robinson.
1545
1546         * platform/graphics/skia/ImageSkia.cpp:
1547         (WebCore::drawResampledBitmap):
1548         (WebCore::paintSkBitmap):
1549         (WebCore::Image::drawPattern):
1550         * platform/graphics/skia/NativeImageSkia.cpp:
1551         (WebCore::NativeImageSkia::resizedBitmap):
1552         * platform/image-decoders/bmp/BMPImageDecoder.cpp:
1553         (WebCore::BMPImageDecoder::decode):
1554         * platform/image-decoders/gif/GIFImageDecoder.cpp:
1555         (WebCore::GIFImageDecoder::decode):
1556         * platform/image-decoders/ico/ICOImageDecoder.cpp:
1557         (WebCore::ICOImageDecoder::decode):
1558         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
1559         (WebCore::JPEGImageDecoder::decode):
1560         * platform/image-decoders/png/PNGImageDecoder.cpp:
1561         (WebCore::PNGImageDecoder::decode):
1562         * platform/image-decoders/webp/WEBPImageDecoder.cpp:
1563         (WebCore::WEBPImageDecoder::decode):
1564
1565 2011-12-15  Martin Robinson  <mrobinson@igalia.com>
1566
1567         Fix 'make dist' in preparation for the GTK+ release.
1568
1569         * GNUmakefile.list.am: Add missing header.
1570
1571 2011-12-15  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
1572
1573         Don't create empty files on error.
1574         https://bugs.webkit.org/show_bug.cgi?id=74373
1575
1576         Reviewed by Ryosuke Niwa.
1577
1578         * css/makeprop.pl:
1579         * css/makevalues.pl:
1580         * make-hash-tools.pl:
1581
1582 2011-12-15  Yongjun Zhang  <yongjun_zhang@apple.com>
1583
1584         PODIntervalTree takes 1.7MB memory on www.nytimes.com.
1585         https://bugs.webkit.org/show_bug.cgi?id=73712
1586
1587         Reviewed by Kenneth Russell.
1588
1589         For a RenderBlock which has floating objects inside, we will create a PODIntervalTree and a PODArena with
1590         at least one 16KB chunk.  A page could have a large number of such RenderBlocks and they could take huge
1591         amount of memory.  To fix that, we can create a shared PODArena in the root RenderView.  Instead of having
1592         their own PODArena, each RenderBlock with floating objects could share this PODArena to reduce memory consumption.
1593
1594         The shared PODArena could grow unboundedly if we keep removing and adding floating objects.  We can fix that
1595         by reusing the freed memory in each chunk.  However, a PODArena could allocate objects of different sizes and
1596         it would be complex to keep track of the size for each allocation in PODArena.  To address that, this patch
1597         added class PODFreeListArena<T> which only allocates objects of type T (hence the same size).  We can then use a
1598         free list to track freed nodes inside the chunk and reuse the free nodes in future allocations.
1599
1600         Manually tested on nytimes.com and the heap consumption of PODIntervalTree reduced from 1.7MB to 16KB. Performance
1601         doesn't regress on test PerformanceTests/Layout/floats.html.
1602
1603         * WebCore.xcodeproj/project.pbxproj: add new header file PODFreeListArena.h.
1604         * platform/PODArena.h:
1605         (WebCore::PODArena::~PODArena): change dtor to virtual.
1606         (WebCore::PODArena::Chunk::~Chunk): ditto.
1607         * platform/PODFreeListArena.h: Added.
1608         (WebCore::PODFreeListArena::create): 
1609         (WebCore::PODFreeListArena::allocateObject): allocate an object.
1610         (WebCore::PODFreeListArena::freeObject): free an object, find the right chunk and update its free list.
1611         (WebCore::PODFreeListArena::allocate): allocate memory from the free list or current chunk.
1612         (WebCore::PODFreeListArena::FreeListChunk::FreeListChunk): add m_freeList to track freed cells.
1613         (WebCore::PODFreeListArena::FreeListChunk::allocate): reuse a free cell if there is one.
1614         (WebCore::PODFreeListArena::FreeListChunk::free): make the memory taken by this object is free, and link it to m_freeList.
1615         (WebCore::PODFreeListArena::FreeListChunk::contains): check if a pointer is inside this chunk.
1616         (WebCore::PODFreeListArena::FreeListChunk::hasFreeList): check if this chunk has free cells.
1617         * platform/PODRedBlackTree.h:
1618         (WebCore::PODRedBlackTree::PODRedBlackTree): take PODFreeListArena instead of PODArena, since nodes of a particular PODRedBlackTree
1619             is always of the same size.
1620         (WebCore::PODRedBlackTree::clear): mark all nodes before clearing the tree.
1621         (WebCore::PODRedBlackTree::initIfNeeded): add initIfNeeded to take an external PODFreeListArena.
1622         (WebCore::PODRedBlackTree::add):
1623         (WebCore::PODRedBlackTree::deleteNode): mark the node free in arena after it is removed from the tree.
1624         (WebCore::PODRedBlackTree::markFree): mark all node free in the tree.
1625         * rendering/RenderBlock.cpp:
1626         (WebCore::RenderBlock::insertFloatingObject):
1627         (WebCore::RenderBlock::addOverhangingFloats):
1628         (WebCore::RenderBlock::addIntrudingFloats):
1629         (WebCore::RenderBlock::FloatingObjects::computePlacedFloatsTree):  passing the shared PODFreeListArena to m_placedFloatsTree.
1630         * rendering/RenderBlock.h:
1631         (WebCore::RenderBlock::FloatingObjects::FloatingObjects):
1632         * rendering/RenderView.cpp:
1633         (WebCore::RenderView::intervalArena): create the shared PODFreeListArena lazily.
1634         * rendering/RenderView.h:
1635
1636 2011-12-15  Tony Chang  <tony@chromium.org>
1637
1638         Unreviewed, rollout r102825 because it didn't improve performance.
1639         https://bugs.webkit.org/show_bug.cgi?id=74622
1640
1641         * css/CSSStyleSelector.cpp:
1642         (WebCore::CSSStyleSelector::styleForElement):
1643         (WebCore::CSSStyleSelector::pseudoStyleForElement):
1644
1645 2011-12-15  Ryosuke Niwa  <rniwa@webkit.org>
1646
1647         sizeof(RenderObject) is 32 instead of 24 on Windows
1648         https://bugs.webkit.org/show_bug.cgi?id=74646
1649
1650         Reviewed by Darin Adler.
1651
1652         Make all bitfields in RenderObject to unsigned and wrap them around by RenderObjectBitfields.
1653         Also add a compilation time assertion to make sure we won't grow RenderObject's size unintentionally.
1654
1655         * rendering/RenderBlock.cpp:
1656         (WebCore::RenderBlock::layoutBlock):
1657         (WebCore::RenderBlock::layoutBlockChild):
1658         (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
1659         (WebCore::RenderBlock::layoutColumns):
1660         * rendering/RenderBlock.h:
1661         (WebCore::RenderBlock::FloatWithRect::FloatWithRect):
1662         * rendering/RenderObject.cpp:
1663         (WebCore::SameSizeAsRenderObject::~SameSizeAsRenderObject):
1664         (WebCore::RenderObject::RenderObject):
1665         (WebCore::RenderObject::markContainingBlocksForLayout):
1666         (WebCore::RenderObject::setPreferredLogicalWidthsDirty):
1667         (WebCore::RenderObject::invalidateContainerPreferredLogicalWidths):
1668         (WebCore::RenderObject::styleWillChange):
1669         (WebCore::RenderObject::styleDidChange):
1670         (WebCore::RenderObject::willBeDestroyed):
1671         (WebCore::RenderObject::updateDragState):
1672         * rendering/RenderObject.h:
1673         (WebCore::RenderObject::hasCounterNodeMap):
1674         (WebCore::RenderObject::setHasCounterNodeMap):
1675         (WebCore::RenderObject::childrenInline):
1676         (WebCore::RenderObject::setChildrenInline):
1677         (WebCore::RenderObject::hasColumns):
1678         (WebCore::RenderObject::setHasColumns):
1679         (WebCore::RenderObject::inRenderFlowThread):
1680         (WebCore::RenderObject::setInRenderFlowThread):
1681         (WebCore::RenderObject::isAnonymous):
1682         (WebCore::RenderObject::setIsAnonymous):
1683         (WebCore::RenderObject::isAnonymousBlock):
1684         (WebCore::RenderObject::isFloating):
1685         (WebCore::RenderObject::isPositioned):
1686         (WebCore::RenderObject::isRelPositioned):
1687         (WebCore::RenderObject::isText):
1688         (WebCore::RenderObject::isBox):
1689         (WebCore::RenderObject::isInline):
1690         (WebCore::RenderObject::isDragging):
1691         (WebCore::RenderObject::isReplaced):
1692         (WebCore::RenderObject::isHorizontalWritingMode):
1693         (WebCore::RenderObject::hasLayer):
1694         (WebCore::RenderObject::hasBoxDecorations):
1695         (WebCore::RenderObject::needsLayout):
1696         (WebCore::RenderObject::selfNeedsLayout):
1697         (WebCore::RenderObject::needsPositionedMovementLayout):
1698         (WebCore::RenderObject::needsPositionedMovementLayoutOnly):
1699         (WebCore::RenderObject::posChildNeedsLayout):
1700         (WebCore::RenderObject::needsSimplifiedNormalFlowLayout):
1701         (WebCore::RenderObject::normalChildNeedsLayout):
1702         (WebCore::RenderObject::preferredLogicalWidthsDirty):
1703         (WebCore::RenderObject::hasOverflowClip):
1704         (WebCore::RenderObject::hasTransform):
1705         (WebCore::RenderObject::node):
1706         (WebCore::RenderObject::setPositioned):
1707         (WebCore::RenderObject::setRelPositioned):
1708         (WebCore::RenderObject::setFloating):
1709         (WebCore::RenderObject::setInline):
1710         (WebCore::RenderObject::setHasBoxDecorations):
1711         (WebCore::RenderObject::setIsText):
1712         (WebCore::RenderObject::setIsBox):
1713         (WebCore::RenderObject::setReplaced):
1714         (WebCore::RenderObject::setHorizontalWritingMode):
1715         (WebCore::RenderObject::setHasOverflowClip):
1716         (WebCore::RenderObject::setHasLayer):
1717         (WebCore::RenderObject::setHasTransform):
1718         (WebCore::RenderObject::setHasReflection):
1719         (WebCore::RenderObject::hasReflection):
1720         (WebCore::RenderObject::setHasMarkupTruncation):
1721         (WebCore::RenderObject::hasMarkupTruncation):
1722         (WebCore::RenderObject::selectionState):
1723         (WebCore::RenderObject::setSelectionState):
1724         (WebCore::RenderObject::hasSelectedChildren):
1725         (WebCore::RenderObject::isMarginBeforeQuirk):
1726         (WebCore::RenderObject::isMarginAfterQuirk):
1727         (WebCore::RenderObject::setMarginBeforeQuirk):
1728         (WebCore::RenderObject::setMarginAfterQuirk):
1729         (WebCore::RenderObject::everHadLayout):
1730         (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
1731         (WebCore::RenderObject::RenderObjectBitfields::selectionState):
1732         (WebCore::RenderObject::RenderObjectBitfields::setSelectionState):
1733         (WebCore::RenderObject::setNeedsPositionedMovementLayout):
1734         (WebCore::RenderObject::setNormalChildNeedsLayout):
1735         (WebCore::RenderObject::setPosChildNeedsLayout):
1736         (WebCore::RenderObject::setNeedsSimplifiedNormalFlowLayout):
1737         (WebCore::RenderObject::setPaintBackground):
1738         (WebCore::RenderObject::setIsDragging):
1739         (WebCore::RenderObject::setEverHadLayout):
1740         (WebCore::RenderObject::setNeedsLayout):
1741         (WebCore::RenderObject::setChildNeedsLayout):
1742         * rendering/RenderObjectChildList.cpp:
1743         (WebCore::RenderObjectChildList::removeChildNode):
1744         * rendering/svg/RenderSVGContainer.cpp:
1745         (WebCore::RenderSVGContainer::layout):
1746
1747 2011-12-15  Wei Charles  <charles.wei@torchmobile.com.cn>
1748
1749         [BlackBerry] Upstream BlackBerry porting of pluginView
1750         https://bugs.webkit.org/show_bug.cgi?id=73397
1751
1752         Reviewed by Daniel Bates.
1753
1754         No new tests for now.
1755
1756         * plugins/blackberry/PluginViewBlackBerry.cpp: Added.
1757
1758 2011-12-15  Joshua Bell  <jsbell@chromium.org>
1759
1760         IndexedDB: Can't pass DOMStringList to IDBDatabase.transaction()
1761         https://bugs.webkit.org/show_bug.cgi?id=74452
1762
1763         Reviewed by Adam Barth.
1764
1765         V8 code generator generated checks for DOMStringList arguments, then
1766         deferred to a function that only handled array inputs. This previously
1767         worked for IndexedDB because it would fall into a now-removed default
1768         handler.
1769
1770         Modified storage/indexeddb/transaction-basics.html to test this.
1771
1772         * bindings/v8/V8Binding.cpp:
1773         (WebCore::v8ValueToWebCoreDOMStringList):
1774
1775 2011-12-15  Adam Klein  <adamk@chromium.org>
1776
1777         Make Element::setAttributeInternal inline in an attempt to avoid function call overhead
1778         https://bugs.webkit.org/show_bug.cgi?id=74638
1779
1780         Reviewed by Andreas Kling.
1781
1782         In r102695, I factored common code in setAttribute into
1783         Element::setAttributeInternal. This may have caused a perf regression
1784         due to the extra function call, which inlining should eliminate.
1785
1786         Running Dromaeo locally suggests that this will improve performance
1787         by ~9% on the "dom-attr element.property = value" test (which assigns
1788         a value to an element's id).
1789
1790         * dom/Element.cpp:
1791         (WebCore::Element::setAttributeInternal):
1792
1793 2011-12-15  Mary Wu  <mary.wu@torchmobile.com.cn>
1794
1795         Upstream FileSystemBlackBerry.cpp into WebCore/platform/blackberry
1796         https://bugs.webkit.org/show_bug.cgi?id=74491
1797
1798         Reviewed by Rob Buis.
1799
1800         We are using POSIX porting of FileSystem, so here only implement other 
1801         necessary functions.
1802
1803         Initial upstream, no new tests.
1804
1805         * platform/blackberry/FileSystemBlackBerry.cpp: Added.
1806         (WebCore::homeDirectoryPath):
1807         (WebCore::fileSystemRepresentation):
1808         (WebCore::unloadModule):
1809         (WebCore::openTemporaryFile):
1810
1811 2011-12-15  Adrienne Walker  <enne@google.com>
1812
1813         [chromium] Clean up unnecessary leaf functions in GraphicsLayerChromium
1814         https://bugs.webkit.org/show_bug.cgi?id=74140
1815
1816         Reviewed by James Robinson.
1817
1818         Tested by existing compositor layout tests.
1819
1820         This is a follow-on cleanup to r102196, which made some of these
1821         functions less useful than they had been in the past.
1822
1823         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
1824         (WebCore::GraphicsLayerChromium::setContentsOpaque):
1825         (WebCore::GraphicsLayerChromium::setBackfaceVisibility):
1826         (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
1827         * platform/graphics/chromium/GraphicsLayerChromium.h:
1828
1829 2011-12-15  Kenneth Russell  <kbr@google.com>
1830
1831         Unreviewed, rolling out r103000.
1832         http://trac.webkit.org/changeset/103000
1833         https://bugs.webkit.org/show_bug.cgi?id=74658
1834
1835         Does not handle text/plain documents correctly.
1836
1837         * html/parser/HTMLTokenizer.cpp:
1838         * html/parser/HTMLTokenizer.h:
1839         * html/parser/HTMLTreeBuilder.cpp:
1840         * html/parser/HTMLTreeBuilder.h:
1841         * xml/parser/MarkupTokenizerBase.h:
1842
1843 2011-12-15  James Robinson  <jamesr@chromium.org>
1844
1845         [chromium] Set the CCLayerTreeHost pointer on LayerChromium instances eagerly
1846         https://bugs.webkit.org/show_bug.cgi?id=74477
1847
1848         Reviewed by Kenneth Russell.
1849
1850         This enforces that the m_layerTreeHost pointer on LayerChromium instances is always up to date, instead of
1851         lazily setting it in the paintContents loop. There are two invariants:
1852         1.) If a LayerChromium is the root layer of a CCLayerTreeHost, or is reachable via the children, mask, or
1853         replica pointers from the root layer of a CCLayerTreeHost, then that LayerChromium's m_layerTreeHost pointer
1854         refers to that CCLayerTreeHost
1855         2.) If a LayerChromium is not a root layer or reachable from a root layer of any CCLayerTreeHost, its
1856         CCLayerTreeHost pointer is nil.
1857
1858         Covered by several new layout tests in LayerChromiumTest
1859
1860         * platform/graphics/chromium/LayerChromium.cpp:
1861         (WebCore::LayerChromium::setLayerTreeHost):
1862         (WebCore::LayerChromium::setParent):
1863         (WebCore::LayerChromium::setMaskLayer):
1864         (WebCore::LayerChromium::setReplicaLayer):
1865         * platform/graphics/chromium/LayerChromium.h:
1866         * platform/graphics/chromium/TiledLayerChromium.cpp:
1867         (WebCore::TiledLayerChromium::createTile):
1868         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1869         (WebCore::CCLayerTreeHost::setRootLayer):
1870         (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
1871         (WebCore::CCLayerTreeHost::paintLayerContents):
1872         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1873
1874 2011-12-15  Sheriff Bot  <webkit.review.bot@gmail.com>
1875
1876         Unreviewed, rolling out r102652 and r102717.
1877         http://trac.webkit.org/changeset/102652
1878         http://trac.webkit.org/changeset/102717
1879         https://bugs.webkit.org/show_bug.cgi?id=74674
1880
1881         Broke too many webs. (Requested by kling on #webkit).
1882
1883         * WebCore.exp.in:
1884
1885 2011-12-15  Anders Carlsson  <andersca@apple.com>
1886
1887         Lazily create the scrolling coordinator and add a setting for enabling it
1888         https://bugs.webkit.org/show_bug.cgi?id=74667
1889
1890         Reviewed by Darin Adler.
1891
1892         * WebCore.xcodeproj/project.pbxproj:
1893         Make ScrollingCoordinator.h a private header so it can be used in WebKit.
1894         * page/Page.cpp:
1895         (WebCore::Page::Page):
1896         Don't create the scrolling coordinator.
1897
1898         (WebCore::Page::~Page):
1899         Check for a null scrolling coordinator.
1900
1901         (WebCore::Page::scrollingCoordinator):
1902         Create the scrolling coordinator lazily.
1903
1904         * page/Settings.cpp:
1905         (WebCore::Settings::Settings):
1906         * page/Settings.h:
1907         (WebCore::Settings::setScrollingCoordinatorEnabled):
1908         (WebCore::Settings::scrollingCoordinatorEnabled):
1909         Add a setting for enabling the scrolling coordinator.
1910
1911         * rendering/RenderLayerBacking.cpp:
1912         (WebCore::RenderLayerBacking::RenderLayerBacking):
1913         Use a tile cache layer for the main frame when the scrolling coordinator is neabled.
1914
1915 2011-12-15  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1916
1917         Unreviewed. Fix build break when data-transfer-items is enabled.
1918
1919         * platform/efl/ClipboardEfl.cpp:
1920         (WebCore::ClipboardEfl::items):
1921         * platform/efl/ClipboardEfl.h:
1922
1923 2011-12-15  Adam Barth  <abarth@webkit.org>
1924
1925         <ruby><div><p><rp> parses incorrectly
1926         https://bugs.webkit.org/show_bug.cgi?id=74668
1927
1928         Reviewed by Darin Adler.
1929
1930         This patch updates our implementation to match a change to the HTML5
1931         specification regarding how <ruby> elements parse.  Previously, <rp>
1932         and similar tags used to pop the stack up to the <ruby> element.  Now
1933         the popping does not occur.
1934
1935         Tests: html5lib/runner.html
1936
1937         * html/parser/HTMLTreeBuilder.cpp:
1938
1939 2011-12-15  Daniel Sievers  <sievers@chromium.org>
1940
1941         [Chromium] Avoid strdup() for extra argument when tracing is disabled.
1942         https://bugs.webkit.org/show_bug.cgi?id=74637
1943
1944         Reviewed by James Robinson.
1945
1946         * platform/chromium/TraceEvent.h:
1947         (WebCore::internal::ScopeTracer::ScopeTracer):
1948
1949 2011-12-15  Rafael Weinstein  <rafaelw@chromium.org>
1950
1951         [MutationObservers] Add a document-level flag that can trivially be checked to avoid doing unnessary work if mutation observers absent
1952         https://bugs.webkit.org/show_bug.cgi?id=74641
1953
1954         Reviewed by Ojan Vafai.
1955
1956         This patch adds a byte of flags to Document, of which three bits are used to signal if any
1957         node owned by the document has a Mutation Observer of the given type. This is used to
1958         reduce the cost of discovering there are none to a single (inlined) method call and bit-check.
1959         Also, a similar byte of flags which was used to optimize a particular case when mutation observers
1960         are present has been removed, with the reasoning that we should first focus on minimizing impact on
1961         the null-case before optimizing particular in-use cases.
1962
1963         Also, MutationObserverInterestGroup is broken out into its own file (which probably should have happened
1964         earlier, but now avoids a circular header dependency).
1965
1966         No tests needed. This patch is just a refactor.
1967
1968         * CMakeLists.txt:
1969         * GNUmakefile.list.am:
1970         * Target.pri:
1971         * WebCore.gypi:
1972         * WebCore.vcproj/WebCore.vcproj:
1973         * WebCore.xcodeproj/project.pbxproj:
1974         * css/CSSMutableStyleDeclaration.cpp:
1975         * dom/CharacterData.cpp:
1976         * dom/ChildListMutationScope.cpp:
1977         * dom/Document.cpp:
1978         (WebCore::Document::Document):
1979         * dom/Document.h:
1980         (WebCore::Document::hasMutationObserversOfType):
1981         (WebCore::Document::hasMutationObservers):
1982         (WebCore::Document::addMutationObserverTypes):
1983         * dom/Element.cpp:
1984         * dom/MutationObserverInterestGroup.cpp: Added.
1985         (WebCore::MutationObserverInterestGroup::createIfNeeded):
1986         (WebCore::MutationObserverInterestGroup::MutationObserverInterestGroup):
1987         (WebCore::MutationObserverInterestGroup::isOldValueRequested):
1988         (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
1989         * dom/MutationObserverInterestGroup.h: Copied from Source/WebCore/dom/WebKitMutationObserver.h.
1990         (WebCore::MutationObserverInterestGroup::createForChildListMutation):
1991         (WebCore::MutationObserverInterestGroup::createForCharacterDataMutation):
1992         (WebCore::MutationObserverInterestGroup::createForAttributesMutation):
1993         (WebCore::MutationObserverInterestGroup::hasOldValue):
1994         * dom/Node.cpp:
1995         (WebCore::Node::didMoveToNewOwnerDocument):
1996         (WebCore::Node::getRegisteredMutationObserversOfType):
1997         (WebCore::Node::notifyMutationObserversNodeWillDetach):
1998         * dom/Node.h:
1999         * dom/WebKitMutationObserver.cpp:
2000         (WebCore::WebKitMutationObserver::observe):
2001         * dom/WebKitMutationObserver.h:
2002
2003 2011-12-15  Adam Barth  <abarth@webkit.org>
2004
2005         <!DOCTYPE html><pre>&#x0a;&#x0a;A</pre> doesn't parse correctly
2006         https://bugs.webkit.org/show_bug.cgi?id=74658
2007
2008         Reviewed by Darin Adler.
2009
2010         Previously, we handled skipping newlines after <pre> in the tokenizer,
2011         which isn't how the spec handles them.  Instead, the spec skips them in
2012         the tree builder.  This isn't usually observable, except in the case of
2013         an HTML entity.  In that case, the tokenzier sees '&' (because the
2014         entity hasn't been decoded yet), but the tree builder sees '\n' (the
2015         decoded entity).  This patch fixes the bug by more closely aligning our
2016         implementation with the spec.
2017
2018         Test: html5lib/runner.html
2019
2020         * html/parser/HTMLTokenizer.cpp:
2021         (WebCore::HTMLTokenizer::reset):
2022         (WebCore::HTMLTokenizer::nextToken):
2023         * html/parser/HTMLTokenizer.h:
2024         * html/parser/HTMLTreeBuilder.cpp:
2025         (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::skipAtMostOneLeadingNewline):
2026         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
2027         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
2028         (WebCore::HTMLTreeBuilder::processCharacterBuffer):
2029         * html/parser/HTMLTreeBuilder.h:
2030         * xml/parser/MarkupTokenizerBase.h:
2031
2032 2011-12-15  Kenneth Russell  <kbr@google.com>
2033
2034         Unreviewed, rolling out r102989.
2035         http://trac.webkit.org/changeset/102989
2036         https://bugs.webkit.org/show_bug.cgi?id=74580
2037
2038         Caused SHOULD NOT BE REACHED assertions in debug builds.
2039
2040         * css/CSSComputedStyleDeclaration.cpp:
2041         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2042         * css/CSSPrimitiveValueMappings.h:
2043         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2044         (WebCore::CSSPrimitiveValue::operator EBoxAlignment):
2045         * css/CSSStyleSelector.cpp:
2046         (WebCore::CSSStyleSelector::applyProperty):
2047         * rendering/RenderDeprecatedFlexibleBox.cpp:
2048         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
2049         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
2050         * rendering/RenderFullScreen.cpp:
2051         (createFullScreenStyle):
2052         * rendering/style/RenderStyle.h:
2053         (WebCore::InheritedFlags::boxPack):
2054         (WebCore::InheritedFlags::setBoxAlign):
2055         (WebCore::InheritedFlags::setBoxPack):
2056         (WebCore::InheritedFlags::initialBoxPack):
2057         * rendering/style/RenderStyleConstants.h:
2058         * rendering/style/StyleDeprecatedFlexibleBoxData.h:
2059
2060 2011-12-15  Ryosuke Niwa  <rniwa@webkit.org>
2061
2062         Touch make_name.pl in an attempt to make Qt bots happy.
2063
2064         * dom/make_names.pl:
2065         (printNamesHeaderFile):
2066
2067 2011-12-15  Kentaro Hara  <haraken@chromium.org>
2068
2069         Unreviewed. Rebaselined run-bindings-tests results.
2070
2071         * bindings/scripts/test/JS/JSFloat64Array.cpp:
2072         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
2073         * bindings/scripts/test/JS/JSTestObj.cpp:
2074
2075 2011-12-15  Luke Macpherson   <macpherson@chromium.org>
2076
2077         Separate box alignment and box pack values into separate enums.
2078         https://bugs.webkit.org/show_bug.cgi?id=74580
2079
2080         Reviewed by Darin Adler.
2081
2082         No new tests / refactoring only.
2083
2084         Separating these types cleans up the code by removing several assertions that
2085         values are in the correct ranges, as this is ensured by the type system.
2086
2087         * css/CSSComputedStyleDeclaration.cpp:
2088         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2089         * css/CSSPrimitiveValueMappings.h:
2090         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2091         (WebCore::CSSPrimitiveValue::operator EBoxPack):
2092         (WebCore::CSSPrimitiveValue::operator EBoxAlignment):
2093         * css/CSSStyleSelector.cpp:
2094         (WebCore::CSSStyleSelector::applyProperty):
2095         * rendering/RenderDeprecatedFlexibleBox.cpp:
2096         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
2097         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
2098         * rendering/RenderFullScreen.cpp:
2099         (createFullScreenStyle):
2100         * rendering/style/RenderStyle.h:
2101         (WebCore::InheritedFlags::boxPack):
2102         (WebCore::InheritedFlags::setBoxAlign):
2103         (WebCore::InheritedFlags::setBoxPack):
2104         (WebCore::InheritedFlags::initialBoxPack):
2105         * rendering/style/RenderStyleConstants.h:
2106         * rendering/style/StyleDeprecatedFlexibleBoxData.h:
2107
2108 2011-12-15  Kentaro Hara  <haraken@chromium.org>
2109
2110         REGRESSION(r102663): generate-bindings.pl runs every time
2111         https://bugs.webkit.org/show_bug.cgi?id=74481
2112
2113         Reviewed by Adam Barth.
2114
2115         See the comment #1 of bug 74481 for the cause of this bug.
2116
2117         This patch fixes generate-bindings.pl so that it generates .h and .cpp files
2118         even for IDL files that do not need .h and .cpp files. This is just to prevent
2119         build scripts from trying to generate .h and .cpp files at every build.
2120
2121         No new tests. No change in behavior.
2122
2123         * bindings/scripts/generate-bindings.pl:
2124         (generateEmptyHeaderAndCpp): Generates .h and .cpp files for IDL files
2125         that do not need .h and .cpp files.
2126         * bindings/scripts/test/CPP/CPPTestSupplemental.cpp: Added.
2127         * bindings/scripts/test/CPP/CPPTestSupplemental.h: Added.
2128         * bindings/scripts/test/GObject/GObjectTestSupplemental.cpp: Added.
2129         * bindings/scripts/test/GObject/GObjectTestSupplemental.h: Added.
2130         * bindings/scripts/test/JS/JSTestSupplemental.cpp: Added.
2131         * bindings/scripts/test/JS/JSTestSupplemental.h: Added.
2132         * bindings/scripts/test/ObjC/ObjCTestSupplemental.cpp: Added.
2133         * bindings/scripts/test/ObjC/ObjCTestSupplemental.h: Added.
2134         * bindings/scripts/test/V8/V8TestSupplemental.cpp: Added.
2135         * bindings/scripts/test/V8/V8TestSupplemental.h: Added.
2136
2137 2011-12-15  Jarred Nicholls  <jarred@sencha.com>
2138
2139         Unreviewed build fix. Mac build broken when CSS Filters enabled.
2140         Needed to move Filter headers out as private headers in WebCore.framework.
2141
2142         * WebCore.xcodeproj/project.pbxproj:
2143
2144 2011-12-15  Eric Seidel  <eric@webkit.org>
2145
2146         WebCore has two (disconnected) ways to keep track of updated widgets, should be unified
2147         https://bugs.webkit.org/show_bug.cgi?id=74367
2148
2149         Reviewed by Adam Barth.
2150
2151         It seems the FrameView updateWidgets set is needed for now,
2152         so just making FrameView::addWidgetToUpdate mark the DOM node
2153         as needing a widget update and later when it goes to call
2154         updateWidget() checking first if it needs an update.
2155
2156         No new tests, just adding an assert.
2157
2158         * html/HTMLEmbedElement.cpp:
2159         (WebCore::HTMLEmbedElement::updateWidget):
2160         * html/HTMLObjectElement.cpp:
2161         (WebCore::HTMLObjectElement::updateWidget):
2162         * html/HTMLPlugInImageElement.h:
2163         (WebCore::HTMLPlugInImageElement::needsWidgetUpdate):
2164         (WebCore::HTMLPlugInImageElement::setNeedsWidgetUpdate):
2165         * page/FrameView.cpp:
2166         (WebCore::FrameView::addWidgetToUpdate):
2167         (WebCore::FrameView::updateWidget):
2168
2169 2011-12-15  Alexandru Chiculita  <achicu@adobe.com>
2170
2171         Windows project file is broken. It has a missing </File> enclosing tag
2172         https://bugs.webkit.org/show_bug.cgi?id=74632
2173
2174         Reviewed by Anders Carlsson.
2175
2176         No new tests, just fixing the project file.
2177
2178         * WebCore.vcproj/WebCore.vcproj:
2179
2180 2011-12-15  Adam Barth  <abarth@webkit.org>
2181
2182         <table><tr><td><svg><desc><td> parses incorrectly
2183         https://bugs.webkit.org/show_bug.cgi?id=68106
2184
2185         Reviewed by Eric Seidel.
2186
2187         This patch updates our implementation of the HTML5 parser to account
2188         for recent changes in the spec.  The main change in this patch is to
2189         remove the "in foreign content" state from the tree builder.  Rather
2190         than maintaining this as a separate state, the parser now introspects
2191         on the stack of open elements to determine whether the parser is in
2192         foriegn content.  In the process, I've deleted some now-unused
2193         machinery in the tree builder.
2194
2195         Tested by the html5lib LayoutTests.  These tests show the progression
2196         in our spec compliance.
2197
2198         * html/parser/HTMLElementStack.cpp:
2199         * html/parser/HTMLElementStack.h:
2200         * html/parser/HTMLTreeBuilder.cpp:
2201         * html/parser/HTMLTreeBuilder.h:
2202         * mathml/mathattrs.in:
2203
2204 2011-12-15  Ryosuke Niwa  <rniwa@webkit.org>
2205
2206         m_hasCounterNodeMap and m_everHadLayout should be private to RenderObject
2207         https://bugs.webkit.org/show_bug.cgi?id=74645
2208
2209         Reviewed by Eric Seidel.
2210
2211         Made them private and added getters and setters as needed.
2212
2213         * rendering/RenderCounter.cpp:
2214         (WebCore::makeCounterNode):
2215         (WebCore::RenderCounter::destroyCounterNodes):
2216         (WebCore::updateCounters):
2217         (WebCore::RenderCounter::rendererStyleChanged):
2218         (showCounterRendererTree):
2219         * rendering/RenderFlowThread.cpp:
2220         (WebCore::RenderFlowThread::layout):
2221         * rendering/RenderObject.h:
2222         (WebCore::RenderObject::hasCounterNodeMap):
2223         (WebCore::RenderObject::setHasCounterNodeMap):
2224         (WebCore::RenderObject::everHadLayout):
2225         * rendering/svg/RenderSVGForeignObject.cpp:
2226         (WebCore::RenderSVGForeignObject::layout):
2227         * rendering/svg/RenderSVGImage.cpp:
2228         (WebCore::RenderSVGImage::layout):
2229         * rendering/svg/RenderSVGResourceContainer.cpp:
2230         (WebCore::RenderSVGResourceContainer::layout):
2231         * rendering/svg/RenderSVGResourceMarker.cpp:
2232         (WebCore::RenderSVGResourceMarker::layout):
2233         * rendering/svg/RenderSVGRoot.cpp:
2234         (WebCore::RenderSVGRoot::layout):
2235         * rendering/svg/RenderSVGShape.cpp:
2236         (WebCore::RenderSVGShape::layout):
2237         * rendering/svg/RenderSVGText.cpp:
2238         (WebCore::RenderSVGText::layout):
2239
2240 2011-12-15  Vsevolod Vlasov  <vsevik@chromium.org>
2241
2242         Not able to navigate the Resource tab options properly with arrow keys after adding the sticky-notes.
2243         https://bugs.webkit.org/show_bug.cgi?id=72013
2244
2245         Reviewed by Pavel Feldman.
2246
2247         * inspector/front-end/DatabaseQueryView.js:
2248         (WebInspector.DatabaseQueryView):
2249         (WebInspector.DatabaseQueryView.prototype._messagesClicked):
2250         * inspector/front-end/ResourcesPanel.js:
2251         (WebInspector.DatabaseTreeElement.prototype.onexpand):
2252
2253 2011-12-15  Anders Carlsson  <andersca@apple.com>
2254
2255         Add ScrollingCoordinator class and ENABLE_THREADED_SCROLLING define
2256         https://bugs.webkit.org/show_bug.cgi?id=74639
2257
2258         Reviewed by Andreas Kling.
2259
2260         Add a ScrollingCoordinator class and make it a member of Page. Tear it down
2261         when the page goes away.
2262
2263         * WebCore.xcodeproj/project.pbxproj:
2264         * page/Page.cpp:
2265         (WebCore::Page::Page):
2266         (WebCore::Page::~Page):
2267         * page/Page.h:
2268         (WebCore::Page::scrollingCoordinator):
2269         * page/ScrollingCoordinator.cpp: Added.
2270         (WebCore::ScrollingCoordinator::create):
2271         (WebCore::ScrollingCoordinator::ScrollingCoordinator):
2272         (WebCore::ScrollingCoordinator::~ScrollingCoordinator):
2273         (WebCore::ScrollingCoordinator::pageDestroyed):
2274         * page/ScrollingCoordinator.h: Added.
2275
2276 2011-12-15  Kenneth Russell  <kbr@google.com>
2277
2278         Rename WEBKIT_lose_context to WEBKIT_WEBGL_lose_context
2279         https://bugs.webkit.org/show_bug.cgi?id=71870
2280
2281         Reviewed by James Robinson.
2282
2283         Re-landing after original commit was rolled out.
2284
2285         Rename largely done with do-webcore-rename with a couple of
2286         necessary manual fixups. Ran WebGL layout tests.
2287
2288         * CMakeLists.txt:
2289         * DerivedSources.make:
2290         * DerivedSources.pri:
2291         * GNUmakefile.list.am:
2292         * Target.pri:
2293         * WebCore.gypi:
2294         * WebCore.xcodeproj/project.pbxproj:
2295         * bindings/js/JSWebGLRenderingContextCustom.cpp:
2296         (WebCore::toJS):
2297         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
2298         (WebCore::toV8Object):
2299         * html/canvas/WebGLExtension.h:
2300         * html/canvas/WebGLLoseContext.cpp: Copied from Source/WebCore/html/canvas/WebKitLoseContext.cpp.
2301         (WebCore::WebGLLoseContext::WebGLLoseContext):
2302         (WebCore::WebGLLoseContext::~WebGLLoseContext):
2303         (WebCore::WebGLLoseContext::getName):
2304         (WebCore::WebGLLoseContext::create):
2305         (WebCore::WebGLLoseContext::loseContext):
2306         (WebCore::WebGLLoseContext::restoreContext):
2307         * html/canvas/WebGLLoseContext.h: Copied from Source/WebCore/html/canvas/WebKitLoseContext.h.
2308         * html/canvas/WebGLLoseContext.idl: Copied from Source/WebCore/html/canvas/WebKitLoseContext.idl.
2309         * html/canvas/WebGLRenderingContext.cpp:
2310         (WebCore::WebGLRenderingContext::getExtension):
2311         (WebCore::WebGLRenderingContext::getSupportedExtensions):
2312         (WebCore::WebGLRenderingContext::maybeRestoreContext):
2313         * html/canvas/WebGLRenderingContext.h:
2314         * html/canvas/WebKitLoseContext.cpp: Removed.
2315         * html/canvas/WebKitLoseContext.h: Removed.
2316         * html/canvas/WebKitLoseContext.idl: Removed.
2317
2318 2011-12-15  Brady Eidson  <beidson@apple.com>
2319
2320         https://bugs.webkit.org/show_bug.cgi?id=74631
2321         HTMLMediaElement should not register for document activation callbacks as it doesn't use them
2322
2323         Reviewed by Eric Carlson.
2324
2325         No new tests. (No behavior change, pruning useless code)
2326
2327         * html/HTMLMediaElement.cpp:
2328         (WebCore::HTMLMediaElement::HTMLMediaElement):
2329         (WebCore::HTMLMediaElement::~HTMLMediaElement):
2330         (WebCore::HTMLMediaElement::willMoveToNewOwnerDocument):
2331         (WebCore::HTMLMediaElement::didMoveToNewOwnerDocument):
2332
2333 2011-12-15  Eric Carlson  <eric.carlson@apple.com>
2334
2335         Text tracks should be treated differently according to their kind
2336         https://bugs.webkit.org/show_bug.cgi?id=72547
2337
2338         Reviewed by Sam Weinig.
2339
2340         Tests: media/track/track-default-attribute.html
2341                media/track/track-mode-not-changed-by-new-track.html
2342                media/track/track-mode-triggers-loading.html
2343
2344         * html/HTMLAudioElement.cpp:
2345         (WebCore::HTMLAudioElement::HTMLAudioElement): Add "createdByParser" parameter.
2346         (WebCore::HTMLAudioElement::create): Ditto.
2347         (WebCore::HTMLAudioElement::createForJSConstructor): Deal with constructor change.
2348         * html/HTMLAudioElement.h:
2349
2350         * html/HTMLMediaElement.cpp:
2351         (WebCore::HTMLMediaElement::HTMLMediaElement): Add "createdByParser" parameter. Initialize m_parsingInProgress.
2352         (WebCore::HTMLMediaElement::finishParsingChildren): Clear m_parsingInProgress. Schedule track
2353             loading if necessary.
2354         (WebCore::HTMLMediaElement::loadTimerFired): Call configureTextTracks not call scheduleLoad, 
2355             it just schedules the load timer again.
2356         (WebCore::HTMLMediaElement::prepareForLoad): Add all non-disabled track elements to a vector
2357             so we can prevent the media element's readyState from reaching HAVE_METADATA until the
2358             tracks are ready.
2359         (WebCore::HTMLMediaElement::textTracksAreReady): New. Return false unless all tracks that were
2360             not disabled when loading started have loaded or failed.
2361         (WebCore::HTMLMediaElement::textTrackReadyStateChanged): Call setReadyState when a track is
2362             stops loading.
2363         (WebCore::HTMLMediaElement::textTrackModeChanged): Trigger <track> loading when the mode
2364             changes to hidden or showing for the first time.
2365         (WebCore::HTMLMediaElement::setReadyState): Do not advance to HAVE_METADATA or higher while
2366             track elements are loading.
2367         (WebCore::HTMLMediaElement::addTrack): Removed.
2368         (WebCore::HTMLMediaElement::showingTrackWithSameKind): New.
2369         (WebCore::HTMLMediaElement::trackWasAdded):
2370         (WebCore::HTMLMediaElement::trackWillBeRemoved): Flag a track as unconfigured so it will be
2371             reconfigured if it is added to another element.
2372         (WebCore::HTMLMediaElement::userIsInterestedInThisLanguage): New.
2373         (WebCore::HTMLMediaElement::userIsInterestedInThisTrack): New. Consider user preferences.
2374         (WebCore::HTMLMediaElement::configureTextTrack): New. Configure a track as per the user's preferences.
2375         (WebCore::HTMLMediaElement::configureTextTracks): New. Configure all track elements.
2376         * html/HTMLMediaElement.h:
2377         * html/HTMLMediaElement.h:
2378
2379         * html/HTMLTagNames.in: Add constructorNeedsCreatedByParser to audio and video.
2380
2381         * html/HTMLTrackElement.cpp:
2382         (WebCore::HTMLTrackElement::HTMLTrackElement): Initialize m_hasBeenConfigured.
2383         * html/HTMLTrackElement.h:
2384         (WebCore::HTMLTrackElement::hasBeenConfigured):
2385         (WebCore::HTMLTrackElement::setHasBeenConfigured):
2386
2387         * html/HTMLVideoElement.cpp:
2388         (WebCore::HTMLVideoElement::HTMLVideoElement): Add "createdByParser" parameter.
2389         (WebCore::HTMLVideoElement::create): Ditto.
2390         * html/HTMLVideoElement.h:
2391
2392         * html/TextTrack.cpp:
2393         (WebCore::TextTrack::TextTrack): Initialize m_mode to DISABLED, not HIDDEN. Initialize m_showingByDefault.
2394         (WebCore::TextTrack::setMode): Clear the "showing by default" flag when a track's mode is
2395             explicitly set to SHOWING.
2396         (WebCore::TextTrack::mode): Return SHOWING whenever the "showing by default" flag is set.
2397         * html/TextTrack.h:
2398         (WebCore::TextTrack::showingByDefault):
2399         (WebCore::TextTrack::setShowingByDefault):
2400
2401         * html/TextTrackCue.cpp:
2402         (WebCore::TextTrackCue::isActive): Return false if a cue has no track, or if its track is disabled.
2403         (WebCore::TextTrackCue::setIsActive): Don't enable a cue if it has no track, or if its track
2404             is disabled.
2405
2406 2011-12-15  Brady Eidson  <beidson@apple.com>
2407
2408         Unreviewed, rolling out r102829.
2409         http://trac.webkit.org/changeset/102829
2410         https://bugs.webkit.org/show_bug.cgi?id=74533
2411
2412         Caused https://bugs.webkit.org/show_bug.cgi?id=74555
2413
2414         * html/HTMLPlugInImageElement.cpp:
2415         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
2416         (WebCore::HTMLPlugInImageElement::willMoveToNewOwnerDocument):
2417         (WebCore::HTMLPlugInImageElement::didMoveToNewOwnerDocument):
2418         (WebCore::HTMLPlugInImageElement::documentWillBecomeInactive):
2419         (WebCore::HTMLPlugInImageElement::documentDidBecomeActive):
2420         * html/HTMLPlugInImageElement.h:
2421
2422 2011-12-15  James Simonsen  <simonjam@chromium.org>
2423
2424         [Navigation Timing] Use monotonicallyIncreasingTime() instead of currentTime()
2425         https://bugs.webkit.org/show_bug.cgi?id=58354
2426
2427         Reviewed by Pavel Feldman.
2428
2429         No new tests. Relies on existing webtiming-* tests.
2430
2431         * CMakeLists.txt:
2432         * GNUmakefile.list.am:
2433         * WebCore.gypi:
2434         * WebCore.pro:
2435         * WebCore.vcproj/WebCore.vcproj:
2436         * WebCore.xcodeproj/project.pbxproj:
2437         * dom/Document.cpp: Use monotonic times.
2438         (WebCore::Document::setReadyState):
2439         (WebCore::Document::finishedParsing):
2440         * inspector/InspectorInstrumentation.cpp:
2441         (WebCore::InspectorInstrumentation::didFinishLoadingImpl): Convert monotonicFinishTime to wall time if needed.
2442         * inspector/InspectorResourceAgent.cpp:
2443         (WebCore::buildObjectForTiming): Convert monotonic requestTime to wall time.
2444         (WebCore::buildObjectForResourceResponse): Plumbing for above.
2445         (WebCore::buildObjectForCachedResource): Ditto.
2446         (WebCore::InspectorResourceAgent::willSendRequest): Ditto.
2447         (WebCore::InspectorResourceAgent::didReceiveResponse): Ditto.
2448         (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache): Ditto.
2449         * loader/DocumentLoadTiming.cpp: Added.
2450         (WebCore::DocumentLoadTiming::DocumentLoadTiming):
2451         (WebCore::DocumentLoadTiming::setNavigationStart): Determine reference time and root reference time.
2452         (WebCore::DocumentLoadTiming::addRedirect): Moved logic from MainResourceLoader.
2453         (WebCore::DocumentLoadTiming::convertMonotonicTimeToDocumentTime): Helper to compute wall time from monotonic time.
2454         * loader/DocumentLoadTiming.h: Turned into class. Made times monotonic.
2455         (WebCore::DocumentLoadTiming::setUnloadEventStart):
2456         (WebCore::DocumentLoadTiming::setUnloadEventEnd):
2457         (WebCore::DocumentLoadTiming::setRedirectStart):
2458         (WebCore::DocumentLoadTiming::setRedirectEnd):
2459         (WebCore::DocumentLoadTiming::setFetchStart):
2460         (WebCore::DocumentLoadTiming::setResponseEnd):
2461         (WebCore::DocumentLoadTiming::setLoadEventStart):
2462         (WebCore::DocumentLoadTiming::setLoadEventEnd):
2463         (WebCore::DocumentLoadTiming::setHasSameOriginAsPreviousDocument):
2464         (WebCore::DocumentLoadTiming::navigationStart):
2465         (WebCore::DocumentLoadTiming::unloadEventStart):
2466         (WebCore::DocumentLoadTiming::unloadEventEnd):
2467         (WebCore::DocumentLoadTiming::redirectStart):
2468         (WebCore::DocumentLoadTiming::redirectEnd):
2469         (WebCore::DocumentLoadTiming::redirectCount):
2470         (WebCore::DocumentLoadTiming::fetchStart):
2471         (WebCore::DocumentLoadTiming::responseEnd):
2472         (WebCore::DocumentLoadTiming::loadEventStart):
2473         (WebCore::DocumentLoadTiming::loadEventEnd):
2474         (WebCore::DocumentLoadTiming::hasCrossOriginRedirect):
2475         (WebCore::DocumentLoadTiming::hasSameOriginAsPreviousDocument):
2476         * loader/FrameLoader.cpp:
2477         (WebCore::FrameLoader::stopLoading):
2478         (WebCore::FrameLoader::commitProvisionalLoad):
2479         (WebCore::FrameLoader::continueLoadAfterWillSubmitForm):
2480         (WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
2481         * loader/MainResourceLoader.cpp:
2482         (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
2483         (WebCore::MainResourceLoader::willSendRequest): Moved logic to DocumentLoadTiming.
2484         (WebCore::MainResourceLoader::didReceiveData): Use monotonic time.
2485         (WebCore::MainResourceLoader::didFinishLoading): Ditto.
2486         (WebCore::MainResourceLoader::load):
2487         * page/DOMWindow.cpp:
2488         (WebCore::DOMWindow::dispatchLoadEvent):
2489         * page/DOMWindow.h: Removed dispatchTimedEvent. It doesn't really help in the new model.
2490         * page/PerformanceNavigation.cpp:
2491         (WebCore::PerformanceNavigation::redirectCount):
2492         * page/PerformanceTiming.cpp: Removed skew correction code. This should never happen now.
2493         (WebCore::PerformanceTiming::navigationStart):
2494         (WebCore::PerformanceTiming::unloadEventStart):
2495         (WebCore::PerformanceTiming::unloadEventEnd):
2496         (WebCore::PerformanceTiming::redirectStart):
2497         (WebCore::PerformanceTiming::redirectEnd):
2498         (WebCore::PerformanceTiming::fetchStart):
2499         (WebCore::PerformanceTiming::responseEnd):
2500         (WebCore::PerformanceTiming::domLoading):
2501         (WebCore::PerformanceTiming::domInteractive):
2502         (WebCore::PerformanceTiming::domContentLoadedEventStart):
2503         (WebCore::PerformanceTiming::domContentLoadedEventEnd):
2504         (WebCore::PerformanceTiming::domComplete):
2505         (WebCore::PerformanceTiming::loadEventStart):
2506         (WebCore::PerformanceTiming::loadEventEnd):
2507         (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute): Used for ResourceLoadTiming.
2508         (WebCore::PerformanceTiming::monotonicTimeToIntegerMilliseconds): Used for DocumentTiming and DocumentLoadTiming.
2509         * page/PerformanceTiming.h:
2510         * platform/network/ResourceLoadTiming.cpp:
2511         (WebCore::ResourceLoadTiming::convertResourceLoadTimeToDocumentTime):
2512         * platform/network/ResourceLoadTiming.h: Added helper function to convert to wall times. Added instructions for use.
2513
2514 2011-12-15  Martin Robinson  <mrobinson@igalia.com>
2515
2516         plugin crash
2517
2518         [GTK] Plugins sometimes crash WebKitGTK+ with Gdk-CRITICAL **: gdk_window_get_toplevel: assertion `GDK_IS_WINDOW (window)' failed
2519         https://bugs.webkit.org/show_bug.cgi?id=73719
2520
2521         Reviewed by Philippe Normand.
2522
2523         No new tests. It's difficult to test or reproduce this exact situation
2524         as it only occurs when running plugins under nspluginwrapper.
2525
2526         * plugins/gtk/PluginViewGtk.cpp:
2527         (WebCore::PluginView::platformGetValue): Properly handle when the plugin tries to
2528         get the window value when the GtkSocket is no longer realized.
2529
2530 2011-12-15  Martin Kosiba  <mkosiba@google.com>
2531
2532         Fix find on web pages with -webkit-user-select: none for Chromium
2533         https://bugs.webkit.org/show_bug.cgi?id=72281
2534
2535         Reviewed by Ryosuke Niwa.
2536
2537         Adding findStringAndScrollToVisible to Editor. This new method returns
2538         the new match as a range rather than modify the active selection.
2539
2540         Test: editing/text-iterator/findString-selection-disabled.html
2541
2542         * editing/Editor.cpp:
2543         (WebCore::Editor::findStringAndScrollToVisible):
2544         * editing/Editor.h:
2545
2546 2011-12-14  Anders Carlsson  <andersca@apple.com>
2547
2548         Add WTF::Function to wtf/Forward.h
2549         https://bugs.webkit.org/show_bug.cgi?id=74576
2550
2551         Reviewed by Adam Roben.
2552
2553         * bindings/scripts/CodeGeneratorJS.pm:
2554         (GenerateImplementation):
2555         Add a JSC:: qualifier to the Function flags to avoid ambiguities.
2556
2557 2011-12-15  Julien Chaffraix  <jchaffraix@webkit.org>
2558
2559         Hardware-backed renderLayer could avoid repainting during a positioned movement layout
2560         https://bugs.webkit.org/show_bug.cgi?id=74370
2561
2562         Reviewed by Simon Fraser.
2563
2564         Tests: compositing/absolute-position-changed-in-composited-layer.html
2565                compositing/absolute-position-changed-with-composited-parent-layer.html
2566                compositing/fixed-position-changed-in-composited-layer.html
2567                compositing/fixed-position-changed-within-composited-parent-layer.html
2568
2569         To be able to properly skip repainting after a positioned movement layout only, we
2570         needed to add more state to the current |setNeedsFullRepaint| method. As part of that
2571         we refactored the callers and internal fields to better match the new meaning.
2572
2573         * rendering/RenderBoxModelObject.cpp:
2574         (WebCore::RenderBoxModelObject::styleDidChange):
2575         Explicitely gave the RepaintStatus to setRepaintStatus.
2576
2577         * rendering/RenderLayer.cpp:
2578         (WebCore::RenderLayer::RenderLayer):
2579         (WebCore::RenderLayer::removeOnlyThisLayer):
2580         Updated those function after the renamings.
2581
2582         (WebCore::RenderLayer::updateLayerPositions):
2583         Ditto. Also added a sholdRepaintAfterLayout check.
2584
2585         (WebCore::RenderLayer::shouldRepaintAfterLayout):
2586         Heart of the optimization, if we just did a positioned movement layout of composited RenderLayer,
2587         then don't repaint. All the other cases should still trigger a repaint.
2588
2589         * rendering/RenderLayer.h:
2590         (WebCore::RenderLayer::setRepaintStatus):
2591         Renamed setNeedsFullRepaint to setRepaintStatus. Also added a new enum RepaintStatus.
2592
2593         * rendering/RenderObject.cpp:
2594         (WebCore::RenderObject::setLayerNeedsFullRepaint):
2595         Updated after the renamings.
2596
2597         (WebCore::RenderObject::setLayerNeedsFullRepaintForPositionedMovementLayout):
2598         New method that pass a new value to the RenderLayer.
2599
2600         * rendering/RenderObject.h:
2601         (WebCore::RenderObject::setNeedsPositionedMovementLayout):
2602         Switched the call to the dedicated method.
2603
2604 2011-12-15  Antti Koivisto  <antti@apple.com>
2605
2606         Don't invoke CSSStyleSelector::pushParent before Text::recalcTextStyle
2607         https://bugs.webkit.org/show_bug.cgi?id=74575
2608
2609         Reviewed by Darin Adler.
2610         
2611         Text::recalcTextStyle never enters the style selector so pushing the state is not necessary
2612
2613         * dom/Element.cpp:
2614         (WebCore::Element::recalcStyle):
2615
2616 2011-12-15  Chris Marrin  <cmarrin@apple.com>
2617
2618         Fixed error in Target.pri.
2619
2620         Unreviewed.
2621
2622         * Target.pri:
2623
2624 2011-12-15  Alexander Pavlov  <apavlov@chromium.org>
2625
2626         Web Inspector: #hex colors are not highlighted in CSS files
2627         https://bugs.webkit.org/show_bug.cgi?id=74570
2628
2629         Reviewed by Pavel Feldman.
2630
2631         Drive by: highlight color keywords as colors, not as keywords.
2632
2633         * inspector/front-end/CSSKeywordCompletions.js:
2634         (WebInspector.CSSKeywordCompletions.colors):
2635         * inspector/front-end/SourceCSSTokenizer.js:
2636         (WebInspector.SourceCSSTokenizer):
2637         (WebInspector.SourceCSSTokenizer.prototype.nextToken):
2638         * inspector/front-end/SourceCSSTokenizer.re2js:
2639
2640 2011-12-14  Chris Marrin  <cmarrin@apple.com>
2641
2642         Hardware acceleration of W3C Filter Effects
2643         https://bugs.webkit.org/show_bug.cgi?id=68479
2644
2645         Reviewed by Simon Fraser.
2646
2647         Move FilterOperation(s) to platform/graphics/filters so it can be used to pass filter information 
2648         down to GraphicsLayer for hardware acceleration. This leaves the CustomFilterOperation subclass in
2649         rendering/style since it has dependencies outside platform. Some part of that class will
2650         eventually need to be down in platform.
2651
2652         * CMakeLists.txt:
2653         * GNUmakefile.list.am:
2654         * Target.pri:
2655         * WebCore.gypi:
2656         * WebCore.vcproj/WebCore.vcproj:
2657         * WebCore.xcodeproj/project.pbxproj:
2658         * platform/graphics/filters/FilterOperation.cpp: Renamed from Source/WebCore/rendering/style/FilterOperation.cpp.
2659         (WebCore::BasicColorMatrixFilterOperation::blend):
2660         (WebCore::BasicColorMatrixFilterOperation::passthroughAmount):
2661         (WebCore::BasicComponentTransferFilterOperation::blend):
2662         (WebCore::BasicComponentTransferFilterOperation::passthroughAmount):
2663         (WebCore::GammaFilterOperation::blend):
2664         (WebCore::BlurFilterOperation::blend):
2665         (WebCore::DropShadowFilterOperation::blend):
2666         * platform/graphics/filters/FilterOperation.h: Renamed from Source/WebCore/rendering/style/FilterOperation.h.
2667         (WebCore::FilterOperation::~FilterOperation):
2668         (WebCore::FilterOperation::operator!=):
2669         (WebCore::FilterOperation::blend):
2670         (WebCore::FilterOperation::getOperationType):
2671         (WebCore::FilterOperation::isSameType):
2672         (WebCore::FilterOperation::FilterOperation):
2673         (WebCore::PassthroughFilterOperation::create):
2674         (WebCore::PassthroughFilterOperation::operator==):
2675         (WebCore::PassthroughFilterOperation::PassthroughFilterOperation):
2676         (WebCore::ReferenceFilterOperation::create):
2677         (WebCore::ReferenceFilterOperation::reference):
2678         (WebCore::ReferenceFilterOperation::operator==):
2679         (WebCore::ReferenceFilterOperation::ReferenceFilterOperation):
2680         (WebCore::BasicColorMatrixFilterOperation::create):
2681         (WebCore::BasicColorMatrixFilterOperation::amount):
2682         (WebCore::BasicColorMatrixFilterOperation::operator==):
2683         (WebCore::BasicColorMatrixFilterOperation::BasicColorMatrixFilterOperation):
2684         (WebCore::BasicComponentTransferFilterOperation::create):
2685         (WebCore::BasicComponentTransferFilterOperation::amount):
2686         (WebCore::BasicComponentTransferFilterOperation::operator==):
2687         (WebCore::BasicComponentTransferFilterOperation::BasicComponentTransferFilterOperation):
2688         (WebCore::GammaFilterOperation::create):
2689         (WebCore::GammaFilterOperation::amplitude):
2690         (WebCore::GammaFilterOperation::exponent):
2691         (WebCore::GammaFilterOperation::offset):
2692         (WebCore::GammaFilterOperation::operator==):
2693         (WebCore::GammaFilterOperation::GammaFilterOperation):
2694         (WebCore::BlurFilterOperation::create):
2695         (WebCore::BlurFilterOperation::stdDeviationX):
2696         (WebCore::BlurFilterOperation::stdDeviationY):
2697         (WebCore::BlurFilterOperation::operator==):
2698         (WebCore::BlurFilterOperation::BlurFilterOperation):
2699         (WebCore::SharpenFilterOperation::create):
2700         (WebCore::SharpenFilterOperation::amount):
2701         (WebCore::SharpenFilterOperation::radius):
2702         (WebCore::SharpenFilterOperation::threshold):
2703         (WebCore::SharpenFilterOperation::operator==):
2704         (WebCore::SharpenFilterOperation::SharpenFilterOperation):
2705         (WebCore::DropShadowFilterOperation::create):
2706         (WebCore::DropShadowFilterOperation::x):
2707         (WebCore::DropShadowFilterOperation::y):
2708         (WebCore::DropShadowFilterOperation::stdDeviation):
2709         (WebCore::DropShadowFilterOperation::color):
2710         (WebCore::DropShadowFilterOperation::operator==):
2711         (WebCore::DropShadowFilterOperation::DropShadowFilterOperation):
2712         * platform/graphics/filters/FilterOperations.cpp: Renamed from Source/WebCore/rendering/style/FilterOperations.cpp.
2713         (WebCore::FilterOperations::FilterOperations):
2714         (WebCore::FilterOperations::operator==):
2715         (WebCore::FilterOperations::operationsMatch):
2716         * platform/graphics/filters/FilterOperations.h: Renamed from Source/WebCore/rendering/style/FilterOperations.h.
2717         (WebCore::FilterOperations::operator!=):
2718         (WebCore::FilterOperations::clear):
2719         (WebCore::FilterOperations::operations):
2720         (WebCore::FilterOperations::size):
2721         (WebCore::FilterOperations::at):
2722
2723 2011-12-15  Igor Oliveira  <igor.oliveira@openbossa.org>
2724
2725         [Qt] Support requestAnimationFrame API
2726         https://bugs.webkit.org/show_bug.cgi?id=74528
2727
2728         Add necessary files to Target.pri when enabling requestAnimationFrame option.
2729
2730         Reviewed by Kenneth Rohde Christiansen.
2731
2732         * Target.pri:
2733
2734 2011-12-15  Otto Cheung  <ocheung@rim.com>
2735
2736         Removing BlackBerryCookieCache from the build system
2737         https://bugs.webkit.org/show_bug.cgi?id=74318
2738
2739         Reviewed by Rob Buis.
2740
2741         Removing any references to BlackBerryCookieCache in files that are upstreamed.
2742
2743         We are removing the BlackBerryCookieCache because the CookieManager cookie structure has been
2744         refactored to have a similar structure to the cache. Since the read speeds in both structures
2745         are similar, we no longer need the cache to speed up read performance.
2746
2747         No new tests, this patch by itself will not work. This patch is only removing
2748         the references to BlackBerryCookieCache in files that are upstreamed.
2749
2750         * PlatformBlackBerry.cmake:
2751         * platform/network/blackberry/NetworkJob.cpp:
2752         (WebCore::NetworkJob::handleNotifyHeaderReceived):
2753
2754 2011-12-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
2755
2756         [Qt] Mobile theme improvements
2757
2758         Rubberstamped by Simon Hausmann.
2759
2760         - Invert the gradient on the checkboxes
2761         - Make the buttons on the multi select combobox work on floats
2762         - Mini cleanups
2763
2764         * platform/qt/RenderThemeQtMobile.cpp:
2765         (WebCore::StylePainterMobile::drawCheckableBackground):
2766         (WebCore::StylePainterMobile::drawMultipleComboButton):
2767         (WebCore::StylePainterMobile::getButtonImageSize):
2768         (WebCore::StylePainterMobile::drawComboBox):
2769
2770 2011-12-15  Peter Rybin  <peter.rybin@gmail.com>
2771
2772         Web Inspector: CodeGeneratorInspector.py convert script conditions to precompiler #ifs
2773         https://bugs.webkit.org/show_bug.cgi?id=74534
2774
2775         Reviewed by Pavel Feldman.
2776
2777         Generator is rewritten to add #if's to output.
2778
2779         * inspector/CodeGeneratorInspector.py:
2780         (DomainNameFixes.get_fixed_data.Res.get_guard.Guard.generate_open):
2781         (DomainNameFixes.get_fixed_data.Res.get_guard.Guard):
2782         (DomainNameFixes.get_fixed_data.Res.get_guard.Guard.generate_close):
2783         (DomainNameFixes.get_fixed_data.Res):
2784         (DomainNameFixes.get_fixed_data.Res.get_guard):
2785         (Generator.go):
2786         (Generator.process_event):
2787         (Generator.process_command):
2788         (Generator.process_types):
2789
2790 2011-12-15  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
2791
2792         [Qt][WK2] Setting Download as action for navigation request crashes WebProcess
2793         https://bugs.webkit.org/show_bug.cgi?id=74526
2794
2795         Reviewed by Simon Hausmann.
2796
2797         Adding checks for networkcontext and networkAccessManager
2798         and return true in case they don't exist, following the same
2799         logic as if the CookieJar doesn't exist.
2800
2801         * platform/qt/ThirdPartyCookiesQt.cpp:
2802         (WebCore::thirdPartyCookiePolicyPermits):
2803
2804 2011-12-14  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2805
2806         [Qt] Get rid of layering violation in PluginViewQt
2807
2808         PluginViewQt has a layering violation in relying on QWebPagePrivate for
2809         the check if running under DRT. We remove this and add a specific flag
2810         in the PluginView for this check, enabled from DRTSupport. This isn't
2811         pretty, but an improvement over what's currently there.
2812
2813         Reviewed by Simon Hausmann.
2814
2815         * plugins/PluginView.h:
2816         * plugins/qt/PluginViewQt.cpp:
2817         (WebCore::PluginView::updatePluginWidget):
2818         (WebCore::setXKeyEventSpecificFields):
2819
2820 2011-12-14  Vsevolod Vlasov  <vsevik@chromium.org>
2821
2822         Web Inspector: Console should show network messages origins.
2823         https://bugs.webkit.org/show_bug.cgi?id=74521
2824
2825         Reviewed by Pavel Feldman.
2826
2827         * inspector/front-end/ConsoleMessage.js:
2828         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
2829
2830 2011-12-15  Rakesh KN  <rakesh.kn@motorola.com>
2831
2832         "user-select none" causes selection to incorrectly escape from clicked container
2833         https://bugs.webkit.org/show_bug.cgi?id=57289
2834
2835         Reviewed by Ryosuke Niwa.
2836
2837         Not selecting the nearest word from the target node if target node has -webkit-user-select:none
2838
2839         Test: fast/events/mouse-double-triple-click-should-not-select-next-node-for-user-select-none.html
2840
2841         * page/EventHandler.cpp:
2842         (WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart):
2843         If target node has webkit-user-select:none style then do not update the selection.
2844
2845 2011-12-13  Andrey Kosyakov  <caseq@chromium.org>
2846
2847         Web Inspector: Generated HAR is missing pages.startedDateTime
2848         https://bugs.webkit.org/show_bug.cgi?id=74188
2849
2850         Reviewed by Pavel Feldman.
2851
2852         * inspector/front-end/HAREntry.js:
2853         (WebInspector.HARLog.prototype._buildPages):
2854         * inspector/front-end/NetworkLog.js:
2855         (WebInspector.NetworkLog):
2856         (WebInspector.NetworkLog.prototype.get mainResourceStartTime):
2857         (WebInspector.NetworkLog.prototype._mainFrameNavigated):
2858         * inspector/front-end/NetworkPanel.js:
2859         (WebInspector.NetworkLogView.prototype._updateSummaryBar):
2860
2861 2011-12-15  Kenichi Ishibashi  <bashi@chromium.org>
2862
2863         Supports Unicode variation selector
2864         https://bugs.webkit.org/show_bug.cgi?id=50999
2865
2866         Reviewed by Nikolas Zimmermann.
2867
2868         Adds SimpleFontData::updateGlyphWithVariationSelector() which substitutes the
2869         glyph in question based on the selector. WidthIterator::advance() calls it
2870         when an unicode variation selector follows the character.
2871
2872         Test: fast/text/unicode-variation-selector.html
2873
2874         * platform/graphics/SimpleFontData.h: Added updateGlyphWithVariationSelector().
2875         * platform/graphics/SurrogatePairAwareTextIterator.cpp:
2876         (WebCore::isUnicodeBMPVariationSelector): Added.
2877         (WebCore::isUnicodeSupplementaryVariationSelector): Added.
2878         (WebCore::SurrogatePairAwareTextIterator::hasTrailingVariationSelector): Added.
2879         * platform/graphics/SurrogatePairAwareTextIterator.h:
2880         * platform/graphics/WidthIterator.cpp:
2881         (WebCore::WidthIterator::advance): Changed to detect variation selectors.
2882         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
2883         (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Added.
2884         * platform/graphics/chromium/SimpleFontDataLinux.cpp:
2885         (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2886         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
2887         (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2888         * platform/graphics/mac/SimpleFontDataMac.mm:
2889         (WebCore::decomposeToUTF16): Ditto.
2890         (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2891         * platform/graphics/pango/SimpleFontDataPango.cpp:
2892         (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2893         * platform/graphics/qt/SimpleFontDataQt.cpp:
2894         (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2895         * platform/graphics/win/SimpleFontDataWin.cpp:
2896         (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2897         * platform/graphics/wince/SimpleFontDataWinCE.cpp:
2898         (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2899         * platform/graphics/wx/SimpleFontDataWx.cpp:
2900         (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2901
2902 2011-12-15  Alexander Pavlov  <apavlov@chromium.org>
2903
2904         [v8] Expose the "filter" property in V8CSSStyleDeclaration
2905         https://bugs.webkit.org/show_bug.cgi?id=73426
2906
2907         Reviewed by Adam Barth.
2908
2909         Test: fast/css/style-enumerate-properties.html
2910
2911         The "filter" CSS property used to be masked to be compliant with JSC, but JSC has supported
2912         this property for quite a while.
2913
2914         * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
2915         (WebCore::hasCSSPropertyNamePrefix): clean up WTF prefixes
2916         (WebCore::cssPropertyInfo): remove the "wasFilter" flag
2917         (WebCore::V8CSSStyleDeclaration::namedPropertyEnumerator): remove the "filter" check
2918         (WebCore::V8CSSStyleDeclaration::namedPropertyGetter): return the "filter" value as v8String
2919
2920 2011-12-15  Hajime Morrita  <morrita@chromium.org>
2921
2922         Unreviewed build fix attempt for Chromium Mac.
2923
2924         * page/PerformanceTiming.h:
2925
2926 2011-12-15  Alexander Pavlov  <apavlov@chromium.org>
2927
2928         Unreviewed, build fix after r102906 (poor merge).
2929
2930         * inspector/front-end/ProfileView.js:
2931         (WebInspector.CPUProfileType.prototype.buttonClicked):
2932
2933 2011-12-15  Vsevolod Vlasov  <vsevik@chromium.org>
2934
2935         Unreviewed revert of r102696 ([Navigation Timing] Use monotonicallyIncreasingTime() instead of currentTime()).
2936         Breaks inspector's network panel timeline on chromium.
2937
2938         * CMakeLists.txt:
2939         * GNUmakefile.list.am:
2940         * Target.pri:
2941         * WebCore.gypi:
2942         * WebCore.vcproj/WebCore.vcproj:
2943         * WebCore.xcodeproj/project.pbxproj:
2944         * dom/Document.cpp:
2945         (WebCore::Document::setReadyState):
2946         (WebCore::Document::finishedParsing):
2947         * inspector/InspectorInstrumentation.cpp:
2948         (WebCore::InspectorInstrumentation::didFinishLoadingImpl):
2949         * inspector/InspectorResourceAgent.cpp:
2950         (WebCore::buildObjectForTiming):
2951         (WebCore::buildObjectForResourceResponse):
2952         (WebCore::buildObjectForCachedResource):
2953         (WebCore::InspectorResourceAgent::willSendRequest):
2954         (WebCore::InspectorResourceAgent::didReceiveResponse):
2955         (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
2956         * loader/DocumentLoadTiming.cpp: Removed.
2957         * loader/DocumentLoadTiming.h:
2958         (WebCore::DocumentLoadTiming::DocumentLoadTiming):
2959         * loader/FrameLoader.cpp:
2960         (WebCore::FrameLoader::stopLoading):
2961         (WebCore::FrameLoader::commitProvisionalLoad):
2962         (WebCore::FrameLoader::continueLoadAfterWillSubmitForm):
2963         (WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
2964         * loader/MainResourceLoader.cpp:
2965         (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
2966         (WebCore::MainResourceLoader::willSendRequest):
2967         (WebCore::MainResourceLoader::didReceiveData):
2968         (WebCore::MainResourceLoader::didFinishLoading):
2969         (WebCore::MainResourceLoader::load):
2970         * page/DOMWindow.cpp:
2971         (WebCore::DOMWindow::dispatchLoadEvent):
2972         (WebCore::DOMWindow::dispatchTimedEvent):
2973         * page/DOMWindow.h:
2974         * page/PerformanceNavigation.cpp:
2975         (WebCore::PerformanceNavigation::redirectCount):
2976         * page/PerformanceTiming.cpp:
2977         (WebCore::getPossiblySkewedTimeInKnownRange):
2978         (WebCore::PerformanceTiming::navigationStart):
2979         (WebCore::PerformanceTiming::unloadEventStart):
2980         (WebCore::PerformanceTiming::unloadEventEnd):
2981         (WebCore::PerformanceTiming::redirectStart):
2982         (WebCore::PerformanceTiming::redirectEnd):
2983         (WebCore::PerformanceTiming::fetchStart):
2984         (WebCore::PerformanceTiming::responseEnd):
2985         (WebCore::PerformanceTiming::domLoading):
2986         (WebCore::PerformanceTiming::domInteractive):
2987         (WebCore::PerformanceTiming::domContentLoadedEventStart):
2988         (WebCore::PerformanceTiming::domContentLoadedEventEnd):
2989         (WebCore::PerformanceTiming::domComplete):
2990         (WebCore::PerformanceTiming::loadEventStart):
2991         (WebCore::PerformanceTiming::loadEventEnd):
2992         (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute):
2993         * page/PerformanceTiming.h:
2994         * platform/network/ResourceLoadTiming.cpp: Removed.
2995         * platform/network/ResourceLoadTiming.h:
2996
2997 2011-12-15  Alexander Pavlov  <apavlov@chromium.org>
2998
2999         Unreviewed, fix Closure compiler warnings after r102905.
3000
3001         * inspector/front-end/CSSStyleModel.js: Add JSDoc annotations
3002
3003 2011-12-14  Alexander Pavlov  <apavlov@chromium.org>
3004
3005         Web Inspector: make ProfilesPanel scale as the number of ProfileTypes grows
3006         https://bugs.webkit.org/show_bug.cgi?id=74391
3007
3008         Reviewed by Pavel Feldman.
3009
3010         Whenever a profile is started, this change disables all profile recording buttons, except the one
3011         that correponds to the running profile. Once the profiling is finished, all buttons get enabled back again.
3012
3013         * English.lproj/localizedStrings.js:
3014         * inspector/front-end/ProfileView.js:
3015         (WebInspector.CPUProfileView.profileCallback):
3016         (WebInspector.CPUProfileType.prototype.get buttonTooltip):
3017         (WebInspector.CPUProfileType.prototype.get buttonStyle):
3018         (WebInspector.CPUProfileType.prototype.buttonClicked):
3019         * inspector/front-end/ProfilesPanel.js:
3020         (WebInspector.ProfilesPanel.prototype.get statusBarItems.clickHandler):
3021         (WebInspector.ProfilesPanel.prototype.get statusBarItems):
3022         (WebInspector.ProfilesPanel.prototype._addProfileHeader):
3023         (WebInspector.ProfilesPanel.prototype.updateProfileTypeButtons):
3024         (WebInspector.ProfilesPanel.prototype._updateInterface):
3025         (WebInspector.ProfilesPanel.prototype.setRecordingProfile):
3026         (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot):
3027         (WebInspector.ProfilesPanel.prototype._reportHeapSnapshotProgress):
3028         (WebInspector.ProfilerDispatcher.prototype.setRecordingProfile):
3029         * inspector/front-end/inspector.css:
3030         (.record-cpu-profile-status-bar-item .glyph):
3031         (.record-cpu-profile-status-bar-item.toggled-on .glyph):
3032
3033 2011-12-15  Alexander Pavlov  <apavlov@chromium.org>
3034
3035         Web Inspector: [Styles] Update selected DOM element styles whenever applicable media queries change
3036         https://bugs.webkit.org/show_bug.cgi?id=74292
3037
3038         The change introduces and handles in the frontend a new event type for the CSS domain,
3039         "mediaQueryResultChanged", which gets fired every time a viewport-dependent media feature
3040         changes its value. This allows users to see live changes of the (media-dependent) matched
3041         rules for inspected elements.
3042
3043         Reviewed by Pavel Feldman.
3044
3045         * inspector/CodeGeneratorInspector.py:
3046         (DomainNameFixes):
3047         * inspector/Inspector.json:
3048         * inspector/InspectorCSSAgent.cpp:
3049         (WebCore::InspectorCSSAgent::InspectorCSSAgent):
3050         (WebCore::InspectorCSSAgent::setFrontend):
3051         (WebCore::InspectorCSSAgent::clearFrontend):
3052         (WebCore::InspectorCSSAgent::restore):
3053         (WebCore::InspectorCSSAgent::enable):
3054         (WebCore::InspectorCSSAgent::disable):
3055         (WebCore::InspectorCSSAgent::mediaQueryResultChanged):
3056         * inspector/InspectorCSSAgent.h:
3057         * inspector/InspectorInstrumentation.cpp:
3058         (WebCore::InspectorInstrumentation::mediaQueryResultChangedImpl):
3059         * inspector/InspectorInstrumentation.h:
3060         (WebCore::InspectorInstrumentation::mediaQueryResultChanged):
3061         * inspector/front-end/CSSStyleModel.js:
3062         (WebInspector.CSSStyleModel):
3063         (WebInspector.CSSStyleModel.prototype.mediaQueryResultChanged):
3064         (WebInspector.CSSDispatcher):
3065         (WebInspector.CSSDispatcher.prototype.mediaQueryResultChanged):
3066         * inspector/front-end/MetricsSidebarPane.js:
3067         (WebInspector.MetricsSidebarPane):
3068         (WebInspector.MetricsSidebarPane.prototype._styleSheetOrMediaQueryResultChanged):
3069         * inspector/front-end/StylesSidebarPane.js:
3070         (WebInspector.StylesSidebarPane):
3071         (WebInspector.StylesSidebarPane.prototype._styleSheetOrMediaQueryResultChanged):
3072         * page/FrameView.cpp:
3073         (WebCore::FrameView::layout):
3074
3075 2011-12-14  Vsevolod Vlasov  <vsevik@chromium.org>
3076
3077         Web Inspector: [Regression] Network manager fails to show resource type and MIME type in incorrect MIME type console message.
3078         https://bugs.webkit.org/show_bug.cgi?id=74516
3079
3080         Reviewed by Pavel Feldman.
3081
3082         Test: http/tests/inspector/network/script-as-text-loading.html
3083
3084         * inspector/front-end/ConsoleMessage.js:
3085         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
3086         * inspector/front-end/NetworkManager.js:
3087         (WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse):
3088
3089 2011-11-03  Kent Tamura  <tkent@chromium.org>
3090
3091         A spin button changes the value incorrectly if it is clicked after touch events.
3092         https://bugs.webkit.org/show_bug.cgi?id=71181
3093
3094         Reviewed by Ryosuke Niwa.
3095
3096         SpinButtonElement assumed setHovered(true) was always called before a
3097         mousemove event in the element. It is not true for touch events.
3098
3099         We should not reset m_upDownState to Indetermiante in setHovered(true),
3100         and should reset it when the mouse pointer moves out.
3101
3102         This change fixes the flakiness of fast/forms/input-step-as-double.html.
3103
3104         Test: fast/events/touch/touch-before-pressing-spin-button.html
3105
3106         * html/shadow/TextControlInnerElements.cpp:
3107         (WebCore::SpinButtonElement::defaultEventHandler):
3108         Add an assertion that m_upDownState should not be Indetermiante.
3109         Reset m_upDownState to Indeterminate when the mouse pointer moves out
3110         from the element.
3111         (WebCore::SpinButtonElement::setHovered):
3112         Reset m_upDownState to Indeterminate when the element becomes unhovered.
3113
3114 2011-12-14  Lucas Forschler  <lforschler@apple.com>
3115     
3116         https://bugs.webkit.org/show_bug.cgi?id=74543
3117         Add CSS*.cpp to a new CSSAllInOne.cpp file with two exceptions:
3118             CSSProperty.cpp
3119             CSSPrimitiveValue.cpp
3120         Adding these two broke things with a templates problem that was not easily fixable.
3121
3122         Reviewed by Steve Falkenburg.
3123
3124         * WebCore.vcproj/WebCore.vcproj:
3125         * css/CSSAllInOne.cpp: Added.
3126
3127 2011-12-14  Tim Horton  <timothy_horton@apple.com>
3128
3129         Generated images should respect the accelerated state of the context they're going to be drawn into
3130         https://bugs.webkit.org/show_bug.cgi?id=74577
3131         <rdar://problem/10584392>
3132
3133         Reviewed by Simon Fraser.
3134
3135         The tiled code path for GeneratorGeneratedImage and CrossfadeGeneratedImage blindly creates
3136         an unaccelerated ImageBuffer. Instead, take into account the accelerated state of the destination context.
3137
3138         No new tests, as this is a simple performance improvement.
3139
3140         * platform/graphics/CrossfadeGeneratedImage.cpp:
3141         (WebCore::CrossfadeGeneratedImage::drawPattern):
3142         * platform/graphics/GeneratorGeneratedImage.cpp:
3143         (WebCore::GeneratorGeneratedImage::drawPattern):
3144
3145 2011-12-14  Ilya Tikhonovsky  <loislo@chromium.org>
3146
3147         Web Inspector: cleanup unused variable introduced at r102803
3148
3149         * inspector/front-end/NetworkManager.js:
3150         (WebInspector.NetworkManager.prototype.enableResourceTracking):
3151         (WebInspector.NetworkManager.prototype.disableResourceTracking):
3152
3153 2011-12-14  Wei James  <james.wei@intel.com>
3154
3155         fast path to accelerate processing in AudioBus::processWithGainFromMonoStereo
3156         https://bugs.webkit.org/show_bug.cgi?id=74054
3157
3158         Reviewed by Kenneth Russell.
3159
3160         Avoid de-zippering when the gain has converged on the targetGain. 
3161         It can get about 75% performance gain at most when all frames don't need
3162         de-zippering.
3163
3164         * platform/audio/AudioBus.cpp:
3165         (WebCore::AudioBus::processWithGainFromMonoStereo):
3166
3167 2011-12-14  Adam Klein  <adamk@chromium.org>
3168
3169         Optimize MutationObserverInterestGroup construction
3170         https://bugs.webkit.org/show_bug.cgi?id=74563
3171
3172         Reviewed by Ojan Vafai.
3173
3174         Inline MutationObserverInterestGroup's creation methods and fix an
3175         accidental pass-by-value in an attempt to further reduce the CPU
3176         footprint of MutationObservers.
3177
3178         No new tests, refactor only.
3179
3180         * dom/WebKitMutationObserver.cpp:
3181         (WebCore::MutationObserverInterestGroup::MutationObserverInterestGroup): Pass observers HashMap by reference.
3182         * dom/WebKitMutationObserver.h:
3183         (WebCore::MutationObserverInterestGroup::createForChildListMutation): Inline.
3184         (WebCore::MutationObserverInterestGroup::createForCharacterDataMutation): Inline.
3185         (WebCore::MutationObserverInterestGroup::createForAttributesMutation): Inline.
3186         (WebCore::MutationObserverInterestGroup::hasOldValue): Remove spurious inline keyword.
3187
3188 2011-12-14  Dominic Mazzoni  <dmazzoni@google.com>
3189
3190         Seeing crash in DRT after loading-iframe-sends-notification.html land
3191         https://bugs.webkit.org/show_bug.cgi?id=72624
3192
3193         When an iframe finishes loading, send an accessibility notification
3194         on the renderer, rather than on a parent node. The only reason it was
3195         being posted on a parent before was because there was no way to detect
3196         that in a test. This is simpler and now covered by the test.
3197
3198         Reviewed by Chris Fleizach.
3199
3200         Updates existing test:
3201         accessibility/loading-iframe-sends-notification.html
3202
3203         * dom/Document.cpp:
3204         (WebCore::Document::implicitClose):
3205
3206 2011-12-14  Nat Duca  <nduca@chromium.org>
3207
3208         [chromium] Add inhibitDraw to CCScheduler and drop root impl to prevent background flash on tab restore
3209         https://bugs.webkit.org/show_bug.cgi?id=74351
3210
3211         Reviewed by James Robinson.
3212
3213         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3214         (WebCore::CCLayerTreeHost::setNeedsCommit):
3215         (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread):
3216         * platform/graphics/chromium/cc/CCScheduler.cpp:
3217         (WebCore::CCScheduler::getNextAction):
3218         (WebCore::CCScheduler::processScheduledActions):
3219         * platform/graphics/chromium/cc/CCScheduler.h:
3220         * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
3221         (WebCore::CCSchedulerStateMachine::CCSchedulerStateMachine):
3222         (WebCore::CCSchedulerStateMachine::nextAction):
3223         * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
3224         (WebCore::CCSchedulerStateMachine::setInhibitDraw):
3225         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3226         (WebCore::CCThreadProxy::setVisibleOnImplThread):
3227         (WebCore::CCThreadProxy::inhibitDraw):
3228         * platform/graphics/chromium/cc/CCThreadProxy.h:
3229
3230 2011-12-14  Ken Buchanan  <kenrb@chromium.org>
3231
3232         Crash due to incorrect parsing of isolates
3233         https://bugs.webkit.org/show_bug.cgi?id=74311
3234         When <bdi> content is wrapped, all hell breaks loose
3235         https://bugs.webkit.org/show_bug.cgi?id=74396
3236
3237         Reviewed by Eric Seidel.
3238
3239         When an isolate was encountered during run layout, the entire isolate
3240         would be parsed, even if the run started in the middle of the isolate.
3241         This would sometimes cause parts of the isolate to be added multiple
3242         times as runs. This patch marks the starting position within the
3243         isolate so nothing is parsed twice.
3244
3245         This patch changes appendRun() so that when a run is added that is
3246         inside an isolate, it saves the start position of the run rather than
3247         the root. This allows constructBidiRuns() to resume parsing the
3248         isolate from the correct position.
3249
3250         The change to RenderBox partially reverts a previous change I had
3251         done. It makes sense to screen for the condition, as was previously
3252         the case.
3253
3254         This patch does not add the test case from 74396 because a separate
3255         bug is preventing it from rendering correctly.
3256
3257         * rendering/InlineIterator.h:
3258         (WebCore::addPlaceholderRunForIsolatedInline)
3259         (WebCore::IsolateTracker::addFakeRunIfNecessary)
3260         (WebCore::InlineBidiResolver::appendRun)
3261         * rendering/RenderBlockLineLayout.cpp:
3262         (WebCore::RenderBlockLineLayout::constructBidiRuns)
3263         * rendering/RenderBox.cpp:
3264         (WebCore::RenderBox::positionLineBox)
3265
3266 2011-12-14  Jing Zhao  <jingzhao@chromium.org>
3267
3268         Opening two popup menus by dispatchEvent() makes problems.
3269         https://bugs.webkit.org/show_bug.cgi?id=73304
3270
3271         Reviewed by Kent Tamura.
3272
3273         By using element.dispatchEvent(), a user written script can open two
3274         popup menus, which causes various problems in different platforms.
3275
3276         Add a hasOpenedPopup() method in ChromeClient and a wrapper in Chrome.
3277         In RenderMenuList::showPopup(), check if there is an opened popup menu
3278         before opening a new popup menu.
3279
3280         Test: fast/forms/select-popup-crash.html
3281
3282         * loader/EmptyClients.h: Overrides hasOpenedPopup().
3283         (WebCore::EmptyChromeClient::hasOpenedPopup): Returns false as a default case.
3284         * page/Chrome.cpp:
3285         (WebCore::Chrome::hasOpenedPopup): Calls ChromeClient::hasOpenedPopup().
3286         * page/Chrome.h: Declares hasOpenedPopup().
3287         * page/ChromeClient.h: Declares hasOpenedPopup() as a pure virtual function.
3288         * rendering/RenderMenuList.cpp:
3289         (WebCore::RenderMenuList::showPopup): Calls Chrome::hasOpenedPopup() before opening a new popup menu.
3290
3291 2011-12-14  Tony Chang  <tony@chromium.org>
3292
3293         Clean up style in CSSStyleSelector.cpp
3294         https://bugs.webkit.org/show_bug.cgi?id=74548
3295
3296         Reviewed by Ojan Vafai.
3297
3298         * css/CSSStyleSelector.cpp:
3299         (WebCore::CSSStyleSelector::styleForElement):
3300         (WebCore::CSSStyleSelector::pseudoStyleForElement):
3301
3302 2011-12-14  Kenneth Russell  <kbr@google.com>
3303
3304         Unreviewed, rolling out r102794.
3305         http://trac.webkit.org/changeset/102794
3306         https://bugs.webkit.org/show_bug.cgi?id=74220
3307
3308         Reapplying patch since it is not the cause of the problems
3309         described in bug 74220.
3310
3311         * bindings/v8/V8Proxy.cpp:
3312         (WebCore::V8Proxy::reportUnsafeAccessTo):
3313         * bindings/v8/V8Proxy.h:
3314         * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
3315         (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
3316
3317 2011-12-14  Sam Weinig  <weinig@apple.com>
3318
3319         Remove whitespace from InheritedPropertySheets attributes in
3320         vsprops files to appease the Visual Studio project migrator.
3321
3322         Reviewed by Adam Roben.
3323
3324         * WebCore.vcproj/QTMovieWinDebug.vsprops:
3325         * WebCore.vcproj/QTMovieWinDebugAll.vsprops:
3326         * WebCore.vcproj/QTMovieWinDebugCairoCFLite.vsprops:
3327         * WebCore.vcproj/QTMovieWinProduction.vsprops:
3328         * WebCore.vcproj/QTMovieWinRelease.vsprops:
3329         * WebCore.vcproj/QTMovieWinReleaseCairoCFLite.vsprops:
3330         * WebCore.vcproj/WebCoreDebug.vsprops:
3331         * WebCore.vcproj/WebCoreDebugAll.vsprops:
3332         * WebCore.vcproj/WebCoreDebugCairoCFLite.vsprops:
3333         * WebCore.vcproj/WebCoreProduction.vsprops:
3334         * WebCore.vcproj/WebCoreRelease.vsprops:
3335         * WebCore.vcproj/WebCoreReleaseCairoCFLite.vsprops:
3336
3337 2011-12-14  Enrica Casucci  <enrica@apple.com>
3338
3339         One more attempt to fix the release build (hopefully the last)
3340
3341         Unreviewed.
3342
3343         * editing/ReplaceSelectionCommand.cpp: Added NodeRenderStyle.h
3344
3345 2011-12-14  Kenneth Russell  <kbr@google.com>
3346
3347         Unreviewed, rolling out r102816.
3348         http://trac.webkit.org/changeset/102816
3349         https://bugs.webkit.org/show_bug.cgi?id=74415
3350
3351         Implicated in font-related crashes on Chromium canaries.
3352
3353         * platform/graphics/chromium/FontChromiumWin.cpp:
3354         (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs):
3355         (WebCore::Font::drawGlyphs):
3356         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
3357         (WebCore::FontPlatformData::FontPlatformData):
3358         (WebCore::FontPlatformData::operator=):
3359         (WebCore::FontPlatformData::~FontPlatformData):
3360         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
3361         (WebCore::FontPlatformData::size):
3362         (WebCore::FontPlatformData::hash):
3363         * platform/graphics/skia/SkiaFontWin.cpp:
3364         (WebCore::setupPaintForFont):
3365         (WebCore::paintSkiaText):
3366         * platform/graphics/skia/SkiaFontWin.h:
3367
3368 2011-12-14  Simon Fraser  <simon.fraser@apple.com>
3369
3370         Filter amounts should accept percentages
3371         https://bugs.webkit.org/show_bug.cgi?id=74531
3372
3373         Reviewed by Chris Marrin.
3374         
3375         Support percentage arguments for some filter functions, using the FPercent flag
3376         to validUnit(). Fix CSSStyleSelector::createFilterOperations() to do the divide by 100
3377         for percentages.
3378         
3379         Replaced isValidFilterArgument(), which just tested arguments one by one for validity, with
3380         parseBuiltinFilterArguments() which tests and creates the CSSValues at the same time, which
3381         is a little more efficient. It also allows filter-specific behavior to be more localized in this
3382         method.
3383
3384         Covered by existing tests.
3385
3386         * css/CSSParser.cpp:
3387         (WebCore::CSSParser::parseBuiltinFilterArguments):
3388         (WebCore::CSSParser::parseFilter):
3389         * css/CSSParser.h:
3390         * css/CSSStyleSelector.cpp:
3391         (WebCore::CSSStyleSelector::createFilterOperations):
3392
3393 2011-12-14  Enrica Casucci  <enrica@apple.com>
3394
3395         Build fix.
3396
3397         Unreviewed.
3398
3399         * editing/ReplaceSelectionCommand.cpp: Added include RenderStyle.h
3400
3401 2011-12-14  Hajime Morrita  <morrita@chromium.org>
3402
3403         JS_INLINE and WTF_INLINE should be visible from WebCore
3404         https://bugs.webkit.org/show_bug.cgi?id=73191
3405
3406         Reviewed by Kevin Ollivier.
3407
3408         - Moved export related definitions from config.h
3409           to ExportMacros.h, JSExportMacros.h and PlatformExportMacros.h
3410         - Added forwarding headers which are referred from config.h
3411
3412         No new tests. Only build related changes.
3413
3414         * ForwardingHeaders/runtime/JSExportMacros.h: Added.
3415         * ForwardingHeaders/wtf/ExportMacros.h: Added.
3416         * WebCore.xcodeproj/project.pbxproj:
3417         * config.h:
3418         * platform/PlatformExportMacros.h: Copied from Source/JavaScriptCore/wtf/ExportMacros.h.
3419
3420 2011-12-14  Enrica Casucci  <enrica@apple.com>
3421
3422         Need a way to produce leaner markup when pasting a fragment containing verbose markup
3423         https://bugs.webkit.org/show_bug.cgi?id=74514
3424         <rdar://problem/10208653>
3425
3426         Reviewed by Ryosuke Niwa.
3427
3428         This patch is another step in the direction of reducing the verbosity of the markup
3429         produced with editing operations.
3430         After the copied fragment is inserted in the document, it is analyzed to remove all
3431         the elements that don't contribute to the style. The decision is made comparing the
3432         render styles. As part of the cleanup, unstyled divs with single child element are
3433         removed. The logic to determine the blocks that can be removed is the same used in
3434         DeleteSelectionCommand and has been moved in CompositeEditCommand.
3435         
3436         Test: editing/pasteboard/paste-and-sanitize.html
3437
3438         * editing/CompositeEditCommand.cpp:
3439         (WebCore::CompositeEditCommand::isRemovableBlock): Implements logic to determine
3440         if a block can be removed.
3441         * editing/CompositeEditCommand.h: Added isRemovableBlock declaration.
3442         * editing/DeleteSelectionCommand.cpp:
3443         (WebCore::DeleteSelectionCommand::removeRedundantBlocks): Implemented using
3444         isRemovableBlock from CompositeEditCommand.
3445         * editing/Editor.cpp:
3446         (WebCore::Editor: