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