1 2011-12-17 Adrienne Walker <enne@google.com>
3 [chromium] Reverting r103011, r103135 due to Aura test failures
7 * platform/graphics/chromium/ContentLayerChromium.cpp:
8 (WebCore::ContentLayerChromium::~ContentLayerChromium):
9 * platform/graphics/chromium/GraphicsLayerChromium.cpp:
10 (WebCore::GraphicsLayerChromium::notifySyncRequired):
11 * platform/graphics/chromium/GraphicsLayerChromium.h:
12 * platform/graphics/chromium/ImageLayerChromium.cpp:
13 (WebCore::ImageLayerChromium::paintContentsIfDirty):
14 * platform/graphics/chromium/LayerChromium.cpp:
15 (WebCore::LayerChromium::setLayerTreeHost):
16 (WebCore::LayerChromium::setNeedsCommit):
17 (WebCore::LayerChromium::setParent):
18 (WebCore::LayerChromium::setMaskLayer):
19 * platform/graphics/chromium/LayerChromium.h:
20 (WebCore::LayerChromium::setReplicaLayer):
21 * platform/graphics/chromium/TiledLayerChromium.cpp:
22 (WebCore::TiledLayerChromium::setLayerTreeHost):
23 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
24 (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
25 (WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
26 (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
27 (WebCore::CCLayerTreeHost::paintLayerContents):
28 * platform/graphics/chromium/cc/CCLayerTreeHost.h:
29 (WebCore::CCLayerTreeHost::setRootLayer):
31 2011-12-16 Chris Marrin <cmarrin@apple.com>
33 Hardware acceleration of W3C Filter Effects
34 https://bugs.webkit.org/show_bug.cgi?id=68479
36 Reviewed by Simon Fraser.
38 Tests: css3/filters/effect-blur-hw.html
39 css3/filters/effect-combined-hw.html
40 css3/filters/effect-drop-shadow-hw.html
41 css3/filters/effect-grayscale-hw.html
42 css3/filters/effect-hue-rotate-hw.html
43 css3/filters/effect-invert-hw.html
44 css3/filters/effect-opacity-hw.html
45 css3/filters/effect-saturate-hw.html
46 css3/filters/effect-sepia-hw.html
48 Implement hardware acceleration of filters. If a filter is
49 on a RenderLayer and that layer has a GraphicsLayer, a test
50 is done to see if the desired filter can be rendered in hardware.
51 If so, skip rendering it when painting, and add the filters to the
52 CALayer. Currently Mac only, using CoreImage. Animation is done in
53 software, with the filters being recreated every frame. There are
54 some fidelity issues with the software renderer, but those will
55 be dealt with as bugs to be fixed.
57 * platform/graphics/GraphicsLayer.h: Pass down FilterOperations
58 (WebCore::GraphicsLayer::filter):
59 (WebCore::GraphicsLayer::setFilter):
60 * platform/graphics/ca/GraphicsLayerCA.cpp: Deferred passdown of FilterOperations to PlatformCALayer
61 (WebCore::GraphicsLayerCA::setFilter):
62 (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
63 (WebCore::GraphicsLayerCA::updateFilter):
64 (WebCore::GraphicsLayerCA::ensureStructuralLayer):
65 (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
66 * platform/graphics/ca/GraphicsLayerCA.h:
67 * platform/graphics/ca/PlatformCALayer.h:
68 * platform/graphics/ca/mac/PlatformCALayerMac.mm: Mac implementation using CI
69 (PlatformCALayer::setFilter):
70 (PlatformCALayer::filterCanBeComposited): Static function to tell GraphicsLayer if this Filter object can be rendered
71 * platform/graphics/filters/FilterOperations.cpp:
72 (WebCore::FilterOperations::operator=):
73 * platform/graphics/filters/FilterOperations.h:
74 (WebCore::FilterOperations::FilterOperations):
75 * rendering/RenderLayer.cpp: Pass filter object to GraphicsLayer
76 (WebCore::RenderLayer::rendersFilter):
77 (WebCore::RenderLayer::paintLayer):
78 (WebCore::RenderLayer::updateOrRemoveFilterEffect):
79 * rendering/RenderLayer.h:
80 * rendering/RenderLayerBacking.cpp:
81 (WebCore::RenderLayerBacking::RenderLayerBacking):
82 (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
83 (WebCore::RenderLayerBacking::updateLayerFilter):
84 (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
85 * rendering/RenderLayerBacking.h:
86 (WebCore::RenderLayerBacking::canCompositeFilter):
88 2011-12-17 Philippe Normand <pnormand@igalia.com>
90 Unreviewed, GTK build fix after r103131.
92 * GNUmakefile.list.am: Fix typo... s/.cop/.cpp
94 2011-12-16 Benjamin Poulain <bpoulain@apple.com>
96 FEComposite does not build when you disable filters on ARMv7
97 https://bugs.webkit.org/show_bug.cgi?id=74772
99 Reviewed by David Kilzer.
101 Add the missing ENABLE(FILTERS).
103 * platform/graphics/filters/arm/FECompositeArithmeticNEON.cpp:
104 * platform/graphics/filters/arm/FECompositeArithmeticNEON.h:
106 2011-12-16 Ryosuke Niwa <rniwa@webkit.org>
108 Mac build fix after r103104.
110 * WebCore.xcodeproj/project.pbxproj:
112 2011-12-16 Adam Klein <adamk@chromium.org>
114 Consolidate before-advice regarding attribute modification into a single method
115 https://bugs.webkit.org/show_bug.cgi?id=74752
117 Reviewed by Ryosuke Niwa.
119 Adds a willModifyAttribute method to Element, meant to be called
120 before an attribute on that Element is added/removed/changed.
122 Replace most calls to Element::updateId and all calls to
123 Element::enqueueAttributesMutationRecordIfRequested with calls to
124 willModifyAttribute. Moreover, enqueueAttributesMutation... can now
125 be private since its only caller is willModifyAttribute.
127 The only remaining direct calls to updateId are in cases the entire
128 NamedNodeMap is being replaced. These are implementation details of
129 WebCore that shouldn't be exposed via MutationObservers.
131 No new tests, no expected change in behavior.
134 (WebCore::Attr::setValue):
135 (WebCore::Attr::childrenChanged): Besides the above change, use a
136 StringBuilder to build up value, and only do String -> AtomicString
139 (WebCore::Element::setAttributeInternal):
141 (WebCore::Element::willModifyAttribute):
142 * dom/NamedNodeMap.cpp:
143 (WebCore::NamedNodeMap::setNamedItem):
144 (WebCore::NamedNodeMap::removeNamedItem):
146 2011-12-16 James Robinson <jamesr@chromium.org>
148 [chromium] CCLayerDelegate and WebLayerClient do not need notifySyncRequired
149 https://bugs.webkit.org/show_bug.cgi?id=74376
151 Reviewed by Kenneth Russell.
153 CCLayerDelegate::notifySyncRequired is an odd bit of interface that we originally cargo-culted from the
154 CoreAnimation compositor implementation. It is a mechanism by which a LayerChromium instance may request a new
155 frame via its CCLayerDelegate, which in WebCore is always a GraphicsLayerClient. In practice, all
156 implementations eventually ended up routing to CCLayerTreeHost::setNeedsCommit which then made the proper
159 This patch routes all changes that would have gone through CCLayerDelegate::notifySyncRequired directly to
160 CCLayerTreeHost::setNeedsCommit, which greatly simplifies the scheduling logic.
162 There is a large amount of unit test coverage for this change, largely in LayerChromiumTest
164 * platform/graphics/chromium/GraphicsLayerChromium.cpp:
165 * platform/graphics/chromium/GraphicsLayerChromium.h:
166 * platform/graphics/chromium/LayerChromium.cpp:
167 (WebCore::LayerChromium::setNeedsCommit):
168 (WebCore::LayerChromium::insertChild):
169 * platform/graphics/chromium/LayerChromium.h:
170 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
171 (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
172 (WebCore::CCLayerTreeHost::setRootLayer):
173 * platform/graphics/chromium/cc/CCLayerTreeHost.h:
174 * platform/graphics/chromium/cc/CCScopedThreadProxy.h:
175 (WebCore::CCScopedThreadProxy::runTaskIfNotShutdown):
177 2011-12-16 Adam Klein <adamk@chromium.org>
179 Fix typo in MarkupTokenBase: rename takeAtributes to takeAttributes
180 https://bugs.webkit.org/show_bug.cgi?id=74766
182 Reviewed by Darin Adler.
184 * html/parser/HTMLConstructionSite.cpp:
185 (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
186 (WebCore::HTMLConstructionSite::insertScriptElement):
187 (WebCore::HTMLConstructionSite::createElement):
188 (WebCore::HTMLConstructionSite::createHTMLElement):
189 * html/parser/HTMLTreeBuilder.cpp:
190 (WebCore::HTMLTreeBuilder::attributesForIsindexInput):
191 * xml/parser/MarkupTokenBase.h:
192 (WebCore::AtomicMarkupTokenBase::takeAttributes):
194 2011-12-16 Adam Barth <abarth@webkit.org>
196 <option><span><option> doesn't parse correctly
197 https://bugs.webkit.org/show_bug.cgi?id=74760
199 Reviewed by Eric Seidel.
201 The <option> start tag shouldn't be quite as aggressive in closing open
202 <option> tags. I'm not sure whether this was a change in the spec or a
203 mistranscription, but this patch causes us to match the spec. I've
204 checked the other optionTag checks, and they all seem to be correct.
206 * html/parser/HTMLTreeBuilder.cpp:
208 2011-12-16 Rafael Weinstein <rafaelw@chromium.org>
210 [MutationObservers] Remove platform-dependent code in Document.cpp resulting from Mutation Event histogram collection
211 https://bugs.webkit.org/show_bug.cgi?id=73026
213 Reviewed by Ryosuke Niwa.
215 This patch adds platform/HistogramSupport which has an empty implementation for all ports
218 No tests need. This patch is just a refactor.
220 * GNUmakefile.list.am:
223 * WebCore.xcodeproj/project.pbxproj:
225 (WebCore::histogramMutationEventUsage):
226 (WebCore::Document::~Document):
227 * platform/HistogramSupport.h: Added.
228 (WebCore::HistogramSupport::histogramEnumeration):
229 * platform/chromium/HistogramSupportChromium.cpp: Added.
230 (WebCore::HistogramSupport::histogramEnumeration):
232 2011-12-16 Brady Eidson <beidson@apple.com>
234 <rdar://problem/10576732> and https://bugs.webkit.org/show_bug.cgi?id=74533
235 REGRESSION(r102619): Reproducible crash closing window with video + poster image inside an object element
237 Reviewed by Darin Adler.
239 Test: media/crash-closing-page-with-media-as-plugin-fallback.html
241 At some point documentWillBecomeInactive() was overloaded to not only notify elements they were going in to the page
242 cache but also do some other work that was necessary during Document teardown.
244 This crash occurs because we're notifying elements they're going in to the page cache at document teardown, so this
245 patch breaks that work back out in to a separate function.
248 (WebCore::Document::detach): Remove obsolete comment.
249 (WebCore::Document::documentWillBecomeInactive): Handle only accelerated compositing cleanup.
250 (WebCore::Document::documentWillSuspendForPageCache): Call documentWillBecomeInactive before notifying elements of suspension.
251 (WebCore::Document::documentDidResumeFromPageCache):
252 (WebCore::Document::registerForPageCacheSuspensionCallbacks):
253 (WebCore::Document::unregisterForPageCacheSuspensionCallbacks):
256 * history/CachedFrame.cpp:
257 (WebCore::CachedFrameBase::restore): Call the renamed documentDidResumeFromPageCache.
258 (WebCore::CachedFrame::CachedFrame): Call documentWillSuspendForPageCache instead of documentDidBecomeInactive.
260 * loader/FrameLoader.cpp:
261 (WebCore::FrameLoader::commitProvisionalLoad): Call the renamed documentDidResumeFromPageCache.
264 (WebCore::Element::documentWillSuspendForPageCache): Renamed from documentWillBecomeInactive()
265 (WebCore::Element::documentDidResumeFromPageCache): Renamed from documentDidBecomeActive()
267 Change to the renamed registration and callbacks functions in the handful of classes that use them:
268 * html/HTMLFormElement.cpp:
269 (WebCore::HTMLFormElement::~HTMLFormElement):
270 (WebCore::HTMLFormElement::parseMappedAttribute):
271 (WebCore::HTMLFormElement::documentDidResumeFromPageCache):
272 (WebCore::HTMLFormElement::willMoveToNewOwnerDocument):
273 (WebCore::HTMLFormElement::didMoveToNewOwnerDocument):
274 * html/HTMLFormElement.h:
276 * html/HTMLInputElement.cpp:
277 (WebCore::HTMLInputElement::~HTMLInputElement):
278 (WebCore::HTMLInputElement::updateType):
279 (WebCore::HTMLInputElement::parseMappedAttribute):
280 (WebCore::HTMLInputElement::needsSuspensionCallback):
281 (WebCore::HTMLInputElement::registerForSuspensionCallbackIfNeeded):
282 (WebCore::HTMLInputElement::unregisterForSuspensionCallbackIfNeeded):
283 (WebCore::HTMLInputElement::documentDidResumeFromPageCache):
284 (WebCore::HTMLInputElement::willMoveToNewOwnerDocument):
285 (WebCore::HTMLInputElement::didMoveToNewOwnerDocument):
286 * html/HTMLInputElement.h:
288 * html/HTMLPlugInImageElement.cpp:
289 (WebCore::HTMLPlugInImageElement::~HTMLPlugInImageElement):
290 (WebCore::HTMLPlugInImageElement::createRenderer):
291 (WebCore::HTMLPlugInImageElement::willMoveToNewOwnerDocument):
292 (WebCore::HTMLPlugInImageElement::didMoveToNewOwnerDocument):
293 (WebCore::HTMLPlugInImageElement::documentWillSuspendForPageCache):
294 (WebCore::HTMLPlugInImageElement::documentDidResumeFromPageCache):
295 * html/HTMLPlugInImageElement.h:
297 * svg/SVGSVGElement.cpp:
298 (WebCore::SVGSVGElement::SVGSVGElement):
299 (WebCore::SVGSVGElement::~SVGSVGElement):
300 (WebCore::SVGSVGElement::willMoveToNewOwnerDocument):
301 (WebCore::SVGSVGElement::didMoveToNewOwnerDocument):
302 (WebCore::SVGSVGElement::documentWillSuspendForPageCache):
303 (WebCore::SVGSVGElement::documentDidResumeFromPageCache):
304 * svg/SVGSVGElement.h:
306 2011-12-16 Eric Penner <epenner@google.com>
308 [chromium] Need to prepaint tiles in TiledLayerChromium
309 https://bugs.webkit.org/show_bug.cgi?id=72686
311 Reviewed by James Robinson.
313 Tests: TiledLayerChromiumTest (idlePaintOutOfMemory, pushIdlePaintTiles)
315 * platform/graphics/chromium/ContentLayerChromium.cpp:
316 (WebCore::ContentLayerChromium::idlePaintContentsIfDirty): added idle paint function
317 * platform/graphics/chromium/ContentLayerChromium.h: ditto
318 * platform/graphics/chromium/LayerChromium.h: ditto
319 (WebCore::LayerChromium::idlePaintContentsIfDirty): ditto
320 * platform/graphics/chromium/TextureManager.cpp:
321 (WebCore::TextureManager::protectTexture): removed assert for protecting a texture twice
322 * platform/graphics/chromium/TiledLayerChromium.cpp:
323 (WebCore::TiledLayerChromium::TiledLayerChromium):
324 (WebCore::TiledLayerChromium::cleanupResources):
325 (WebCore::TiledLayerChromium::updateCompositorResources): refactoring to use tile indices
326 (WebCore::TiledLayerChromium::prepareToUpdateTiles): refactored common code and made idle/visible versions
327 (WebCore::TiledLayerChromium::prepareToUpdate): ditto
328 (WebCore::TiledLayerChromium::prepareToUpdateIdle): ditto
329 (WebCore::TiledLayerChromium::needsIdlePaint):
330 (WebCore::TiledLayerChromium::idlePaintRect):
331 * platform/graphics/chromium/TiledLayerChromium.h:
332 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
333 (WebCore::CCLayerTreeHost::CCLayerTreeHost):
334 (WebCore::CCLayerTreeHost::compositeAndReadback): set flag to avoid idle paint durring composite and readback
335 (WebCore::CCLayerTreeHost::updateLayers): added idle flag parameter
336 (WebCore::CCLayerTreeHost::paintContentsIfDirty): ditto
337 (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface): ditto
338 (WebCore::CCLayerTreeHost::paintLayerContents): chooses idle or visible paint
339 * platform/graphics/chromium/cc/CCLayerTreeHost.h:
341 2011-12-16 Dean Jackson <dino@apple.com>
343 Miscellaneous Filter updates to align with spec
344 https://bugs.webkit.org/show_bug.cgi?id=74736
346 Reviewed by Simon Fraser.
348 Combine a bunch of small updates to filters where
349 we were not compliant with the specification.
351 - blur() only takes one value, not two
352 - blur() does not accept percentages. This allowed us
353 to stop passing the borderBoxSize around while building
354 the filter chain or calculating visual overflow.
355 - gamma() and sharpen() removed
356 - brightness() and contrast() added
358 Tests: css3/filters/effect-brightness.html
359 css3/filters/effect-contrast.html
361 * css/CSSComputedStyleDeclaration.cpp:
362 (WebCore::CSSComputedStyleDeclaration::valueForFilter): Create new
363 variations on component transfer functions for brightness() and
364 contrast() effects. Also remove sharpen() and gamma().
366 (WebCore::filterInfoForName):
367 (WebCore::CSSParser::parseBuiltinFilterArguments): Ditto, and blur
368 only takes one argument.
369 * css/CSSStyleSelector.cpp:
370 (WebCore::filterOperationForType):
371 (WebCore::CSSStyleSelector::createFilterOperations): Ditto, and
372 use ->isPercentage() to test rather than getting the type.
373 * css/WebKitCSSFilterValue.cpp:
374 (WebCore::WebKitCSSFilterValue::customCssText):
375 * css/WebKitCSSFilterValue.h:
376 * css/WebKitCSSFilterValue.idl: Remove sharpen and gamma, add
377 brightness and contrast.
378 * platform/graphics/filters/FilterOperation.cpp:
379 (WebCore::BlurFilterOperation::blend): Blurs only need to blend
380 between one standard deviation parameter.
381 * platform/graphics/filters/FilterOperation.h: Remove sharpen and
382 gamma, add brightness and contrast.
383 (WebCore::BlurFilterOperation::create):
384 (WebCore::BlurFilterOperation::stdDeviation):
385 (WebCore::BlurFilterOperation::operator==):
386 (WebCore::BlurFilterOperation::BlurFilterOperation): Blur only takes
387 one standard deviation / radius parameter.
388 * platform/graphics/filters/FilterOperations.cpp:
389 (WebCore::outsetSizeForBlur):
390 (WebCore::FilterOperations::getOutsets): No need for borderBox now.
391 * platform/graphics/filters/FilterOperations.h:
392 * rendering/FilterEffectRenderer.cpp:
393 (WebCore::FilterEffectRenderer::build): Build new effect types.
394 * rendering/FilterEffectRenderer.h:
395 * rendering/RenderBox.cpp:
396 (WebCore::RenderBox::addVisualEffectOverflow): No need to pass
397 borderBox size when calculating overflow on filter.
398 * rendering/RenderLayer.cpp:
399 (WebCore::RenderLayer::updateOrRemoveFilterEffect):
400 * rendering/style/RenderStyle.h:
401 (WebCore::InheritedFlags::getFilterOutsets): Ditto.
403 2011-12-16 Andreas Kling <kling@webkit.org>
405 Unreviewed debug build fix after r103115.
408 (WebCore::Document::cachedCollection):
410 2011-12-16 Mark Hahnenberg <mhahnenberg@apple.com>
416 Unreviewed test fix. All Windows tests were crashing when objects who were pointing to
417 static data members across DLL boundaries were getting garbage in their pointers.
420 * bindings/js/JSDOMWrapper.cpp:
421 * bindings/js/JSDOMWrapper.h:
423 2011-12-16 Ryosuke Niwa <rniwa@webkit.org>
425 Rename registerCommandFor(Undo|Redo) to register(Undo|Redo)Step
426 https://bugs.webkit.org/show_bug.cgi?id=74748
428 Reviewed by Eric Seidel.
430 Renamed registerCommandForUndo and registerCommandForRedo to
431 registerUndoStep and registerRedoStep respectively.
433 * editing/Editor.cpp:
434 (WebCore::Editor::appliedEditing):
435 (WebCore::Editor::unappliedEditing):
436 (WebCore::Editor::reappliedEditing):
437 * loader/EmptyClients.h:
438 (WebCore::EmptyEditorClient::registerUndoStep):
439 (WebCore::EmptyEditorClient::registerRedoStep):
440 * page/EditorClient.h:
442 2011-12-16 Tim Horton <timothy_horton@apple.com>
444 Canvas should respect backing store scale ratio when used as drawImage() source
445 https://bugs.webkit.org/show_bug.cgi?id=74758
446 <rdar://problem/10350194>
448 Reviewed by Simon Fraser.
450 Interpret the source rectangle passed into drawImage() when using a Canvas source in the source Canvas coordinate space,
451 instead of in the backing store coordinate space, without changing the behavior of drawImage(canvas, x, y).
455 * html/HTMLCanvasElement.cpp:
456 (WebCore::HTMLCanvasElement::convertDeviceToLogical):
457 * html/HTMLCanvasElement.h:
458 * html/canvas/CanvasRenderingContext2D.cpp:
459 (WebCore::CanvasRenderingContext2D::drawImage):
461 2011-12-16 Anders Carlsson <andersca@apple.com>
463 Subpixel antialiasing not working in tiled mode
464 https://bugs.webkit.org/show_bug.cgi?id=74759
466 Reviewed by Simon Fraser.
468 Call setContentsOpaque(true) on the main frame render view layer so subpixel aa will be used
469 when drawing text into that layer.
471 * rendering/RenderLayerBacking.cpp:
472 (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
474 2011-12-16 Ryosuke Niwa <rniwa@webkit.org>
476 invalidateNodeListsCacheAfterAttributeChanged has too many callers
477 https://bugs.webkit.org/show_bug.cgi?id=74692
479 Reviewed by Sam Weinig.
481 Call invalidateNodeListsCacheAfterAttributeChanged in Element::updateAfterAttributeChanged instead of
482 parsedMappedAttribute of various elements. Also make invalidateNodeListsCacheAfterAttributeChanged take
483 the qualified name of the changed attribute so that we can exit early when the changed attribute isn't
484 one of attributes we care.
486 In addition, added a missing call to invalidateNodeListsCacheAfterAttributeChanged in Attr::setValue.
488 Test: fast/dom/Attr/invalidate-nodelist-after-attr-setvalue.html
491 (WebCore::Attr::childrenChanged):
493 (WebCore::Element::updateAfterAttributeChanged):
494 * dom/NamedNodeMap.cpp:
495 (WebCore::NamedNodeMap::addAttribute):
496 (WebCore::NamedNodeMap::removeAttribute):
498 (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged):
500 * dom/StyledElement.cpp:
501 (WebCore::StyledElement::classAttributeChanged):
502 * html/HTMLAnchorElement.cpp:
503 (WebCore::HTMLAnchorElement::parseMappedAttribute):
504 * html/HTMLAppletElement.cpp:
505 (WebCore::HTMLAppletElement::parseMappedAttribute):
506 * html/HTMLElement.cpp:
507 (WebCore::HTMLElement::parseMappedAttribute):
508 * html/HTMLEmbedElement.cpp:
509 (WebCore::HTMLEmbedElement::parseMappedAttribute):
510 * html/HTMLFormElement.cpp:
511 (WebCore::HTMLFormElement::parseMappedAttribute):
512 * html/HTMLFrameElementBase.cpp:
513 (WebCore::HTMLFrameElementBase::parseMappedAttribute):
514 * html/HTMLIFrameElement.cpp:
515 (WebCore::HTMLIFrameElement::parseMappedAttribute):
516 * html/HTMLImageElement.cpp:
517 (WebCore::HTMLImageElement::parseMappedAttribute):
518 * html/HTMLMapElement.cpp:
519 (WebCore::HTMLMapElement::parseMappedAttribute):
520 * html/HTMLMetaElement.cpp:
521 (WebCore::HTMLMetaElement::parseMappedAttribute):
522 * html/HTMLObjectElement.cpp:
523 (WebCore::HTMLObjectElement::parseMappedAttribute):
524 * html/HTMLParamElement.cpp:
525 (WebCore::HTMLParamElement::parseMappedAttribute):
527 2011-12-16 Andreas Kling <kling@webkit.org>
529 Cache and reuse HTMLCollections exposed by Document.
530 <http://webkit.org/b/71956>
532 Reviewed by Antti Koivisto.
534 Let Document cache the various HTMLCollection objects it exposes.
535 This is a behavior change in two ways:
537 1) The lifetime of returned collections is now tied to the lifetime
538 of the Document. This matches the behavior of Firefox and Opera.
540 2) The cached collections returned by document are now exactly equal
541 to those returned by subsequent calls to the same getters.
543 This reduces memory consumption by ~800 kB (on 64-bit) when loading
544 the full HTML5 spec. document.links was called 34001 times, yielding
545 34001 separate HTMLCollections, and now we only need 1.
547 The document.all collection retains the old behavior, as caching it
548 will be a bit more complicated.
550 To avoid a reference cycle between Document and HTMLCollection,
551 collections that are cached on Document do not retained their base
552 node pointer (controlled by a m_baseIsRetained flag.)
554 Tests: fast/dom/document-collection-idempotence.html
558 (WebCore::Document::detach):
559 (WebCore::Document::cachedCollection):
560 (WebCore::Document::images):
561 (WebCore::Document::applets):
562 (WebCore::Document::embeds):
563 (WebCore::Document::plugins):
564 (WebCore::Document::objects):
565 (WebCore::Document::scripts):
566 (WebCore::Document::links):
567 (WebCore::Document::forms):
568 (WebCore::Document::anchors):
570 * html/HTMLCollection.cpp:
571 (WebCore::HTMLCollection::HTMLCollection):
572 (WebCore::HTMLCollection::createForCachingOnDocument):
573 (WebCore::HTMLCollection::~HTMLCollection):
574 (WebCore::HTMLCollection::itemAfter):
575 * html/HTMLCollection.h:
576 (WebCore::HTMLCollection::base):
578 2011-12-16 Anders Carlsson <andersca@apple.com>
580 Add a pretty dumb tile cache to WebTileCacheLayer
581 https://bugs.webkit.org/show_bug.cgi?id=74753
583 Reviewed by Simon Fraser.
585 * WebCore.xcodeproj/project.pbxproj:
586 * platform/graphics/ca/GraphicsLayerCA.cpp:
587 (WebCore::GraphicsLayerCA::requiresTiledLayer):
588 If a layer is a tile cache layer, we never want to swap it out for a tiled layer.
590 (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
591 Assert that we don't have a tile cache layer.
593 * platform/graphics/ca/mac/PlatformCALayerMac.mm:
594 (PlatformCALayer::PlatformCALayer):
595 If we have a tile cache layer, add its tile container to the list of custom sublayers.
597 * platform/graphics/ca/mac/TileCache.h: Added.
598 (WebCore::TileCache::tileContainerLayer):
599 Return the tile container layer.
601 * platform/graphics/ca/mac/TileCache.mm: Added.
602 (WebCore::TileCache::tileCacheLayerBoundsChanged):
603 Resize the tile grid if necessary.
605 (WebCore::TileCache::setNeedsDisplayInRect):
606 Invalidate the necessary tiles.
608 (WebCore::TileCache::drawLayer):
609 Set up the transform and draw the layer.
611 (WebCore::TileCache::getTileRangeForRect):
612 Given a rect, return the range of tiles that it covers.
614 (WebCore::TileCache::numTilesForGridSize):
615 Given a size, return how many tiles are needed to completely cover it.
617 (WebCore::TileCache::resizeTileGrid):
618 Create new tile layers if needed, or reuse already existing ones.
620 (WebCore::TileCache::tileLayerAtPosition):
621 Given a position in the grid, return the tile layer.
623 (WebCore::TileCache::createTileLayer):
624 Create a WebTileLayer and set it up.
626 * platform/graphics/ca/mac/WebTileCacheLayer.h:
627 * platform/graphics/ca/mac/WebTileCacheLayer.mm:
628 (-[WebTileCacheLayer setBounds:]):
629 (-[WebTileCacheLayer setNeedsDisplayInRect:]):
630 (-[WebTileCacheLayer tileContainerLayer]):
631 Call down to the tile cache object.
633 * platform/graphics/ca/mac/WebTileLayer.h: Added.
634 * platform/graphics/ca/mac/WebTileLayer.mm: Added.
636 (-[WebTileLayer drawInContext:]):
637 Ask the tile cache to draw the given layer.
639 (-[WebTileLayer setTileCache:WebCore::]):
641 2011-12-16 Sam Weinig <sam@webkit.org>
643 Give PlatformEvents a base class
644 https://bugs.webkit.org/show_bug.cgi?id=74685
646 Reviewed by Anders Carlsson.
648 Add a base class for PlatformMouseEvent, PlatformKeyboardEvent, PlatformWheelEvent
649 and PlatformGestureEvent and move Type enumeration and modifiers down to it.
652 * GNUmakefile.list.am:
656 * WebCore.vcproj/WebCore.vcproj:
657 * WebCore.xcodeproj/project.pbxproj:
660 * platform/PlatformEvent.cpp: Added.
661 * platform/PlatformEvent.h: Added.
662 (WebCore::PlatformEvent::type):
663 (WebCore::PlatformEvent::shiftKey):
664 (WebCore::PlatformEvent::ctrlKey):
665 (WebCore::PlatformEvent::altKey):
666 (WebCore::PlatformEvent::metaKey):
667 (WebCore::PlatformEvent::modifiers):
668 (WebCore::PlatformEvent::PlatformEvent):
671 * accessibility/mac/WebAccessibilityObjectWrapper.mm:
672 (-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):
673 * dom/KeyboardEvent.cpp:
674 (WebCore::eventTypeForKeyboardEventType):
675 * dom/MouseEvent.cpp:
676 (WebCore::MouseEvent::create):
677 * page/DragController.cpp:
678 (WebCore::createMouseEvent):
679 * page/EventHandler.cpp:
680 (WebCore::EventHandler::handleGestureEvent):
681 (WebCore::EventHandler::sendContextMenuEventForKey):
682 (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
683 (WebCore::EventHandler::handleAccessKey):
684 (WebCore::EventHandler::keyEvent):
685 (WebCore::EventHandler::handleDrag):
686 * page/blackberry/EventHandlerBlackBerry.cpp:
687 (WebCore::EventHandler::accessKeyModifiers):
688 * page/chromium/EventHandlerChromium.cpp:
689 (WebCore::EventHandler::accessKeyModifiers):
690 * page/efl/EventHandlerEfl.cpp:
691 (WebCore::EventHandler::accessKeyModifiers):
692 * page/gtk/EventHandlerGtk.cpp:
693 (WebCore::EventHandler::accessKeyModifiers):
694 * page/mac/EventHandlerMac.mm:
695 (WebCore::EventHandler::accessKeyModifiers):
696 * page/qt/EventHandlerQt.cpp:
697 (WebCore::EventHandler::accessKeyModifiers):
698 * page/win/EventHandlerWin.cpp:
699 (WebCore::EventHandler::accessKeyModifiers):
700 * page/wx/EventHandlerWx.cpp:
701 (WebCore::EventHandler::accessKeyModifiers):
702 * platform/PlatformGestureEvent.h:
703 (WebCore::PlatformGestureEvent::PlatformGestureEvent):
704 * platform/PlatformKeyboardEvent.h:
705 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
706 (WebCore::PlatformKeyboardEvent::isKeypad):
707 * platform/PlatformMouseEvent.h:
708 (WebCore::PlatformMouseEvent::PlatformMouseEvent):
709 (WebCore::PlatformMouseEvent::button):
710 * platform/PlatformWheelEvent.h:
711 (WebCore::PlatformWheelEvent::PlatformWheelEvent):
712 * platform/ScrollAnimatorNone.cpp:
713 (WebCore::ScrollAnimatorNone::zoom):
714 (WebCore::ScrollAnimatorNone::handleGestureEvent):
715 * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
716 (WebCore::toWebCorePlatformKeyboardEventType):
717 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
718 (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
719 * platform/chromium/GestureRecognizerChromium.cpp:
720 (WebCore::GestureRecognizerChromium::appendTapDownGestureEvent):
721 (WebCore::GestureRecognizerChromium::appendClickGestureEvent):
722 (WebCore::GestureRecognizerChromium::appendDoubleClickGestureEvent):
723 (WebCore::GestureRecognizerChromium::appendScrollGestureBegin):
724 (WebCore::GestureRecognizerChromium::appendScrollGestureEnd):
725 (WebCore::GestureRecognizerChromium::appendScrollGestureUpdate):
726 * platform/chromium/PlatformKeyboardEventChromium.cpp:
727 (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
728 * platform/chromium/PopupContainer.cpp:
729 (WebCore::PopupContainer::handleGestureEvent):
730 * platform/chromium/PopupListBox.cpp:
731 (WebCore::isCharacterTypeEvent):
732 (WebCore::PopupListBox::handleKeyEvent):
733 * platform/chromium/ScrollAnimatorChromiumMac.mm:
734 (WebCore::ScrollAnimatorChromiumMac::handleGestureEvent):
735 * platform/efl/PlatformKeyboardEventEfl.cpp:
736 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
737 (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
738 * platform/efl/PlatformMouseEventEfl.cpp:
739 (WebCore::PlatformMouseEvent::PlatformMouseEvent):
740 * platform/efl/PlatformWheelEventEfl.cpp:
741 (WebCore::PlatformWheelEvent::PlatformWheelEvent):
742 * platform/gtk/PlatformKeyboardEventGtk.cpp:
743 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
744 (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
745 * platform/gtk/PlatformMouseEventGtk.cpp:
746 (WebCore::PlatformMouseEvent::PlatformMouseEvent):
747 * platform/gtk/PlatformWheelEventGtk.cpp:
748 (WebCore::PlatformWheelEvent::PlatformWheelEvent):
749 * platform/ios/KeyEventIOS.mm:
750 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
751 (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
752 * platform/mac/KeyEventMac.mm:
753 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
754 * platform/mac/PlatformMouseEventMac.mm:
755 (WebCore::mouseEventForNSEvent):
756 (WebCore::PlatformMouseEvent::PlatformMouseEvent):
757 * platform/mac/ScrollAnimatorMac.mm:
758 (WebCore::ScrollAnimatorMac::handleGestureEvent):
759 * platform/mac/WheelEventMac.mm:
760 (WebCore::PlatformWheelEvent::PlatformWheelEvent):
761 * platform/qt/PlatformKeyboardEventQt.cpp:
762 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
763 (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
764 * platform/qt/PlatformMouseEventQt.cpp:
765 (WebCore::mouseEventTypeAndMouseButtonFromQEvent):
766 (WebCore::PlatformMouseEvent::PlatformMouseEvent):
767 * platform/qt/WheelEventQt.cpp:
768 (WebCore::PlatformWheelEvent::PlatformWheelEvent):
769 * platform/win/KeyEventWin.cpp:
770 (WebCore::isKeypadEvent):
771 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
772 * platform/win/PlatformMouseEventWin.cpp:
773 (WebCore::messageToEventType):
774 (WebCore::PlatformMouseEvent::PlatformMouseEvent):
775 * platform/win/WheelEventWin.cpp:
776 (WebCore::PlatformWheelEvent::PlatformWheelEvent):
777 * platform/wx/KeyboardEventWx.cpp:
778 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
779 (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
780 * platform/wx/MouseEventWx.cpp:
781 (WebCore::typeFromMouseEvent):
782 (WebCore::PlatformMouseEvent::PlatformMouseEvent):
783 * platform/wx/MouseWheelEventWx.cpp:
784 (WebCore::PlatformWheelEvent::PlatformWheelEvent):
785 * plugins/mac/PluginViewMac.mm:
786 (WebCore::PluginView::handleKeyboardEvent):
787 * testing/Internals.cpp:
788 (WebCore::Internals::setZoomAnimatorTransform):
789 Switch to using new names/class modifier as necessary.
791 2011-12-16 Adam Barth <abarth@webkit.org>
793 <!doctype html><div><body><frameset> doesn't parse correctly
794 https://bugs.webkit.org/show_bug.cgi?id=74745
796 Reviewed by Eric Seidel.
798 We were missing one place the spec tells us to set this bool.
800 Tests: html5lib/runner.html
802 * html/parser/HTMLTreeBuilder.cpp:
804 2011-12-16 Jarred Nicholls <jarred@sencha.com>
806 Support HTML documents in XHR.responseXML
807 https://bugs.webkit.org/show_bug.cgi?id=74626
809 Latest W3C XHR spec details for the responseXML attribute:
810 http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#the-responsexml-attribute
811 http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#document-response-entity-body
813 XHR.responseXML was not compliant per the latest editor's draft of the XHR spec.
814 The following compliance issue have been corrected:
815 - A responseType of "text" should disallow access to responseXML by throwing an InvalidState exception.
816 - When the error flag is toggled, responseXML should return "null" immediately and not attempt to create a new Document.
817 - responseXML should return a valid HTML document when the MIME type is "text/html", but only when the caller has
818 explicitly set responseType to "document".
820 Reviewed by Alexey Proskuryakov.
822 Tests: fast/xmlhttprequest/xmlhttprequest-responseXML-html-document-responsetype-quirks.html
823 fast/xmlhttprequest/xmlhttprequest-responseXML-html-document-responsetype-strict.html
824 fast/xmlhttprequest/xmlhttprequest-responseXML-html-no-responsetype.html
825 fast/xmlhttprequest/xmlhttprequest-responseXML-invalid-xml.html
826 fast/xmlhttprequest/xmlhttprequest-responseXML-xml-document-responsetype.html
827 fast/xmlhttprequest/xmlhttprequest-responseXML-xml-text-responsetype.html
829 * xml/XMLHttpRequest.cpp:
830 (WebCore::XMLHttpRequest::responseXML):
831 (WebCore::XMLHttpRequest::clearResponseBuffers):
832 * xml/XMLHttpRequest.h: Rename m_responseXML to m_responseDocument
833 (WebCore::XMLHttpRequest::optionalResponseXML):
835 2011-12-16 Ryosuke Niwa <rniwa@webkit.org>
837 Only EditCommandComposition should implement unapply and reapply
838 https://bugs.webkit.org/show_bug.cgi?id=74490
840 Reviewed by Eric Seidel.
842 Introduce new abstract class UndoStep to replace EditCommand for EditorClient, and make EditCommand
845 * GNUmakefile.list.am:
849 * WebCore.vcproj/WebCore.vcproj:
850 * WebCore.xcodeproj/project.pbxproj:
851 * editing/CompositeEditCommand.cpp:
852 (WebCore::EditCommandComposition::create): Takes EditAction instead of boolean for CreateLinkCommand.
853 (WebCore::EditCommandComposition::EditCommandComposition): Ditto.
854 (WebCore::EditCommandComposition::unapply): Moved from EditCommand; we don't have to call isTopLevelCommand
855 anymore because EditCommandComposition is always top-level. In fact, the only thing unapply/reapply do
856 in addition to what doUnapply/doReapply do for sub-level commands is disabling and enabling delete button
857 and defining an event queue scope. However, these can be done at top-level command anyway, so we now only call
858 doApply for sub-level commands.
859 (WebCore::EditCommandComposition::reapply): Ditto.
860 (WebCore::EditCommandComposition::setStartingSelection): Added.
861 (WebCore::EditCommandComposition::setEndingSelection): Added.
862 (WebCore::applyCommand): Moved from EditCommand.
863 (WebCore::CompositeEditCommand::apply): Moved from EditCommand; doesn't call isTopLevelCommand for the same reason.
864 (WebCore::CompositeEditCommand::ensureComposition):
865 (WebCore::CompositeEditCommand::applyCommandToComposite): Call doApply instead of apply for the same reason.
866 * editing/CompositeEditCommand.h:
867 (WebCore::EditCommandComposition::wasCreateLinkCommand):
868 (WebCore::EditCommandComposition::startingSelection): Added.
869 (WebCore::EditCommandComposition::endingSelection): Added.
870 * editing/EditCommand.cpp:
871 (WebCore::EditCommand::setStartingSelection):
872 (WebCore::EditCommand::setEndingSelection):
873 (WebCore::SimpleEditCommand::doReapply): Moved from EditCommand.
874 * editing/EditCommand.h:
875 * editing/UndoStep.h: Added.
876 (WebCore::UndoStep::~UndoStep):
877 * loader/EmptyClients.h:
878 (WebCore::EmptyEditorClient::shouldInsertNode):
879 (WebCore::EmptyEditorClient::didSetSelectionTypesForPasteboard):
880 (WebCore::EmptyEditorClient::registerCommandForUndo): Takes UndoStep instead of EditCommand.
881 (WebCore::EmptyEditorClient::registerCommandForRedo): Ditto.
882 * page/EditorClient.h:
884 2011-12-16 Simon Fraser <simon.fraser@apple.com>
886 Allow a PlatformCALayer to own its own sublayers
887 https://bugs.webkit.org/show_bug.cgi?id=74744
889 Reviewed by Anders Carlsson.
891 GraphicsLayerCA rebuilds the sublayer list of CALayers, which would
892 blow away any custom layers that a PlatformCALayer wants to maintain
895 Make it possible for a PlatformLayerCA to indicate that it wants
896 a specific list of sublayers to be maintained as the first layers
899 * platform/graphics/ca/GraphicsLayerCA.cpp:
900 (WebCore::GraphicsLayerCA::updateSublayerList):
901 * platform/graphics/ca/PlatformCALayer.h:
902 (WebCore::PlatformCALayer::customSublayers):
903 * platform/graphics/ca/mac/PlatformCALayerMac.mm:
904 (PlatformCALayer::PlatformCALayer):
906 2011-12-16 Adam Barth <abarth@webkit.org>
908 <!DOCTYPE html><pre>

A</pre> doesn't parse correctly
909 https://bugs.webkit.org/show_bug.cgi?id=74658
911 Reviewed by Darin Adler.
913 Previously, we handled skipping newlines after <pre> in the tokenizer,
914 which isn't how the spec handles them. Instead, the spec skips them in
915 the tree builder. This isn't usually observable, except in the case of
916 an HTML entity. In that case, the tokenzier sees '&' (because the
917 entity hasn't been decoded yet), but the tree builder sees '\n' (the
918 decoded entity). This patch fixes the bug by more closely aligning our
919 implementation with the spec.
921 Test: html5lib/runner.html
923 * html/parser/HTMLTokenizer.cpp:
924 (WebCore::HTMLTokenizer::reset):
925 (WebCore::HTMLTokenizer::nextToken):
926 * html/parser/HTMLTokenizer.h:
927 * html/parser/HTMLTreeBuilder.cpp:
928 (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::skipAtMostOneLeadingNewline):
929 (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
930 (WebCore::HTMLTreeBuilder::processStartTagForInBody):
931 (WebCore::HTMLTreeBuilder::processCharacterBuffer):
932 * html/parser/HTMLTreeBuilder.h:
933 * xml/parser/MarkupTokenizerBase.h:
935 2011-12-16 Joshua Bell <jsbell@chromium.org>
937 IndexedDB: Implement IDBObjectStore.count() and IDBIndex.count()
938 https://bugs.webkit.org/show_bug.cgi?id=73686
940 Reviewed by Tony Chang.
942 These new methods open an internal cursor and iterate through the
943 results, returning the number of items found. Note that only
944 passing an IDBKeyRange is supported, not an IDBKey. Supporting
945 that will require some IDL/binding monkeying; several other
946 methods also need the same Key-or-KeyRange behavior.
948 Tests: storage/indexeddb/index-count.html
949 storage/indexeddb/objectstore-count.html
951 * bindings/v8/SerializedScriptValue.cpp:
952 (WebCore::SerializedScriptValue::numberValue):
953 * bindings/v8/SerializedScriptValue.h:
954 * storage/IDBIndex.cpp:
955 (WebCore::IDBIndex::openCursor):
956 (WebCore::IDBIndex::count):
957 * storage/IDBIndex.h:
958 (WebCore::IDBIndex::count):
959 * storage/IDBIndex.idl:
960 * storage/IDBIndexBackendImpl.cpp:
961 (WebCore::IDBIndexBackendImpl::countInternal):
962 (WebCore::IDBIndexBackendImpl::count):
963 * storage/IDBIndexBackendImpl.h:
964 * storage/IDBIndexBackendInterface.h:
965 * storage/IDBObjectStore.cpp:
966 (WebCore::IDBObjectStore::count):
967 * storage/IDBObjectStore.h:
968 (WebCore::IDBObjectStore::count):
969 * storage/IDBObjectStore.idl:
970 * storage/IDBObjectStoreBackendImpl.cpp:
971 (WebCore::IDBObjectStoreBackendImpl::count):
972 (WebCore::IDBObjectStoreBackendImpl::countInternal):
973 * storage/IDBObjectStoreBackendImpl.h:
974 * storage/IDBObjectStoreBackendInterface.h:
976 2011-12-16 Yael Aharon <yael.aharon@nokia.com>
978 Audio file in video element has a size of 0x0 .
979 https://bugs.webkit.org/show_bug.cgi?id=74738
981 Reviewed by Kenneth Rohde Christiansen.
983 When the source of a video element has audio only, the intrinsic size of the video should
984 not be 0x0. Instead, it should be the same as as no media was loaded.
986 No new tests. An existing test is covering this case and was modified to reflect this change.
988 * rendering/RenderVideo.cpp:
989 (WebCore::RenderVideo::calculateIntrinsicSize):
991 2011-12-16 Alexis Menard <alexis.menard@openbossa.org>
993 getComputedStyle for border-width is not implemented.
994 https://bugs.webkit.org/show_bug.cgi?id=74635
996 Reviewed by Tony Chang.
998 Implement getComputedStyle for border-width.
1000 Test: fast/css/getComputedStyle/getComputedStyle-border-width.html
1002 * css/CSSComputedStyleDeclaration.cpp:
1003 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1005 2011-12-16 Branimir Lambov <blambov@google.com>
1007 [chromium] svg/clip-path/clip-in-mask.svg fails on Windows and Linux
1008 https://bugs.webkit.org/show_bug.cgi?id=53378
1010 Reviewed by Tony Chang.
1012 Fixes a problem in Skia's clipping layer code's handling of coordinate
1013 transformations that was causing all complex clipping (including text
1014 and/or masks) to fail.
1016 The method beginLayerClippedToImage was taking rectangle coordinates
1017 in one local coordinate space, but it was applying them in a different
1018 one because of the delay between the time it is called and the actual
1019 application occurs in applyClipFromImage. The fix translates the
1020 coordinates passed to beginLayerClippedToImage to absolute ones, so
1021 that they are not affected by any change in the transform matrix, and
1022 makes sure that applyClipFromImage clears the matrix before drawing
1023 the clip layer to correctly apply the absolute coordinates.
1025 * platform/graphics/skia/PlatformContextSkia.cpp:
1026 (WebCore::PlatformContextSkia::beginLayerClippedToImage):
1027 (WebCore::PlatformContextSkia::applyClipFromImage):
1028 * platform/graphics/skia/PlatformContextSkia.h:
1030 2011-12-16 Mark Hahnenberg <mhahnenberg@apple.com>
1032 De-virtualize destructors
1033 https://bugs.webkit.org/show_bug.cgi?id=74331
1035 Reviewed by Geoffrey Garen.
1039 Doing everything here that was done to the JSCell hierarchy in JavaScriptCore.
1040 See the ChangeLog for this commit for a more in-depth description.
1042 * WebCore.exp.in: Add/remove symbols.
1043 * bindings/js/JSCanvasRenderingContext2DCustom.cpp: Remove first arg from isJSArray call.
1044 (WebCore::JSCanvasRenderingContext2D::setWebkitLineDash):
1045 * bindings/js/JSDOMBinding.cpp: Add trival destructor assert for DOMConstructorObject
1046 and DOMConstructorWithDocument.
1047 * bindings/js/JSDOMGlobalObject.cpp: Add static destroy. Add implementation for
1048 scriptExecutionContext that dispatches to different functions in subclasses
1049 depending on our current ClassInfo. We do this so that we can get rid of the
1050 virtual-ness of scriptExecutionContext, because any virtual functions will throw
1051 off the layout of the object and we'll crash at runtime.
1052 (WebCore::JSDOMGlobalObject::destroy):
1053 (WebCore::JSDOMGlobalObject::scriptExecutionContext):
1054 * bindings/js/JSDOMGlobalObject.h:
1055 * bindings/js/JSDOMWindowBase.cpp: Add static destroy.
1056 (WebCore::JSDOMWindowBase::destroy):
1057 * bindings/js/JSDOMWindowBase.h: De-virtualize scriptExecutionContext.
1058 * bindings/js/JSDOMWindowShell.cpp: Add static destroy.
1059 (WebCore::JSDOMWindowShell::destroy):
1060 * bindings/js/JSDOMWindowShell.h:
1061 * bindings/js/JSDOMWrapper.cpp: Add trivial destructor assert.
1062 * bindings/js/JSDOMWrapper.h: Add a ClassInfo to JSDOMWrapper since it now overrides
1063 a MethodTable function. Remove vtableAnchor virtual function.
1064 * bindings/js/JSImageConstructor.cpp: Add trivial destructor assert.
1065 * bindings/js/JSNodeCustom.cpp: Change implementation of pushEventHandlerScope so that
1066 it dispatches to the correct function depending on the
1067 identity of the class as specified by the ClassInfo.
1068 See JSDOMGlobalObject::scriptExecutionContext for explanation.
1069 (WebCore::JSNode::pushEventHandlerScope):
1070 * bindings/js/JSWebSocketCustom.cpp: Remove first arg to isJSArray call.
1071 (WebCore::JSWebSocketConstructor::constructJSWebSocket):
1072 * bindings/js/JSWorkerContextBase.cpp: Add static destroy.
1073 (WebCore::JSWorkerContextBase::destroy):
1074 * bindings/js/JSWorkerContextBase.h:
1075 * bindings/js/ScriptValue.cpp: Remove first arg to isJSArray call.
1076 (WebCore::jsToInspectorValue):
1077 * bindings/js/SerializedScriptValue.cpp: Ditto.
1078 (WebCore::CloneSerializer::isArray):
1079 (WebCore::CloneSerializer::getSparseIndex):
1080 * bindings/scripts/CodeGeneratorJS.pm:
1081 (GenerateHeader): Remove virtual-ness of any custom pushEventHandlerScope (see
1082 JSNodeCustom::pushEventHandlerScope for explanation). Remove virtual toBoolean
1083 for anybody who masquerades as undefined, since our JSObject implementation handles
1084 this based on the TypeInfo in the Structure. Add trivial destructor assert for any
1085 class other than DOMWindow or WorkerContexts.
1086 (GenerateImplementation): Change ClassInfo definitions to use Base::s_info, since
1087 typing the parent class more than once is duplication of information and increases
1088 the likelihood of mistakes. Pass ClassInfo to TypeArrayDescriptors instead of vptr.
1089 (GenerateConstructorDefinition): Add trivial destructor assert for all generated constructors.
1090 * bridge/c/CRuntimeObject.cpp: Remove empty virtual destructor.
1091 * bridge/c/CRuntimeObject.h:
1092 * bridge/jni/jsc/JavaRuntimeObject.cpp: Ditto.
1093 * bridge/jni/jsc/JavaRuntimeObject.h:
1094 * bridge/objc/ObjCRuntimeObject.h: Ditto.
1095 * bridge/objc/ObjCRuntimeObject.mm:
1096 * bridge/objc/objc_runtime.h: Add static destroy for ObjcFallbackObjectImp. De-virtualize
1097 toBoolean in the short term. Need longer term fix.
1098 * bridge/objc/objc_runtime.mm:
1099 (JSC::Bindings::ObjcFallbackObjectImp::destroy):
1100 * bridge/qt/qt_runtime.cpp: Add static destroy to QtRuntimeMethod.
1101 (JSC::Bindings::QtRuntimeMethod::destroy):
1102 * bridge/qt/qt_runtime.h: De-virtualize ~QtRuntimeMethod.
1103 * bridge/runtime_array.cpp: De-virtualize destructor. Add static destroy.
1104 (JSC::RuntimeArray::destroy):
1105 * bridge/runtime_array.h:
1106 * bridge/runtime_method.cpp: Remove vtableAnchor. Add static destroy.
1107 (JSC::RuntimeMethod::destroy):
1108 * bridge/runtime_method.h:
1109 * bridge/runtime_object.cpp: Add static destroy.
1110 (JSC::Bindings::RuntimeObject::destroy):
1111 * bridge/runtime_object.h:
1113 2011-12-15 Alexey Proskuryakov <ap@apple.com>
1115 Poor XPath performance when evaluating an expression that returns a lot of nodes
1116 https://bugs.webkit.org/show_bug.cgi?id=74665
1117 <rdar://problem/10517146>
1119 Reviewed by Darin Adler.
1121 No change in funcitonality. Well covered by existing tests (ran them with zero cutoff to
1122 execute the new code path).
1124 Our sorting function is optimized for small node sets in large documents, and this is the
1125 opposite of it. Added another one that traverses the whole document, adding nodes from the
1126 node set to sorted list. That doesn't grow with the number of nodes nearly as fast.
1128 Cutoff amount chosen for the document referenced in bug - this is roughly where the algorithms
1129 have the same performance on it.
1131 * xml/XPathNodeSet.cpp:
1132 (WebCore::XPath::NodeSet::sort):
1133 (WebCore::XPath::findRootNode):
1134 (WebCore::XPath::NodeSet::traversalSort):
1135 * xml/XPathNodeSet.h:
1137 2011-12-15 Antti Koivisto <antti@apple.com>
1139 https://bugs.webkit.org/show_bug.cgi?id=74677
1140 Count ResourceLoadScheduler suspends/resumes
1142 Reviewed by Andreas Kling.
1144 Using boolean is not robust when there are multiple clients calling suspendPendingRequests/resumePendingRequests.
1146 Increment and decrement suspend count instead of just setting/unsetting a boolean.
1148 * loader/ResourceLoadScheduler.cpp:
1149 (WebCore::ResourceLoadScheduler::ResourceLoadScheduler):
1150 (WebCore::ResourceLoadScheduler::servePendingRequests):
1151 (WebCore::ResourceLoadScheduler::suspendPendingRequests):
1152 (WebCore::ResourceLoadScheduler::resumePendingRequests):
1153 * loader/ResourceLoadScheduler.h:
1154 (WebCore::ResourceLoadScheduler::isSuspendingPendingRequests):
1156 2011-12-16 Adam Klein <adamk@chromium.org>
1158 Improve performance of ChildListMutationScope when no MutationObservers are present
1159 https://bugs.webkit.org/show_bug.cgi?id=74671
1161 Reviewed by Ojan Vafai.
1163 Inline ChildListMutationScope's methods (including constructor and
1164 destructor), and provide a fast-fail case when no mutation observers
1167 The code reorganization necessary for the above also removed the
1168 anonymous namespace in ChildListMutationScope.cpp, making both helper
1169 classes private inner classes of ChildListMutationScope.
1171 No new tests, refactoring only.
1173 * dom/ChildListMutationScope.cpp:
1174 (WebCore::ChildListMutationScope::MutationAccumulator::MutationAccumulator):
1175 (WebCore::ChildListMutationScope::MutationAccumulator::~MutationAccumulator):
1176 (WebCore::ChildListMutationScope::MutationAccumulator::isAddedNodeInOrder):
1177 (WebCore::ChildListMutationScope::MutationAccumulator::childAdded):
1178 (WebCore::ChildListMutationScope::MutationAccumulator::isRemovedNodeInOrder):
1179 (WebCore::ChildListMutationScope::MutationAccumulator::willRemoveChild):
1180 (WebCore::ChildListMutationScope::MutationAccumulator::enqueueMutationRecord):
1181 (WebCore::ChildListMutationScope::MutationAccumulator::clear):
1182 (WebCore::ChildListMutationScope::MutationAccumulator::isEmpty):
1183 (WebCore::ChildListMutationScope::MutationAccumulationRouter::MutationAccumulationRouter):
1184 (WebCore::ChildListMutationScope::MutationAccumulationRouter::~MutationAccumulationRouter):
1185 (WebCore::ChildListMutationScope::MutationAccumulationRouter::initialize):
1186 (WebCore::ChildListMutationScope::MutationAccumulationRouter::instance):
1187 (WebCore::ChildListMutationScope::MutationAccumulationRouter::childAdded):
1188 (WebCore::ChildListMutationScope::MutationAccumulationRouter::willRemoveChild):
1189 (WebCore::ChildListMutationScope::MutationAccumulationRouter::incrementScopingLevel):
1190 (WebCore::ChildListMutationScope::MutationAccumulationRouter::decrementScopingLevel):
1191 * dom/ChildListMutationScope.h:
1192 (WebCore::ChildListMutationScope::ChildListMutationScope):
1193 (WebCore::ChildListMutationScope::~ChildListMutationScope):
1194 (WebCore::ChildListMutationScope::childAdded):
1195 (WebCore::ChildListMutationScope::willRemoveChild):
1197 2011-12-16 Dean Jackson <dino@apple.com>
1199 Filters need to affect visual overflow
1200 https://bugs.webkit.org/show_bug.cgi?id=71930
1202 Reviewed by Simon Fraser.
1204 Make sure filters are included in visual overflow.
1205 Add a new method to calculate the expansion of overflow
1206 region given a list of FilterOperations. This is a slight
1207 duplication of code from the rendering path, but is needed
1208 because overflow is calculated before the FilterEffect
1211 Also, filters were always rendered into their
1212 input rectangle which was wrong for any effect
1213 that produced a different sized result - drop-shadow
1214 and blur. This required two changes. First, FilterEffect
1215 needed a flag to decide whether or not to clip
1216 output to primitive regions (as required by SVG but not
1217 what we want here). Second, the rendering operation
1218 draws into the rectangle the filter claims is its painting
1221 Test: css3/filters/regions-expanding.html
1223 * platform/graphics/filters/FEDropShadow.cpp:
1224 (WebCore::FEDropShadow::determineAbsolutePaintRect): Only
1225 clipToBounds if necessary.
1226 * platform/graphics/filters/FEGaussianBlur.cpp:
1227 (WebCore::FEGaussianBlur::calculateUnscaledKernelSize): CSS filters
1228 ask for the kernel size before the Filter object is created, so
1229 add a new method to return an unscaled kernel.
1230 (WebCore::FEGaussianBlur::calculateKernelSize):
1231 (WebCore::FEGaussianBlur::determineAbsolutePaintRect): Only
1232 clipToBounds if necessary.
1233 * platform/graphics/filters/FEGaussianBlur.h:
1234 * platform/graphics/filters/FEMorphology.cpp:
1235 (WebCore::FEMorphology::determineAbsolutePaintRect): Only
1236 clipToBounds if necessary.
1237 * platform/graphics/filters/FEOffset.cpp:
1238 (WebCore::FEOffset::determineAbsolutePaintRect): Only
1239 clipToBounds if necessary.
1240 * platform/graphics/filters/FilterEffect.cpp:
1241 (WebCore::FilterEffect::FilterEffect): Initialize clipToBounds
1242 as false so SVG remains unchanged.
1243 (WebCore::FilterEffect::determineAbsolutePaintRect): Only
1244 clipToBounds if necessary.
1245 * platform/graphics/filters/FilterEffect.h:
1246 (WebCore::FilterEffect::clipsToBounds):
1247 (WebCore::FilterEffect::setClipsToBounds):
1248 * rendering/FilterEffectRenderer.cpp:
1249 (WebCore::FilterEffectRenderer::build): Make sure we set our
1250 filters here to NOT clip to bounds.
1251 * rendering/FilterEffectRenderer.h:
1252 (WebCore::FilterEffectRenderer::outputRect): Asks the filter
1253 operation for the size of the result image.
1254 * rendering/RenderBlock.cpp:
1255 (WebCore::RenderBlock::computeOverflow):
1256 * rendering/RenderBox.cpp:
1257 (WebCore::RenderBox::addVisualEffectOverflow): Change the name
1258 from addBoxShadowAndBorderOverflow().
1259 * rendering/RenderBox.h:
1260 * rendering/RenderEmbeddedObject.cpp:
1261 (WebCore::RenderEmbeddedObject::layout):
1262 * rendering/RenderIFrame.cpp:
1263 (WebCore::RenderIFrame::layout):
1264 * rendering/RenderLayer.cpp:
1265 (WebCore::RenderLayer::paintLayer):
1266 * rendering/RenderLayerBacking.cpp:
1267 (WebCore::hasBoxDecorations): Change name from
1268 hasBorderOutlineOrShadow().
1269 (WebCore::hasBoxDecorationsOrBackground):
1270 (WebCore::hasBoxDecorationsOrBackgroundImage):
1271 * rendering/RenderReplaced.cpp:
1272 (WebCore::RenderReplaced::layout):
1273 * rendering/style/FilterOperations.cpp:
1274 (WebCore::outsetSizeForBlur): Return an IntSize that is the amount
1276 (WebCore::FilterOperations::hasOutsets):
1277 (WebCore::FilterOperations::getOutsets):
1278 * rendering/style/FilterOperations.h:
1279 * rendering/style/RenderStyle.h:
1280 (WebCore::InheritedFlags::getFilterOutsets):
1281 (WebCore::InheritedFlags::hasFilterOutsets):
1282 * svg/graphics/filters/SVGFEImage.cpp:
1283 (WebCore::FEImage::determineAbsolutePaintRect): Only
1284 clipToBounds if necessary.
1286 2011-12-16 Alexis Menard <alexis.menard@openbossa.org>, Jakub Wieczorek <jwieczorek@webkit.org>
1288 Add support for <ol reversed>.
1289 https://bugs.webkit.org/show_bug.cgi?id=36724
1291 The reversed attribute makes an ordered list appear with marker values
1292 decreasing from n, where n is the number of items.
1293 See: http://www.whatwg.org/specs/web-apps/current-work/#attr-ol-reversed
1295 Reviewed by Darin Adler.
1297 Tests: fast/lists/ol-reversed-dynamic-simple.html
1298 fast/lists/ol-reversed-dynamic.html
1299 fast/lists/ol-reversed-nested-items.html
1300 fast/lists/ol-reversed-nested-list.html
1301 fast/lists/ol-reversed-simple.html
1303 * html/HTMLAttributeNames.in:
1304 * html/HTMLOListElement.cpp:
1305 (WebCore::HTMLOListElement::HTMLOListElement):
1306 (WebCore::HTMLOListElement::parseMappedAttribute):
1307 (WebCore::HTMLOListElement::updateItemValues):
1308 (WebCore::HTMLOListElement::recalculateItemCount):
1309 * html/HTMLOListElement.h:
1310 (WebCore::HTMLOListElement::start):
1311 (WebCore::HTMLOListElement::isReversed):
1312 (WebCore::HTMLOListElement::itemCountChanged):
1313 (WebCore::HTMLOListElement::itemCount):
1314 * html/HTMLOListElement.idl:
1315 * rendering/RenderListItem.cpp:
1316 (WebCore::RenderListItem::nextListItem):
1317 (WebCore::previousListItem):
1318 (WebCore::RenderListItem::calcValue):
1319 (WebCore::RenderListItem::explicitValueChanged):
1320 (WebCore::previousOrNextItem):
1321 (WebCore::RenderListItem::updateListMarkerNumbers):
1322 * rendering/RenderListItem.h:
1324 2011-12-16 Mikhail Naganov <mnaganov@chromium.org>
1326 Scroll non-visible edit controls and caret into the center of the view when starting typing.
1327 https://bugs.webkit.org/show_bug.cgi?id=65027
1329 Reviewed by Ryosuke Niwa.
1331 Tests: editing/input/caret-at-the-edge-of-contenteditable.html
1332 editing/input/caret-at-the-edge-of-input.html
1333 editing/input/reveal-caret-of-multiline-contenteditable.html
1334 editing/input/reveal-caret-of-multiline-input.html
1335 editing/input/reveal-contenteditable-on-input-vertically.html
1336 editing/input/reveal-contenteditable-on-paste-vertically.html
1337 editing/input/reveal-edit-on-input-vertically.html
1338 editing/input/reveal-edit-on-paste-vertically.html
1340 * editing/Editor.cpp:
1341 (WebCore::Editor::insertTextWithoutSendingTextEvent):
1342 (WebCore::Editor::revealSelectionAfterEditingOperation):
1344 2011-12-16 Ryosuke Niwa <rniwa@webkit.org>
1346 Touch RenderStyle in an attempt to fix linking errors on Chromium Windows bots.
1348 * rendering/style/RenderStyle.h:
1350 2011-12-14 Nat Duca <nduca@chromium.org>
1352 [chromium] DelayBasedTimeSource should not change its timebase on late ticks
1353 https://bugs.webkit.org/show_bug.cgi?id=74573
1355 The original DelayBasedTimeSource was designed to shift its timebase
1356 to the tick time when a tick came back "late." The rationale was that it is
1357 better to just "start fresh" after a stutter. After profiling this,
1358 this time-rebasing just destabilizes frame rate anytime the thread gets
1359 loaded. This patch keeps the timebase stationary, leading to vastly
1360 smoother framerates when the message loop is under load.
1362 Reviewed by James Robinson.
1364 * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
1365 (WebCore::CCDelayBasedTimeSource::updateState):
1367 2011-12-16 Sheriff Bot <webkit.review.bot@gmail.com>
1369 Unreviewed, rolling out r103062.
1370 http://trac.webkit.org/changeset/103062
1371 https://bugs.webkit.org/show_bug.cgi?id=74715
1373 It broke many tests (Requested by Ossy on #webkit).
1375 * html/HTMLAttributeNames.in:
1376 * html/HTMLOListElement.cpp:
1377 (WebCore::HTMLOListElement::HTMLOListElement):
1378 (WebCore::HTMLOListElement::parseMappedAttribute):
1379 * html/HTMLOListElement.h:
1380 (WebCore::HTMLOListElement::start):
1381 * html/HTMLOListElement.idl:
1382 * rendering/RenderListItem.cpp:
1383 (WebCore::previousListItem):
1384 (WebCore::RenderListItem::calcValue):
1385 (WebCore::RenderListItem::explicitValueChanged):
1386 (WebCore::RenderListItem::updateListMarkerNumbers):
1387 * rendering/RenderListItem.h:
1389 2011-12-16 Alexis Menard <alexis.menard@openbossa.org>, Jakub Wieczorek <jwieczorek@webkit.org>
1391 Add support for <ol reversed>.
1392 https://bugs.webkit.org/show_bug.cgi?id=36724
1394 The reversed attribute makes an ordered list appear with marker values
1395 decreasing from n, where n is the number of items.
1396 See: http://www.whatwg.org/specs/web-apps/current-work/#attr-ol-reversed
1398 Reviewed by Darin Adler.
1400 Tests: fast/lists/ol-reversed-dynamic-simple.html
1401 fast/lists/ol-reversed-dynamic.html
1402 fast/lists/ol-reversed-nested-items.html
1403 fast/lists/ol-reversed-nested-list.html
1404 fast/lists/ol-reversed-simple.html
1406 * html/HTMLAttributeNames.in:
1407 * html/HTMLOListElement.cpp:
1408 (WebCore::HTMLOListElement::HTMLOListElement):
1409 (WebCore::HTMLOListElement::parseMappedAttribute):
1410 (WebCore::HTMLOListElement::updateItemValues):
1411 (WebCore::HTMLOListElement::recalculateItemCount):
1412 * html/HTMLOListElement.h:
1413 (WebCore::HTMLOListElement::start):
1414 (WebCore::HTMLOListElement::isReversed):
1415 (WebCore::HTMLOListElement::itemCountChanged):
1416 (WebCore::HTMLOListElement::itemCount):
1417 * html/HTMLOListElement.idl:
1418 * rendering/RenderListItem.cpp:
1419 (WebCore::RenderListItem::nextListItem):
1420 (WebCore::previousListItem):
1421 (WebCore::RenderListItem::calcValue):
1422 (WebCore::RenderListItem::explicitValueChanged):
1423 (WebCore::previousOrNextItem):
1424 (WebCore::RenderListItem::updateListMarkerNumbers):
1425 * rendering/RenderListItem.h:
1427 2011-12-15 Stephen White <senorblanco@chromium.org>
1429 Enable CSS_FILTERS in Chromium.
1430 https://bugs.webkit.org/show_bug.cgi?id=74334
1432 Reviewed by Chris Marrin.
1434 Covered by css3/filters (when enabled).
1436 * platform/graphics/filters/FilterOperation.h:
1437 (WebCore::PassthroughFilterOperation::PassthroughFilterOperation):
1438 Since wingdi.h #define's PASSTHROUGH, #undef it after the includes.
1440 2011-12-16 Patrick Gansterer <paroga@webkit.org>
1442 Unreviewed WinCE build fix after r102979.
1444 Make everHadLayout() public accessible as it was before the change.
1446 * rendering/RenderObject.h:
1447 (WebCore::RenderObject::everHadLayout):
1449 2011-12-15 Hans Wennborg <hans@chromium.org>
1451 IndexedDB: Don't prefetch values from key cursors
1452 https://bugs.webkit.org/show_bug.cgi?id=74604
1454 Reviewed by Tony Chang.
1456 Since index key cursors don't have values, prefetching should not try
1457 to retrieve them. Doing so trips an ASSERT in debug builds.
1459 This will be tested Chromium-side.
1461 * storage/IDBCursorBackendImpl.cpp:
1462 (WebCore::IDBCursorBackendImpl::prefetchContinueInternal):
1464 2011-12-16 Yosifumi Inoue <yosin@chromium.org>
1466 [Forms] The "maxlength" attribute on "textarea" tag miscounts hard newlines
1467 https://bugs.webkit.org/show_bug.cgi?id=74686
1469 Reviewed by Kent Tamura.
1471 This patch counts LF in textarea value as two for LF to CRLF conversion on submission.
1473 No new tests. Existing tests cover all changes.
1475 * html/HTMLTextAreaElement.cpp:
1476 (WebCore::computeLengthForSubmission): Count LF as 2 for CR LF conversion on submission.
1477 (WebCore::HTMLTextAreaElement::handleBeforeTextInsertedEvent): Use computeLengthForSubmission instead of numGraphemeClusters.
1478 (WebCore::HTMLTextAreaElement::tooLong): Use computeLengthForSubmission instead of numGraphemeClusters.
1480 2011-12-16 Hajime Morrita <morrita@chromium.org>
1482 Unreviewed, rolling out r103045.
1483 http://trac.webkit.org/changeset/103045
1484 https://bugs.webkit.org/show_bug.cgi?id=74590
1486 Breaks select-script-onchange.html on Chromium Windows
1488 * html/HTMLSelectElement.cpp:
1489 (WebCore::HTMLSelectElement::typeAheadFind):
1491 2011-12-16 Carlos Garcia Campos <cgarcia@igalia.com>
1493 Unreviewed. Fix make distcheck.
1495 * GNUmakefile.list.am: Add missing header file.
1497 2011-12-16 Yosifumi Inoue <yosin@chromium.org>
1499 [Forms] Selection change by type-ahead doesn't fire 'change' event
1500 https://bugs.webkit.org/show_bug.cgi?id=74590
1502 Reviewed by Kent Tamura.
1504 Fire onchange even for type ahead selection.
1506 Test: fast/forms/select/menulist-type-ahead-find.html
1508 * html/HTMLSelectElement.cpp:
1509 (WebCore::HTMLSelectElement::typeAheadFind): Add DispatchChangeEvent when
1510 calling selectOption method.
1512 2011-12-16 Andreas Kling <kling@webkit.org>
1514 Don't call Document::body() twice in the same function.
1515 <http://webkit.org/b/74683>
1517 Reviewed by Dan Bernstein.
1519 Document::body() is O(n), so we should avoid calling it multiple
1520 times unnecessarily.
1523 (WebCore::Document::updateLayoutIgnorePendingStylesheets):
1525 2011-12-16 Daniel Sievers <sievers@chromium.org>
1527 [Chromium] Add trace events for decoding and drawing images.
1528 https://bugs.webkit.org/show_bug.cgi?id=74547
1530 Reviewed by James Robinson.
1532 * platform/graphics/skia/ImageSkia.cpp:
1533 (WebCore::drawResampledBitmap):
1534 (WebCore::paintSkBitmap):
1535 (WebCore::Image::drawPattern):
1536 * platform/graphics/skia/NativeImageSkia.cpp:
1537 (WebCore::NativeImageSkia::resizedBitmap):
1538 * platform/image-decoders/bmp/BMPImageDecoder.cpp:
1539 (WebCore::BMPImageDecoder::decode):
1540 * platform/image-decoders/gif/GIFImageDecoder.cpp:
1541 (WebCore::GIFImageDecoder::decode):
1542 * platform/image-decoders/ico/ICOImageDecoder.cpp:
1543 (WebCore::ICOImageDecoder::decode):
1544 * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
1545 (WebCore::JPEGImageDecoder::decode):
1546 * platform/image-decoders/png/PNGImageDecoder.cpp:
1547 (WebCore::PNGImageDecoder::decode):
1548 * platform/image-decoders/webp/WEBPImageDecoder.cpp:
1549 (WebCore::WEBPImageDecoder::decode):
1551 2011-12-15 Martin Robinson <mrobinson@igalia.com>
1553 Fix 'make dist' in preparation for the GTK+ release.
1555 * GNUmakefile.list.am: Add missing header.
1557 2011-12-15 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
1559 Don't create empty files on error.
1560 https://bugs.webkit.org/show_bug.cgi?id=74373
1562 Reviewed by Ryosuke Niwa.
1565 * css/makevalues.pl:
1566 * make-hash-tools.pl:
1568 2011-12-15 Yongjun Zhang <yongjun_zhang@apple.com>
1570 PODIntervalTree takes 1.7MB memory on www.nytimes.com.
1571 https://bugs.webkit.org/show_bug.cgi?id=73712
1573 Reviewed by Kenneth Russell.
1575 For a RenderBlock which has floating objects inside, we will create a PODIntervalTree and a PODArena with
1576 at least one 16KB chunk. A page could have a large number of such RenderBlocks and they could take huge
1577 amount of memory. To fix that, we can create a shared PODArena in the root RenderView. Instead of having
1578 their own PODArena, each RenderBlock with floating objects could share this PODArena to reduce memory consumption.
1580 The shared PODArena could grow unboundedly if we keep removing and adding floating objects. We can fix that
1581 by reusing the freed memory in each chunk. However, a PODArena could allocate objects of different sizes and
1582 it would be complex to keep track of the size for each allocation in PODArena. To address that, this patch
1583 added class PODFreeListArena<T> which only allocates objects of type T (hence the same size). We can then use a
1584 free list to track freed nodes inside the chunk and reuse the free nodes in future allocations.
1586 Manually tested on nytimes.com and the heap consumption of PODIntervalTree reduced from 1.7MB to 16KB. Performance
1587 doesn't regress on test PerformanceTests/Layout/floats.html.
1589 * WebCore.xcodeproj/project.pbxproj: add new header file PODFreeListArena.h.
1590 * platform/PODArena.h:
1591 (WebCore::PODArena::~PODArena): change dtor to virtual.
1592 (WebCore::PODArena::Chunk::~Chunk): ditto.
1593 * platform/PODFreeListArena.h: Added.
1594 (WebCore::PODFreeListArena::create):
1595 (WebCore::PODFreeListArena::allocateObject): allocate an object.
1596 (WebCore::PODFreeListArena::freeObject): free an object, find the right chunk and update its free list.
1597 (WebCore::PODFreeListArena::allocate): allocate memory from the free list or current chunk.
1598 (WebCore::PODFreeListArena::FreeListChunk::FreeListChunk): add m_freeList to track freed cells.
1599 (WebCore::PODFreeListArena::FreeListChunk::allocate): reuse a free cell if there is one.
1600 (WebCore::PODFreeListArena::FreeListChunk::free): make the memory taken by this object is free, and link it to m_freeList.
1601 (WebCore::PODFreeListArena::FreeListChunk::contains): check if a pointer is inside this chunk.
1602 (WebCore::PODFreeListArena::FreeListChunk::hasFreeList): check if this chunk has free cells.
1603 * platform/PODRedBlackTree.h:
1604 (WebCore::PODRedBlackTree::PODRedBlackTree): take PODFreeListArena instead of PODArena, since nodes of a particular PODRedBlackTree
1605 is always of the same size.
1606 (WebCore::PODRedBlackTree::clear): mark all nodes before clearing the tree.
1607 (WebCore::PODRedBlackTree::initIfNeeded): add initIfNeeded to take an external PODFreeListArena.
1608 (WebCore::PODRedBlackTree::add):
1609 (WebCore::PODRedBlackTree::deleteNode): mark the node free in arena after it is removed from the tree.
1610 (WebCore::PODRedBlackTree::markFree): mark all node free in the tree.
1611 * rendering/RenderBlock.cpp:
1612 (WebCore::RenderBlock::insertFloatingObject):
1613 (WebCore::RenderBlock::addOverhangingFloats):
1614 (WebCore::RenderBlock::addIntrudingFloats):
1615 (WebCore::RenderBlock::FloatingObjects::computePlacedFloatsTree): passing the shared PODFreeListArena to m_placedFloatsTree.
1616 * rendering/RenderBlock.h:
1617 (WebCore::RenderBlock::FloatingObjects::FloatingObjects):
1618 * rendering/RenderView.cpp:
1619 (WebCore::RenderView::intervalArena): create the shared PODFreeListArena lazily.
1620 * rendering/RenderView.h:
1622 2011-12-15 Tony Chang <tony@chromium.org>
1624 Unreviewed, rollout r102825 because it didn't improve performance.
1625 https://bugs.webkit.org/show_bug.cgi?id=74622
1627 * css/CSSStyleSelector.cpp:
1628 (WebCore::CSSStyleSelector::styleForElement):
1629 (WebCore::CSSStyleSelector::pseudoStyleForElement):
1631 2011-12-15 Ryosuke Niwa <rniwa@webkit.org>
1633 sizeof(RenderObject) is 32 instead of 24 on Windows
1634 https://bugs.webkit.org/show_bug.cgi?id=74646
1636 Reviewed by Darin Adler.
1638 Make all bitfields in RenderObject to unsigned and wrap them around by RenderObjectBitfields.
1639 Also add a compilation time assertion to make sure we won't grow RenderObject's size unintentionally.
1641 * rendering/RenderBlock.cpp:
1642 (WebCore::RenderBlock::layoutBlock):
1643 (WebCore::RenderBlock::layoutBlockChild):
1644 (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
1645 (WebCore::RenderBlock::layoutColumns):
1646 * rendering/RenderBlock.h:
1647 (WebCore::RenderBlock::FloatWithRect::FloatWithRect):
1648 * rendering/RenderObject.cpp:
1649 (WebCore::SameSizeAsRenderObject::~SameSizeAsRenderObject):
1650 (WebCore::RenderObject::RenderObject):
1651 (WebCore::RenderObject::markContainingBlocksForLayout):
1652 (WebCore::RenderObject::setPreferredLogicalWidthsDirty):
1653 (WebCore::RenderObject::invalidateContainerPreferredLogicalWidths):
1654 (WebCore::RenderObject::styleWillChange):
1655 (WebCore::RenderObject::styleDidChange):
1656 (WebCore::RenderObject::willBeDestroyed):
1657 (WebCore::RenderObject::updateDragState):
1658 * rendering/RenderObject.h:
1659 (WebCore::RenderObject::hasCounterNodeMap):
1660 (WebCore::RenderObject::setHasCounterNodeMap):
1661 (WebCore::RenderObject::childrenInline):
1662 (WebCore::RenderObject::setChildrenInline):
1663 (WebCore::RenderObject::hasColumns):
1664 (WebCore::RenderObject::setHasColumns):
1665 (WebCore::RenderObject::inRenderFlowThread):
1666 (WebCore::RenderObject::setInRenderFlowThread):
1667 (WebCore::RenderObject::isAnonymous):
1668 (WebCore::RenderObject::setIsAnonymous):
1669 (WebCore::RenderObject::isAnonymousBlock):
1670 (WebCore::RenderObject::isFloating):
1671 (WebCore::RenderObject::isPositioned):
1672 (WebCore::RenderObject::isRelPositioned):
1673 (WebCore::RenderObject::isText):
1674 (WebCore::RenderObject::isBox):
1675 (WebCore::RenderObject::isInline):
1676 (WebCore::RenderObject::isDragging):
1677 (WebCore::RenderObject::isReplaced):
1678 (WebCore::RenderObject::isHorizontalWritingMode):
1679 (WebCore::RenderObject::hasLayer):
1680 (WebCore::RenderObject::hasBoxDecorations):
1681 (WebCore::RenderObject::needsLayout):
1682 (WebCore::RenderObject::selfNeedsLayout):
1683 (WebCore::RenderObject::needsPositionedMovementLayout):
1684 (WebCore::RenderObject::needsPositionedMovementLayoutOnly):
1685 (WebCore::RenderObject::posChildNeedsLayout):
1686 (WebCore::RenderObject::needsSimplifiedNormalFlowLayout):
1687 (WebCore::RenderObject::normalChildNeedsLayout):
1688 (WebCore::RenderObject::preferredLogicalWidthsDirty):
1689 (WebCore::RenderObject::hasOverflowClip):
1690 (WebCore::RenderObject::hasTransform):
1691 (WebCore::RenderObject::node):
1692 (WebCore::RenderObject::setPositioned):
1693 (WebCore::RenderObject::setRelPositioned):
1694 (WebCore::RenderObject::setFloating):
1695 (WebCore::RenderObject::setInline):
1696 (WebCore::RenderObject::setHasBoxDecorations):
1697 (WebCore::RenderObject::setIsText):
1698 (WebCore::RenderObject::setIsBox):
1699 (WebCore::RenderObject::setReplaced):
1700 (WebCore::RenderObject::setHorizontalWritingMode):
1701 (WebCore::RenderObject::setHasOverflowClip):
1702 (WebCore::RenderObject::setHasLayer):
1703 (WebCore::RenderObject::setHasTransform):
1704 (WebCore::RenderObject::setHasReflection):
1705 (WebCore::RenderObject::hasReflection):
1706 (WebCore::RenderObject::setHasMarkupTruncation):
1707 (WebCore::RenderObject::hasMarkupTruncation):
1708 (WebCore::RenderObject::selectionState):
1709 (WebCore::RenderObject::setSelectionState):
1710 (WebCore::RenderObject::hasSelectedChildren):
1711 (WebCore::RenderObject::isMarginBeforeQuirk):
1712 (WebCore::RenderObject::isMarginAfterQuirk):
1713 (WebCore::RenderObject::setMarginBeforeQuirk):
1714 (WebCore::RenderObject::setMarginAfterQuirk):
1715 (WebCore::RenderObject::everHadLayout):
1716 (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
1717 (WebCore::RenderObject::RenderObjectBitfields::selectionState):
1718 (WebCore::RenderObject::RenderObjectBitfields::setSelectionState):
1719 (WebCore::RenderObject::setNeedsPositionedMovementLayout):
1720 (WebCore::RenderObject::setNormalChildNeedsLayout):
1721 (WebCore::RenderObject::setPosChildNeedsLayout):
1722 (WebCore::RenderObject::setNeedsSimplifiedNormalFlowLayout):
1723 (WebCore::RenderObject::setPaintBackground):
1724 (WebCore::RenderObject::setIsDragging):
1725 (WebCore::RenderObject::setEverHadLayout):
1726 (WebCore::RenderObject::setNeedsLayout):
1727 (WebCore::RenderObject::setChildNeedsLayout):
1728 * rendering/RenderObjectChildList.cpp:
1729 (WebCore::RenderObjectChildList::removeChildNode):
1730 * rendering/svg/RenderSVGContainer.cpp:
1731 (WebCore::RenderSVGContainer::layout):
1733 2011-12-15 Wei Charles <charles.wei@torchmobile.com.cn>
1735 [BlackBerry] Upstream BlackBerry porting of pluginView
1736 https://bugs.webkit.org/show_bug.cgi?id=73397
1738 Reviewed by Daniel Bates.
1740 No new tests for now.
1742 * plugins/blackberry/PluginViewBlackBerry.cpp: Added.
1744 2011-12-15 Joshua Bell <jsbell@chromium.org>
1746 IndexedDB: Can't pass DOMStringList to IDBDatabase.transaction()
1747 https://bugs.webkit.org/show_bug.cgi?id=74452
1749 Reviewed by Adam Barth.
1751 V8 code generator generated checks for DOMStringList arguments, then
1752 deferred to a function that only handled array inputs. This previously
1753 worked for IndexedDB because it would fall into a now-removed default
1756 Modified storage/indexeddb/transaction-basics.html to test this.
1758 * bindings/v8/V8Binding.cpp:
1759 (WebCore::v8ValueToWebCoreDOMStringList):
1761 2011-12-15 Adam Klein <adamk@chromium.org>
1763 Make Element::setAttributeInternal inline in an attempt to avoid function call overhead
1764 https://bugs.webkit.org/show_bug.cgi?id=74638
1766 Reviewed by Andreas Kling.
1768 In r102695, I factored common code in setAttribute into
1769 Element::setAttributeInternal. This may have caused a perf regression
1770 due to the extra function call, which inlining should eliminate.
1772 Running Dromaeo locally suggests that this will improve performance
1773 by ~9% on the "dom-attr element.property = value" test (which assigns
1774 a value to an element's id).
1777 (WebCore::Element::setAttributeInternal):
1779 2011-12-15 Mary Wu <mary.wu@torchmobile.com.cn>
1781 Upstream FileSystemBlackBerry.cpp into WebCore/platform/blackberry
1782 https://bugs.webkit.org/show_bug.cgi?id=74491
1784 Reviewed by Rob Buis.
1786 We are using POSIX porting of FileSystem, so here only implement other
1787 necessary functions.
1789 Initial upstream, no new tests.
1791 * platform/blackberry/FileSystemBlackBerry.cpp: Added.
1792 (WebCore::homeDirectoryPath):
1793 (WebCore::fileSystemRepresentation):
1794 (WebCore::unloadModule):
1795 (WebCore::openTemporaryFile):
1797 2011-12-15 Adrienne Walker <enne@google.com>
1799 [chromium] Clean up unnecessary leaf functions in GraphicsLayerChromium
1800 https://bugs.webkit.org/show_bug.cgi?id=74140
1802 Reviewed by James Robinson.
1804 Tested by existing compositor layout tests.
1806 This is a follow-on cleanup to r102196, which made some of these
1807 functions less useful than they had been in the past.
1809 * platform/graphics/chromium/GraphicsLayerChromium.cpp:
1810 (WebCore::GraphicsLayerChromium::setContentsOpaque):
1811 (WebCore::GraphicsLayerChromium::setBackfaceVisibility):
1812 (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
1813 * platform/graphics/chromium/GraphicsLayerChromium.h:
1815 2011-12-15 Kenneth Russell <kbr@google.com>
1817 Unreviewed, rolling out r103000.
1818 http://trac.webkit.org/changeset/103000
1819 https://bugs.webkit.org/show_bug.cgi?id=74658
1821 Does not handle text/plain documents correctly.
1823 * html/parser/HTMLTokenizer.cpp:
1824 * html/parser/HTMLTokenizer.h:
1825 * html/parser/HTMLTreeBuilder.cpp:
1826 * html/parser/HTMLTreeBuilder.h:
1827 * xml/parser/MarkupTokenizerBase.h:
1829 2011-12-15 James Robinson <jamesr@chromium.org>
1831 [chromium] Set the CCLayerTreeHost pointer on LayerChromium instances eagerly
1832 https://bugs.webkit.org/show_bug.cgi?id=74477
1834 Reviewed by Kenneth Russell.
1836 This enforces that the m_layerTreeHost pointer on LayerChromium instances is always up to date, instead of
1837 lazily setting it in the paintContents loop. There are two invariants:
1838 1.) If a LayerChromium is the root layer of a CCLayerTreeHost, or is reachable via the children, mask, or
1839 replica pointers from the root layer of a CCLayerTreeHost, then that LayerChromium's m_layerTreeHost pointer
1840 refers to that CCLayerTreeHost
1841 2.) If a LayerChromium is not a root layer or reachable from a root layer of any CCLayerTreeHost, its
1842 CCLayerTreeHost pointer is nil.
1844 Covered by several new layout tests in LayerChromiumTest
1846 * platform/graphics/chromium/LayerChromium.cpp:
1847 (WebCore::LayerChromium::setLayerTreeHost):
1848 (WebCore::LayerChromium::setParent):
1849 (WebCore::LayerChromium::setMaskLayer):
1850 (WebCore::LayerChromium::setReplicaLayer):
1851 * platform/graphics/chromium/LayerChromium.h:
1852 * platform/graphics/chromium/TiledLayerChromium.cpp:
1853 (WebCore::TiledLayerChromium::createTile):
1854 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1855 (WebCore::CCLayerTreeHost::setRootLayer):
1856 (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
1857 (WebCore::CCLayerTreeHost::paintLayerContents):
1858 * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1860 2011-12-15 Sheriff Bot <webkit.review.bot@gmail.com>
1862 Unreviewed, rolling out r102652 and r102717.
1863 http://trac.webkit.org/changeset/102652
1864 http://trac.webkit.org/changeset/102717
1865 https://bugs.webkit.org/show_bug.cgi?id=74674
1867 Broke too many webs. (Requested by kling on #webkit).
1871 2011-12-15 Anders Carlsson <andersca@apple.com>
1873 Lazily create the scrolling coordinator and add a setting for enabling it
1874 https://bugs.webkit.org/show_bug.cgi?id=74667
1876 Reviewed by Darin Adler.
1878 * WebCore.xcodeproj/project.pbxproj:
1879 Make ScrollingCoordinator.h a private header so it can be used in WebKit.
1881 (WebCore::Page::Page):
1882 Don't create the scrolling coordinator.
1884 (WebCore::Page::~Page):
1885 Check for a null scrolling coordinator.
1887 (WebCore::Page::scrollingCoordinator):
1888 Create the scrolling coordinator lazily.
1890 * page/Settings.cpp:
1891 (WebCore::Settings::Settings):
1893 (WebCore::Settings::setScrollingCoordinatorEnabled):
1894 (WebCore::Settings::scrollingCoordinatorEnabled):
1895 Add a setting for enabling the scrolling coordinator.
1897 * rendering/RenderLayerBacking.cpp:
1898 (WebCore::RenderLayerBacking::RenderLayerBacking):
1899 Use a tile cache layer for the main frame when the scrolling coordinator is neabled.
1901 2011-12-15 Gyuyoung Kim <gyuyoung.kim@samsung.com>
1903 Unreviewed. Fix build break when data-transfer-items is enabled.
1905 * platform/efl/ClipboardEfl.cpp:
1906 (WebCore::ClipboardEfl::items):
1907 * platform/efl/ClipboardEfl.h:
1909 2011-12-15 Adam Barth <abarth@webkit.org>
1911 <ruby><div><p><rp> parses incorrectly
1912 https://bugs.webkit.org/show_bug.cgi?id=74668
1914 Reviewed by Darin Adler.
1916 This patch updates our implementation to match a change to the HTML5
1917 specification regarding how <ruby> elements parse. Previously, <rp>
1918 and similar tags used to pop the stack up to the <ruby> element. Now
1919 the popping does not occur.
1921 Tests: html5lib/runner.html
1923 * html/parser/HTMLTreeBuilder.cpp:
1925 2011-12-15 Daniel Sievers <sievers@chromium.org>
1927 [Chromium] Avoid strdup() for extra argument when tracing is disabled.
1928 https://bugs.webkit.org/show_bug.cgi?id=74637
1930 Reviewed by James Robinson.
1932 * platform/chromium/TraceEvent.h:
1933 (WebCore::internal::ScopeTracer::ScopeTracer):
1935 2011-12-15 Rafael Weinstein <rafaelw@chromium.org>
1937 [MutationObservers] Add a document-level flag that can trivially be checked to avoid doing unnessary work if mutation observers absent
1938 https://bugs.webkit.org/show_bug.cgi?id=74641
1940 Reviewed by Ojan Vafai.
1942 This patch adds a byte of flags to Document, of which three bits are used to signal if any
1943 node owned by the document has a Mutation Observer of the given type. This is used to
1944 reduce the cost of discovering there are none to a single (inlined) method call and bit-check.
1945 Also, a similar byte of flags which was used to optimize a particular case when mutation observers
1946 are present has been removed, with the reasoning that we should first focus on minimizing impact on
1947 the null-case before optimizing particular in-use cases.
1949 Also, MutationObserverInterestGroup is broken out into its own file (which probably should have happened
1950 earlier, but now avoids a circular header dependency).
1952 No tests needed. This patch is just a refactor.
1955 * GNUmakefile.list.am:
1958 * WebCore.vcproj/WebCore.vcproj:
1959 * WebCore.xcodeproj/project.pbxproj:
1960 * css/CSSMutableStyleDeclaration.cpp:
1961 * dom/CharacterData.cpp:
1962 * dom/ChildListMutationScope.cpp:
1964 (WebCore::Document::Document):
1966 (WebCore::Document::hasMutationObserversOfType):
1967 (WebCore::Document::hasMutationObservers):
1968 (WebCore::Document::addMutationObserverTypes):
1970 * dom/MutationObserverInterestGroup.cpp: Added.
1971 (WebCore::MutationObserverInterestGroup::createIfNeeded):
1972 (WebCore::MutationObserverInterestGroup::MutationObserverInterestGroup):
1973 (WebCore::MutationObserverInterestGroup::isOldValueRequested):
1974 (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
1975 * dom/MutationObserverInterestGroup.h: Copied from Source/WebCore/dom/WebKitMutationObserver.h.
1976 (WebCore::MutationObserverInterestGroup::createForChildListMutation):
1977 (WebCore::MutationObserverInterestGroup::createForCharacterDataMutation):
1978 (WebCore::MutationObserverInterestGroup::createForAttributesMutation):
1979 (WebCore::MutationObserverInterestGroup::hasOldValue):
1981 (WebCore::Node::didMoveToNewOwnerDocument):
1982 (WebCore::Node::getRegisteredMutationObserversOfType):
1983 (WebCore::Node::notifyMutationObserversNodeWillDetach):
1985 * dom/WebKitMutationObserver.cpp:
1986 (WebCore::WebKitMutationObserver::observe):
1987 * dom/WebKitMutationObserver.h:
1989 2011-12-15 Adam Barth <abarth@webkit.org>
1991 <!DOCTYPE html><pre>

A</pre> doesn't parse correctly
1992 https://bugs.webkit.org/show_bug.cgi?id=74658
1994 Reviewed by Darin Adler.
1996 Previously, we handled skipping newlines after <pre> in the tokenizer,
1997 which isn't how the spec handles them. Instead, the spec skips them in
1998 the tree builder. This isn't usually observable, except in the case of
1999 an HTML entity. In that case, the tokenzier sees '&' (because the
2000 entity hasn't been decoded yet), but the tree builder sees '\n' (the
2001 decoded entity). This patch fixes the bug by more closely aligning our
2002 implementation with the spec.
2004 Test: html5lib/runner.html
2006 * html/parser/HTMLTokenizer.cpp:
2007 (WebCore::HTMLTokenizer::reset):
2008 (WebCore::HTMLTokenizer::nextToken):
2009 * html/parser/HTMLTokenizer.h:
2010 * html/parser/HTMLTreeBuilder.cpp:
2011 (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::skipAtMostOneLeadingNewline):
2012 (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
2013 (WebCore::HTMLTreeBuilder::processStartTagForInBody):
2014 (WebCore::HTMLTreeBuilder::processCharacterBuffer):
2015 * html/parser/HTMLTreeBuilder.h:
2016 * xml/parser/MarkupTokenizerBase.h:
2018 2011-12-15 Kenneth Russell <kbr@google.com>
2020 Unreviewed, rolling out r102989.
2021 http://trac.webkit.org/changeset/102989
2022 https://bugs.webkit.org/show_bug.cgi?id=74580
2024 Caused SHOULD NOT BE REACHED assertions in debug builds.
2026 * css/CSSComputedStyleDeclaration.cpp:
2027 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2028 * css/CSSPrimitiveValueMappings.h:
2029 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2030 (WebCore::CSSPrimitiveValue::operator EBoxAlignment):
2031 * css/CSSStyleSelector.cpp:
2032 (WebCore::CSSStyleSelector::applyProperty):
2033 * rendering/RenderDeprecatedFlexibleBox.cpp:
2034 (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
2035 (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
2036 * rendering/RenderFullScreen.cpp:
2037 (createFullScreenStyle):
2038 * rendering/style/RenderStyle.h:
2039 (WebCore::InheritedFlags::boxPack):
2040 (WebCore::InheritedFlags::setBoxAlign):
2041 (WebCore::InheritedFlags::setBoxPack):
2042 (WebCore::InheritedFlags::initialBoxPack):
2043 * rendering/style/RenderStyleConstants.h:
2044 * rendering/style/StyleDeprecatedFlexibleBoxData.h:
2046 2011-12-15 Ryosuke Niwa <rniwa@webkit.org>
2048 Touch make_name.pl in an attempt to make Qt bots happy.
2050 * dom/make_names.pl:
2051 (printNamesHeaderFile):
2053 2011-12-15 Kentaro Hara <haraken@chromium.org>
2055 Unreviewed. Rebaselined run-bindings-tests results.
2057 * bindings/scripts/test/JS/JSFloat64Array.cpp:
2058 * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
2059 * bindings/scripts/test/JS/JSTestObj.cpp:
2061 2011-12-15 Luke Macpherson <macpherson@chromium.org>
2063 Separate box alignment and box pack values into separate enums.
2064 https://bugs.webkit.org/show_bug.cgi?id=74580
2066 Reviewed by Darin Adler.
2068 No new tests / refactoring only.
2070 Separating these types cleans up the code by removing several assertions that
2071 values are in the correct ranges, as this is ensured by the type system.
2073 * css/CSSComputedStyleDeclaration.cpp:
2074 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2075 * css/CSSPrimitiveValueMappings.h:
2076 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2077 (WebCore::CSSPrimitiveValue::operator EBoxPack):
2078 (WebCore::CSSPrimitiveValue::operator EBoxAlignment):
2079 * css/CSSStyleSelector.cpp:
2080 (WebCore::CSSStyleSelector::applyProperty):
2081 * rendering/RenderDeprecatedFlexibleBox.cpp:
2082 (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
2083 (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
2084 * rendering/RenderFullScreen.cpp:
2085 (createFullScreenStyle):
2086 * rendering/style/RenderStyle.h:
2087 (WebCore::InheritedFlags::boxPack):
2088 (WebCore::InheritedFlags::setBoxAlign):
2089 (WebCore::InheritedFlags::setBoxPack):
2090 (WebCore::InheritedFlags::initialBoxPack):
2091 * rendering/style/RenderStyleConstants.h:
2092 * rendering/style/StyleDeprecatedFlexibleBoxData.h:
2094 2011-12-15 Kentaro Hara <haraken@chromium.org>
2096 REGRESSION(r102663): generate-bindings.pl runs every time
2097 https://bugs.webkit.org/show_bug.cgi?id=74481
2099 Reviewed by Adam Barth.
2101 See the comment #1 of bug 74481 for the cause of this bug.
2103 This patch fixes generate-bindings.pl so that it generates .h and .cpp files
2104 even for IDL files that do not need .h and .cpp files. This is just to prevent
2105 build scripts from trying to generate .h and .cpp files at every build.
2107 No new tests. No change in behavior.
2109 * bindings/scripts/generate-bindings.pl:
2110 (generateEmptyHeaderAndCpp): Generates .h and .cpp files for IDL files
2111 that do not need .h and .cpp files.
2112 * bindings/scripts/test/CPP/CPPTestSupplemental.cpp: Added.
2113 * bindings/scripts/test/CPP/CPPTestSupplemental.h: Added.
2114 * bindings/scripts/test/GObject/GObjectTestSupplemental.cpp: Added.
2115 * bindings/scripts/test/GObject/GObjectTestSupplemental.h: Added.
2116 * bindings/scripts/test/JS/JSTestSupplemental.cpp: Added.
2117 * bindings/scripts/test/JS/JSTestSupplemental.h: Added.
2118 * bindings/scripts/test/ObjC/ObjCTestSupplemental.cpp: Added.
2119 * bindings/scripts/test/ObjC/ObjCTestSupplemental.h: Added.
2120 * bindings/scripts/test/V8/V8TestSupplemental.cpp: Added.
2121 * bindings/scripts/test/V8/V8TestSupplemental.h: Added.
2123 2011-12-15 Jarred Nicholls <jarred@sencha.com>
2125 Unreviewed build fix. Mac build broken when CSS Filters enabled.
2126 Needed to move Filter headers out as private headers in WebCore.framework.
2128 * WebCore.xcodeproj/project.pbxproj:
2130 2011-12-15 Eric Seidel <eric@webkit.org>
2132 WebCore has two (disconnected) ways to keep track of updated widgets, should be unified
2133 https://bugs.webkit.org/show_bug.cgi?id=74367
2135 Reviewed by Adam Barth.
2137 It seems the FrameView updateWidgets set is needed for now,
2138 so just making FrameView::addWidgetToUpdate mark the DOM node
2139 as needing a widget update and later when it goes to call
2140 updateWidget() checking first if it needs an update.
2142 No new tests, just adding an assert.
2144 * html/HTMLEmbedElement.cpp:
2145 (WebCore::HTMLEmbedElement::updateWidget):
2146 * html/HTMLObjectElement.cpp:
2147 (WebCore::HTMLObjectElement::updateWidget):
2148 * html/HTMLPlugInImageElement.h:
2149 (WebCore::HTMLPlugInImageElement::needsWidgetUpdate):
2150 (WebCore::HTMLPlugInImageElement::setNeedsWidgetUpdate):
2151 * page/FrameView.cpp:
2152 (WebCore::FrameView::addWidgetToUpdate):
2153 (WebCore::FrameView::updateWidget):
2155 2011-12-15 Alexandru Chiculita <achicu@adobe.com>
2157 Windows project file is broken. It has a missing </File> enclosing tag
2158 https://bugs.webkit.org/show_bug.cgi?id=74632
2160 Reviewed by Anders Carlsson.
2162 No new tests, just fixing the project file.
2164 * WebCore.vcproj/WebCore.vcproj:
2166 2011-12-15 Adam Barth <abarth@webkit.org>
2168 <table><tr><td><svg><desc><td> parses incorrectly
2169 https://bugs.webkit.org/show_bug.cgi?id=68106
2171 Reviewed by Eric Seidel.
2173 This patch updates our implementation of the HTML5 parser to account
2174 for recent changes in the spec. The main change in this patch is to
2175 remove the "in foreign content" state from the tree builder. Rather
2176 than maintaining this as a separate state, the parser now introspects
2177 on the stack of open elements to determine whether the parser is in
2178 foriegn content. In the process, I've deleted some now-unused
2179 machinery in the tree builder.
2181 Tested by the html5lib LayoutTests. These tests show the progression
2182 in our spec compliance.
2184 * html/parser/HTMLElementStack.cpp:
2185 * html/parser/HTMLElementStack.h:
2186 * html/parser/HTMLTreeBuilder.cpp:
2187 * html/parser/HTMLTreeBuilder.h:
2188 * mathml/mathattrs.in:
2190 2011-12-15 Ryosuke Niwa <rniwa@webkit.org>
2192 m_hasCounterNodeMap and m_everHadLayout should be private to RenderObject
2193 https://bugs.webkit.org/show_bug.cgi?id=74645
2195 Reviewed by Eric Seidel.
2197 Made them private and added getters and setters as needed.
2199 * rendering/RenderCounter.cpp:
2200 (WebCore::makeCounterNode):
2201 (WebCore::RenderCounter::destroyCounterNodes):
2202 (WebCore::updateCounters):
2203 (WebCore::RenderCounter::rendererStyleChanged):
2204 (showCounterRendererTree):
2205 * rendering/RenderFlowThread.cpp:
2206 (WebCore::RenderFlowThread::layout):
2207 * rendering/RenderObject.h:
2208 (WebCore::RenderObject::hasCounterNodeMap):
2209 (WebCore::RenderObject::setHasCounterNodeMap):
2210 (WebCore::RenderObject::everHadLayout):
2211 * rendering/svg/RenderSVGForeignObject.cpp:
2212 (WebCore::RenderSVGForeignObject::layout):
2213 * rendering/svg/RenderSVGImage.cpp:
2214 (WebCore::RenderSVGImage::layout):
2215 * rendering/svg/RenderSVGResourceContainer.cpp:
2216 (WebCore::RenderSVGResourceContainer::layout):
2217 * rendering/svg/RenderSVGResourceMarker.cpp:
2218 (WebCore::RenderSVGResourceMarker::layout):
2219 * rendering/svg/RenderSVGRoot.cpp:
2220 (WebCore::RenderSVGRoot::layout):
2221 * rendering/svg/RenderSVGShape.cpp:
2222 (WebCore::RenderSVGShape::layout):
2223 * rendering/svg/RenderSVGText.cpp:
2224 (WebCore::RenderSVGText::layout):
2226 2011-12-15 Vsevolod Vlasov <vsevik@chromium.org>
2228 Not able to navigate the Resource tab options properly with arrow keys after adding the sticky-notes.
2229 https://bugs.webkit.org/show_bug.cgi?id=72013
2231 Reviewed by Pavel Feldman.
2233 * inspector/front-end/DatabaseQueryView.js:
2234 (WebInspector.DatabaseQueryView):
2235 (WebInspector.DatabaseQueryView.prototype._messagesClicked):
2236 * inspector/front-end/ResourcesPanel.js:
2237 (WebInspector.DatabaseTreeElement.prototype.onexpand):
2239 2011-12-15 Anders Carlsson <andersca@apple.com>
2241 Add ScrollingCoordinator class and ENABLE_THREADED_SCROLLING define
2242 https://bugs.webkit.org/show_bug.cgi?id=74639
2244 Reviewed by Andreas Kling.
2246 Add a ScrollingCoordinator class and make it a member of Page. Tear it down
2247 when the page goes away.
2249 * WebCore.xcodeproj/project.pbxproj:
2251 (WebCore::Page::Page):
2252 (WebCore::Page::~Page):
2254 (WebCore::Page::scrollingCoordinator):
2255 * page/ScrollingCoordinator.cpp: Added.
2256 (WebCore::ScrollingCoordinator::create):
2257 (WebCore::ScrollingCoordinator::ScrollingCoordinator):
2258 (WebCore::ScrollingCoordinator::~ScrollingCoordinator):
2259 (WebCore::ScrollingCoordinator::pageDestroyed):
2260 * page/ScrollingCoordinator.h: Added.
2262 2011-12-15 Kenneth Russell <kbr@google.com>
2264 Rename WEBKIT_lose_context to WEBKIT_WEBGL_lose_context
2265 https://bugs.webkit.org/show_bug.cgi?id=71870
2267 Reviewed by James Robinson.
2269 Re-landing after original commit was rolled out.
2271 Rename largely done with do-webcore-rename with a couple of
2272 necessary manual fixups. Ran WebGL layout tests.
2275 * DerivedSources.make:
2276 * DerivedSources.pri:
2277 * GNUmakefile.list.am:
2280 * WebCore.xcodeproj/project.pbxproj:
2281 * bindings/js/JSWebGLRenderingContextCustom.cpp:
2283 * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
2284 (WebCore::toV8Object):
2285 * html/canvas/WebGLExtension.h:
2286 * html/canvas/WebGLLoseContext.cpp: Copied from Source/WebCore/html/canvas/WebKitLoseContext.cpp.
2287 (WebCore::WebGLLoseContext::WebGLLoseContext):
2288 (WebCore::WebGLLoseContext::~WebGLLoseContext):
2289 (WebCore::WebGLLoseContext::getName):
2290 (WebCore::WebGLLoseContext::create):
2291 (WebCore::WebGLLoseContext::loseContext):
2292 (WebCore::WebGLLoseContext::restoreContext):
2293 * html/canvas/WebGLLoseContext.h: Copied from Source/WebCore/html/canvas/WebKitLoseContext.h.
2294 * html/canvas/WebGLLoseContext.idl: Copied from Source/WebCore/html/canvas/WebKitLoseContext.idl.
2295 * html/canvas/WebGLRenderingContext.cpp:
2296 (WebCore::WebGLRenderingContext::getExtension):
2297 (WebCore::WebGLRenderingContext::getSupportedExtensions):
2298 (WebCore::WebGLRenderingContext::maybeRestoreContext):
2299 * html/canvas/WebGLRenderingContext.h:
2300 * html/canvas/WebKitLoseContext.cpp: Removed.
2301 * html/canvas/WebKitLoseContext.h: Removed.
2302 * html/canvas/WebKitLoseContext.idl: Removed.
2304 2011-12-15 Brady Eidson <beidson@apple.com>
2306 https://bugs.webkit.org/show_bug.cgi?id=74631
2307 HTMLMediaElement should not register for document activation callbacks as it doesn't use them
2309 Reviewed by Eric Carlson.
2311 No new tests. (No behavior change, pruning useless code)
2313 * html/HTMLMediaElement.cpp:
2314 (WebCore::HTMLMediaElement::HTMLMediaElement):
2315 (WebCore::HTMLMediaElement::~HTMLMediaElement):
2316 (WebCore::HTMLMediaElement::willMoveToNewOwnerDocument):
2317 (WebCore::HTMLMediaElement::didMoveToNewOwnerDocument):
2319 2011-12-15 Eric Carlson <eric.carlson@apple.com>
2321 Text tracks should be treated differently according to their kind
2322 https://bugs.webkit.org/show_bug.cgi?id=72547
2324 Reviewed by Sam Weinig.
2326 Tests: media/track/track-default-attribute.html
2327 media/track/track-mode-not-changed-by-new-track.html
2328 media/track/track-mode-triggers-loading.html
2330 * html/HTMLAudioElement.cpp:
2331 (WebCore::HTMLAudioElement::HTMLAudioElement): Add "createdByParser" parameter.
2332 (WebCore::HTMLAudioElement::create): Ditto.
2333 (WebCore::HTMLAudioElement::createForJSConstructor): Deal with constructor change.
2334 * html/HTMLAudioElement.h:
2336 * html/HTMLMediaElement.cpp:
2337 (WebCore::HTMLMediaElement::HTMLMediaElement): Add "createdByParser" parameter. Initialize m_parsingInProgress.
2338 (WebCore::HTMLMediaElement::finishParsingChildren): Clear m_parsingInProgress. Schedule track
2339 loading if necessary.
2340 (WebCore::HTMLMediaElement::loadTimerFired): Call configureTextTracks not call scheduleLoad,
2341 it just schedules the load timer again.
2342 (WebCore::HTMLMediaElement::prepareForLoad): Add all non-disabled track elements to a vector
2343 so we can prevent the media element's readyState from reaching HAVE_METADATA until the
2345 (WebCore::HTMLMediaElement::textTracksAreReady): New. Return false unless all tracks that were
2346 not disabled when loading started have loaded or failed.
2347 (WebCore::HTMLMediaElement::textTrackReadyStateChanged): Call setReadyState when a track is
2349 (WebCore::HTMLMediaElement::textTrackModeChanged): Trigger <track> loading when the mode
2350 changes to hidden or showing for the first time.
2351 (WebCore::HTMLMediaElement::setReadyState): Do not advance to HAVE_METADATA or higher while
2352 track elements are loading.
2353 (WebCore::HTMLMediaElement::addTrack): Removed.
2354 (WebCore::HTMLMediaElement::showingTrackWithSameKind): New.
2355 (WebCore::HTMLMediaElement::trackWasAdded):
2356 (WebCore::HTMLMediaElement::trackWillBeRemoved): Flag a track as unconfigured so it will be
2357 reconfigured if it is added to another element.
2358 (WebCore::HTMLMediaElement::userIsInterestedInThisLanguage): New.
2359 (WebCore::HTMLMediaElement::userIsInterestedInThisTrack): New. Consider user preferences.
2360 (WebCore::HTMLMediaElement::configureTextTrack): New. Configure a track as per the user's preferences.
2361 (WebCore::HTMLMediaElement::configureTextTracks): New. Configure all track elements.
2362 * html/HTMLMediaElement.h:
2363 * html/HTMLMediaElement.h:
2365 * html/HTMLTagNames.in: Add constructorNeedsCreatedByParser to audio and video.
2367 * html/HTMLTrackElement.cpp:
2368 (WebCore::HTMLTrackElement::HTMLTrackElement): Initialize m_hasBeenConfigured.
2369 * html/HTMLTrackElement.h:
2370 (WebCore::HTMLTrackElement::hasBeenConfigured):
2371 (WebCore::HTMLTrackElement::setHasBeenConfigured):
2373 * html/HTMLVideoElement.cpp:
2374 (WebCore::HTMLVideoElement::HTMLVideoElement): Add "createdByParser" parameter.
2375 (WebCore::HTMLVideoElement::create): Ditto.
2376 * html/HTMLVideoElement.h:
2378 * html/TextTrack.cpp:
2379 (WebCore::TextTrack::TextTrack): Initialize m_mode to DISABLED, not HIDDEN. Initialize m_showingByDefault.
2380 (WebCore::TextTrack::setMode): Clear the "showing by default" flag when a track's mode is
2381 explicitly set to SHOWING.
2382 (WebCore::TextTrack::mode): Return SHOWING whenever the "showing by default" flag is set.
2384 (WebCore::TextTrack::showingByDefault):
2385 (WebCore::TextTrack::setShowingByDefault):
2387 * html/TextTrackCue.cpp:
2388 (WebCore::TextTrackCue::isActive): Return false if a cue has no track, or if its track is disabled.
2389 (WebCore::TextTrackCue::setIsActive): Don't enable a cue if it has no track, or if its track
2392 2011-12-15 Brady Eidson <beidson@apple.com>
2394 Unreviewed, rolling out r102829.
2395 http://trac.webkit.org/changeset/102829
2396 https://bugs.webkit.org/show_bug.cgi?id=74533
2398 Caused https://bugs.webkit.org/show_bug.cgi?id=74555
2400 * html/HTMLPlugInImageElement.cpp:
2401 (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
2402 (WebCore::HTMLPlugInImageElement::willMoveToNewOwnerDocument):
2403 (WebCore::HTMLPlugInImageElement::didMoveToNewOwnerDocument):
2404 (WebCore::HTMLPlugInImageElement::documentWillBecomeInactive):
2405 (WebCore::HTMLPlugInImageElement::documentDidBecomeActive):
2406 * html/HTMLPlugInImageElement.h:
2408 2011-12-15 James Simonsen <simonjam@chromium.org>
2410 [Navigation Timing] Use monotonicallyIncreasingTime() instead of currentTime()
2411 https://bugs.webkit.org/show_bug.cgi?id=58354
2413 Reviewed by Pavel Feldman.
2415 No new tests. Relies on existing webtiming-* tests.
2418 * GNUmakefile.list.am:
2421 * WebCore.vcproj/WebCore.vcproj:
2422 * WebCore.xcodeproj/project.pbxproj:
2423 * dom/Document.cpp: Use monotonic times.
2424 (WebCore::Document::setReadyState):
2425 (WebCore::Document::finishedParsing):
2426 * inspector/InspectorInstrumentation.cpp:
2427 (WebCore::InspectorInstrumentation::didFinishLoadingImpl): Convert monotonicFinishTime to wall time if needed.
2428 * inspector/InspectorResourceAgent.cpp:
2429 (WebCore::buildObjectForTiming): Convert monotonic requestTime to wall time.
2430 (WebCore::buildObjectForResourceResponse): Plumbing for above.
2431 (WebCore::buildObjectForCachedResource): Ditto.
2432 (WebCore::InspectorResourceAgent::willSendRequest): Ditto.
2433 (WebCore::InspectorResourceAgent::didReceiveResponse): Ditto.
2434 (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache): Ditto.
2435 * loader/DocumentLoadTiming.cpp: Added.
2436 (WebCore::DocumentLoadTiming::DocumentLoadTiming):
2437 (WebCore::DocumentLoadTiming::setNavigationStart): Determine reference time and root reference time.
2438 (WebCore::DocumentLoadTiming::addRedirect): Moved logic from MainResourceLoader.
2439 (WebCore::DocumentLoadTiming::convertMonotonicTimeToDocumentTime): Helper to compute wall time from monotonic time.
2440 * loader/DocumentLoadTiming.h: Turned into class. Made times monotonic.
2441 (WebCore::DocumentLoadTiming::setUnloadEventStart):
2442 (WebCore::DocumentLoadTiming::setUnloadEventEnd):
2443 (WebCore::DocumentLoadTiming::setRedirectStart):
2444 (WebCore::DocumentLoadTiming::setRedirectEnd):
2445 (WebCore::DocumentLoadTiming::setFetchStart):
2446 (WebCore::DocumentLoadTiming::setResponseEnd):
2447 (WebCore::DocumentLoadTiming::setLoadEventStart):
2448 (WebCore::DocumentLoadTiming::setLoadEventEnd):
2449 (WebCore::DocumentLoadTiming::setHasSameOriginAsPreviousDocument):
2450 (WebCore::DocumentLoadTiming::navigationStart):
2451 (WebCore::DocumentLoadTiming::unloadEventStart):
2452 (WebCore::DocumentLoadTiming::unloadEventEnd):
2453 (WebCore::DocumentLoadTiming::redirectStart):
2454 (WebCore::DocumentLoadTiming::redirectEnd):
2455 (WebCore::DocumentLoadTiming::redirectCount):
2456 (WebCore::DocumentLoadTiming::fetchStart):
2457 (WebCore::DocumentLoadTiming::responseEnd):
2458 (WebCore::DocumentLoadTiming::loadEventStart):
2459 (WebCore::DocumentLoadTiming::loadEventEnd):
2460 (WebCore::DocumentLoadTiming::hasCrossOriginRedirect):
2461 (WebCore::DocumentLoadTiming::hasSameOriginAsPreviousDocument):
2462 * loader/FrameLoader.cpp:
2463 (WebCore::FrameLoader::stopLoading):
2464 (WebCore::FrameLoader::commitProvisionalLoad):
2465 (WebCore::FrameLoader::continueLoadAfterWillSubmitForm):
2466 (WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
2467 * loader/MainResourceLoader.cpp:
2468 (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
2469 (WebCore::MainResourceLoader::willSendRequest): Moved logic to DocumentLoadTiming.
2470 (WebCore::MainResourceLoader::didReceiveData): Use monotonic time.
2471 (WebCore::MainResourceLoader::didFinishLoading): Ditto.
2472 (WebCore::MainResourceLoader::load):
2473 * page/DOMWindow.cpp:
2474 (WebCore::DOMWindow::dispatchLoadEvent):
2475 * page/DOMWindow.h: Removed dispatchTimedEvent. It doesn't really help in the new model.
2476 * page/PerformanceNavigation.cpp:
2477 (WebCore::PerformanceNavigation::redirectCount):
2478 * page/PerformanceTiming.cpp: Removed skew correction code. This should never happen now.
2479 (WebCore::PerformanceTiming::navigationStart):
2480 (WebCore::PerformanceTiming::unloadEventStart):
2481 (WebCore::PerformanceTiming::unloadEventEnd):
2482 (WebCore::PerformanceTiming::redirectStart):
2483 (WebCore::PerformanceTiming::redirectEnd):
2484 (WebCore::PerformanceTiming::fetchStart):
2485 (WebCore::PerformanceTiming::responseEnd):
2486 (WebCore::PerformanceTiming::domLoading):
2487 (WebCore::PerformanceTiming::domInteractive):
2488 (WebCore::PerformanceTiming::domContentLoadedEventStart):
2489 (WebCore::PerformanceTiming::domContentLoadedEventEnd):
2490 (WebCore::PerformanceTiming::domComplete):
2491 (WebCore::PerformanceTiming::loadEventStart):
2492 (WebCore::PerformanceTiming::loadEventEnd):
2493 (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute): Used for ResourceLoadTiming.
2494 (WebCore::PerformanceTiming::monotonicTimeToIntegerMilliseconds): Used for DocumentTiming and DocumentLoadTiming.
2495 * page/PerformanceTiming.h:
2496 * platform/network/ResourceLoadTiming.cpp:
2497 (WebCore::ResourceLoadTiming::convertResourceLoadTimeToDocumentTime):
2498 * platform/network/ResourceLoadTiming.h: Added helper function to convert to wall times. Added instructions for use.
2500 2011-12-15 Martin Robinson <mrobinson@igalia.com>
2504 [GTK] Plugins sometimes crash WebKitGTK+ with Gdk-CRITICAL **: gdk_window_get_toplevel: assertion `GDK_IS_WINDOW (window)' failed
2505 https://bugs.webkit.org/show_bug.cgi?id=73719
2507 Reviewed by Philippe Normand.
2509 No new tests. It's difficult to test or reproduce this exact situation
2510 as it only occurs when running plugins under nspluginwrapper.
2512 * plugins/gtk/PluginViewGtk.cpp:
2513 (WebCore::PluginView::platformGetValue): Properly handle when the plugin tries to
2514 get the window value when the GtkSocket is no longer realized.
2516 2011-12-15 Martin Kosiba <mkosiba@google.com>
2518 Fix find on web pages with -webkit-user-select: none for Chromium
2519 https://bugs.webkit.org/show_bug.cgi?id=72281
2521 Reviewed by Ryosuke Niwa.
2523 Adding findStringAndScrollToVisible to Editor. This new method returns
2524 the new match as a range rather than modify the active selection.
2526 Test: editing/text-iterator/findString-selection-disabled.html
2528 * editing/Editor.cpp:
2529 (WebCore::Editor::findStringAndScrollToVisible):
2532 2011-12-14 Anders Carlsson <andersca@apple.com>
2534 Add WTF::Function to wtf/Forward.h
2535 https://bugs.webkit.org/show_bug.cgi?id=74576
2537 Reviewed by Adam Roben.
2539 * bindings/scripts/CodeGeneratorJS.pm:
2540 (GenerateImplementation):
2541 Add a JSC:: qualifier to the Function flags to avoid ambiguities.
2543 2011-12-15 Julien Chaffraix <jchaffraix@webkit.org>
2545 Hardware-backed renderLayer could avoid repainting during a positioned movement layout
2546 https://bugs.webkit.org/show_bug.cgi?id=74370
2548 Reviewed by Simon Fraser.
2550 Tests: compositing/absolute-position-changed-in-composited-layer.html
2551 compositing/absolute-position-changed-with-composited-parent-layer.html
2552 compositing/fixed-position-changed-in-composited-layer.html
2553 compositing/fixed-position-changed-within-composited-parent-layer.html
2555 To be able to properly skip repainting after a positioned movement layout only, we
2556 needed to add more state to the current |setNeedsFullRepaint| method. As part of that
2557 we refactored the callers and internal fields to better match the new meaning.
2559 * rendering/RenderBoxModelObject.cpp:
2560 (WebCore::RenderBoxModelObject::styleDidChange):
2561 Explicitely gave the RepaintStatus to setRepaintStatus.
2563 * rendering/RenderLayer.cpp:
2564 (WebCore::RenderLayer::RenderLayer):
2565 (WebCore::RenderLayer::removeOnlyThisLayer):
2566 Updated those function after the renamings.
2568 (WebCore::RenderLayer::updateLayerPositions):
2569 Ditto. Also added a sholdRepaintAfterLayout check.
2571 (WebCore::RenderLayer::shouldRepaintAfterLayout):
2572 Heart of the optimization, if we just did a positioned movement layout of composited RenderLayer,
2573 then don't repaint. All the other cases should still trigger a repaint.
2575 * rendering/RenderLayer.h:
2576 (WebCore::RenderLayer::setRepaintStatus):
2577 Renamed setNeedsFullRepaint to setRepaintStatus. Also added a new enum RepaintStatus.
2579 * rendering/RenderObject.cpp:
2580 (WebCore::RenderObject::setLayerNeedsFullRepaint):
2581 Updated after the renamings.
2583 (WebCore::RenderObject::setLayerNeedsFullRepaintForPositionedMovementLayout):
2584 New method that pass a new value to the RenderLayer.
2586 * rendering/RenderObject.h:
2587 (WebCore::RenderObject::setNeedsPositionedMovementLayout):
2588 Switched the call to the dedicated method.
2590 2011-12-15 Antti Koivisto <antti@apple.com>
2592 Don't invoke CSSStyleSelector::pushParent before Text::recalcTextStyle
2593 https://bugs.webkit.org/show_bug.cgi?id=74575
2595 Reviewed by Darin Adler.
2597 Text::recalcTextStyle never enters the style selector so pushing the state is not necessary
2600 (WebCore::Element::recalcStyle):
2602 2011-12-15 Chris Marrin <cmarrin@apple.com>
2604 Fixed error in Target.pri.
2610 2011-12-15 Alexander Pavlov <apavlov@chromium.org>
2612 Web Inspector: #hex colors are not highlighted in CSS files
2613 https://bugs.webkit.org/show_bug.cgi?id=74570
2615 Reviewed by Pavel Feldman.
2617 Drive by: highlight color keywords as colors, not as keywords.
2619 * inspector/front-end/CSSKeywordCompletions.js:
2620 (WebInspector.CSSKeywordCompletions.colors):
2621 * inspector/front-end/SourceCSSTokenizer.js:
2622 (WebInspector.SourceCSSTokenizer):
2623 (WebInspector.SourceCSSTokenizer.prototype.nextToken):
2624 * inspector/front-end/SourceCSSTokenizer.re2js:
2626 2011-12-14 Chris Marrin <cmarrin@apple.com>
2628 Hardware acceleration of W3C Filter Effects
2629 https://bugs.webkit.org/show_bug.cgi?id=68479
2631 Reviewed by Simon Fraser.
2633 Move FilterOperation(s) to platform/graphics/filters so it can be used to pass filter information
2634 down to GraphicsLayer for hardware acceleration. This leaves the CustomFilterOperation subclass in
2635 rendering/style since it has dependencies outside platform. Some part of that class will
2636 eventually need to be down in platform.
2639 * GNUmakefile.list.am:
2642 * WebCore.vcproj/WebCore.vcproj:
2643 * WebCore.xcodeproj/project.pbxproj:
2644 * platform/graphics/filters/FilterOperation.cpp: Renamed from Source/WebCore/rendering/style/FilterOperation.cpp.
2645 (WebCore::BasicColorMatrixFilterOperation::blend):
2646 (WebCore::BasicColorMatrixFilterOperation::passthroughAmount):
2647 (WebCore::BasicComponentTransferFilterOperation::blend):
2648 (WebCore::BasicComponentTransferFilterOperation::passthroughAmount):
2649 (WebCore::GammaFilterOperation::blend):
2650 (WebCore::BlurFilterOperation::blend):
2651 (WebCore::DropShadowFilterOperation::blend):
2652 * platform/graphics/filters/FilterOperation.h: Renamed from Source/WebCore/rendering/style/FilterOperation.h.
2653 (WebCore::FilterOperation::~FilterOperation):
2654 (WebCore::FilterOperation::operator!=):
2655 (WebCore::FilterOperation::blend):
2656 (WebCore::FilterOperation::getOperationType):
2657 (WebCore::FilterOperation::isSameType):
2658 (WebCore::FilterOperation::FilterOperation):
2659 (WebCore::PassthroughFilterOperation::create):
2660 (WebCore::PassthroughFilterOperation::operator==):
2661 (WebCore::PassthroughFilterOperation::PassthroughFilterOperation):
2662 (WebCore::ReferenceFilterOperation::create):
2663 (WebCore::ReferenceFilterOperation::reference):
2664 (WebCore::ReferenceFilterOperation::operator==):
2665 (WebCore::ReferenceFilterOperation::ReferenceFilterOperation):
2666 (WebCore::BasicColorMatrixFilterOperation::create):
2667 (WebCore::BasicColorMatrixFilterOperation::amount):
2668 (WebCore::BasicColorMatrixFilterOperation::operator==):
2669 (WebCore::BasicColorMatrixFilterOperation::BasicColorMatrixFilterOperation):
2670 (WebCore::BasicComponentTransferFilterOperation::create):
2671 (WebCore::BasicComponentTransferFilterOperation::amount):
2672 (WebCore::BasicComponentTransferFilterOperation::operator==):
2673 (WebCore::BasicComponentTransferFilterOperation::BasicComponentTransferFilterOperation):
2674 (WebCore::GammaFilterOperation::create):
2675 (WebCore::GammaFilterOperation::amplitude):
2676 (WebCore::GammaFilterOperation::exponent):
2677 (WebCore::GammaFilterOperation::offset):
2678 (WebCore::GammaFilterOperation::operator==):
2679 (WebCore::GammaFilterOperation::GammaFilterOperation):
2680 (WebCore::BlurFilterOperation::create):
2681 (WebCore::BlurFilterOperation::stdDeviationX):
2682 (WebCore::BlurFilterOperation::stdDeviationY):
2683 (WebCore::BlurFilterOperation::operator==):
2684 (WebCore::BlurFilterOperation::BlurFilterOperation):
2685 (WebCore::SharpenFilterOperation::create):
2686 (WebCore::SharpenFilterOperation::amount):
2687 (WebCore::SharpenFilterOperation::radius):
2688 (WebCore::SharpenFilterOperation::threshold):
2689 (WebCore::SharpenFilterOperation::operator==):
2690 (WebCore::SharpenFilterOperation::SharpenFilterOperation):
2691 (WebCore::DropShadowFilterOperation::create):
2692 (WebCore::DropShadowFilterOperation::x):
2693 (WebCore::DropShadowFilterOperation::y):
2694 (WebCore::DropShadowFilterOperation::stdDeviation):
2695 (WebCore::DropShadowFilterOperation::color):
2696 (WebCore::DropShadowFilterOperation::operator==):
2697 (WebCore::DropShadowFilterOperation::DropShadowFilterOperation):
2698 * platform/graphics/filters/FilterOperations.cpp: Renamed from Source/WebCore/rendering/style/FilterOperations.cpp.
2699 (WebCore::FilterOperations::FilterOperations):
2700 (WebCore::FilterOperations::operator==):
2701 (WebCore::FilterOperations::operationsMatch):
2702 * platform/graphics/filters/FilterOperations.h: Renamed from Source/WebCore/rendering/style/FilterOperations.h.
2703 (WebCore::FilterOperations::operator!=):
2704 (WebCore::FilterOperations::clear):
2705 (WebCore::FilterOperations::operations):
2706 (WebCore::FilterOperations::size):
2707 (WebCore::FilterOperations::at):
2709 2011-12-15 Igor Oliveira <igor.oliveira@openbossa.org>
2711 [Qt] Support requestAnimationFrame API
2712 https://bugs.webkit.org/show_bug.cgi?id=74528
2714 Add necessary files to Target.pri when enabling requestAnimationFrame option.
2716 Reviewed by Kenneth Rohde Christiansen.
2720 2011-12-15 Otto Cheung <ocheung@rim.com>
2722 Removing BlackBerryCookieCache from the build system
2723 https://bugs.webkit.org/show_bug.cgi?id=74318
2725 Reviewed by Rob Buis.
2727 Removing any references to BlackBerryCookieCache in files that are upstreamed.
2729 We are removing the BlackBerryCookieCache because the CookieManager cookie structure has been
2730 refactored to have a similar structure to the cache. Since the read speeds in both structures
2731 are similar, we no longer need the cache to speed up read performance.
2733 No new tests, this patch by itself will not work. This patch is only removing
2734 the references to BlackBerryCookieCache in files that are upstreamed.
2736 * PlatformBlackBerry.cmake:
2737 * platform/network/blackberry/NetworkJob.cpp:
2738 (WebCore::NetworkJob::handleNotifyHeaderReceived):
2740 2011-12-15 Kenneth Rohde Christiansen <kenneth@webkit.org>
2742 [Qt] Mobile theme improvements
2744 Rubberstamped by Simon Hausmann.
2746 - Invert the gradient on the checkboxes
2747 - Make the buttons on the multi select combobox work on floats
2750 * platform/qt/RenderThemeQtMobile.cpp:
2751 (WebCore::StylePainterMobile::drawCheckableBackground):
2752 (WebCore::StylePainterMobile::drawMultipleComboButton):
2753 (WebCore::StylePainterMobile::getButtonImageSize):
2754 (WebCore::StylePainterMobile::drawComboBox):
2756 2011-12-15 Peter Rybin <peter.rybin@gmail.com>
2758 Web Inspector: CodeGeneratorInspector.py convert script conditions to precompiler #ifs
2759 https://bugs.webkit.org/show_bug.cgi?id=74534
2761 Reviewed by Pavel Feldman.
2763 Generator is rewritten to add #if's to output.
2765 * inspector/CodeGeneratorInspector.py:
2766 (DomainNameFixes.get_fixed_data.Res.get_guard.Guard.generate_open):
2767 (DomainNameFixes.get_fixed_data.Res.get_guard.Guard):
2768 (DomainNameFixes.get_fixed_data.Res.get_guard.Guard.generate_close):
2769 (DomainNameFixes.get_fixed_data.Res):
2770 (DomainNameFixes.get_fixed_data.Res.get_guard):
2772 (Generator.process_event):
2773 (Generator.process_command):
2774 (Generator.process_types):
2776 2011-12-15 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
2778 [Qt][WK2] Setting Download as action for navigation request crashes WebProcess
2779 https://bugs.webkit.org/show_bug.cgi?id=74526
2781 Reviewed by Simon Hausmann.
2783 Adding checks for networkcontext and networkAccessManager
2784 and return true in case they don't exist, following the same
2785 logic as if the CookieJar doesn't exist.
2787 * platform/qt/ThirdPartyCookiesQt.cpp:
2788 (WebCore::thirdPartyCookiePolicyPermits):
2790 2011-12-14 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
2792 [Qt] Get rid of layering violation in PluginViewQt
2794 PluginViewQt has a layering violation in relying on QWebPagePrivate for
2795 the check if running under DRT. We remove this and add a specific flag
2796 in the PluginView for this check, enabled from DRTSupport. This isn't
2797 pretty, but an improvement over what's currently there.
2799 Reviewed by Simon Hausmann.
2801 * plugins/PluginView.h:
2802 * plugins/qt/PluginViewQt.cpp:
2803 (WebCore::PluginView::updatePluginWidget):
2804 (WebCore::setXKeyEventSpecificFields):
2806 2011-12-14 Vsevolod Vlasov <vsevik@chromium.org>
2808 Web Inspector: Console should show network messages origins.
2809 https://bugs.webkit.org/show_bug.cgi?id=74521
2811 Reviewed by Pavel Feldman.
2813 * inspector/front-end/ConsoleMessage.js:
2814 (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
2816 2011-12-15 Rakesh KN <rakesh.kn@motorola.com>
2818 "user-select none" causes selection to incorrectly escape from clicked container
2819 https://bugs.webkit.org/show_bug.cgi?id=57289
2821 Reviewed by Ryosuke Niwa.
2823 Not selecting the nearest word from the target node if target node has -webkit-user-select:none
2825 Test: fast/events/mouse-double-triple-click-should-not-select-next-node-for-user-select-none.html
2827 * page/EventHandler.cpp:
2828 (WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart):
2829 If target node has webkit-user-select:none style then do not update the selection.
2831 2011-12-13 Andrey Kosyakov <caseq@chromium.org>
2833 Web Inspector: Generated HAR is missing pages.startedDateTime
2834 https://bugs.webkit.org/show_bug.cgi?id=74188
2836 Reviewed by Pavel Feldman.
2838 * inspector/front-end/HAREntry.js:
2839 (WebInspector.HARLog.prototype._buildPages):
2840 * inspector/front-end/NetworkLog.js:
2841 (WebInspector.NetworkLog):
2842 (WebInspector.NetworkLog.prototype.get mainResourceStartTime):
2843 (WebInspector.NetworkLog.prototype._mainFrameNavigated):
2844 * inspector/front-end/NetworkPanel.js:
2845 (WebInspector.NetworkLogView.prototype._updateSummaryBar):
2847 2011-12-15 Kenichi Ishibashi <bashi@chromium.org>
2849 Supports Unicode variation selector
2850 https://bugs.webkit.org/show_bug.cgi?id=50999
2852 Reviewed by Nikolas Zimmermann.
2854 Adds SimpleFontData::updateGlyphWithVariationSelector() which substitutes the
2855 glyph in question based on the selector. WidthIterator::advance() calls it
2856 when an unicode variation selector follows the character.
2858 Test: fast/text/unicode-variation-selector.html
2860 * platform/graphics/SimpleFontData.h: Added updateGlyphWithVariationSelector().
2861 * platform/graphics/SurrogatePairAwareTextIterator.cpp:
2862 (WebCore::isUnicodeBMPVariationSelector): Added.
2863 (WebCore::isUnicodeSupplementaryVariationSelector): Added.
2864 (WebCore::SurrogatePairAwareTextIterator::hasTrailingVariationSelector): Added.
2865 * platform/graphics/SurrogatePairAwareTextIterator.h:
2866 * platform/graphics/WidthIterator.cpp:
2867 (WebCore::WidthIterator::advance): Changed to detect variation selectors.
2868 * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
2869 (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Added.
2870 * platform/graphics/chromium/SimpleFontDataLinux.cpp:
2871 (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2872 * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
2873 (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2874 * platform/graphics/mac/SimpleFontDataMac.mm:
2875 (WebCore::decomposeToUTF16): Ditto.
2876 (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2877 * platform/graphics/pango/SimpleFontDataPango.cpp:
2878 (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2879 * platform/graphics/qt/SimpleFontDataQt.cpp:
2880 (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2881 * platform/graphics/win/SimpleFontDataWin.cpp:
2882 (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2883 * platform/graphics/wince/SimpleFontDataWinCE.cpp:
2884 (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2885 * platform/graphics/wx/SimpleFontDataWx.cpp:
2886 (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2888 2011-12-15 Alexander Pavlov <apavlov@chromium.org>
2890 [v8] Expose the "filter" property in V8CSSStyleDeclaration
2891 https://bugs.webkit.org/show_bug.cgi?id=73426
2893 Reviewed by Adam Barth.
2895 Test: fast/css/style-enumerate-properties.html
2897 The "filter" CSS property used to be masked to be compliant with JSC, but JSC has supported
2898 this property for quite a while.
2900 * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
2901 (WebCore::hasCSSPropertyNamePrefix): clean up WTF prefixes
2902 (WebCore::cssPropertyInfo): remove the "wasFilter" flag
2903 (WebCore::V8CSSStyleDeclaration::namedPropertyEnumerator): remove the "filter" check
2904 (WebCore::V8CSSStyleDeclaration::namedPropertyGetter): return the "filter" value as v8String
2906 2011-12-15 Hajime Morrita <morrita@chromium.org>
2908 Unreviewed build fix attempt for Chromium Mac.
2910 * page/PerformanceTiming.h:
2912 2011-12-15 Alexander Pavlov <apavlov@chromium.org>
2914 Unreviewed, build fix after r102906 (poor merge).
2916 * inspector/front-end/ProfileView.js:
2917 (WebInspector.CPUProfileType.prototype.buttonClicked):
2919 2011-12-15 Vsevolod Vlasov <vsevik@chromium.org>
2921 Unreviewed revert of r102696 ([Navigation Timing] Use monotonicallyIncreasingTime() instead of currentTime()).
2922 Breaks inspector's network panel timeline on chromium.
2925 * GNUmakefile.list.am:
2928 * WebCore.vcproj/WebCore.vcproj:
2929 * WebCore.xcodeproj/project.pbxproj:
2931 (WebCore::Document::setReadyState):
2932 (WebCore::Document::finishedParsing):
2933 * inspector/InspectorInstrumentation.cpp:
2934 (WebCore::InspectorInstrumentation::didFinishLoadingImpl):
2935 * inspector/InspectorResourceAgent.cpp:
2936 (WebCore::buildObjectForTiming):
2937 (WebCore::buildObjectForResourceResponse):
2938 (WebCore::buildObjectForCachedResource):
2939 (WebCore::InspectorResourceAgent::willSendRequest):
2940 (WebCore::InspectorResourceAgent::didReceiveResponse):
2941 (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
2942 * loader/DocumentLoadTiming.cpp: Removed.
2943 * loader/DocumentLoadTiming.h:
2944 (WebCore::DocumentLoadTiming::DocumentLoadTiming):
2945 * loader/FrameLoader.cpp:
2946 (WebCore::FrameLoader::stopLoading):
2947 (WebCore::FrameLoader::commitProvisionalLoad):
2948 (WebCore::FrameLoader::continueLoadAfterWillSubmitForm):
2949 (WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
2950 * loader/MainResourceLoader.cpp:
2951 (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
2952 (WebCore::MainResourceLoader::willSendRequest):
2953 (WebCore::MainResourceLoader::didReceiveData):
2954 (WebCore::MainResourceLoader::didFinishLoading):
2955 (WebCore::MainResourceLoader::load):
2956 * page/DOMWindow.cpp:
2957 (WebCore::DOMWindow::dispatchLoadEvent):
2958 (WebCore::DOMWindow::dispatchTimedEvent):
2960 * page/PerformanceNavigation.cpp:
2961 (WebCore::PerformanceNavigation::redirectCount):
2962 * page/PerformanceTiming.cpp:
2963 (WebCore::getPossiblySkewedTimeInKnownRange):
2964 (WebCore::PerformanceTiming::navigationStart):
2965 (WebCore::PerformanceTiming::unloadEventStart):
2966 (WebCore::PerformanceTiming::unloadEventEnd):
2967 (WebCore::PerformanceTiming::redirectStart):
2968 (WebCore::PerformanceTiming::redirectEnd):
2969 (WebCore::PerformanceTiming::fetchStart):
2970 (WebCore::PerformanceTiming::responseEnd):
2971 (WebCore::PerformanceTiming::domLoading):
2972 (WebCore::PerformanceTiming::domInteractive):
2973 (WebCore::PerformanceTiming::domContentLoadedEventStart):
2974 (WebCore::PerformanceTiming::domContentLoadedEventEnd):
2975 (WebCore::PerformanceTiming::domComplete):
2976 (WebCore::PerformanceTiming::loadEventStart):
2977 (WebCore::PerformanceTiming::loadEventEnd):
2978 (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute):
2979 * page/PerformanceTiming.h:
2980 * platform/network/ResourceLoadTiming.cpp: Removed.
2981 * platform/network/ResourceLoadTiming.h:
2983 2011-12-15 Alexander Pavlov <apavlov@chromium.org>
2985 Unreviewed, fix Closure compiler warnings after r102905.
2987 * inspector/front-end/CSSStyleModel.js: Add JSDoc annotations
2989 2011-12-14 Alexander Pavlov <apavlov@chromium.org>
2991 Web Inspector: make ProfilesPanel scale as the number of ProfileTypes grows
2992 https://bugs.webkit.org/show_bug.cgi?id=74391
2994 Reviewed by Pavel Feldman.
2996 Whenever a profile is started, this change disables all profile recording buttons, except the one
2997 that correponds to the running profile. Once the profiling is finished, all buttons get enabled back again.
2999 * English.lproj/localizedStrings.js:
3000 * inspector/front-end/ProfileView.js:
3001 (WebInspector.CPUProfileView.profileCallback):
3002 (WebInspector.CPUProfileType.prototype.get buttonTooltip):
3003 (WebInspector.CPUProfileType.prototype.get buttonStyle):
3004 (WebInspector.CPUProfileType.prototype.buttonClicked):
3005 * inspector/front-end/ProfilesPanel.js:
3006 (WebInspector.ProfilesPanel.prototype.get statusBarItems.clickHandler):
3007 (WebInspector.ProfilesPanel.prototype.get statusBarItems):
3008 (WebInspector.ProfilesPanel.prototype._addProfileHeader):
3009 (WebInspector.ProfilesPanel.prototype.updateProfileTypeButtons):
3010 (WebInspector.ProfilesPanel.prototype._updateInterface):
3011 (WebInspector.ProfilesPanel.prototype.setRecordingProfile):
3012 (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot):
3013 (WebInspector.ProfilesPanel.prototype._reportHeapSnapshotProgress):
3014 (WebInspector.ProfilerDispatcher.prototype.setRecordingProfile):
3015 * inspector/front-end/inspector.css:
3016 (.record-cpu-profile-status-bar-item .glyph):
3017 (.record-cpu-profile-status-bar-item.toggled-on .glyph):
3019 2011-12-15 Alexander Pavlov <apavlov@chromium.org>
3021 Web Inspector: [Styles] Update selected DOM element styles whenever applicable media queries change
3022 https://bugs.webkit.org/show_bug.cgi?id=74292
3024 The change introduces and handles in the frontend a new event type for the CSS domain,
3025 "mediaQueryResultChanged", which gets fired every time a viewport-dependent media feature
3026 changes its value. This allows users to see live changes of the (media-dependent) matched
3027 rules for inspected elements.
3029 Reviewed by Pavel Feldman.
3031 * inspector/CodeGeneratorInspector.py:
3033 * inspector/Inspector.json:
3034 * inspector/InspectorCSSAgent.cpp:
3035 (WebCore::InspectorCSSAgent::InspectorCSSAgent):
3036 (WebCore::InspectorCSSAgent::setFrontend):
3037 (WebCore::InspectorCSSAgent::clearFrontend):
3038 (WebCore::InspectorCSSAgent::restore):
3039 (WebCore::InspectorCSSAgent::enable):
3040 (WebCore::InspectorCSSAgent::disable):
3041 (WebCore::InspectorCSSAgent::mediaQueryResultChanged):
3042 * inspector/InspectorCSSAgent.h:
3043 * inspector/InspectorInstrumentation.cpp:
3044 (WebCore::InspectorInstrumentation::mediaQueryResultChangedImpl):
3045 * inspector/InspectorInstrumentation.h:
3046 (WebCore::InspectorInstrumentation::mediaQueryResultChanged):
3047 * inspector/front-end/CSSStyleModel.js:
3048 (WebInspector.CSSStyleModel):
3049 (WebInspector.CSSStyleModel.prototype.mediaQueryResultChanged):
3050 (WebInspector.CSSDispatcher):
3051 (WebInspector.CSSDispatcher.prototype.mediaQueryResultChanged):
3052 * inspector/front-end/MetricsSidebarPane.js:
3053 (WebInspector.MetricsSidebarPane):
3054 (WebInspector.MetricsSidebarPane.prototype._styleSheetOrMediaQueryResultChanged):
3055 * inspector/front-end/StylesSidebarPane.js:
3056 (WebInspector.StylesSidebarPane):
3057 (WebInspector.StylesSidebarPane.prototype._styleSheetOrMediaQueryResultChanged):
3058 * page/FrameView.cpp:
3059 (WebCore::FrameView::layout):
3061 2011-12-14 Vsevolod Vlasov <vsevik@chromium.org>
3063 Web Inspector: [Regression] Network manager fails to show resource type and MIME type in incorrect MIME type console message.
3064 https://bugs.webkit.org/show_bug.cgi?id=74516
3066 Reviewed by Pavel Feldman.
3068 Test: http/tests/inspector/network/script-as-text-loading.html
3070 * inspector/front-end/ConsoleMessage.js:
3071 (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
3072 * inspector/front-end/NetworkManager.js:
3073 (WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse):
3075 2011-11-03 Kent Tamura <tkent@chromium.org>
3077 A spin button changes the value incorrectly if it is clicked after touch events.
3078 https://bugs.webkit.org/show_bug.cgi?id=71181
3080 Reviewed by Ryosuke Niwa.
3082 SpinButtonElement assumed setHovered(true) was always called before a
3083 mousemove event in the element. It is not true for touch events.
3085 We should not reset m_upDownState to Indetermiante in setHovered(true),
3086 and should reset it when the mouse pointer moves out.
3088 This change fixes the flakiness of fast/forms/input-step-as-double.html.
3090 Test: fast/events/touch/touch-before-pressing-spin-button.html
3092 * html/shadow/TextControlInnerElements.cpp:
3093 (WebCore::SpinButtonElement::defaultEventHandler):
3094 Add an assertion that m_upDownState should not be Indetermiante.
3095 Reset m_upDownState to Indeterminate when the mouse pointer moves out
3097 (WebCore::SpinButtonElement::setHovered):
3098 Reset m_upDownState to Indeterminate when the element becomes unhovered.
3100 2011-12-14 Lucas Forschler <lforschler@apple.com>
3102 https://bugs.webkit.org/show_bug.cgi?id=74543
3103 Add CSS*.cpp to a new CSSAllInOne.cpp file with two exceptions:
3105 CSSPrimitiveValue.cpp
3106 Adding these two broke things with a templates problem that was not easily fixable.
3108 Reviewed by Steve Falkenburg.
3110 * WebCore.vcproj/WebCore.vcproj:
3111 * css/CSSAllInOne.cpp: Added.
3113 2011-12-14 Tim Horton <timothy_horton@apple.com>
3115 Generated images should respect the accelerated state of the context they're going to be drawn into
3116 https://bugs.webkit.org/show_bug.cgi?id=74577
3117 <rdar://problem/10584392>
3119 Reviewed by Simon Fraser.
3121 The tiled code path for GeneratorGeneratedImage and CrossfadeGeneratedImage blindly creates
3122 an unaccelerated ImageBuffer. Instead, take into account the accelerated state of the destination context.
3124 No new tests, as this is a simple performance improvement.
3126 * platform/graphics/CrossfadeGeneratedImage.cpp:
3127 (WebCore::CrossfadeGeneratedImage::drawPattern):
3128 * platform/graphics/GeneratorGeneratedImage.cpp:
3129 (WebCore::GeneratorGeneratedImage::drawPattern):
3131 2011-12-14 Ilya Tikhonovsky <loislo@chromium.org>
3133 Web Inspector: cleanup unused variable introduced at r102803
3135 * inspector/front-end/NetworkManager.js:
3136 (WebInspector.NetworkManager.prototype.enableResourceTracking):
3137 (WebInspector.NetworkManager.prototype.disableResourceTracking):
3139 2011-12-14 Wei James <james.wei@intel.com>
3141 fast path to accelerate processing in AudioBus::processWithGainFromMonoStereo
3142 https://bugs.webkit.org/show_bug.cgi?id=74054
3144 Reviewed by Kenneth Russell.
3146 Avoid de-zippering when the gain has converged on the targetGain.
3147 It can get about 75% performance gain at most when all frames don't need
3150 * platform/audio/AudioBus.cpp:
3151 (WebCore::AudioBus::processWithGainFromMonoStereo):
3153 2011-12-14 Adam Klein <adamk@chromium.org>
3155 Optimize MutationObserverInterestGroup construction
3156 https://bugs.webkit.org/show_bug.cgi?id=74563
3158 Reviewed by Ojan Vafai.
3160 Inline MutationObserverInterestGroup's creation methods and fix an
3161 accidental pass-by-value in an attempt to further reduce the CPU
3162 footprint of MutationObservers.
3164 No new tests, refactor only.
3166 * dom/WebKitMutationObserver.cpp:
3167 (WebCore::MutationObserverInterestGroup::MutationObserverInterestGroup): Pass observers HashMap by reference.
3168 * dom/WebKitMutationObserver.h:
3169 (WebCore::MutationObserverInterestGroup::createForChildListMutation): Inline.
3170 (WebCore::MutationObserverInterestGroup::createForCharacterDataMutation): Inline.
3171 (WebCore::MutationObserverInterestGroup::createForAttributesMutation): Inline.
3172 (WebCore::MutationObserverInterestGroup::hasOldValue): Remove spurious inline keyword.
3174 2011-12-14 Dominic Mazzoni <dmazzoni@google.com>
3176 Seeing crash in DRT after loading-iframe-sends-notification.html land
3177 https://bugs.webkit.org/show_bug.cgi?id=72624
3179 When an iframe finishes loading, send an accessibility notification
3180 on the renderer, rather than on a parent node. The only reason it was
3181 being posted on a parent before was because there was no way to detect
3182 that in a test. This is simpler and now covered by the test.
3184 Reviewed by Chris Fleizach.
3186 Updates existing test:
3187 accessibility/loading-iframe-sends-notification.html
3190 (WebCore::Document::implicitClose):
3192 2011-12-14 Nat Duca <nduca@chromium.org>
3194 [chromium] Add inhibitDraw to CCScheduler and drop root impl to prevent background flash on tab restore
3195 https://bugs.webkit.org/show_bug.cgi?id=74351
3197 Reviewed by James Robinson.
3199 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3200 (WebCore::CCLayerTreeHost::setNeedsCommit):
3201 (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread):
3202 * platform/graphics/chromium/cc/CCScheduler.cpp:
3203 (WebCore::CCScheduler::getNextAction):
3204 (WebCore::CCScheduler::processScheduledActions):
3205 * platform/graphics/chromium/cc/CCScheduler.h:
3206 * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
3207 (WebCore::CCSchedulerStateMachine::CCSchedulerStateMachine):
3208 (WebCore::CCSchedulerStateMachine::nextAction):
3209 * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
3210 (WebCore::CCSchedulerStateMachine::setInhibitDraw):
3211 * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3212 (WebCore::CCThreadProxy::setVisibleOnImplThread):
3213 (WebCore::CCThreadProxy::inhibitDraw):
3214 * platform/graphics/chromium/cc/CCThreadProxy.h:
3216 2011-12-14 Ken Buchanan <kenrb@chromium.org>
3218 Crash due to incorrect parsing of isolates
3219 https://bugs.webkit.org/show_bug.cgi?id=74311
3220 When <bdi> content is wrapped, all hell breaks loose
3221 https://bugs.webkit.org/show_bug.cgi?id=74396
3223 Reviewed by Eric Seidel.
3225 When an isolate was encountered during run layout, the entire isolate
3226 would be parsed, even if the run started in the middle of the isolate.
3227 This would sometimes cause parts of the isolate to be added multiple
3228 times as runs. This patch marks the starting position within the
3229 isolate so nothing is parsed twice.
3231 This patch changes appendRun() so that when a run is added that is
3232 inside an isolate, it saves the start position of the run rather than
3233 the root. This allows constructBidiRuns() to resume parsing the
3234 isolate from the correct position.
3236 The change to RenderBox partially reverts a previous change I had
3237 done. It makes sense to screen for the condition, as was previously
3240 This patch does not add the test case from 74396 because a separate
3241 bug is preventing it from rendering correctly.
3243 * rendering/InlineIterator.h:
3244 (WebCore::addPlaceholderRunForIsolatedInline)
3245 (WebCore::IsolateTracker::addFakeRunIfNecessary)
3246 (WebCore::InlineBidiResolver::appendRun)
3247 * rendering/RenderBlockLineLayout.cpp:
3248 (WebCore::RenderBlockLineLayout::constructBidiRuns)
3249 * rendering/RenderBox.cpp:
3250 (WebCore::RenderBox::positionLineBox)
3252 2011-12-14 Jing Zhao <jingzhao@chromium.org>
3254 Opening two popup menus by dispatchEvent() makes problems.
3255 https://bugs.webkit.org/show_bug.cgi?id=73304
3257 Reviewed by Kent Tamura.
3259 By using element.dispatchEvent(), a user written script can open two
3260 popup menus, which causes various problems in different platforms.
3262 Add a hasOpenedPopup() method in ChromeClient and a wrapper in Chrome.
3263 In RenderMenuList::showPopup(), check if there is an opened popup menu
3264 before opening a new popup menu.
3266 Test: fast/forms/select-popup-crash.html
3268 * loader/EmptyClients.h: Overrides hasOpenedPopup().
3269 (WebCore::EmptyChromeClient::hasOpenedPopup): Returns false as a default case.
3271 (WebCore::Chrome::hasOpenedPopup): Calls ChromeClient::hasOpenedPopup().
3272 * page/Chrome.h: Declares hasOpenedPopup().
3273 * page/ChromeClient.h: Declares hasOpenedPopup() as a pure virtual function.
3274 * rendering/RenderMenuList.cpp:
3275 (WebCore::RenderMenuList::showPopup): Calls Chrome::hasOpenedPopup() before opening a new popup menu.
3277 2011-12-14 Tony Chang <tony@chromium.org>
3279 Clean up style in CSSStyleSelector.cpp
3280 https://bugs.webkit.org/show_bug.cgi?id=74548
3282 Reviewed by Ojan Vafai.
3284 * css/CSSStyleSelector.cpp:
3285 (WebCore::CSSStyleSelector::styleForElement):
3286 (WebCore::CSSStyleSelector::pseudoStyleForElement):
3288 2011-12-14 Kenneth Russell <kbr@google.com>
3290 Unreviewed, rolling out r102794.
3291 http://trac.webkit.org/changeset/102794
3292 https://bugs.webkit.org/show_bug.cgi?id=74220
3294 Reapplying patch since it is not the cause of the problems
3295 described in bug 74220.
3297 * bindings/v8/V8Proxy.cpp:
3298 (WebCore::V8Proxy::reportUnsafeAccessTo):
3299 * bindings/v8/V8Proxy.h:
3300 * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
3301 (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
3303 2011-12-14 Sam Weinig <weinig@apple.com>
3305 Remove whitespace from InheritedPropertySheets attributes in
3306 vsprops files to appease the Visual Studio project migrator.
3308 Reviewed by Adam Roben.
3310 * WebCore.vcproj/QTMovieWinDebug.vsprops:
3311 * WebCore.vcproj/QTMovieWinDebugAll.vsprops:
3312 * WebCore.vcproj/QTMovieWinDebugCairoCFLite.vsprops:
3313 * WebCore.vcproj/QTMovieWinProduction.vsprops:
3314 * WebCore.vcproj/QTMovieWinRelease.vsprops:
3315 * WebCore.vcproj/QTMovieWinReleaseCairoCFLite.vsprops:
3316 * WebCore.vcproj/WebCoreDebug.vsprops:
3317 * WebCore.vcproj/WebCoreDebugAll.vsprops:
3318 * WebCore.vcproj/WebCoreDebugCairoCFLite.vsprops:
3319 * WebCore.vcproj/WebCoreProduction.vsprops:
3320 * WebCore.vcproj/WebCoreRelease.vsprops:
3321 * WebCore.vcproj/WebCoreReleaseCairoCFLite.vsprops:
3323 2011-12-14 Enrica Casucci <enrica@apple.com>
3325 One more attempt to fix the release build (hopefully the last)
3329 * editing/ReplaceSelectionCommand.cpp: Added NodeRenderStyle.h
3331 2011-12-14 Kenneth Russell <kbr@google.com>
3333 Unreviewed, rolling out r102816.
3334 http://trac.webkit.org/changeset/102816
3335 https://bugs.webkit.org/show_bug.cgi?id=74415
3337 Implicated in font-related crashes on Chromium canaries.
3339 * platform/graphics/chromium/FontChromiumWin.cpp:
3340 (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs):
3341 (WebCore::Font::drawGlyphs):
3342 * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
3343 (WebCore::FontPlatformData::FontPlatformData):
3344 (WebCore::FontPlatformData::operator=):
3345 (WebCore::FontPlatformData::~FontPlatformData):
3346 * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
3347 (WebCore::FontPlatformData::size):
3348 (WebCore::FontPlatformData::hash):
3349 * platform/graphics/skia/SkiaFontWin.cpp:
3350 (WebCore::setupPaintForFont):
3351 (WebCore::paintSkiaText):
3352 * platform/graphics/skia/SkiaFontWin.h:
3354 2011-12-14 Simon Fraser <simon.fraser@apple.com>
3356 Filter amounts should accept percentages
3357 https://bugs.webkit.org/show_bug.cgi?id=74531
3359 Reviewed by Chris Marrin.
3361 Support percentage arguments for some filter functions, using the FPercent flag
3362 to validUnit(). Fix CSSStyleSelector::createFilterOperations() to do the divide by 100
3365 Replaced isValidFilterArgument(), which just tested arguments one by one for validity, with
3366 parseBuiltinFilterArguments() which tests and creates the CSSValues at the same time, which
3367 is a little more efficient. It also allows filter-specific behavior to be more localized in this
3370 Covered by existing tests.
3372 * css/CSSParser.cpp:
3373 (WebCore::CSSParser::parseBuiltinFilterArguments):
3374 (WebCore::CSSParser::parseFilter):
3376 * css/CSSStyleSelector.cpp:
3377 (WebCore::CSSStyleSelector::createFilterOperations):
3379 2011-12-14 Enrica Casucci <enrica@apple.com>
3385 * editing/ReplaceSelectionCommand.cpp: Added include RenderStyle.h
3387 2011-12-14 Hajime Morrita <morrita@chromium.org>
3389 JS_INLINE and WTF_INLINE should be visible from WebCore
3390 https://bugs.webkit.org/show_bug.cgi?id=73191
3392 Reviewed by Kevin Ollivier.
3394 - Moved export related definitions from config.h
3395 to ExportMacros.h, JSExportMacros.h and PlatformExportMacros.h
3396 - Added forwarding headers which are referred from config.h
3398 No new tests. Only build related changes.
3400 * ForwardingHeaders/runtime/JSExportMacros.h: Added.
3401 * ForwardingHeaders/wtf/ExportMacros.h: Added.
3402 * WebCore.xcodeproj/project.pbxproj:
3404 * platform/PlatformExportMacros.h: Copied from Source/JavaScriptCore/wtf/ExportMacros.h.
3406 2011-12-14 Enrica Casucci <enrica@apple.com>
3408 Need a way to produce leaner markup when pasting a fragment containing verbose markup
3409 https://bugs.webkit.org/show_bug.cgi?id=74514
3410 <rdar://problem/10208653>
3412 Reviewed by Ryosuke Niwa.
3414 This patch is another step in the direction of reducing the verbosity of the markup
3415 produced with editing operations.
3416 After the copied fragment is inserted in the document, it is analyzed to remove all
3417 the elements that don't contribute to the style. The decision is made comparing the
3418 render styles. As part of the cleanup, unstyled divs with single child element are
3419 removed. The logic to determine the blocks that can be removed is the same used in
3420 DeleteSelectionCommand and has been moved in CompositeEditCommand.
3422 Test: editing/pasteboard/paste-and-sanitize.html
3424 * editing/CompositeEditCommand.cpp:
3425 (WebCore::CompositeEditCommand::isRemovableBlock): Implements logic to determine
3426 if a block can be removed.
3427 * editing/CompositeEditCommand.h: Added isRemovableBlock declaration.
3428 * editing/DeleteSelectionCommand.cpp:
3429 (WebCore::DeleteSelectionCommand::removeRedundantBlocks): Implemented using
3430 isRemovableBlock from CompositeEditCommand.
3431 * editing/Editor.cpp:
3432 (WebCore::Editor::replaceSelectionWithFragment): Added SanitizeFragment option.
3433 * editing/ReplaceSelectionCommand.cpp:
3434 (WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand): Added initialization
3435 of m_sanitizeFragment member.
3436 (WebCore::ReplaceSelectionCommand::removeRedundantMarkup): New method implementing
3438 (WebCore::ReplaceSelectionCommand::doApply): Added call to removeRedundantMarkup
3439 after the fragment is inserted in the document.
3440 * editing/ReplaceSelectionCommand.h: Added new value to the enum CommandOption,
3441 a new member variable and the new method declaration.
3443 2011-12-14 Adrienne Walker <enne@google.com>
3445 [chromium] Refactor tile drawing to be more data-driven
3446 https://bugs.webkit.org/show_bug.cgi?id=73059
3448 Reviewed by James Robinson.
3450 Partially tested by compositor layout tests. Debug borders and
3451 checkerboarding tested manually.
3453 This is the first part of a move towards rendering quads on screen
3454 from a bag of data rather than in virtual CCLayerImpl::draw functions.
3456 CCDrawQuad-derived classes store material-specific pieces of data to
3457 use when rendering. CCLayerImpl classes now create these CCDrawQuad
3458 objects rather than issuing direct GL commands. Where this data is
3459 shared between quads that come from the same layer, that data is
3460 stored in a CCSharedQuadState object rather than duplicated.
3462 CCRenderPass is the class that holds the list of quads and the target
3463 surface that they draw into. Drawing a frame consists of drawing a
3464 series of render passes onto their respective surfaces.
3466 CCLayerTreeHostImpl constructs these render passes from the output of
3467 calculateDrawTransformsAndVisibility by asking each layer to insert
3468 quads into a list and hands them off to LayerRendererChromium for
3472 * platform/graphics/chromium/LayerRendererChromium.cpp:
3473 (WebCore::LayerRendererChromium::clearSurfaceForDebug):
3474 (WebCore::LayerRendererChromium::beginDrawingFrame):
3475 (WebCore::LayerRendererChromium::drawRenderPass):
3476 (WebCore::LayerRendererChromium::drawQuad):
3477 (WebCore::LayerRendererChromium::drawDebugBorderQuad):
3478 (WebCore::LayerRendererChromium::drawRenderSurfaceQuad):
3479 (WebCore::LayerRendererChromium::drawSolidColorQuad):
3480 (WebCore::tileUniformLocation):
3481 (WebCore::findTileProgramUniforms):
3482 (WebCore::LayerRendererChromium::drawTileQuad):
3483 (WebCore::LayerRendererChromium::drawCustomLayerQuad):
3484 (WebCore::LayerRendererChromium::finishDrawingFrame):
3485 (WebCore::LayerRendererChromium::useRenderSurface):
3486 * platform/graphics/chromium/LayerRendererChromium.h:
3487 * platform/graphics/chromium/ShaderChromium.h:
3488 (WebCore::FragmentTexAlphaBinding::edgeLocation):
3489 (WebCore::FragmentTexAlphaBinding::fragmentTexTransformLocation):
3490 (WebCore::FragmentTexOpaqueBinding::edgeLocation):
3491 (WebCore::FragmentTexOpaqueBinding::fragmentTexTransformLocation):
3492 * platform/graphics/chromium/TiledLayerChromium.cpp:
3493 (WebCore::TiledLayerChromium::pushPropertiesTo):
3494 * platform/graphics/chromium/cc/CCCustomLayerDrawQuad.cpp: Added.
3495 (WebCore::CCCustomLayerDrawQuad::create):
3496 (WebCore::CCCustomLayerDrawQuad::CCCustomLayerDrawQuad):
3497 * platform/graphics/chromium/cc/CCCustomLayerDrawQuad.h: Added.
3498 (WebCore::CCCustomLayerDrawQuad::layer):
3499 * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.cpp: Added.
3500 (WebCore::CCDebugBorderDrawQuad::create):
3501 (WebCore::CCDebugBorderDrawQuad::CCDebugBorderDrawQuad):
3502 * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.h: Added.
3503 (WebCore::CCDebugBorderDrawQuad::color):
3504 (WebCore::CCDebugBorderDrawQuad::width):
3505 * platform/graphics/chromium/cc/CCDrawQuad.cpp: Added.
3506 (WebCore::CCDrawQuad::CCDrawQuad):
3507 (WebCore::CCDrawQuad::toDebugBorderDrawQuad):
3508 (WebCore::CCDrawQuad::toRenderSurfaceDrawQuad):
3509 (WebCore::CCDrawQuad::toSolidColorDrawQuad):
3510 (WebCore::CCDrawQuad::toTileDrawQuad):
3511 (WebCore::CCDrawQuad::toCustomLayerDrawQuad):
3512 * platform/graphics/chromium/cc/CCDrawQuad.h: Added.
3513 (WebCore::CCDrawQuad::quadRect):
3514 (WebCore::CCDrawQuad::quadTransform):
3515 (WebCore::CCDrawQuad::layerTransform):
3516 (WebCore::CCDrawQuad::layerRect):
3517 (WebCore::CCDrawQuad::clipRect):
3518 (WebCore::CCDrawQuad::opacity):
3519 (WebCore::CCDrawQuad::drawsOpaque):
3520 (WebCore::CCDrawQuad::needsBlending):
3521 (WebCore::CCDrawQuad::isLayerAxisAlignedIntRect):
3522 (WebCore::CCDrawQuad::material):
3523 * platform/graphics/chromium/cc/CCLayerImpl.cpp:
3524 (WebCore::CCLayerImpl::createSharedQuadState):
3525 (WebCore::CCLayerImpl::appendQuads):
3526 (WebCore::CCLayerImpl::appendDebugBorderQuad):
3527 (WebCore::CCLayerImpl::quadTransform):
3528 * platform/graphics/chromium/cc/CCLayerImpl.h:
3529 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3530 (WebCore::CCLayerTreeHostImpl::trackDamageForAllSurfaces):
3531 (WebCore::computeScreenSpaceTransformForSurface):
3532 (WebCore::damageInSurfaceSpace):
3533 (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
3534 (WebCore::CCLayerTreeHostImpl::drawLayers):
3535 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
3536 * platform/graphics/chromium/cc/CCRenderPass.cpp: Added.
3537 (WebCore::CCRenderPass::create):
3538 (WebCore::CCRenderPass::CCRenderPass):
3539 (WebCore::CCRenderPass::appendQuadsForLayer):
3540 (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
3541 * platform/graphics/chromium/cc/CCRenderPass.h: Added.
3542 (WebCore::CCRenderPass::quadList):
3543 (WebCore::CCRenderPass::targetSurface):
3544 (WebCore::CCRenderPass::setSurfaceDamageRect):
3545 (WebCore::CCRenderPass::surfaceDamageRect):
3546 * platform/graphics/chromium/cc/CCRenderSurfaceDrawQuad.cpp: Added.
3547 (WebCore::CCRenderSurfaceDrawQuad::create):
3548 (WebCore::CCRenderSurfaceDrawQuad::CCRenderSurfaceDrawQuad):
3549 * platform/graphics/chromium/cc/CCRenderSurfaceDrawQuad.h: Added.
3550 (WebCore::CCRenderSurfaceDrawQuad::layer):
3551 (WebCore::CCRenderSurfaceDrawQuad::surfaceDamageRect):
3552 * platform/graphics/chromium/cc/CCSharedQuadState.cpp: Added.
3553 (WebCore::CCSharedQuadState::create):
3554 (WebCore::CCSharedQuadState::CCSharedQuadState):
3555 (WebCore::CCSharedQuadState::isLayerAxisAlignedIntRect):
3556 * platform/graphics/chromium/cc/CCSharedQuadState.h: Added.
3557 (WebCore::CCSharedQuadState::quadTransform):
3558 (WebCore::CCSharedQuadState::layerTransform):
3559 (WebCore::CCSharedQuadState::layerRect):
3560 (WebCore::CCSharedQuadState::clipRect):
3561 (WebCore::CCSharedQuadState::opacity):
3562 (WebCore::CCSharedQuadState::isOpaque):
3563 * platform/graphics/chromium/cc/CCSolidColorDrawQuad.cpp: Added.
3564 (WebCore::CCSolidColorDrawQuad::create):
3565 (WebCore::CCSolidColorDrawQuad::CCSolidColorDrawQuad):
3566 * platform/graphics/chromium/cc/CCSolidColorDrawQuad.h: Added.
3567 (WebCore::CCSolidColorDrawQuad::color):
3568 * platform/graphics/chromium/cc/CCTileDrawQuad.cpp: Added.
3569 (WebCore::CCTileDrawQuad::create):
3570 (WebCore::CCTileDrawQuad::CCTileDrawQuad):
3571 * platform/graphics/chromium/cc/CCTileDrawQuad.h: Added.
3572 (WebCore::CCTileDrawQuad::textureId):
3573 (WebCore::CCTileDrawQuad::textureOffset):
3574 (WebCore::CCTileDrawQuad::textureSize):
3575 (WebCore::CCTileDrawQuad::textureFilter):
3576 (WebCore::CCTileDrawQuad::swizzleContents):
3577 (WebCore::CCTileDrawQuad::leftEdgeAA):
3578 (WebCore::CCTileDrawQuad::topEdgeAA):
3579 (WebCore::CCTileDrawQuad::rightEdgeAA):
3580 (WebCore::CCTileDrawQuad::bottomEdgeAA):
3581 (WebCore::CCTileDrawQuad::isAntialiased):
3582 * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
3583 (WebCore::CCTiledLayerImpl::CCTiledLayerImpl):
3584 (WebCore::CCTiledLayerImpl::quadTransform):
3585 (WebCore::CCTiledLayerImpl::appendQuads):
3586 * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
3587 (WebCore::CCTiledLayerImpl::setContentsSwizzled):
3588 (WebCore::CCTiledLayerImpl::contentsSwizzled):
3590 2011-12-14 Ojan Vafai <ojan@chromium.org>
3592 Implement flexDirection and flexWrap and make flexFlow a proper shorthand.
3593 https://bugs.webkit.org/show_bug.cgi?id=74542
3595 Reviewed by Tony Chang.
3597 In a followup patch, I'll cleanup all the *Flow methods in RenderFlexibleBox.
3599 Existing tests cover all the rendering behaviors, so only need to test
3600 the css property parsing.
3602 * css/CSSComputedStyleDeclaration.cpp:
3603 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3604 * css/CSSMutableStyleDeclaration.cpp:
3605 (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
3606 * css/CSSParser.cpp:
3607 (WebCore::CSSParser::parseValue):
3608 * css/CSSPrimitiveValueMappings.h:
3609 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
3610 (WebCore::CSSPrimitiveValue::operator EFlexDirection):
3611 * css/CSSProperty.cpp:
3612 (WebCore::CSSProperty::isInheritedProperty):
3613 * css/CSSPropertyLonghand.cpp:
3614 (WebCore::initShorthandMap):
3615 * css/CSSPropertyNames.in:
3616 * css/CSSStyleApplyProperty.cpp:
3617 (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
3618 * css/CSSStyleSelector.cpp:
3619 (WebCore::CSSStyleSelector::applyProperty):
3620 * rendering/RenderBox.cpp:
3621 (WebCore::RenderBox::sizesToIntrinsicLogicalWidth):
3622 * rendering/RenderFlexibleBox.cpp:
3623 (WebCore::RenderFlexibleBox::isColumnFlow):
3624 (WebCore::RenderFlexibleBox::isLeftToRightFlow):
3625 (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
3626 (WebCore::RenderFlexibleBox::alignChildren):
3627 * rendering/style/RenderStyle.h:
3628 (WebCore::InheritedFlags::flexDirection):
3629 (WebCore::InheritedFlags::isColumnFlexDirection):
3630 (WebCore::InheritedFlags::setFlexDirection):
3631 (WebCore::InheritedFlags::initialFlexDirection):
3632 * rendering/style/RenderStyleConstants.h:
3633 * rendering/style/StyleFlexibleBoxData.cpp:
3634 (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
3635 (WebCore::StyleFlexibleBoxData::operator==):
3636 * rendering/style/StyleFlexibleBoxData.h:
3638 2011-12-13 Jon Lee <jonlee@apple.com>
3640 Enable notifications on Mac.
3642 Reviewed by Sam Weinig.
3644 * Configurations/FeatureDefines.xcconfig:
3646 2011-12-14 Ryosuke Niwa <rniwa@webkit.org>
3648 COMPILE_ASSERT in CSSStyleSelector.cpp doesn't compile on Windows
3649 https://bugs.webkit.org/show_bug.cgi?id=74327
3651 Reviewed by Darin Adler.
3653 Always use unsigned instead of bool and unsigned in the bitfields of RuleData to shrink
3654 its size under MSVC.
3656 Unlike gcc and clang, MSVC pads each consecutive member variables of the same type
3657 in bitfields. e.g. if you have:
3662 then MSVC pads m_1 and allocates sizeof(unsigned) * 2 for AB whereas gcc and clang
3663 only allocate sizeof(unsigned) * 1 for AB.
3665 * css/CSSStyleSelector.cpp:
3666 (WebCore::RuleData::RuleData):
3668 2011-12-14 Ryosuke Niwa <rniwa@webkit.org>
3670 NodeChildList shouldn't be in NodeListNodeData
3671 https://bugs.webkit.org/show_bug.cgi?id=73969
3673 Reviewed by Sam Weinig.
3675 Move NodeChildList out of NodeListNodeData to separate it from the other node lists in order to
3676 resolve the bug 73853. Unlike other DynamicNodeList, we don't need to invalidate NodeChildList
3677 on ancestors when children change. Moving ChildNodeList out of NodeListNodeData makes this difference
3678 apparent and makes DynamicNodeList::Caches in NodeListNodeData always held by a DynamicSubtreeNodeList,
3679 eliminating the need for hasOwnCaches() checks in various places.
3681 Also renamed the existing DynamicNodeList to DynamicSubtreeNodeList and re-introduced DynamicNodeList
3682 from which DynamicSubtreeNodeList and ChildNodeList both inherit to share the code for itemWithName.
3684 In addition, renamed registerDynamicNodeList and unregisterDynamicNodeList, which updates a counter for
3685 TreeScope::hasNodeListCaches, to registerDynamicSubtreeNodeList and unregisterDynamicSubtreeNodeList
3686 respectively. They are no longer called by ChildNodeList in order to avoid walking up the DOM tree
3687 inside invalidateNodeListsCacheAfterAttributeChanged and invalidateNodeListsCacheAfterChildrenChanged.
3689 Test: fast/dom/childnode-item-after-itemname.html
3691 * bindings/js/JSNodeListCustom.cpp:
3692 (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
3693 * dom/ChildNodeList.cpp:
3694 (WebCore::ChildNodeList::ChildNodeList):
3695 (WebCore::ChildNodeList::length):
3696 (WebCore::ChildNodeList::item):
3697 (WebCore::ChildNodeList::nodeMatches):
3698 * dom/ChildNodeList.h:
3699 * dom/ClassNodeList.cpp:
3700 (WebCore::ClassNodeList::ClassNodeList):
3701 (WebCore::ClassNodeList::~ClassNodeList):
3702 * dom/ClassNodeList.h:
3703 * dom/ContainerNode.cpp:
3704 (WebCore::ContainerNode::childrenChanged):
3705 * dom/DynamicNodeList.cpp:
3706 (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):
3707 (WebCore::DynamicSubtreeNodeList::~DynamicSubtreeNodeList):
3708 (WebCore::DynamicSubtreeNodeList::length):
3709 (WebCore::DynamicSubtreeNodeList::itemForwardsFromCurrent):
3710 (WebCore::DynamicSubtreeNodeList::itemBackwardsFromCurrent):
3711 (WebCore::DynamicSubtreeNodeList::item):
3712 (WebCore::DynamicNodeList::itemWithName):
3713 (WebCore::DynamicSubtreeNodeList::isDynamicNodeList):
3714 (WebCore::DynamicSubtreeNodeList::invalidateCache):
3715 (WebCore::DynamicSubtreeNodeList::Caches::Caches):
3716 (WebCore::DynamicSubtreeNodeList::Caches::create):
3717 (WebCore::DynamicSubtreeNodeList::Caches::reset):
3718 * dom/DynamicNodeList.h:
3719 (WebCore::DynamicNodeList::DynamicNodeList):
3720 (WebCore::DynamicNodeList::~DynamicNodeList):
3721 (WebCore::DynamicNodeList::node):
3722 (WebCore::DynamicSubtreeNodeList::rootNode):
3723 * dom/NameNodeList.cpp:
3724 (WebCore::NameNodeList::NameNodeList):
3725 (WebCore::NameNodeList::~NameNodeList):
3726 * dom/NameNodeList.h:
3728 (WebCore::Node::childNodes):
3729 (WebCore::Node::registerDynamicSubtreeNodeList):
3730 (WebCore::Node::unregisterDynamicSubtreeNodeList):
3731 (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged):
3732 (WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged):
3733 (WebCore::Node::removeCachedClassNodeList):
3734 (WebCore::Node::removeCachedNameNodeList):
3735 (WebCore::Node::removeCachedTagNodeList):
3736 (WebCore::Node::removeCachedLabelsNodeList):
3737 (WebCore::NodeListsNodeData::invalidateCaches):
3738 (WebCore::NodeListsNodeData::isEmpty):
3739 (WebCore::NodeRareData::clearChildNodeListCache):
3741 * dom/NodeRareData.h:
3742 (WebCore::NodeRareData::nodeLists):
3743 (WebCore::NodeRareData::ensureChildNodeListCache):
3744 * dom/TagNodeList.cpp:
3745 (WebCore::TagNodeList::TagNodeList):
3746 (WebCore::TagNodeList::~TagNodeList):
3747 * dom/TagNodeList.h:
3748 * html/LabelsNodeList.cpp:
3749 (WebCore::LabelsNodeList::LabelsNodeList):
3750 * html/LabelsNodeList.h:
3752 2011-12-14 Ryosuke Niwa <rniwa@webkit.org>
3754 Push more member functions from EditCommand to CompositeEditCommand
3755 https://bugs.webkit.org/show_bug.cgi?id=74249
3757 Reviewed by Enrica Casucci.
3759 Moved startingRootEditableElement and endingRootEditableElement from EditCommand to EditCommandComposition,
3760 and isTypingCommand, preservesTypingStyle, shouldRetainAutocorrectionIndicator,
3761 setShouldRetainAutocorrectionIndicator, and shouldStopCaretBlinking from EditCommand to CompositeEditCommand.
3762 Also removed EditCommand::updateLayout().
3764 * editing/ApplyBlockElementCommand.cpp:
3765 (WebCore::ApplyBlockElementCommand::doApply):
3766 * editing/ApplyStyleCommand.cpp:
3767 (WebCore::ApplyStyleCommand::applyBlockStyle):
3768 (WebCore::ApplyStyleCommand::applyInlineStyle):
3769 * editing/CompositeEditCommand.cpp:
3770 (WebCore::EditCommandComposition::EditCommandComposition):
3771 (WebCore::EditCommandComposition::setStartingSelection):
3772 (WebCore::EditCommandComposition::setEndingSelection):
3773 (WebCore::CompositeEditCommand::preservesTypingStyle):
3774 (WebCore::CompositeEditCommand::isTypingCommand):
3775 (WebCore::CompositeEditCommand::shouldRetainAutocorrectionIndicator):
3776 (WebCore::CompositeEditCommand::setShouldRetainAutocorrectionIndicator):
3777 (WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded):
3778 (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
3779 (WebCore::CompositeEditCommand::moveParagraphs):
3780 * editing/CompositeEditCommand.h:
3781 (WebCore::EditCommandComposition::startingRootEditableElement):
3782 (WebCore::EditCommandComposition::endingRootEditableElement):
3783 (WebCore::CompositeEditCommand::shouldStopCaretBlinking):
3784 * editing/DeleteSelectionCommand.cpp:
3785 (WebCore::DeleteSelectionCommand::removeNode):
3786 (WebCore::DeleteSelectionCommand::fixupWhitespace):
3787 * editing/EditCommand.cpp:
3788 (WebCore::EditCommand::apply):
3789 (WebCore::EditCommand::unapply):
3790 (WebCore::EditCommand::reapply):
3791 (WebCore::EditCommand::setStartingSelection):
3792 (WebCore::EditCommand::setEndingSelection):
3793 (WebCore::EditCommand::setParent):
3794 * editing/EditCommand.h:
3795 (WebCore::EditCommand::isEditCommandComposition):
3796 * editing/Editor.cpp:
3797 (WebCore::dispatchEditableContentChangedEvents):
3798 (WebCore::Editor::appliedEditing):
3799 (WebCore::Editor::unappliedEditing):
3800 (WebCore::Editor::reappliedEditing):
3802 (WebCore::Editor::lastEditCommand):
3803 * editing/FrameSelection.cpp:
3804 (WebCore::FrameSelection::updateAppearance):
3805 * editing/IndentOutdentCommand.cpp:
3806 (WebCore::IndentOutdentCommand::outdentParagraph):
3807 * editing/InsertLineBreakCommand.cpp:
3808 (WebCore::InsertLineBreakCommand::doApply):
3809 * editing/InsertParagraphSeparatorCommand.cpp:
3810 (WebCore::InsertParagraphSeparatorCommand::doApply):
3811 * editing/TypingCommand.cpp:
3812 (WebCore::TypingCommand::lastTypingCommandIfStillOpenForTyping):
3813 * editing/TypingCommand.h:
3814 (WebCore::TypingCommand::shouldRetainAutocorrectionIndicator):
3816 2011-12-14 Tony Chang <tony@chromium.org>
3818 Fix compile on gcc on Mac.
3820 css/CSSStyleSelector.cpp:1254:166: error: unused parameter 'regionForStyling' [-Werror,-Wunused-parameter,3]
3821 css/CSSStyleSelector.cpp:1425:134: error: unused parameter 'regionForStyling' [-Werror,-Wunused-parameter,3]
3823 * css/CSSStyleSelector.cpp:
3824 (WebCore::CSSStyleSelector::styleForElement):
3825 (WebCore::CSSStyleSelector::pseudoStyleForElement):
3827 2011-12-14 Brady Eidson <beidson@apple.com>
3829 <rdar://problem/10576732> and https://bugs.webkit.org/show_bug.cgi?id=74533
3830 REGRESSION(r102619): Reproducible crash closing window with video + poster image inside an object element
3832 Reviewed by Darin Adler.
3834 Test: media/crash-closing-page-with-media-as-plugin-fallback.html
3836 Switch HTMLPlugInImageElement from using document activation callbacks to using the ActiveDOMObject
3837 mechanism which will prevent the unnecessary (and crashy) work at Document teardown:
3838 * html/HTMLPlugInImageElement.cpp:
3839 (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
3840 (WebCore::HTMLPlugInImageElement::canSuspend):
3841 (WebCore::HTMLPlugInImageElement::suspend):
3842 (WebCore::HTMLPlugInImageElement::resume):
3843 * html/HTMLPlugInImageElement.h:
3845 2011-12-14 Adrienne Walker <enne@google.com>
3847 [chromium] Compositor needs to set texture filtering on canvas layers
3848 https://bugs.webkit.org/show_bug.cgi?id=74530
3850 Reviewed by James Robinson.
3852 * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
3853 (WebCore::CCCanvasLayerImpl::draw):
3855 2011-12-14 Tony Chang <tony@chromium.org>
3857 Remove added calls to CSSStyleSelector to gain back another 2% in page cyclers
3858 https://bugs.webkit.org/show_bug.cgi?id=74537
3860 Reviewed by Ojan Vafai.
3862 In r102234, calls to initForRegionStyling() were added in CSSStyleSelector.
3863 There's still a 2% perf regression in chromium page cyclers, so try removing
3866 * css/CSSStyleSelector.cpp:
3867 (WebCore::CSSStyleSelector::styleForElement):
3868 (WebCore::CSSStyleSelector::pseudoStyleForElement):
3870 2011-12-14 Jonathan Backer <backer@chromium.org>
3872 [chromium] Plumb through flag for enabling partial swap
3873 https://bugs.webkit.org/show_bug.cgi?id=74513
3875 Reviewed by James Robinson.
3878 (WebCore::Settings::setPartialSwapEnabled):
3879 (WebCore::Settings::partialSwapEnabled):
3880 * platform/graphics/chromium/LayerRendererChromium.cpp:
3881 (WebCore::LayerRendererChromium::initialize):
3882 * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3883 (WebCore::CCSettings::CCSettings):
3885 2011-12-14 Mike Reed <reed@google.com>
3887 [skia] cache typeface in FontPlatformData
3888 https://bugs.webkit.org/show_bug.cgi?id=74415
3890 Reviewed by Stephen White.
3892 No new tests. Existing tests apply, this is just an optimization
3893 to avoid looking up the typeface on each drawText call.
3895 * platform/graphics/chromium/FontChromiumWin.cpp:
3896 (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs):
3897 (WebCore::Font::drawGlyphs):
3898 * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
3899 (WebCore::createTypefaceFromHFont):
3900 (WebCore::FontPlatformData::FontPlatformData):
3901 (WebCore::FontPlatformData::operator=):
3902 (WebCore::FontPlatformData::~FontPlatformData):
3903 * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
3904 (WebCore::FontPlatformData::typeface):
3905 (WebCore::FontPlatformData::lfQuality):
3906 (WebCore::FontPlatformData::hash):
3907 (WebCore::FontPlatformData::operator==):
3908 * platform/graphics/skia/SkiaFontWin.cpp:
3909 (WebCore::setupPaintForFont):
3910 (WebCore::paintSkiaText):
3911 * platform/graphics/skia/SkiaFontWin.h:
3913 2011-12-14 Simon Fraser <simon.fraser@apple.com>
3915 Make -webkit-filter animatable
3916 https://bugs.webkit.org/show_bug.cgi?id=68476
3918 Reviewed by Chris Marrin.
3920 Add -webkit-filter to the list of CSS properties that are animatable. Animate
3921 it like we do transforms, by looking for matching lists of filter functions.
3922 Each kind of filter operation has a blend() method that handles blending
3925 Test: css3/filters/filter-animation.html
3927 * GNUmakefile.list.am: Add FilterOperation.cpp to the build.
3929 * WebCore.gypi: Ditto
3930 * WebCore.vcproj/WebCore.vcproj: Ditto
3931 * WebCore.xcodeproj/project.pbxproj: Ditto
3932 * page/animation/AnimationBase.cpp:
3933 (WebCore::blendFunc): New blendFunc() for FilterOperations, which does per-filter blending.
3934 (WebCore::AnimationBase::ensurePropertyMap): Make PropertyWrapper for filters.
3935 (WebCore::AnimationBase::AnimationBase): Adjust initialization order.
3936 * page/animation/AnimationBase.h: Adjusted the member variable order to minimize padding.
3937 (WebCore::AnimationBase::filterFunctionListsMatch): Accessor for the flag.
3938 * page/animation/ImplicitAnimation.cpp:
3939 (WebCore::ImplicitAnimation::reset):
3940 (WebCore::ImplicitAnimation::validateTransformFunctionList): Adjust comment. The "is valid" terminology is confusing.
3941 (WebCore::ImplicitAnimation::checkForMatchingFilterFunctionLists): New method to check for matching lists
3942 of filter functions.
3943 * page/animation/ImplicitAnimation.h:
3944 * page/animation/KeyframeAnimation.cpp:
3945 (WebCore::KeyframeAnimation::KeyframeAnimation):
3946 (WebCore::KeyframeAnimation::checkForMatchingFilterFunctionLists): New method to check for matching lists
3947 of filter functions.
3948 * page/animation/KeyframeAnimation.h:
3949 * rendering/style/FilterOperation.cpp: Added.
3950 (WebCore::BasicColorMatrixFilterOperation::blend):
3951 (WebCore::BasicColorMatrixFilterOperation::passthroughAmount):
3952 (WebCore::BasicComponentTransferFilterOperation::blend):
3953 (WebCore::BasicComponentTransferFilterOperation::passthroughAmount): Different filters have
3954 different values for m_amount for the "passthrough" behavior. This method returns the appropriate value.
3955 (WebCore::GammaFilterOperation::blend):
3956 (WebCore::BlurFilterOperation::blend):
3957 (WebCore::DropShadowFilterOperation::blend):
3958 * rendering/style/FilterOperation.h:
3959 (WebCore::FilterOperation::blend):
3960 (WebCore::PassthroughFilterOperation::create): New "no-op" filter.
3961 (WebCore::PassthroughFilterOperation::operator==):
3962 (WebCore::PassthroughFilterOperation::PassthroughFilterOperation):
3963 * rendering/style/FilterOperations.cpp:
3964 (WebCore::FilterOperations::operationsMatch):
3965 * rendering/style/FilterOperations.h:
3967 2011-12-14 Adam Klein <adamk@chromium.org>
3969 Broaden support for mutation observation of attributes
3970 https://bugs.webkit.org/show_bug.cgi?id=74448
3972 Reviewed by Ryosuke Niwa.
3974 The previously-landed MutationObserver support for attributes was incomplete:
3975 it didn't support mutations related to Attr nodes (methods on Attrs,
3976 setAttributeNode/removeAttributeNode on Element, or methods on NamedNodeMap).
3978 This patch adds full support of mutation observation for all these cases,
3979 and adds test cases for all these situations.
3982 (WebCore::Attr::setValue): Enqueue a mutation record when Attr.value is set from JS.
3983 (WebCore::Attr::childrenChanged): Enqueue a mutation record when an Attr's value
3984 changes to due additions/removals of Text children.
3986 (WebCore::Element::enqueueAttributesMutationRecordIfRequested): Previously a static,
3987 expose as part of Element's interface to allow it to be re-used by NamedNodeMap and Attr.
3988 (WebCore::Element::removeAttribute): Remove enqueue call now handled by NamedNodeMap.
3989 (WebCore::Element::setAttributeInternal): Fixup call of enqueueAttributesMutationRecordIfRequested.
3991 * dom/NamedNodeMap.cpp:
3992 (WebCore::NamedNodeMap::setNamedItem): Enqueue a mutation record when an attribute
3993 is changed via Element.attributes.setNamedItem from JS.
3994 (WebCore::NamedNodeMap::removeNamedItem): Enqueue a mutation record when an
3995 attribute is removed, either via Element.attributes.removeNamedItem or Element.removeAttribute.
3997 2011-12-14 Raymond Toy <rtoy@google.com>
3999 * platform/audio/Distance.h (WebCore):
4001 Incorrect calculation for DistanceEffect linearGain
4002 https://bugs.webkit.org/show_bug.cgi?id=72871
4004 Reviewed by Kenneth Russell.
4006 Tests still need to be written for all distance models. This
4007 does not add a new API and just corrects an implementation error.
4009 * platform/audio/Distance.cpp:
4010 (WebCore::DistanceEffect::linearGain): Implement correct
4011 linearGain function. (Fix proposed by davidgaleano@hotmail.com.)
4012 * platform/audio/Distance.h: Add link to Open AL specification.
4015 2011-12-14 Ilya Tikhonovsky <loislo@chromium.org>
4017 Web Inspector: consider disabling network tracking while running the CPU profile.
4018 https://bugs.webkit.org/show_bug.cgi?id=74221
4020 The WebCore instrumentation on the backend affects the performance of inspected page.
4021 As the result the CPU profiler's stats data are far away from the reality.
4022 Solution: the profiler code will temporary disable the resource tracking on backend.
4023 Side effect: the resource tree gets out of sinc because it uses Network Agent's notifications for updating the resource tree.