a172f7cc6f796dd3ac641d566fe44e2531cf6ca0
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-03-09  Andreas Kling  <awesomekling@apple.com>
2
3         CSSParser: Use Vector for intermediate property storage.
4         <http://webkit.org/b/80653>
5
6         Reviewed by Antti Koivisto.
7
8         Remove the custom memory management for intermediate CSSProperties in CSSParser
9         and replace it by a Vector<CSSProperty, 256>.
10         This avoids heap allocations and removes a bunch of unnecessary complexity.
11
12         Remove WTF_MAKE_FAST_ALLOCATED from CSSProperty since they are only created on
13         the stack now.
14
15         * css/CSSGrammar.y:
16         * css/CSSParser.cpp:
17         (WebCore::CSSParser::CSSParser):
18         (WebCore::CSSParser::~CSSParser):
19         (WebCore::CSSParser::parseValue):
20         (WebCore::CSSParser::parseColor):
21         (WebCore::CSSParser::parseDeclaration):
22         (WebCore::CSSParser::addProperty):
23         (WebCore::CSSParser::rollbackLastProperties):
24         (WebCore::CSSParser::clearProperties):
25         (WebCore::CSSParser::parse4Values):
26         (WebCore::CSSParser::parseFlowThread):
27         (WebCore::CSSParser::createStyleRule):
28         (WebCore::CSSParser::createFontFaceRule):
29         (WebCore::CSSParser::createPageRule):
30         (WebCore::CSSParser::createMarginAtRule):
31         (WebCore::CSSParser::startDeclarationsForMarginBox):
32         (WebCore::CSSParser::endDeclarationsForMarginBox):
33         (WebCore::CSSParser::deleteFontFaceOnlyValues):
34         (WebCore::CSSParser::createKeyframeRule):
35         * css/CSSParser.h:
36         (WebCore::CSSParser::hasProperties):
37         (CSSParser):
38         * css/CSSProperty.h:
39         * css/SVGCSSParser.cpp:
40         (WebCore::CSSParser::parseSVGValue):
41         * css/StylePropertySet.cpp:
42         (WebCore::StylePropertySet::StylePropertySet):
43         (WebCore::StylePropertySet::addParsedProperties):
44         * css/StylePropertySet.h:
45         (WebCore::StylePropertySet::create):
46         (StylePropertySet):
47
48 2012-03-09  Nate Chapin  <japhet@chromium.org>
49
50         CachedRawResource breaks when trying to load
51         a resource with an empty response body from cache.
52
53         Reviewed by Alexey Proskuryakov.
54
55         Test: http/tests/cache/zero-length-xhr.html
56
57         * loader/cache/CachedRawResource.cpp:
58         (WebCore::CachedRawResource::didAddClient): Don't exit early
59             if m_data is empty, we may still need to notifyFinished().
60
61 2012-03-09  Robin Cao  <robin.cao@torchmobile.com.cn>
62
63         [BlackBerry] Upstream classes that handle layer tiling
64         https://bugs.webkit.org/show_bug.cgi?id=79875
65
66         Reviewed by Rob Buis.
67
68         Initial upstreaming, no new tests.
69
70         * platform/graphics/blackberry/LayerTile.cpp: Added.
71         (WebCore):
72         (WebCore::LayerTile::LayerTile):
73         (WebCore::LayerTile::~LayerTile):
74         (WebCore::LayerTile::setContents):
75         (WebCore::LayerTile::setContentsToColor):
76         (WebCore::LayerTile::updateContents):
77         (WebCore::LayerTile::discardContents):
78         (WebCore::LayerTile::setVisible):
79         (WebCore::LayerTile::setTexture):
80         * platform/graphics/blackberry/LayerTile.h: Added.
81         (WebCore):
82         (LayerTileData):
83         (WebCore::LayerTileData::LayerTileData):
84         (WebCore::LayerTileData::isVisible):
85         (LayerTile):
86         (WebCore::LayerTile::texture):
87         (WebCore::LayerTile::isVisible):
88         (WebCore::LayerTile::isDirty):
89         (WebCore::LayerTile::hasTexture):
90         (WebCore::LayerTile::setContentsDirty):
91         * platform/graphics/blackberry/LayerTileIndex.h: Added.
92         (WebCore):
93         (TileIndex):
94         (WebCore::TileIndex::TileIndex):
95         (WebCore::TileIndex::~TileIndex):
96         (WebCore::TileIndex::i):
97         (WebCore::TileIndex::j):
98         (WebCore::TileIndex::setIndex):
99         (WebCore::operator==):
100         (WebCore::operator!=):
101         (WTF):
102         * platform/graphics/blackberry/LayerTiler.cpp: Added.
103         (WebCore):
104         (WebCore::transformPoint):
105         (WebCore::defaultTileSize):
106         (WebCore::LayerTiler::LayerTiler):
107         (WebCore::LayerTiler::~LayerTiler):
108         (WebCore::LayerTiler::layerWebKitThreadDestroyed):
109         (WebCore::LayerTiler::layerCompositingThreadDestroyed):
110         (WebCore::LayerTiler::setNeedsDisplay):
111         (WebCore::LayerTiler::updateTextureContentsIfNeeded):
112         (WebCore::LayerTiler::shouldPerformRenderJob):
113         (WebCore::LayerTiler::addTextureJob):
114         (WebCore::LayerTiler::clearTextureJobs):
115         (WebCore::LayerTiler::commitPendingTextureUploads):
116         (WebCore::LayerTiler::layerVisibilityChanged):
117         (WebCore::LayerTiler::uploadTexturesIfNeeded):
118         (WebCore::LayerTiler::processTextureJob):
119         (WebCore::LayerTiler::addTileJob):
120         (WebCore::LayerTiler::performTileJob):
121         (WebCore::LayerTiler::drawTextures):
122         (WebCore::LayerTiler::drawMissingTextures):
123         (WebCore::LayerTiler::drawTexturesInternal):
124         (WebCore::LayerTiler::addRenderJob):
125         (WebCore::LayerTiler::removeRenderJob):
126         (WebCore::LayerTiler::deleteTextures):
127         (WebCore::LayerTiler::pruneTextures):
128         (WebCore::LayerTiler::updateTileSize):
129         (WebCore::LayerTiler::disableTiling):
130         (WebCore::LayerTiler::shouldPrefillTile):
131         (WebCore::LayerTiler::indexOfTile):
132         (WebCore::LayerTiler::originOfTile):
133         (WebCore::LayerTiler::rectForTile):
134         (WebCore::LayerTiler::hasDirtyTiles):
135         (WebCore::LayerTiler::bindContentsTexture):
136         * platform/graphics/blackberry/LayerTiler.h: Added.
137         (WebCore):
138         (LayerTiler):
139         (WebCore::LayerTiler::create):
140         (WebCore::LayerTiler::layer):
141         (WebCore::LayerTiler::hasMissingTextures):
142         (WebCore::LayerTiler::TextureJob::TextureJob):
143         (TextureJob):
144         (WebCore::LayerTiler::TextureJob::setContents):
145         (WebCore::LayerTiler::TextureJob::setContentsToColor):
146         (WebCore::LayerTiler::TextureJob::updateContents):
147         (WebCore::LayerTiler::TextureJob::discardContents):
148         (WebCore::LayerTiler::TextureJob::resizeContents):
149         (WebCore::LayerTiler::TextureJob::dirtyContents):
150         (WebCore::LayerTiler::TextureJob::isNull):
151         (WebCore::LayerTiler::tileSize):
152         (WebCore::LayerTiler::removeUpdateContentsJobs):
153
154 2012-03-09  Ian Vollick  <vollick@chromium.org>
155
156         [chromium] Ensure we use the correct time when notifying animation started
157         https://bugs.webkit.org/show_bug.cgi?id=79537
158
159         Reviewed by James Robinson
160
161         Tested in CCLayerTreeHostTestAddAnimation
162
163         * platform/graphics/chromium/LayerChromium.cpp:
164         (WebCore::LayerChromium::setAnimationEvent):
165         * platform/graphics/chromium/LayerChromium.h:
166         (LayerChromium):
167         * platform/graphics/chromium/cc/CCAnimationEvents.cpp:
168         (WebCore::CCAnimationStartedEvent::create):
169         (WebCore::CCAnimationStartedEvent::CCAnimationStartedEvent):
170         * platform/graphics/chromium/cc/CCAnimationEvents.h:
171         (CCAnimationEvent):
172         (CCAnimationStartedEvent):
173         * platform/graphics/chromium/cc/CCInputHandler.h:
174         (CCInputHandler):
175         * platform/graphics/chromium/cc/CCLayerAnimationControllerImpl.cpp:
176         (WebCore::CCLayerAnimationControllerImpl::animate):
177         (WebCore::CCLayerAnimationControllerImpl::startAnimationsWaitingForNextTick):
178         (WebCore::CCLayerAnimationControllerImpl::startAnimationsWaitingForStartTime):
179         (WebCore::CCLayerAnimationControllerImpl::startAnimationsWaitingForTargetAvailability):
180         (WebCore::CCLayerAnimationControllerImpl::resolveConflicts):
181         (WebCore::CCLayerAnimationControllerImpl::tickAnimations):
182         * platform/graphics/chromium/cc/CCLayerAnimationControllerImpl.h:
183         (CCLayerAnimationControllerImpl):
184         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
185         (WebCore::CCLayerTreeHost::setAnimationEvents):
186         (WebCore::CCLayerTreeHost::setAnimationEventsRecursive):
187         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
188         (CCLayerTreeHost):
189         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
190         (WebCore::CCLayerTreeHostImpl::animate):
191         (WebCore::CCLayerTreeHostImpl::startPageScaleAnimation):
192         (WebCore::CCLayerTreeHostImpl::animateLayersRecursive):
193         (WebCore::CCLayerTreeHostImpl::animatePageScale):
194         (WebCore::CCLayerTreeHostImpl::animateLayers):
195         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
196         (CCLayerTreeHostImplClient):
197         (CCLayerTreeHostImpl):
198         * platform/graphics/chromium/cc/CCPageScaleAnimation.cpp:
199         (WebCore::CCPageScaleAnimation::create):
200         (WebCore::CCPageScaleAnimation::CCPageScaleAnimation):
201         (WebCore::CCPageScaleAnimation::zoomTo):
202         (WebCore::CCPageScaleAnimation::zoomWithAnchor):
203         (WebCore::CCPageScaleAnimation::scrollOffsetAtTime):
204         (WebCore::CCPageScaleAnimation::pageScaleAtTime):
205         (WebCore::CCPageScaleAnimation::isAnimationCompleteAtTime):
206         (WebCore::CCPageScaleAnimation::progressRatioForTime):
207         * platform/graphics/chromium/cc/CCPageScaleAnimation.h:
208         (CCPageScaleAnimation):
209         (WebCore::CCPageScaleAnimation::startTime):
210         (WebCore::CCPageScaleAnimation::duration):
211         (WebCore::CCPageScaleAnimation::endTime):
212         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
213         (WebCore::CCSingleThreadProxy::startPageScaleAnimation):
214         (WebCore::CCSingleThreadProxy::postAnimationEventsToMainThreadOnImplThread):
215         (WebCore::CCSingleThreadProxy::doComposite):
216         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
217         (CCSingleThreadProxy):
218         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
219         (WebCore::CCThreadProxy::startPageScaleAnimation):
220         (WebCore::CCThreadProxy::requestStartPageScaleAnimationOnImplThread):
221         (WebCore::CCThreadProxy::postAnimationEventsToMainThreadOnImplThread):
222         (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
223         (WebCore::CCThreadProxy::setAnimationEvents):
224         * platform/graphics/chromium/cc/CCThreadProxy.h:
225         (CCThreadProxy):
226
227 2012-03-09  Zoltan Herczeg  <zherczeg@webkit.org>
228
229         Add SVGRenderingContext and move there the context related code from SVGRenderSupport
230         https://bugs.webkit.org/show_bug.cgi?id=80413
231
232         Reviewed by Nikolas Zimmermann.
233
234         This is the first step of refactoring the rendering context for SVG. The
235         previous context was stateless before, which means the cleanup phase
236         needed to do a lot of checks to revert the initialization part and
237         was unaware of failed inititalization. Future code can also add
238         new local variables to the context.
239
240         This patch add a new SVGRenderingContext class, and moves there the context
241         initialization / cleanup code from SVGRenderSupport. All build systems were
242         updated.
243
244         * CMakeLists.txt:
245         * GNUmakefile.list.am:
246         * Target.pri:
247         * WebCore.gypi:
248         * WebCore.vcproj/WebCore.vcproj:
249         * WebCore.xcodeproj/project.pbxproj:
250         * rendering/svg/RenderSVGAllInOne.cpp:
251         * rendering/svg/RenderSVGContainer.cpp:
252         (WebCore::RenderSVGContainer::paint):
253         * rendering/svg/RenderSVGForeignObject.cpp:
254         (WebCore::RenderSVGForeignObject::paint):
255         * rendering/svg/RenderSVGImage.cpp:
256         (WebCore::RenderSVGImage::paint):
257         * rendering/svg/RenderSVGRoot.cpp:
258         (WebCore::RenderSVGRoot::paintReplaced):
259         * rendering/svg/RenderSVGShape.cpp:
260         (WebCore::RenderSVGShape::paint):
261         * rendering/svg/SVGInlineFlowBox.cpp:
262         (WebCore::SVGInlineFlowBox::paint):
263         * rendering/svg/SVGRenderSupport.cpp:
264         * rendering/svg/SVGRenderSupport.h:
265         * rendering/svg/SVGRenderingContext.cpp: Added.
266         (WebCore):
267         (WebCore::isRenderingMaskImage):
268         (WebCore::SVGRenderingContext::~SVGRenderingContext):
269         (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
270         * rendering/svg/SVGRenderingContext.h: Added.
271         (WebCore):
272         (SVGRenderingContext):
273         (WebCore::SVGRenderingContext::SVGRenderingContext):
274         (WebCore::SVGRenderingContext::isRenderingPrepared):
275         * rendering/svg/SVGRootInlineBox.cpp:
276         (WebCore::SVGRootInlineBox::paint):
277
278 2012-03-09  Sheriff Bot  <webkit.review.bot@gmail.com>
279
280         Unreviewed, rolling out r110191, r110202, and r110279.
281         http://trac.webkit.org/changeset/110191
282         http://trac.webkit.org/changeset/110202
283         http://trac.webkit.org/changeset/110279
284         https://bugs.webkit.org/show_bug.cgi?id=80694
285
286         They broke !ENABLE(INSPECTOR) builds (Requested by Ossy on
287         #webkit).
288
289         * WebCore.exp.in:
290         * testing/Internals.cpp:
291         * testing/Internals.h:
292         (WebCore):
293         (Internals):
294         * testing/Internals.idl:
295
296 2012-03-09  Hans Wennborg  <hans@chromium.org>
297
298         Speech JavaScript API: add SpeechGrammar and SpeechGrammarList
299         https://bugs.webkit.org/show_bug.cgi?id=80417
300
301         Reviewed by Adam Barth.
302
303         Implement SpeechGrammar and SpeechGrammarList.
304         (Spec: http://speech-javascript-api-spec.googlecode.com/git/speechapi.html)
305
306         Test: fast/speech/scripted/speechgrammar-basics.html
307
308         * Modules/speech/DOMWindowSpeech.idl:
309         * Modules/speech/SpeechGrammar.cpp:
310         (WebCore):
311         (WebCore::SpeechGrammar::create):
312         (WebCore::SpeechGrammar::SpeechGrammar):
313         * Modules/speech/SpeechGrammar.h:
314         (WebCore):
315         (SpeechGrammar):
316         (WebCore::SpeechGrammar::src):
317         (WebCore::SpeechGrammar::setSrc):
318         (WebCore::SpeechGrammar::weight):
319         (WebCore::SpeechGrammar::setWeight):
320         * Modules/speech/SpeechGrammar.idl:
321         * Modules/speech/SpeechGrammarList.cpp:
322         (WebCore):
323         (WebCore::SpeechGrammarList::create):
324         (WebCore::SpeechGrammarList::item):
325         (WebCore::SpeechGrammarList::addFromUri):
326         (WebCore::SpeechGrammarList::addFromString):
327         (WebCore::SpeechGrammarList::SpeechGrammarList):
328         * Modules/speech/SpeechGrammarList.h:
329         (WebCore):
330         (SpeechGrammarList):
331         (WebCore::SpeechGrammarList::length):
332         * Modules/speech/SpeechGrammarList.idl:
333         * WebCore.gypi:
334
335 2012-03-09  Sheriff Bot  <webkit.review.bot@gmail.com>
336
337         Unreviewed, rolling out r110269.
338         http://trac.webkit.org/changeset/110269
339         https://bugs.webkit.org/show_bug.cgi?id=80688
340
341         It made inspector/elements/highlight-node.html fail everywhere
342         (Requested by Ossy on #webkit).
343
344         * testing/Internals.idl:
345
346 2012-03-07  Alexander Pavlov  <apavlov@chromium.org>
347
348         Web Inspector: [Styles] Click in the first line of rule while editing property starts a new property
349         https://bugs.webkit.org/show_bug.cgi?id=80507
350
351         Reviewed by Vsevolod Vlasov.
352
353         * inspector/front-end/StylesSidebarPane.js:
354         (WebInspector.StylePropertiesSection):
355         (WebInspector.StylePropertiesSection.prototype._checkWillCancelEditing):
356         (WebInspector.StylePropertiesSection.prototype._handleSelectorContainerClick):
357         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
358         (WebInspector.StylePropertyTreeElement.prototype.onattach):
359         (WebInspector.StylePropertyTreeElement.prototype):
360
361 2012-03-09  Mark Rowe  <mrowe@apple.com>
362
363         <rdar://problem/11012024> Fix the build by working around <rdar://problem/10710970>.
364
365         * platform/mac/RunLoopMac.mm:
366         (WebCore::RunLoop::stop):
367
368 2012-03-09  Marja Hölttä  <marja@google.com>
369
370         FileInputType doesn't support (save|restore)FormControlState
371         https://bugs.webkit.org/show_bug.cgi?id=80145
372
373         Reviewed by Kent Tamura.
374
375         This enables saving and restoring the state of file upload elements in
376         unsubmitted forms.
377
378         Test: fast/forms/file/recover-file-input-in-unposted-form.html
379
380         * html/BaseCheckableInputType.cpp:
381         (WebCore::BaseCheckableInputType::restoreFormControlState): non-const
382         * html/BaseCheckableInputType.h:
383         (BaseCheckableInputType): restoreFormControlState non-const
384         * html/FileInputType.cpp:
385         (WebCore::FileInputType::saveFormControlState): save chosen files
386         (WebCore):
387         (WebCore::FileInputType::restoreFormControlState): restore chosen files
388         * html/FileInputType.h:
389         (FileInputType): overwrite (save|restore)FormControlState
390         * html/HiddenInputType.cpp:
391         (WebCore::HiddenInputType::restoreFormControlState): non-const
392         * html/HiddenInputType.h:
393         (HiddenInputType): restoreFormControlState non-const
394         * html/InputType.cpp:
395         (WebCore::InputType::restoreFormControlState): non-const
396         * html/InputType.h:
397         (InputType): restoreFormControlState non-const
398         * html/PasswordInputType.cpp:
399         (WebCore::PasswordInputType::restoreFormControlState): non-const
400         * html/PasswordInputType.h:
401         (PasswordInputType): restoreFormControlState non-const
402
403 2012-03-08  Benjamin Poulain  <bpoulain@apple.com>
404
405         Base the access to CSSStyleDeclaration on the CSSPropertyID instead of the PropertyName
406         https://bugs.webkit.org/show_bug.cgi?id=80461
407
408         Reviewed by Geoffrey Garen.
409
410         Previously, the acces to CSS Style properties was done through a NamedGetter. This caused
411         the (slow) mapping between CSSPropertyName and CSSPropertyID to be done twice for every acess:
412         1) canGetItemsForName() prior to the definition of the slot.
413         2) nameGetter() called from the slot with CSSPropertyName to get the actual value.
414
415         This patch changes the access to be based on CSSPropertyID. The slot is defined with the
416         CSSPropertyID as the customIndex, and the value can be accessed directly when the slot is
417         called.
418
419         To handle the differences create by hadPixelOrPosPrefix, two nearly identical callback are defined,
420         one for hadPixelOrPosPrefix, the other for !hadPixelOrPosPrefix.
421
422         The performance gain is about 19% when accessing CSS properties.
423
424         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
425         (WebCore::getPropertyValueFallback):
426         (WebCore::cssPropertyGetterPixelOrPosPrefix):
427         (WebCore):
428         (WebCore::cssPropertyGetterPixelOrPosPrefixCallback):
429         (WebCore::cssPropertyGetter):
430         (WebCore::cssPropertyGetterCallback):
431         (WebCore::JSCSSStyleDeclaration::getOwnPropertySlotDelegate):
432         (WebCore::JSCSSStyleDeclaration::getOwnPropertyDescriptorDelegate):
433         * css/CSSStyleDeclaration.idl:
434
435 2012-03-08  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
436
437         [Qt] Fix Qt minimal build
438
439         * testing/Internals.idl:
440
441 2012-03-08  James Robinson  <jamesr@chromium.org>
442
443         [chromium] Remove dead CoreGraphics code from chromium compositor implementation
444         https://bugs.webkit.org/show_bug.cgi?id=80470
445
446         Reviewed by Adam Barth.
447
448         We haven't supported CoreGraphics as a raster backend in chromium for a few months and do not plan to do so, so
449         it's time to remove the USE(CG) #ifdefs from our compositor and just rely on USE(SKIA) being set.  This also
450         slightly simplifies how PlatformCanvas works.
451
452         * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
453         * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
454         * platform/graphics/chromium/ContentLayerChromium.cpp:
455         (WebCore::ContentLayerChromium::createTextureUpdaterIfNeeded):
456         * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
457         (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
458         * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.h:
459         * platform/graphics/chromium/ImageLayerChromium.h:
460         * platform/graphics/chromium/LayerChromium.cpp:
461         * platform/graphics/chromium/LayerRendererChromium.cpp:
462         (WebCore::LayerRendererChromium::initialize):
463         * platform/graphics/chromium/LayerRendererChromium.h:
464         * platform/graphics/chromium/PlatformCanvas.cpp:
465         (WebCore::PlatformCanvas::createBackingCanvas):
466         (WebCore::PlatformCanvas::AutoLocker::AutoLocker):
467         (WebCore::PlatformCanvas::AutoLocker::~AutoLocker):
468         (WebCore):
469         (WebCore::PlatformCanvas::AutoLocker::pixels):
470         (WebCore::PlatformCanvas::Painter::Painter):
471         * platform/graphics/chromium/PlatformCanvas.h:
472         (WebCore):
473         (AutoLocker):
474         (Painter):
475         (PlatformCanvas):
476         * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp:
477         * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.h:
478
479 2012-03-08  Ryosuke Niwa  <rniwa@webkit.org>
480
481         Get rid of itemTypeAttributeChanged
482         https://bugs.webkit.org/show_bug.cgi?id=80666
483
484         Reviewed by Adam Barth.
485
486         This function is unnecessay as we can invalidate m_microDataItemListCaches
487         in invalidateCachesThatDependOnAttributes as done for other node lists.
488
489         * dom/Node.cpp:
490         (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged):
491         (WebCore::NodeListsNodeData::invalidateCachesThatDependOnAttributes):
492         * dom/Node.h:
493         * dom/NodeRareData.h:
494         (NodeListsNodeData):
495         * html/HTMLElement.cpp:
496         (WebCore::HTMLElement::parseAttribute):
497
498 2012-03-08  Sheriff Bot  <webkit.review.bot@gmail.com>
499
500         Unreviewed, rolling out r108616.
501         http://trac.webkit.org/changeset/108616
502         https://bugs.webkit.org/show_bug.cgi?id=80676
503
504         breaks animation on Safari welcome page (Requested by smfr on
505         #webkit).
506
507         * page/animation/AnimationController.cpp:
508         (WebCore::AnimationController::updateAnimations):
509         * page/animation/AnimationControllerPrivate.h:
510         (AnimationControllerPrivate):
511
512 2012-03-08  Benjamin Poulain  <benjamin@webkit.org>
513
514         Fix the build of WebKit with WTFURL following the removal of ForwardingHeaders/wtf
515         https://bugs.webkit.org/show_bug.cgi?id=80652
516
517         Reviewed by Eric Seidel.
518
519         The fowarding headers have been removed, we must now use the full path to the header.
520
521         * platform/KURLWTFURLImpl.h:
522
523 2012-03-08  Emil A Eklund  <eae@chromium.org>
524
525         Change calcRadiiFor to IntSize
526         https://bugs.webkit.org/show_bug.cgi?id=80655
527
528         Reviewed by Simon Fraser.
529
530         Borders and RoundedRect are both represented with pixel precision. As
531         such it doesn't make sense for calcRadiiFor to use subpixel units, it
532         just adds unnecessary type conversions.
533
534         No new tests, no new functionality.
535
536         * rendering/style/RenderStyle.cpp:
537         (WebCore::calcRadiiFor):
538
539 2012-03-08  Adrienne Walker  <enne@google.com>
540
541         [chromium] Encapsulate mask layer settings in LayerChromium
542         https://bugs.webkit.org/show_bug.cgi?id=80646
543
544         Reviewed by James Robinson.
545
546         If a WebLayer sets a mask layer, the setIsMask flag will not get set
547         properly and the mask layer will not turn off tiling. This was only
548         being set through GraphicsLayerChromium. Move this flag into
549         LayerChromium so that it always gets set.
550
551         Test: LayoutTests/compositing/
552
553         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
554         (WebCore::GraphicsLayerChromium::setMaskLayer):
555         * platform/graphics/chromium/LayerChromium.cpp:
556         (WebCore::LayerChromium::setMaskLayer):
557
558 2012-03-08  Tony Chang  <tony@chromium.org>
559
560         margins on flex-align: baseline are double counted
561         https://bugs.webkit.org/show_bug.cgi?id=80645
562
563         Reviewed by Ojan Vafai.
564
565         Fix a bug where we're counting the margins on baseline aligned
566         children twice. Also add some test cases to make sure we handle
567         wrap-reverse baseline alignment properly.
568
569         Tests: css3/flexbox/multiline-reverse-wrap-baseline-expected.html
570                css3/flexbox/multiline-reverse-wrap-baseline.html
571
572         * rendering/RenderFlexibleBox.cpp:
573         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
574
575 2012-03-08  Nat Duca  <nduca@chromium.org>
576
577         [chromium] Pass setVisibility to CCLayerTreeHostImpl regardless of LRC initialization status
578         https://bugs.webkit.org/show_bug.cgi?id=80584
579
580         Reviewed by James Robinson.
581
582         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
583         (WebCore::CCLayerTreeHost::setVisible):
584         (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread):
585         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
586         (WebCore::CCLayerTreeHostImpl::setVisible):
587         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
588
589 2012-03-08  Ian Vollick  <vollick@chromium.org>
590
591         [chromium] Ensure that the cc thread animation framework continues to tick when the tab is backgrounded
592         https://bugs.webkit.org/show_bug.cgi?id=77668
593
594         Reviewed by James Robinson.
595
596         Tested in CCLayerTreeHostTestTickAnimationWhileBackgrounded
597
598         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
599         (CCLayerTreeHostImplTimeSourceAdapter):
600         (WebCore::CCLayerTreeHostImplTimeSourceAdapter::create):
601         (WebCore::CCLayerTreeHostImplTimeSourceAdapter::~CCLayerTreeHostImplTimeSourceAdapter):
602         (WebCore::CCLayerTreeHostImplTimeSourceAdapter::onTimerTick):
603         (WebCore::CCLayerTreeHostImplTimeSourceAdapter::setActive):
604         (WebCore::CCLayerTreeHostImplTimeSourceAdapter::CCLayerTreeHostImplTimeSourceAdapter):
605         (WebCore):
606         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
607         (WebCore::CCLayerTreeHostImpl::setVisible):
608         (WebCore::CCLayerTreeHostImpl::animateLayers):
609         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
610         (WebCore):
611         (CCLayerTreeHostImpl):
612         * platform/graphics/chromium/cc/CCProxy.cpp:
613         (WebCore::CCProxy::currentThread):
614         (WebCore):
615         (WebCore::CCProxy::isMainThread):
616         (WebCore::CCProxy::isImplThread):
617         (WebCore::CCProxy::setCurrentThreadIsImplThread):
618         * platform/graphics/chromium/cc/CCProxy.h:
619         (CCProxy):
620
621 2012-03-08  Nico Weber  <thakis@chromium.org>
622
623         [chromium] Only build NEON files if target_arch=="arm"
624         https://bugs.webkit.org/show_bug.cgi?id=80626
625
626         Currently, webcore_arm_neon will compile a bunch of files
627         whose contents are completely ifdef'd away on non-arm, and
628         then bundle all the generated empty .o files into a useless
629         libwebcore_arm_neon.a. Don't do this.
630
631         Reviewed by Tony Chang.
632
633         * WebCore.gyp/WebCore.gyp:
634         * WebCore.gypi:
635
636 2012-03-08 Nima Ghanavatian <nghanavatian@rim.com>
637
638         [BlackBerry] Fix warning in PlatformTouchEventBlackBerry.cpp
639         https://bugs.webkit.org/show_bug.cgi?id=80621
640
641         Fixes a warning seen when control reaches the end of a
642         non-void function.  Return TouchCancel in the 'default' case.
643
644         Reviewed by Rob Buis.
645
646         * platform/blackberry/PlatformTouchEventBlackBerry.cpp:
647         (WebCore::touchEventType):
648
649 2012-03-08  Dana Jansens  <danakj@chromium.org>
650
651         [chromium] Using wrong scissor rect for draw culling
652         https://bugs.webkit.org/show_bug.cgi?id=80624
653
654         Reviewed by Adrienne Walker.
655
656         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
657         (WebCore::CCLayerTreeHostImpl::optimizeRenderPasses):
658
659 2012-03-08  Andy Estes  <aestes@apple.com>
660
661         REGRESSION (r105396): Dragging an iWork document into icloud.com opens it in the Mac app instead of uploading it to icloud.com
662         https://bugs.webkit.org/show_bug.cgi?id=79443
663
664         Reviewed by Ryosuke Niwa.
665
666         icloud.com registers a drop event handler that sets display:none on the
667         file input element receiving the drop. After dispatching the drop event,
668         DragController hit tests the position under the mouse to see if it is a
669         file input element in need of receiving files. Since the file input
670         element has lost its renderer, it cannot be found by hit testing, so
671         the dropped file is never attached to the file input element, no change
672         event fires, and no upload commences. We want these things to happen
673         even if the element is no longer visible.
674
675         Since we already keep track of the file input element under the mouse
676         via m_fileInputElementUnderMouse, this additional hit test is
677         unnecessary. Use m_fileInputElementUnderMouse in concludeEditDrag()
678         when dropping files.
679
680         Test: fast/events/file-input-hidden-in-ondrop.html
681
682         * page/DragController.cpp:
683         (WebCore::DragController::concludeEditDrag): Use
684         m_fileInputElementUnderMouse instead of the element returned by hit
685         testing. Assert that m_fileInputElementUnderMouse equals the hit tested
686         element unless m_fileInputElementUnderMouse doesn't have a renderer.
687
688 2012-03-08  Ryosuke Niwa  <rniwa@webkit.org>
689
690         Mac build fix for micro data API.
691
692         * Configurations/FeatureDefines.xcconfig:
693         * WebCore.xcodeproj/project.pbxproj:
694         * dom/Document.cpp:
695         (WebCore::Document::removeCachedMicroDataItemList):
696         * html/HTMLElement.idl:
697
698 2012-03-07  Jon Lee  <jonlee@apple.com>
699
700         Support [Custom] for static functions
701         https://bugs.webkit.org/show_bug.cgi?id=80573
702
703         Reviewed by Kentaro Hara.
704
705         * bindings/scripts/CodeGeneratorJS.pm:
706         (GenerateHeader): If the function is static, add static qualifier to cpp function.
707         (GenerateImplementation): Reorganize the function to split out based on the static
708         attribute, instead of checking for it at every line we output.
709             If the function is static and not custom, the listed code should be the code in
710         the rest of the function that did not have the static check. If it is custom, then
711         we check the number of arguments, and then call the static impl function directly.
712             If the function is not static, all of the "unless ($function->isStatic)" checks
713         are removed since it is not necessary.
714
715         * bindings/scripts/test/TestObj.idl: Added new test case.
716
717         * bindings/scripts/test/JS/JSTestObj.cpp:
718         (WebCore):
719         (WebCore::jsTestObjConstructorFunctionClassMethod2):
720         * bindings/scripts/test/JS/JSTestObj.h:
721         (JSTestObj):
722         (WebCore):
723         * bindings/scripts/test/ObjC/DOMTestObj.h:
724         * bindings/scripts/test/ObjC/DOMTestObj.mm:
725         (-[DOMTestObj classMethod2]):
726         * bindings/scripts/test/V8/V8TestObj.cpp:
727         (WebCore::ConfigureV8TestObjTemplate):
728         * bindings/scripts/test/V8/V8TestObj.h:
729         (V8TestObj):
730
731 2012-03-08  Mark Pilgrim  <pilgrim@chromium.org>
732
733         Collapse ENABLE(BLOB)|ENABLE(FILE_SYSTEM) to just ENABLE(BLOB)
734         https://bugs.webkit.org/show_bug.cgi?id=80592
735
736         Reviewed by Adam Barth.
737
738         In anticipation of moving FILE_SYSTEM-related code to Modules/, we
739         are collapsing combination BLOB/FILE_SYSTEM ifdefs to just
740         BLOB. In other words, it is assumed from now on that you can not
741         have FILE_SYSTEM support without BLOB support.
742         
743         No new tests, all existing tests pass.
744
745         * CMakeLists.txt:
746         * dom/ScriptExecutionContext.cpp:
747         (WebCore::ScriptExecutionContext::~ScriptExecutionContext):
748         (WebCore):
749         (WebCore::ScriptExecutionContext::fileThread):
750         * dom/ScriptExecutionContext.h:
751         (WebCore):
752         (ScriptExecutionContext):
753         * fileapi/AsyncFileStream.cpp:
754         * fileapi/AsyncFileStream.h:
755         * fileapi/FileError.h:
756         * fileapi/FileException.cpp:
757         * fileapi/FileException.h:
758         * fileapi/FileThread.cpp:
759         * fileapi/FileThread.h:
760         * fileapi/OperationNotAllowedException.cpp:
761         * fileapi/OperationNotAllowedException.h:
762         * platform/FileStream.cpp:
763         * platform/FileStream.h:
764         * platform/FileStreamClient.h:
765         * platform/SchemeRegistry.cpp:
766         (WebCore::canDisplayOnlyIfCanRequestSchemes):
767         (WebCore::CORSEnabledSchemes):
768         (WebCore::SchemeRegistry::registerURLSchemeAsNotAllowingJavascriptURLs):
769
770 2012-03-08  James Robinson  <jamesr@chromium.org>
771
772         Use an explicit attribute to signal that a context prefers to use a discrete GPU
773         https://bugs.webkit.org/show_bug.cgi?id=80639
774
775         Reviewed by Stephen White.
776
777         On platforms that support both integrated and discrete GPUs and can dynamically switch between the two, we
778         sometimes have a specific preference for a given context. Specifically, contexts used for WebGL and canvas 2d
779         acceleration should use the discrete GPU if available, but compositor contexts can run fine on an integrated
780         GPU. Instead of attempting to infer the intent from examining other context attributes, this adds an explicit
781         attribute to control this behavior.
782
783         * html/canvas/WebGLRenderingContext.cpp:
784         (WebCore):
785         (WebCore::WebGLRenderingContext::create):
786         * platform/graphics/GraphicsContext3D.h:
787         (WebCore::GraphicsContext3D::Attributes::Attributes):
788         (Attributes):
789         * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
790         (WebCore::SharedGraphicsContext3D::get):
791
792 2012-03-08  Andy Estes  <aestes@apple.com>
793
794         NULL renderer possible in WebCore::HTMLInputElement::setCanReceiveDroppedFiles()
795         https://bugs.webkit.org/show_bug.cgi?id=80648
796
797         Reviewed by Simon Fraser.
798
799         Test: fast/events/input-element-display-none-in-dragleave-crash.html
800
801         * html/HTMLInputElement.cpp:
802         (WebCore::HTMLInputElement::setCanReceiveDroppedFiles): NULL-check renderer().
803
804 2012-03-08  Jer Noble  <jer.noble@apple.com>
805
806         Yet another unreviewed build fix.
807
808         Remove an unneeded and Lion-defined window constant from WebCoreFullScreenWindow.
809
810         * platform/mac/WebCoreFullScreenWindow.mm:
811         (-[WebCoreFullScreenWindow initWithContentRect:styleMask:backing:defer:]):
812
813 2012-03-08  Levi Weintraub  <leviw@chromium.org>
814
815         Switch absoluteRects, culledInlineAbsoluteRects, absoluteBoundingBoxRect, and addFocusRingRects back to integers
816         https://bugs.webkit.org/show_bug.cgi?id=80545
817
818         Reviewed by Simon Fraser.
819
820         Converting the above functions, all of which return rects that represent on-screen rects, to IntRects from
821         LayoutRects.
822
823         addFocusRingsRects generates a vector of rects that is handed off directly to the GraphicsContext to be
824         drawn. Snapping the rects before adding them to the vector saves an extra pass through the vector.
825
826         absoluteRects and culledInlineAbsoluteRects are only used by addFocusRingRects, hasNonEmptyBoundingBox (only
827         to check if they're empty), and absoluteBoundingBoxRect, which is exposed from WebCore and thus should be an
828         IntRect anyways.
829
830         No new tests. No change in behavior.
831
832         * dom/Node.cpp:
833         (WebCore::Node::hasNonEmptyBoundingBox):
834         * dom/Range.cpp:
835         (WebCore::Range::boundingBox):
836         * rendering/RenderBlock.cpp:
837         (WebCore::RenderBlock::absoluteRects):
838         (WebCore::RenderBlock::addFocusRingRects):
839         * rendering/RenderBlock.h:
840         (RenderBlock):
841         * rendering/RenderInline.cpp:
842         (WebCore::RenderInline::absoluteRects):
843         (WebCore::RenderInline::culledInlineAbsoluteRects):
844         (WebCore::RenderInline::addFocusRingRects):
845         * rendering/RenderInline.h:
846         (RenderInline):
847         * rendering/RenderListBox.cpp:
848         (WebCore::RenderListBox::addFocusRingRects):
849         * rendering/RenderListBox.h:
850         (RenderListBox):
851         * rendering/RenderObject.cpp:
852         (WebCore::RenderObject::paintFocusRing):
853         (WebCore::RenderObject::absoluteBoundingBoxRect):
854         (WebCore::RenderObject::absoluteFocusRingQuads):
855         * rendering/RenderObject.h:
856         (WebCore::RenderObject::absoluteRects):
857         (RenderObject):
858         (WebCore::RenderObject::absoluteBoundingBoxRectIgnoringTransforms):
859         (WebCore::RenderObject::addFocusRingRects):
860         * rendering/RenderText.cpp:
861         (WebCore::RenderText::absoluteRects):
862         (WebCore::RenderText::absoluteRectsForRange):
863         * rendering/RenderText.h:
864         (RenderText):
865         * rendering/RenderTextControl.cpp:
866         (WebCore::RenderTextControl::addFocusRingRects):
867         * rendering/RenderTextControl.h:
868         (RenderTextControl):
869         * rendering/RenderView.cpp:
870         (WebCore::RenderView::absoluteRects):
871         * rendering/RenderView.h:
872         (RenderView):
873         * rendering/svg/RenderSVGBlock.cpp:
874         (WebCore::RenderSVGBlock::absoluteRects):
875         * rendering/svg/RenderSVGBlock.h:
876         (RenderSVGBlock):
877         * rendering/svg/RenderSVGContainer.cpp:
878         (WebCore::RenderSVGContainer::addFocusRingRects):
879         * rendering/svg/RenderSVGContainer.h:
880         (RenderSVGContainer):
881         * rendering/svg/RenderSVGImage.cpp:
882         (WebCore::RenderSVGImage::addFocusRingRects):
883         * rendering/svg/RenderSVGImage.h:
884         (RenderSVGImage):
885         * rendering/svg/RenderSVGModelObject.cpp:
886         (WebCore::RenderSVGModelObject::absoluteRects):
887         * rendering/svg/RenderSVGModelObject.h:
888         (RenderSVGModelObject):
889         * rendering/svg/RenderSVGShape.cpp:
890         (WebCore::RenderSVGShape::addFocusRingRects):
891         * rendering/svg/RenderSVGShape.h:
892         (RenderSVGShape):
893
894 2012-03-08  Erik Arvidsson  <arv@chromium.org>
895
896         [V8] Use EventNames instead of strings
897         https://bugs.webkit.org/show_bug.cgi?id=80649
898
899         Reviewed by Ojan Vafai.
900
901         No new tests. Covered by existing tests.
902
903         * bindings/v8/V8AbstractEventListener.cpp:
904         (WebCore::V8AbstractEventListener::invokeEventHandler):
905
906 2012-03-08  Tim Horton  <timothy_horton@apple.com>
907
908         No-op filter changes color output because of colorspace issues
909         https://bugs.webkit.org/show_bug.cgi?id=72411
910         <rdar://problem/10588374>
911
912         Reviewed by Dean Jackson.
913
914         Redefine "linear RGB" color space on Mac to mean linearized sRGB, instead of linear
915         Generic RGB. This makes existing CG color matching equivalent to what other ports do via
916         ImageBuffer::transformColorSpace (which only adjusts gamma, as we will now). Previously,
917         we were also causing actual (non-gamma) color adjustments which were not reversible.
918
919         No new tests, covered by all existing SVG and CSS filter tests.
920
921         * Resources/linearSRGB.icc: Added.
922         * WebCore.xcodeproj/project.pbxproj:
923         * platform/graphics/cg/GraphicsContextCG.cpp:
924         (WebCore::linearRGBColorSpaceRef):
925
926 2012-03-08  Beth Dakin  <bdakin@apple.com>
927
928         https://bugs.webkit.org/show_bug.cgi?id=80463
929         RenderImage is using the wrong origin when calling addRelevantRepaintedObject
930         -and corresponding-
931         <rdar://problem/10970221>
932
933         Reviewed by Dan Bernstein.
934
935         Use the exact same rect that we paint with instead of the 
936         visualOverflowRect() which does not always have a correct x and y.
937         * rendering/RenderImage.cpp:
938         (WebCore::RenderImage::paintReplaced):
939         * rendering/RenderVideo.cpp:
940         (WebCore::RenderVideo::paintReplaced):
941
942 2012-03-07  Jon Lee  <jonlee@apple.com>
943
944         Add support for ENABLE(LEGACY_NOTIFICATIONS)
945         https://bugs.webkit.org/show_bug.cgi?id=80497
946
947         Reviewed by Adam Barth.
948
949         Prep for b80472: Update API for Web Notifications
950         * Configurations/FeatureDefines.xcconfig:
951         * GNUmakefile.am:
952
953 2012-03-08  Jer Noble  <jer.noble@apple.com>
954
955         Full Screen Refactor Part 3: Animate into Full Screen mode using new animation classes.
956         https://bugs.webkit.org/show_bug.cgi?id=78928
957
958         Reviewed by Anders Carlsson.
959
960         Move WKFullScreenWindow from WebKit2 into WebCore to be shared by WebKit2 and WebKit.
961         * WebCore.xcodeproj/project.pbxproj:
962         * platform/mac/WebCoreFullScreenWindow.h:
963         * platform/mac/WebCoreFullScreenWindow.mm:
964
965         Add symbols for the following classes and functions to the export list:
966             WebCoreFullScreenWindow
967             WebWindowScaleAnimation
968             WebWindowFadeAnimation
969             ScrollView::contentsToScreen()
970             RenderObject::localToContainerQuad()
971             Document::setAnimatingFullScreen()
972         * WebCore.exp.in:
973
974 2012-03-08  Jer Noble  <jer.noble@apple.com>
975
976         Full Screen Refactor Part 1: Remove special-case rendering code for Full Screen animation.
977         https://bugs.webkit.org/show_bug.cgi?id=78925
978
979         Reviewed by John Sullivan.
980
981         No new tests; no net change in functionality so covered by existing tests.
982
983         The following functions had special case code for rendering full-screen elements removed:
984         * dom/Document.cpp:
985         (WebCore::Document::webkitWillEnterFullScreenForElement):
986         (WebCore::Document::webkitDidEnterFullScreenForElement):
987         (WebCore::Document::webkitWillExitFullScreenForElement):
988         (WebCore::Document::webkitDidExitFullScreenForElement):
989         (WebCore::Document::setAnimatingFullScreen):
990         * page/FrameView.cpp:
991         (WebCore):
992         (WebCore::FrameView::updateCompositingLayers):
993         (WebCore::FrameView::syncCompositingStateForThisFrame):
994         * rendering/RenderLayerBacking.cpp:
995         (WebCore::layerOrAncestorIsTransformed):
996         (WebCore::RenderLayerBacking::updateCompositedBounds):
997         * rendering/RenderLayerCompositor.cpp:
998         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
999         (WebCore::RenderLayerCompositor::requiresCompositingLayer):
1000         * rendering/RenderLayerCompositor.h:
1001
1002 2012-03-08  Matt Lilek  <mrl@apple.com>
1003
1004         Don't enable VIDEO_TRACK on all OS X platforms
1005         https://bugs.webkit.org/show_bug.cgi?id=80635
1006
1007         Reviewed by Eric Carlson.
1008
1009         * Configurations/FeatureDefines.xcconfig:
1010
1011 2012-03-08  Tony Chang  <tony@chromium.org>
1012
1013         implement flexbox wrap-reverse
1014         https://bugs.webkit.org/show_bug.cgi?id=80552
1015
1016         Reviewed by Ojan Vafai.
1017
1018         No new tests, but additional coverage in:
1019             css3/flexbox/multiline-align.html
1020             css3/flexbox/multiline-pack.html
1021             css3/flexbox/multiline.html
1022
1023         * rendering/RenderFlexibleBox.cpp:
1024         (WebCore::RenderFlexibleBox::WrapReverseContext::WrapReverseContext): Helper struct to hold information needed for reversing
1025         the order of lines.
1026         (RenderFlexibleBox::WrapReverseContext):
1027         (WebCore::RenderFlexibleBox::WrapReverseContext::addCrossAxisOffset):
1028         (WebCore::RenderFlexibleBox::WrapReverseContext::addNumberOfChildrenOnLine):
1029         (WebCore::RenderFlexibleBox::WrapReverseContext::lineCrossAxisDelta): Computes the number of pixels to move a line.
1030         (WebCore):
1031         (WebCore::RenderFlexibleBox::layoutFlexItems): Call flipForWrapReverse if needed. This happens
1032         before flipForRightToLeftColumn because otherwise the crossAxisOffsets will be wrong.
1033         (WebCore::flexAlignForChild):
1034         (WebCore::RenderFlexibleBox::alignChildren): Flip alignment in wrap-reverse because the cross directions are flipped.
1035         (WebCore::RenderFlexibleBox::flipForWrapReverse): Flip each line.
1036         * rendering/RenderFlexibleBox.h:
1037         (RenderFlexibleBox):
1038
1039 2012-03-08  Adam Klein  <adamk@chromium.org>
1040
1041         Remove InDocumentFlag manipulation methods from Node interface
1042         https://bugs.webkit.org/show_bug.cgi?id=80612
1043
1044         Reviewed by Ryosuke Niwa.
1045
1046         This is a first step towards tightening up Node::inDocument() to match
1047         the actual in-document-tree state (see r108152 for the sort of bug
1048         resulting from those not matching).
1049
1050         No new tests, refactoring only.
1051
1052         * dom/ContainerNode.cpp:
1053         (WebCore::ContainerNode::removedFromDocument): Remove duplicate call to clearInDocument:
1054         the call to Node::removedFromDocument three lines above will clear the flag.
1055         * dom/Document.cpp:
1056         (WebCore::Document::Document): Call ContainerNode constructor with InDocumentFlag always set
1057         instead of calling setInDocument.
1058         * dom/Node.cpp:
1059         (WebCore::Node::insertedIntoDocument): Inline setInDocument (now the only caller).
1060         (WebCore::Node::removedFromDocument): Inline clearInDocument (now the only caller).
1061         * dom/Node.h: Remove setInDocument & clearInDocument, add new CreateDocument ConstructionType.
1062
1063 2012-03-08  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
1064
1065         [Qt] Try to fix the Snow Leopard build
1066
1067         If the build is running under sh, echo -n does not empty the file.
1068
1069         * DerivedSources.pri:
1070
1071 2012-03-08  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
1072
1073         Prospective build fix for Qt minimal after r110191
1074
1075         https://bugs.webkit.org/show_bug.cgi?id=80338
1076
1077         * testing/Internals.cpp:
1078         (WebCore):
1079         * testing/Internals.h:
1080         (Internals):
1081
1082 2012-03-08  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
1083
1084         [Qt] Prospective Windows build fix
1085
1086         Don't assume that windows-builds will always run inside a cmd.exe shell.
1087
1088         * DerivedSources.pri:
1089
1090 2012-03-08  Vivek Galatage  <vivekgalatage@gmail.com>
1091
1092         Web Inspector: Creating a selector for class names with trailing spaces results with two dots instead of one
1093         https://bugs.webkit.org/show_bug.cgi?id=80529
1094
1095         Trim the className before replacing the whitespaces with dot "."
1096
1097         Reviewed by Pavel Feldman.
1098
1099         No new tests.
1100
1101         * inspector/front-end/DOMAgent.js:
1102         (WebInspector.DOMNode.prototype.appropriateSelectorFor):
1103
1104 2012-03-08  Dan Bernstein  <mitz@apple.com>
1105
1106         <rdar://problem/10981173> Dashboard regions should not be in device space
1107
1108         Reviewed by John Sullivan.
1109
1110         Test: TestWebKitAPI/Tests/mac/DeviceScaleFactorInDashboardRegions.mm
1111
1112         * rendering/RenderInline.cpp:
1113         (WebCore::RenderInline::addDashboardRegions): Stop applying the device scale factor to
1114         Dashboard regions.
1115         * rendering/RenderObject.cpp:
1116         (WebCore::RenderObject::addDashboardRegions): Ditto.
1117
1118 2012-03-08  Cem Kocagil  <cem.kocagil@gmail.com>
1119
1120         Web Inspector: Cannot insert right curly bracket on some keyboards
1121         https://bugs.webkit.org/show_bug.cgi?id=80474
1122
1123         Make sure other modifiers are not pressed
1124
1125         Reviewed by Pavel Feldman
1126
1127         * inspector/front-end/inspector.js:
1128         (WebInspector.documentKeyDown):
1129
1130 2012-03-08  Max Vujovic  <mvujovic@adobe.com>
1131
1132         Add a method to window.internals to enable testing of inspector highlight rects
1133         https://bugs.webkit.org/show_bug.cgi?id=80338
1134
1135         Reviewed by Pavel Feldman.
1136
1137         Add window.internals.inspectorHighlightRects, a method which makes it possible to test the
1138         positions and sizes of inspector highlight rects.
1139
1140         Test: inspector/elements/highlight-node.html
1141
1142         * WebCore.exp.in: Export symbols.
1143         * testing/Internals.cpp:
1144         (WebCore::Internals::inspectorHighlightRects): Call InspectorController::getHighlight and
1145         return the highlight's quads as a ClientRectList.
1146         (WebCore):
1147         * testing/Internals.h:
1148         (WebCore):
1149         (Internals):
1150         * testing/Internals.idl:
1151
1152             Add inspectorHighlightRects to the window.internals interface.
1153
1154 2012-03-08  Antti Koivisto  <antti@apple.com>
1155
1156         https://bugs.webkit.org/show_bug.cgi?id=80370
1157         Enable matched declaration caching for elements with a style attribute
1158
1159         Reviewed by Andreas Kling
1160
1161         Make the property set for style attribute immutable as long as there is no CSSOM
1162         wrapper for it. If the style attribute changes we create a new property set instead
1163         of recycling the old one. This way the property sets can be made cacheable as long
1164         as there is no CSSOM wrapper that would allow uncontrolled modifications. Constructing
1165         the wrapper disables caching.
1166         
1167         Made StyledElement::inlineStyle() and StyledElement::ensureInlineStyle() return a const
1168         StylePropertySet so making accidental modifications difficult. Also dropped *Decl from
1169         the names.
1170         
1171         Fixed two unrelated bugs that this exposed.
1172
1173         * css/CSSStyleSelector.cpp:
1174         
1175             Don't allow caching of document element style if writingModeSetOnDocumentElement() bit is set.
1176             Tested by fast/multicol/vertical-rl/break-properties.html.
1177         
1178         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1179         * css/StylePropertySet.h:
1180         (StylePropertySet):
1181         (WebCore::StylePropertySet::hasCSSOMWrapper):
1182         * dom/Element.cpp:
1183         (WebCore::Element::recalcStyle):
1184         
1185             Invalidate the matched properties cache if the document has rem units and the root font changes.
1186             Tested by fast/css/rem-dynamic-scaling.html.
1187         
1188         * dom/ElementAttributeData.cpp:
1189         (WebCore):
1190         (WebCore::ElementAttributeData::ensureInlineStyle):
1191         (WebCore::ElementAttributeData::ensureMutableInlineStyle):
1192         (WebCore::ElementAttributeData::updateInlineStyleAvoidingMutation):
1193         (WebCore::ElementAttributeData::destroyInlineStyle):
1194         * dom/ElementAttributeData.h:
1195         (WebCore::ElementAttributeData::inlineStyle):
1196         (ElementAttributeData):
1197         * dom/StyledElement.cpp:
1198         (WebCore::StyledElement::updateStyleAttribute):
1199         (WebCore::StyledElement::~StyledElement):
1200         (WebCore):
1201         (WebCore::StyledElement::style):
1202         (WebCore::StyledElement::parseAttribute):
1203         (WebCore::StyledElement::setInlineStyleProperty):
1204         (WebCore::StyledElement::removeInlineStyleProperty):
1205         (WebCore::StyledElement::addSubresourceAttributeURLs):
1206         * dom/StyledElement.h:
1207         (WebCore::StyledElement::inlineStyle):
1208         (WebCore::StyledElement::ensureInlineStyle):
1209         (StyledElement):
1210         (WebCore::StyledElement::destroyInlineStyle):
1211         * editing/ApplyStyleCommand.cpp:
1212         (WebCore::hasNoAttributeOrOnlyStyleAttribute):
1213         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
1214         (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
1215         (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
1216         (WebCore::ApplyStyleCommand::removeCSSStyle):
1217         (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown):
1218         (WebCore::ApplyStyleCommand::addBlockStyle):
1219         (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
1220         * editing/EditingStyle.cpp:
1221         (WebCore::HTMLElementEquivalent::propertyExistsInStyle):
1222         (HTMLTextDecorationEquivalent):
1223         (WebCore::HTMLTextDecorationEquivalent::propertyExistsInStyle):
1224         (WebCore::EditingStyle::conflictsWithInlineStyleOfElement):
1225         (WebCore::EditingStyle::elementIsStyledSpanOrHTMLEquivalent):
1226         (WebCore::EditingStyle::mergeInlineStyleOfElement):
1227         (WebCore::elementMatchesAndPropertyIsNotInInlineStyleDecl):
1228         (WebCore::EditingStyle::mergeStyle):
1229         * editing/EditingStyle.h:
1230         (EditingStyle):
1231         * editing/RemoveCSSPropertyCommand.cpp:
1232         (WebCore::RemoveCSSPropertyCommand::doApply):
1233         * editing/ReplaceSelectionCommand.cpp:
1234         (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
1235         (WebCore::ReplaceSelectionCommand::handleStyleSpans):
1236         * editing/markup.cpp:
1237         (WebCore::StyledMarkupAccumulator::appendElement):
1238         (WebCore::styleFromMatchedRulesAndInlineDecl):
1239         * html/HTMLElement.cpp:
1240         (WebCore::StyledElement::copyNonAttributeProperties):
1241         * html/canvas/CanvasStyle.cpp:
1242         (WebCore::currentColor):
1243         * page/PageSerializer.cpp:
1244         (WebCore::PageSerializer::serializeFrame):
1245         (WebCore::PageSerializer::retrieveResourcesForProperties):
1246         * page/PageSerializer.h:
1247         (PageSerializer):
1248         * rendering/RenderTreeAsText.cpp:
1249         (WebCore::isEmptyOrUnstyledAppleStyleSpan):
1250
1251 2012-03-08  Scott Byer  <scottbyer@chromium.org>
1252
1253         Have ScrollAnimatorNone use requestAnimationFrame
1254         https://bugs.webkit.org/show_bug.cgi?id=78938
1255
1256         Reviewed by James Robinson.
1257
1258         No new tests. Passes Chromium webkit_unit_tests.
1259
1260         * page/FrameView.cpp:
1261         (WebCore::FrameView::serviceScriptedAnimations):
1262         * platform/ScrollAnimator.h:
1263         (WebCore::ScrollAnimator::serviceScrollAnimations):
1264         * platform/ScrollAnimatorNone.cpp:
1265         (WebCore::ScrollAnimatorNone::ScrollAnimatorNone):
1266         (WebCore::ScrollAnimatorNone::scroll):
1267         (WebCore::ScrollAnimatorNone::cancelAnimations):
1268         (WebCore):
1269         (WebCore::ScrollAnimatorNone::serviceScrollAnimations):
1270         (WebCore::ScrollAnimatorNone::animationTimerFired):
1271         (WebCore::ScrollAnimatorNone::startNextTimer):
1272         (WebCore::ScrollAnimatorNone::animationTimerActive):
1273         (WebCore::ScrollAnimatorNone::stopAnimationTimerIfNeeded):
1274         * platform/ScrollAnimatorNone.h:
1275         (ScrollAnimatorNone):
1276         * platform/ScrollableArea.cpp:
1277         (WebCore::ScrollableArea::serviceScrollAnimations):
1278         (WebCore):
1279         * platform/ScrollableArea.h:
1280         (WebCore):
1281         (ScrollableArea):
1282         * rendering/RenderLayer.h:
1283         (WebCore::RenderLayer::hostWindow):
1284         (RenderLayer):
1285         * rendering/RenderListBox.h:
1286         (WebCore::RenderListBox::hostWindow):
1287         (RenderListBox):
1288
1289 2012-03-08  Dan Bernstein  <mitz@apple.com>
1290
1291         REGRESSION (r109964): Assertion failure (!isUndefined()) in Length::getIntValue() when a Dashboard region is specified without offsets
1292         https://bugs.webkit.org/show_bug.cgi?id=80614
1293
1294         Reviewed by Beth Dakin.
1295
1296         Test: fast/css/dashboard-regions-undefined-length-assertion.html
1297
1298         * css/CSSStyleSelector.cpp:
1299         (WebCore::CSSStyleSelector::collectMatchingRulesForList): Reverted to setting zero lengths,
1300         rather than Undefined ones, in the RenderStyle when offsets are not given.
1301
1302 2012-03-08  Mikkel Kruse Johnsen  <mikkel@linet.dk>
1303
1304         WebKitGtk+ fails to build on win32 against GTK3
1305         https://bugs.webkit.org/show_bug.cgi?id=63919
1306
1307         Reviewed by Gustavo Noronha Silva.
1308
1309         * plugins/gtk/PluginViewGtk.cpp: Don't use gtk_socket_new with GTK3 on Win32
1310         (WebCore::PluginView::platformStart):
1311
1312 2012-03-08  Jason Liu  <jason.liu@torchmobile.com.cn>
1313
1314         [BlackBerry]New feature: support about:cookie for internal build.
1315         https://bugs.webkit.org/show_bug.cgi?id=80367
1316
1317         Reviewed by Antonio Gomes.
1318
1319         No new tests.
1320
1321         * platform/blackberry/CookieManager.cpp:
1322         (WebCore::CookieManager::generateHtmlFragmentForCookies):
1323         (WebCore):
1324         * platform/blackberry/CookieManager.h:
1325         * platform/network/blackberry/NetworkJob.cpp:
1326         (WebCore::NetworkJob::handleAbout):
1327
1328 2012-03-08  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
1329
1330         Make elements with attributes smaller by eliminating the m_element back pointer in NamedNodeMap
1331         https://bugs.webkit.org/show_bug.cgi?id=75069
1332
1333         Reviewed by Ryosuke Niwa.
1334
1335         NamedNodeMap is an exposed DOM representation of an element's attribute storage. As part of
1336         its implementation it keeps a pointer to its associated Element plus all the attribute
1337         storage.
1338
1339         This commit separate the two things: NamedNodeMap is now a wrapper to Element, containing
1340         only the pointer, and the attribute storage is now owned by Element directly. Since usage
1341         of NamedNodeMap is not very common, it can be stored in ElementRareData. As a result, most
1342         elements with attributes now don't need to allocate memory for that extra pointer in
1343         NamedNodeMap.
1344
1345         One consequence of this implementation is that now we explicitly don't support
1346         DocumentType.notations and DocumentType.entities. They weren't supported before, a
1347         NamedNodeMap was never created for those attributes -- and some NamedNodeMap functions
1348         wouldn't work correctly without an associated Element.
1349
1350         NamedNodeMap itself was cleaned up, as well as unnecessary references to it removed in the
1351         code and comments.
1352
1353         No new tests and should not change results for existing tests.
1354
1355         * dom/Attribute.h:
1356         (WebCore):
1357         * dom/DocumentType.h:
1358         (DocumentType): Point out that we don't support does attributes yet.
1359         * dom/Element.cpp:
1360         (WebCore::Element::~Element): Detaching the NamedNodeMap is no longer necessary because it
1361         will be destroyed. We still detach the potential Attrs inside our Attributes by using
1362         clearAttributes().
1363         (WebCore::Element::attributes): Looks in ElementRareData now. Note we ensure the creation
1364         of the attribute storage.
1365         (WebCore):
1366         (WebCore::Element::getAttribute):
1367         (WebCore::Element::setAttributeInternal):
1368         (WebCore::Element::parserSetAttributes):
1369         (WebCore::Element::hasAttributes):
1370         (WebCore::Element::createAttributeData):
1371         (WebCore::Element::insertedIntoDocument):
1372         (WebCore::Element::removedFromDocument):
1373         (WebCore::Element::getURLAttribute):
1374         (WebCore::Element::getNonEmptyURLAttribute):
1375         (WebCore::Element::hasNamedNodeMap): Helper function for Node::dumpStatistics().
1376         * dom/Element.h:
1377         (Element):
1378         (WebCore::Element::attributeData):
1379         (WebCore::Element::ensureAttributeData):
1380         (WebCore::Element::fastHasAttribute):
1381         (WebCore::Element::fastGetAttribute):
1382         (WebCore::Element::hasAttributesWithoutUpdate):
1383         (WebCore::Element::idForStyleResolution):
1384         (WebCore::Element::attributeCount):
1385         (WebCore::Element::attributeItem):
1386         (WebCore::Element::getAttributeItem):
1387         * dom/ElementAttributeData.h:
1388         (WebCore::ElementAttributeData::create):
1389         (ElementAttributeData):
1390         * dom/ElementRareData.h:
1391         (ElementRareData):
1392         * dom/NamedNodeMap.cpp: Rewriting now that m_attributeData is not a member, using m_element
1393         methods when possible.
1394         (WebCore::NamedNodeMap::ref):
1395         (WebCore::NamedNodeMap::deref):
1396         (WebCore::NamedNodeMap::getNamedItem):
1397         (WebCore::NamedNodeMap::getNamedItemNS):
1398         (WebCore::NamedNodeMap::removeNamedItem):
1399         (WebCore::NamedNodeMap::removeNamedItemNS):
1400         (WebCore::NamedNodeMap::setNamedItem):
1401         (WebCore::NamedNodeMap::item):
1402         (WebCore::NamedNodeMap::length):
1403         * dom/NamedNodeMap.h:
1404         (WebCore):
1405         (WebCore::NamedNodeMap::create):
1406         (NamedNodeMap):
1407         (WebCore::NamedNodeMap::NamedNodeMap): Instead of asserting m_element in every function, we
1408         now assert only in the constructor.
1409         * dom/Node.cpp:
1410         (WebCore::Node::dumpStatistics): Add a counter for elements with rare data, this allows us
1411         compare more clearly the impact of moving NamedNodeMap there.
1412         (WebCore::Node::isEqualNode): Remove use of mapsEquivalent(). It was dead code, because
1413         both entities and notations were always NULL.
1414         (WebCore::Node::compareDocumentPosition):
1415         * inspector/DOMPatchSupport.h:
1416         (WebCore):
1417         * svg/SVGElement.cpp:
1418         (WebCore::SVGElement::attributeChanged):
1419
1420 2012-03-08  Robin Cao  <robin.cao@torchmobile.com.cn>
1421
1422         [BlackBerry] Upstream WebGL related files from platform/graphics
1423         https://bugs.webkit.org/show_bug.cgi?id=79876
1424
1425         Reviewed by Rob Buis.
1426
1427         Initial upstream, no new tests.
1428
1429         * platform/graphics/blackberry/DrawingBufferBlackBerry.cpp: Added.
1430         (WebCore):
1431         (DrawingBufferInternal):
1432         (WebCore::generateColorTexture):
1433         (WebCore::DrawingBuffer::DrawingBuffer):
1434         (WebCore::DrawingBuffer::~DrawingBuffer):
1435         (WebCore::DrawingBuffer::publishToPlatformLayer):
1436         (WebCore::DrawingBuffer::reset):
1437         (WebCore::DrawingBuffer::platformLayer):
1438         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp: Added.
1439         (WebCore):
1440         (WebCore::GraphicsContext3D::create):
1441         (WebCore::GraphicsContext3D::GraphicsContext3D):
1442         (WebCore::GraphicsContext3D::~GraphicsContext3D):
1443         (WebCore::GraphicsContext3D::paintsIntoCanvasBuffer):
1444         (WebCore::GraphicsContext3D::makeContextCurrent):
1445         (WebCore::GraphicsContext3D::isGLES2Compliant):
1446         (WebCore::GraphicsContext3D::isGLES2NPOTStrict):
1447         (WebCore::GraphicsContext3D::isErrorGeneratedOnOutOfBoundsAccesses):
1448         (WebCore::GraphicsContext3D::platformTexture):
1449         (WebCore::GraphicsContext3D::platformLayer):
1450         (WebCore::GraphicsContext3D::paintToCanvas):
1451         (WebCore::GraphicsContext3D::setContextLostCallback):
1452         * platform/graphics/blackberry/WebGLLayerWebKitThread.cpp: Added.
1453         (WebCore):
1454         (WebCore::WebGLLayerWebKitThread::WebGLLayerWebKitThread):
1455         (WebCore::WebGLLayerWebKitThread::~WebGLLayerWebKitThread):
1456         (WebCore::WebGLLayerWebKitThread::setNeedsDisplay):
1457         (WebCore::WebGLLayerWebKitThread::updateTextureContentsIfNeeded):
1458         * platform/graphics/blackberry/WebGLLayerWebKitThread.h: Added.
1459         (WebCore):
1460         (WebGLLayerWebKitThread):
1461         (WebCore::WebGLLayerWebKitThread::create):
1462         (WebCore::WebGLLayerWebKitThread::setWebGLContext):
1463
1464 2012-03-08  Yong Li  <yoli@rim.com>
1465
1466         [BlackBerry] LayerRender should turn off stencil/scissor after drawing layers
1467         https://bugs.webkit.org/show_bug.cgi?id=80598
1468
1469         Reviewed by Rob Buis.
1470
1471         Turn off stencil/scissor after using them to avoid affecting later GL operation
1472         accidentally.
1473
1474         * platform/graphics/blackberry/LayerRenderer.cpp:
1475         (WebCore::LayerRenderer::drawLayers):
1476
1477 2012-03-08  Simon Hausmann  <simon.hausmann@nokia.com>
1478
1479         [Qt] Windows build fix.
1480
1481         Reviewed by Tor Arne Vestbø.
1482
1483         * DerivedSources.pri: Replace commandline that is too long for Windows with
1484         separate lines to be executed in the Makefile for the IDL preprocessing.
1485
1486 2012-03-08  Ilya Tikhonovsky  <loislo@chromium.org>
1487
1488         Web Inspector: The function had to return a hash but it returned just address.
1489         https://bugs.webkit.org/show_bug.cgi?id=80591
1490
1491         Reviewed by Yury Semikhatsky.
1492
1493         * bindings/v8/RetainedDOMInfo.cpp:
1494         (WebCore::RetainedDOMInfo::GetHash):
1495
1496 2012-03-08  Ilya Tikhonovsky  <loislo@chromium.org>
1497
1498         Unreviewed single line fix. The function had to return a hash but it returned just address.
1499
1500         * bindings/v8/V8GCController.cpp:
1501         (WebCore::UnspecifiedGroup::GetHash):
1502
1503 2012-03-08  Shinya Kawanaka  <shinyak@chromium.org>
1504
1505         <shadow> should be rendered correctly.
1506         https://bugs.webkit.org/show_bug.cgi?id=78596
1507
1508         Reviewed by Hajime Morita.
1509
1510         This patch supports <shadow> element rendering.
1511
1512         When attaching <shadow> element, if it is in the oldest shadow tree, it runs a part of
1513         distribution algorithm. If it is in non-oldest shadow tree, it runs tree a part of
1514         tree composition algorithm to assign a older shadow root. In this patch, InsertionPonit
1515         try to treat the distributed host children and the assigned shadow children similarly.
1516
1517         NodeRenderingContext supports rendering <shadow> element. Since the assigned shadow children
1518         are treated like distributed host children, that change is to consider non-youngest shadow
1519         tree basically also.
1520
1521         Tests: fast/dom/shadow/shadow-element-rendering-multiple.html
1522                fast/dom/shadow/shadow-element-rendering-single.html
1523
1524         * dom/NodeRenderingContext.cpp:
1525         (WebCore):
1526         (WebCore::NodeRenderingContext::NodeRenderingContext):
1527           Does not ignore non-youngest shadow tree.
1528         * dom/ShadowRoot.cpp:
1529         (WebCore::ShadowRoot::ShadowRoot):
1530         * dom/ShadowRoot.h:
1531         (ShadowRoot):
1532         (WebCore::ShadowRoot::assignedTo):
1533         (WebCore):
1534         (WebCore::ShadowRoot::setAssignedTo):
1535         (WebCore::ShadowRoot::isUsedForRendering):
1536           Returns true if ShadowRoot is youngest or assigned to some InsertionPoint.
1537         (WebCore::toShadowRoot):
1538         * dom/ShadowTree.cpp:
1539         (WebCore::ShadowTree::insertionPointFor):
1540           Returns InsertionPoint to which node is distributed.
1541         * dom/ShadowTree.h:
1542         (ShadowTree):
1543         * html/shadow/HTMLContentElement.h:
1544         (WebCore::HTMLContentElement::doesSelectFromHostChildren):
1545         (HTMLContentElement):
1546         * html/shadow/HTMLShadowElement.cpp:
1547         (WebCore::HTMLShadowElement::HTMLShadowElement):
1548         (WebCore::HTMLShadowElement::select):
1549         (WebCore::HTMLShadowElement::doesSelectFromHostChildren):
1550         (WebCore):
1551         * html/shadow/HTMLShadowElement.h:
1552         (HTMLShadowElement):
1553         * html/shadow/InsertionPoint.cpp:
1554         (WebCore::InsertionPoint::attach):
1555         (WebCore::InsertionPoint::detach):
1556         (WebCore::InsertionPoint::assignedFrom):
1557         (WebCore):
1558         (WebCore::InsertionPoint::assignShadowRoot):
1559         (WebCore::InsertionPoint::clearAssignment):
1560         * html/shadow/InsertionPoint.h:
1561         (InsertionPoint):
1562
1563 2012-03-06  Hans Wennborg  <hans@chromium.org>
1564
1565         Speech JavaScript API: SpeechRecognitionAlternative, Result and ResultList
1566         https://bugs.webkit.org/show_bug.cgi?id=80424
1567
1568         Reviewed by Adam Barth.
1569
1570         Implement the SpeechRecognitionAlternative,
1571         SpeechRecognitionResult and SpeechRecognitionResultList.
1572         (Spec: http://speech-javascript-api-spec.googlecode.com/git/speechapi.html)
1573
1574         No new tests because these interfaces don't have constructors.
1575         They will be tested as more of the API gets implemented.
1576
1577         * Modules/speech/SpeechRecognitionAlternative.cpp: Added.
1578         (WebCore):
1579         (WebCore::SpeechRecognitionAlternative::create):
1580         (WebCore::SpeechRecognitionAlternative::SpeechRecognitionAlternative):
1581         * Modules/speech/SpeechRecognitionAlternative.h: Added.
1582         (WebCore):
1583         (SpeechRecognitionAlternative):
1584         (WebCore::SpeechRecognitionAlternative::transcript):
1585         (WebCore::SpeechRecognitionAlternative::confidence):
1586         * Modules/speech/SpeechRecognitionAlternative.idl: Added.
1587         * Modules/speech/SpeechRecognitionResult.cpp: Added.
1588         (WebCore):
1589         (WebCore::SpeechRecognitionResult::create):
1590         (WebCore::SpeechRecognitionResult::item):
1591         (WebCore::SpeechRecognitionResult::SpeechRecognitionResult):
1592         * Modules/speech/SpeechRecognitionResult.h: Added.
1593         (WebCore):
1594         (SpeechRecognitionResult):
1595         (WebCore::SpeechRecognitionResult::length):
1596         (WebCore::SpeechRecognitionResult::final):
1597         * Modules/speech/SpeechRecognitionResult.idl: Added.
1598         * Modules/speech/SpeechRecognitionResultList.cpp: Added.
1599         (WebCore):
1600         (WebCore::SpeechRecognitionResultList::create):
1601         (WebCore::SpeechRecognitionResultList::item):
1602         (WebCore::SpeechRecognitionResultList::SpeechRecognitionResultList):
1603         * Modules/speech/SpeechRecognitionResultList.h: Added.
1604         (WebCore):
1605         (SpeechRecognitionResultList):
1606         (WebCore::SpeechRecognitionResultList::length):
1607         * Modules/speech/SpeechRecognitionResultList.idl: Added.
1608         * WebCore.gypi:
1609
1610 2012-03-08  Robin Cao  <robin.cao@torchmobile.com.cn>
1611
1612         [BlackBerry] Upstream GraphicsLayerBlackBerry.{h, cpp}
1613         https://bugs.webkit.org/show_bug.cgi?id=79867
1614
1615         Reviewed by Rob Buis.
1616
1617         Initial upstream, no new tests.
1618
1619         * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp: Added.
1620         (WebCore):
1621         (WebCore::setLayerBorderColor):
1622         (WebCore::clearBorderColor):
1623         (WebCore::setLayerBackgroundColor):
1624         (WebCore::clearLayerBackgroundColor):
1625         (WebCore::GraphicsLayer::create):
1626         (WebCore::GraphicsLayerBlackBerry::GraphicsLayerBlackBerry):
1627         (WebCore::GraphicsLayerBlackBerry::~GraphicsLayerBlackBerry):
1628         (WebCore::GraphicsLayerBlackBerry::setName):
1629         (WebCore::GraphicsLayerBlackBerry::setChildren):
1630         (WebCore::GraphicsLayerBlackBerry::addChild):
1631         (WebCore::GraphicsLayerBlackBerry::addChildAtIndex):
1632         (WebCore::GraphicsLayerBlackBerry::addChildBelow):
1633         (WebCore::GraphicsLayerBlackBerry::addChildAbove):
1634         (WebCore::GraphicsLayerBlackBerry::replaceChild):
1635         (WebCore::GraphicsLayerBlackBerry::removeFromParent):
1636         (WebCore::GraphicsLayerBlackBerry::setPosition):
1637         (WebCore::GraphicsLayerBlackBerry::setAnchorPoint):
1638         (WebCore::GraphicsLayerBlackBerry::setSize):
1639         (WebCore::GraphicsLayerBlackBerry::setTransform):
1640         (WebCore::GraphicsLayerBlackBerry::setChildrenTransform):
1641         (WebCore::GraphicsLayerBlackBerry::setPreserves3D):
1642         (WebCore::GraphicsLayerBlackBerry::setMasksToBounds):
1643         (WebCore::GraphicsLayerBlackBerry::setDrawsContent):
1644         (WebCore::GraphicsLayerBlackBerry::setContentsVisible):
1645         (WebCore::GraphicsLayerBlackBerry::setMaskLayer):
1646         (WebCore::GraphicsLayerBlackBerry::setReplicatedByLayer):
1647         (WebCore::GraphicsLayerBlackBerry::setFixedPosition):
1648         (WebCore::GraphicsLayerBlackBerry::setHasFixedContainer):
1649         (WebCore::GraphicsLayerBlackBerry::setHasFixedAncestorInDOMTree):
1650         (WebCore::GraphicsLayerBlackBerry::setBackgroundColor):
1651         (WebCore::GraphicsLayerBlackBerry::clearBackgroundColor):
1652         (WebCore::GraphicsLayerBlackBerry::setContentsOpaque):
1653         (WebCore::GraphicsLayerBlackBerry::setBackfaceVisibility):
1654         (WebCore::GraphicsLayerBlackBerry::setOpacity):
1655         (WebCore::GraphicsLayerBlackBerry::setContentsNeedsDisplay):
1656         (WebCore::GraphicsLayerBlackBerry::setNeedsDisplay):
1657         (WebCore::GraphicsLayerBlackBerry::setNeedsDisplayInRect):
1658         (WebCore::GraphicsLayerBlackBerry::setContentsRect):
1659         (WebCore::removeAnimationByIdAndProperty):
1660         (WebCore::removeAnimationByName):
1661         (WebCore::GraphicsLayerBlackBerry::addAnimation):
1662         (WebCore::GraphicsLayerBlackBerry::pauseAnimation):
1663         (WebCore::GraphicsLayerBlackBerry::removeAnimation):
1664         (WebCore::GraphicsLayerBlackBerry::suspendAnimations):
1665         (WebCore::GraphicsLayerBlackBerry::resumeAnimations):
1666         (WebCore::GraphicsLayerBlackBerry::setContentsToImage):
1667         (WebCore::GraphicsLayerBlackBerry::updateContentsImage):
1668         (WebCore::GraphicsLayerBlackBerry::setContentsToCanvas):
1669         (WebCore::GraphicsLayerBlackBerry::setContentsToMedia):
1670         (WebCore::GraphicsLayerBlackBerry::hostLayerForSublayers):
1671         (WebCore::GraphicsLayerBlackBerry::layerForSuperlayer):
1672         (WebCore::GraphicsLayerBlackBerry::platformLayer):
1673         (WebCore::GraphicsLayerBlackBerry::setDebugBackgroundColor):
1674         (WebCore::GraphicsLayerBlackBerry::setDebugBorder):
1675         (WebCore::GraphicsLayerBlackBerry::updateSublayerList):
1676         (WebCore::GraphicsLayerBlackBerry::updateLayerPosition):
1677         (WebCore::GraphicsLayerBlackBerry::updateLayerSize):
1678         (WebCore::GraphicsLayerBlackBerry::updateAnchorPoint):
1679         (WebCore::GraphicsLayerBlackBerry::updateTransform):
1680         (WebCore::GraphicsLayerBlackBerry::updateChildrenTransform):
1681         (WebCore::GraphicsLayerBlackBerry::updateMasksToBounds):
1682         (WebCore::GraphicsLayerBlackBerry::updateContentsOpaque):
1683         (WebCore::GraphicsLayerBlackBerry::updateBackfaceVisibility):
1684         (WebCore::GraphicsLayerBlackBerry::updateLayerPreserves3D):
1685         (WebCore::GraphicsLayerBlackBerry::updateLayerIsDrawable):
1686         (WebCore::GraphicsLayerBlackBerry::updateFixedPosition):
1687         (WebCore::GraphicsLayerBlackBerry::updateHasFixedContainer):
1688         (WebCore::GraphicsLayerBlackBerry::updateHasFixedAncestorInDOMTree):
1689         (WebCore::GraphicsLayerBlackBerry::updateLayerBackgroundColor):
1690         (WebCore::GraphicsLayerBlackBerry::updateAnimations):
1691         (WebCore::GraphicsLayerBlackBerry::updateContentsVideo):
1692         (WebCore::GraphicsLayerBlackBerry::updateContentsRect):
1693         (WebCore::GraphicsLayerBlackBerry::setupContentsLayer):
1694         (WebCore::GraphicsLayerBlackBerry::updateOpacityOnLayer):
1695         (WebCore::GraphicsLayerBlackBerry::contentsVisible):
1696         * platform/graphics/blackberry/GraphicsLayerBlackBerry.h: Added.
1697         (WebCore):
1698         (GraphicsLayerBlackBerry):
1699         (WebCore::GraphicsLayerBlackBerry::notifySyncRequired):
1700         (WebCore::GraphicsLayerBlackBerry::notifyAnimationStarted):
1701         (WebCore::GraphicsLayerBlackBerry::primaryLayer):
1702         (WebCore::GraphicsLayerBlackBerry::contentsLayer):
1703
1704 2012-03-07  Shinya Kawanaka  <shinyak@chromium.org>
1705
1706         Refactoring: Remove Node::isContentElement and Node::isShadowElement.
1707         https://bugs.webkit.org/show_bug.cgi?id=80501
1708
1709         Reviewed by Hajime Morita.
1710
1711         Removes Node::isContentElement and Node::isShadowElement. These methods are replaced
1712         by hasTagName. However the tag name of HTMLContentElement was not consistent,
1713         this patch make them consistent.
1714
1715         No new tests. Should be covered by existing tests.
1716
1717         * dom/Node.h:
1718         * html/HTMLElement.h:
1719         (WebCore::HTMLElement::isInsertionPoint):
1720         (HTMLElement):
1721         * html/HTMLSummaryElement.cpp:
1722         (WebCore::SummaryContentElement::SummaryContentElement):
1723           It uses HTMLNames::divTag as tagname. It should use HTMLNames::webkitShadowTagName.
1724         * html/shadow/HTMLContentElement.h:
1725         (HTMLContentElement):
1726         * html/shadow/InsertionPoint.h:
1727         (InsertionPoint):
1728         (WebCore::InsertionPoint::isInsertionPoint):
1729         (WebCore::isInsertionPoint):
1730         * testing/Internals.cpp:
1731         (WebCore::Internals::isValidContentSelect):
1732         * testing/Internals.h:
1733         (Internals):
1734
1735 2012-03-07  Adam Barth  <abarth@webkit.org>
1736
1737         ContainerNode::insertedIntoDocument and removedFromDocument use weak iteration patterns
1738         https://bugs.webkit.org/show_bug.cgi?id=80569
1739
1740         Reviewed by Ryosuke Niwa.
1741
1742         This patch moves ContainerNode::insertedIntoDocument and
1743         removedFromDocument to using a better iteration pattern in which we
1744         collect all the nodes we're planning to iterate into a vector and then
1745         iterate over them.
1746
1747         * dom/ContainerNode.cpp:
1748         (WebCore::ContainerNode::insertedIntoDocument):
1749         (WebCore::ContainerNode::removedFromDocument):
1750
1751 2012-03-07  Ami Fischman  <fischman@chromium.org>
1752
1753         [Chromium] Allow CCLayerTreeHost::context() to be called even with the threaded compositor enabled.
1754         https://bugs.webkit.org/show_bug.cgi?id=80565
1755
1756         Reviewed by James Robinson.
1757
1758         This gets triggered by the video HW decode+render path when threaded compositor is enabled
1759         (https://chromiumcodereview.appspot.com/9639005/)
1760
1761         No new tests.
1762
1763         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1764         (WebCore::CCLayerTreeHost::context):
1765
1766 2012-03-07  Mike Lawther  <mikelawther@chromium.org>
1767
1768         CSS3 calc: mixed absolute/percentages work for width, height, margin and padding
1769         https://bugs.webkit.org/show_bug.cgi?id=79621
1770
1771         Reviewed by Andreas Kling.
1772
1773         ApplyPropertyLength in CSSStyleApplyPropery now handles mixed absolute/percentage
1774         length expressions. All property handlers using this template now work with
1775         mixed expressions.
1776
1777         This patch adds a new expression evaluator in CalculationValue.cpp. This is because
1778         Length.[cpp|h] (in platform) cannot refer to CSSCalculationValue.[cpp|h] (in css) 
1779         due to layering restrictions.
1780
1781         Lengths can be copied, and so the expressions are stored in a hashmap, and only their
1782         ids are copied along with Length. The expressions are RefCounted, and will get 
1783         cleaned up when the last referring Length is destructed.
1784
1785         * WebCore.exp.in:
1786         * css/CSSCalculationValue.cpp:
1787         (WebCore::CSSCalcPrimitiveValue::toCalcValue):
1788         (CSSCalcPrimitiveValue):
1789         (WebCore::CSSCalcBinaryOperation::toCalcValue):
1790         (CSSCalcBinaryOperation):
1791         * css/CSSCalculationValue.h:
1792         (WebCore):
1793         (CSSCalcExpressionNode):
1794         (CSSCalcValue):
1795         (WebCore::CSSCalcValue::toCalcValue):
1796         * css/CSSPrimitiveValue.cpp:
1797         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1798         * css/CSSStyleApplyProperty.cpp:
1799         (WebCore::ApplyPropertyLength::applyValue):
1800         * css/CSSStyleSelector.cpp:
1801         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1802         * css/CSSStyleSelector.h:
1803         (CSSStyleSelector):
1804         * platform/CalculationValue.cpp:
1805         (WebCore::CalcExpressionBinaryOperation::evaluate):
1806         (WebCore):
1807         (WebCore::CalculationValue::create):
1808         (WebCore::CalculationValue::evaluate):
1809         * platform/CalculationValue.h:
1810         (CalcExpressionNode):
1811         (WebCore::CalcExpressionNode::~CalcExpressionNode):
1812         (WebCore):
1813         (CalculationValue):
1814         (WebCore::CalculationValue::CalculationValue):
1815         (CalcExpressionNumber):
1816         (WebCore::CalcExpressionNumber::CalcExpressionNumber):
1817         (WebCore::CalcExpressionNumber::evaluate):
1818         (CalcExpressionLength):
1819         (WebCore::CalcExpressionLength::CalcExpressionLength):
1820         (WebCore::CalcExpressionLength::evaluate):
1821         (CalcExpressionBinaryOperation):
1822         (WebCore::CalcExpressionBinaryOperation::CalcExpressionBinaryOperation):
1823         * platform/Length.cpp:
1824         (WebCore):
1825         (WebCore::Length::~Length):
1826         (CalculationValueHandleMap):
1827         (WebCore::CalculationValueHandleMap::CalculationValueHandleMap):
1828         (WebCore::CalculationValueHandleMap::insert):
1829         (WebCore::CalculationValueHandleMap::remove):
1830         (WebCore::CalculationValueHandleMap::get):
1831         (WebCore::calcHandles):
1832         (WebCore::Length::Length):
1833         (WebCore::Length::calculationValue):
1834         (WebCore::Length::calculatedValue):
1835         (WebCore::Length::calculatedMinValue):
1836         (WebCore::Length::calculatedFloatValue):
1837         (WebCore::Length::incrementCalculatedRef):
1838         (WebCore::Length::decrementCalculatedRef):
1839         (WebCore::Length::nonNanCalculatedValue):
1840         * platform/Length.h:
1841         (Length):
1842         (WebCore::Length::Length):
1843         (WebCore::Length::operator=):
1844         (WebCore::Length::operator*=):
1845         (WebCore::Length::value):
1846         (WebCore::Length::setValue):
1847         (WebCore::Length::calcValue):
1848         (WebCore::Length::calcMinValue):
1849         (WebCore::Length::calcFloatValue):
1850         (WebCore::Length::isZero):
1851         (WebCore::Length::isPositive):
1852         (WebCore::Length::isNegative):
1853         (WebCore::Length::isPercent):
1854         (WebCore::Length::isSpecified):
1855         (WebCore::Length::isCalculated):
1856         (WebCore::Length::initFromLength):
1857         (WebCore::Length::calculationHandle):
1858
1859 2012-03-07  Kent Tamura  <tkent@chromium.org>
1860
1861         Do not refer to resutlsButtonElement and cancelButtonElement to compute paddings of search popups
1862         https://bugs.webkit.org/show_bug.cgi?id=80564
1863
1864         Reviewed by Hajime Morita.
1865
1866         We'd like to reduce dependency of resultsButtonElement and
1867         cancelButtonElement from RenderTextControlSingleLine.
1868
1869         No behavior change.
1870
1871         * rendering/RenderTextControlSingleLine.cpp:
1872         (WebCore::RenderTextControlSingleLine::clientPaddingLeft):
1873         Use the left position of innerBlockElement, instead of the width of resultsButtonElement.
1874         They are equivalent.
1875         (WebCore::RenderTextControlSingleLine::clientPaddingRight):
1876         Use <the container width - right position of innerBlockElement>,
1877         instead of the width of the cancelButtonElement. They are
1878         equivalent.
1879
1880 2012-03-07  Mike Lawther  <mikelawther@chromium.org>
1881
1882         use DEFINE_STATIC_LOCAL on Lengths to avoid exit time destructors
1883         https://bugs.webkit.org/show_bug.cgi?id=80561
1884
1885         Reviewed by Eric Seidel.
1886
1887         This is in preparation for http://wkb.ug/79621 where a destructor is added to Length.
1888
1889         No new tests as this is not a behaviour change.
1890
1891         * css/CSSStyleApplyProperty.cpp:
1892         (WebCore::ApplyPropertyPageSize::getPageSizeFromName):
1893
1894 2012-03-07  Adam Barth  <abarth@webkit.org>
1895
1896         ContainerNode::willRemove uses a weak iteration pattern
1897         https://bugs.webkit.org/show_bug.cgi?id=80530
1898
1899         Reviewed by Ryosuke Niwa.
1900
1901         This patch moves ContainerNode::willRemove to using a better iteration
1902         pattern in which we collect all the nodes we're planning to iterate
1903         into a vector and then iterate over them.
1904
1905         * dom/ContainerNode.cpp:
1906         (WebCore::ContainerNode::willRemove):
1907
1908 2012-03-07  Kentaro Hara  <haraken@chromium.org>
1909
1910         [V8][Performance] Optimize V8 bindings for HTMLElement.classList,
1911         Element.dataset and Node.attributes
1912         https://bugs.webkit.org/show_bug.cgi?id=80376
1913
1914         Reviewed by Adam Barth.
1915
1916         This patch improves the performance of HTMLElement.classList, Element.dataset
1917         and Node.attributes by 6.4 times, 7.1 times and 10.9 times, respectively.
1918
1919         Previously, a 'hiddenReferenceName' string was allocated on v8::Handle and
1920         created every time the DOM attribute is accessed, in spite of the fact that
1921         the 'hiddenReferenceName' string is static.
1922
1923         This patch moves the 'hiddenReferenceName' string to v8::Persistent and makes it static.
1924         Also, this patch removes 'if (!elementValue.IsEmpty() && elementValue->IsObject())',
1925         since if 'element' exists, it is guaranteed that 'elementValue' is not empty
1926         and is an Object.
1927
1928         Performance tests: https://bugs.webkit.org/attachment.cgi?id=130283
1929
1930         AppleWebKit/JavaScriptCore:
1931         div.classList : 382ms
1932         div.classList.foo = 123 : 335ms
1933         div.dataset : 403ms
1934         div.dataset.foo = 123 : 5250ms
1935         div.attributes : 183ms
1936
1937         Chromium/V8 (without this patch):
1938         div.classList : 9140ms
1939         div.classList.foo = 123 : 9086ms
1940         div.dataset : 9930ms
1941         div.dataset.foo = 123 : 49698ms
1942         div.attributes : 13489ms
1943
1944         Chromium/V8 (with this patch):
1945         div.classList : 1435ms
1946         div.classList.foo = 123 : 1470ms
1947         div.dataset : 1400ms
1948         div.dataset.foo = 123 : 30396ms
1949         div.attributes : 1242ms
1950
1951         No tests. No change in behavior.
1952
1953         * bindings/v8/custom/V8DOMStringMapCustom.cpp: Modified as described above.
1954         (WebCore::toV8):
1955         * bindings/v8/custom/V8DOMTokenListCustom.cpp: Ditto.
1956         (WebCore::toV8):
1957         * bindings/v8/custom/V8NamedNodeMapCustom.cpp: Ditto.
1958         (WebCore::toV8):
1959
1960         * bindings/v8/V8HiddenPropertyName.cpp: Defined a hidden property name string statically
1961         to optimize the macro.
1962         (WebCore):
1963         (WebCore::V8HiddenPropertyName::hiddenReferenceName):
1964         * bindings/v8/V8HiddenPropertyName.h: Modified to switch two prefixes "WebCore::HiddenProperty::"
1965         and "WebCore::HiddenReference::", depending on whether a given name represents a hidden property
1966         or a hidden reference.
1967         (WebCore):
1968         (V8HiddenPropertyName):
1969
1970 2012-03-07  Kent Tamura  <tkent@chromium.org>
1971
1972         Add RenderBoxModelObject::marginWidth() and marginHeight()
1973         https://bugs.webkit.org/show_bug.cgi?id=80556
1974
1975         Reviewed by Kentaro Hara.
1976
1977         They make some code shorter.
1978
1979         No behavior change.
1980
1981         * rendering/RenderBoxModelObject.h:
1982         (WebCore::RenderBoxModelObject::marginHeight): Added.
1983         (WebCore::RenderBoxModelObject::marginWidth): Added.
1984         * inspector/DOMNodeHighlighter.cpp: Use marginHeight() and/or marginWidth().
1985         * rendering/RenderBlock.h:
1986         (WebCore::RenderBlock::FloatWithRect::FloatWithRect): ditto.
1987         * rendering/RenderBlockLineLayout.cpp:
1988         (WebCore::RenderBlock::checkFloatsInCleanLine): ditto.
1989         * rendering/RenderBox.cpp:
1990         (WebCore::RenderBox::repaintLayerRectsForImage): ditto.
1991         * rendering/RenderDeprecatedFlexibleBox.cpp:
1992         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox): ditto.
1993         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox): ditto.
1994         * rendering/RenderFlexibleBox.cpp:
1995         (WebCore::RenderFlexibleBox::crossAxisMarginExtentForChild): ditto.
1996         (WebCore::RenderFlexibleBox::computeNextFlexLine): ditto.
1997         * rendering/RenderInline.cpp:
1998         (WebCore::RenderInline::culledInlineAbsoluteRects): ditto.
1999         (WebCore::RenderInline::culledInlineAbsoluteQuads): ditto.
2000         (WebCore::RenderInline::culledInlineBoundingBox): ditto.
2001         * rendering/RenderScrollbar.cpp:
2002         (WebCore::RenderScrollbar::trackPieceRectWithMargins): ditto.
2003         * rendering/RenderTextControl.cpp:
2004         (WebCore::RenderTextControl::computeLogicalHeight): ditto.
2005         * rendering/RenderTextControlSingleLine.cpp:
2006         (WebCore::RenderTextControlSingleLine::computeControlHeight): ditto.
2007
2008 2012-03-07  Jessie Berlin  <jberlin@apple.com>
2009
2010         Clean Windows build fails after r110033
2011         https://bugs.webkit.org/show_bug.cgi?id=80553
2012
2013         Rubber-stamped by Jon Honeycutt and Eric Seidel.
2014
2015         * WebCore.vcproj/WebCore.vcproj:
2016         Update the expected location of the copied JSC WTF string implementation files.
2017
2018 2012-03-07  Michael Nordman  <michaeln@google.com>
2019
2020         [Chromium] Don't be so CRASH() happy in the bindings layer.
2021         https://bugs.webkit.org/show_bug.cgi?id=75111
2022         - change the v8 bindings generated code to check for the 'worker is terminating'
2023           condition prior to committing a suicidal CRASH()
2024         - fixup custom v8 bindings accordingly
2025         - simplify bindings/generic/ActiveDOMCallback, there is no need for it to support
2026           destruction on a different thread
2027
2028         Reviewed by David Levin.
2029
2030         No new tests, existing tests apply.
2031
2032         * bindings/generic/ActiveDOMCallback.cpp: Simplified in general.
2033         (WebCore):
2034         (WebCore::ActiveDOMCallback::ActiveDOMCallback):
2035         (WebCore::ActiveDOMCallback::~ActiveDOMCallback):
2036         (WebCore::ActiveDOMCallback::canInvokeCallback):
2037         (WebCore::ActiveDOMCallback::isScriptControllerTerminating): New method to avoid CRASH()ing in exceptional conditions in v8 bindings.
2038         * bindings/generic/ActiveDOMCallback.h: Derive from ContextDestructionObserver.
2039         * bindings/js/WorkerScriptController.cpp:
2040         (WebCore::WorkerScriptController::scheduleExecutionTermination): Use a mutex to provide a memory barrier.
2041         (WebCore::WorkerScriptController::isExecutionTerminating): New supporting method to avoid CRASH()ing in exceptional conditions.
2042         * bindings/js/WorkerScriptController.h:
2043         (WorkerScriptController):
2044         * bindings/scripts/CodeGeneratorV8.pm: Generates v8 bindding code that uses isScriptControllerTerminating to avoid CRASH()ing.
2045         (GenerateCallbackImplementation):
2046         * bindings/scripts/test/V8/V8TestCallback.cpp: Fixup expected outputs of the modified CodeGeneratorV8.pm script.
2047         (WebCore::V8TestCallback::callbackWithClass1Param):
2048         (WebCore::V8TestCallback::callbackWithClass2Param):
2049         (WebCore::V8TestCallback::callbackWithStringList):
2050         * bindings/v8/WorkerScriptController.cpp:
2051         (WebCore::WorkerScriptController::WorkerScriptController): Initialize a new data member.
2052         (WebCore::WorkerScriptController::scheduleExecutionTermination): Use a mutex to provide a memory barrier.
2053         (WebCore::WorkerScriptController::isExecutionTerminating): New supporting method to avoid CRASH()ing in exceptional conditions.
2054         * bindings/v8/WorkerScriptController.h: Add a pair of new data members, bool + mutex.
2055         (WorkerScriptController):
2056         * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
2057         (WebCore::V8SQLStatementErrorCallback::handleEvent):
2058         * bindings/v8/custom/V8MutationCallbackCustom.cpp:
2059         (WebCore::V8MutationCallback::handleEvent):
2060         * dom/ScriptExecutionContext.cpp:
2061         (WebCore::ScriptExecutionContext::ScriptExecutionContext): Initilaize data members.
2062         (WebCore::ScriptExecutionContext::stopActiveDOMObjects): Set m_activeDOMObjectsAreStopped.
2063         * dom/ScriptExecutionContext.h: Add m_activeDOMObjectsAreStopped data member.
2064         (WebCore::ScriptExecutionContext::activeDOMObjectsAreStopped): Simple getter.
2065         (ScriptExecutionContext):
2066
2067 2012-03-07  Kent Tamura  <tkent@chromium.org>
2068
2069         Remove meaningless code in RenderTextControlSingleLine::preferredContentWidth()
2070         https://bugs.webkit.org/show_bug.cgi?id=80493
2071
2072         Reviewed by Hajime Morita.
2073
2074         preferredContentWidth() added border+padding widths of the search result
2075         button, search cancel button, and speech input button. It makes no sense
2076         to make the intrinsic width wider by only their border+padding width,
2077         not their content width.
2078
2079         The default borders and paddings of these buttons are 0 in all
2080         platforms, and adding border or padding to these elements by page
2081         authors made unreasonable behavior. So we had better remove this
2082         code.
2083
2084         Tests: fast/forms/search/intrinsic-search-width-with-decoration-border-padding.html
2085                fast/speech/intrinsic-input-width-with-speech-border-padding.html
2086
2087         * rendering/RenderTextControlSingleLine.cpp:
2088         (WebCore::RenderTextControlSingleLine::preferredContentWidth):
2089          Remove the meaningless code.
2090         * rendering/RenderTextControlSingleLine.h:
2091         (RenderTextControlSingleLine): Remove speechButtonElement(). It's unnecessary.
2092
2093 2012-03-07  Sheriff Bot  <webkit.review.bot@gmail.com>
2094
2095         Unreviewed, rolling out r110126.
2096         http://trac.webkit.org/changeset/110126
2097         https://bugs.webkit.org/show_bug.cgi?id=80558
2098
2099         compile failed on AppleMac (Requested by ukai on #webkit).
2100
2101         * WebCore.exp.in:
2102         * css/CSSCalculationValue.cpp:
2103         * css/CSSCalculationValue.h:
2104         (WebCore):
2105         (CSSCalcExpressionNode):
2106         (CSSCalcValue):
2107         * css/CSSPrimitiveValue.cpp:
2108         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2109         * css/CSSStyleApplyProperty.cpp:
2110         (WebCore::ApplyPropertyLength::applyValue):
2111         * css/CSSStyleSelector.cpp:
2112         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2113         * css/CSSStyleSelector.h:
2114         * platform/CalculationValue.cpp:
2115         * platform/CalculationValue.h:
2116         * platform/Length.cpp:
2117         (WebCore::newLengthArray):
2118         * platform/Length.h:
2119         (WebCore::Length::operator*=):
2120         (WebCore::Length::value):
2121         (WebCore::Length::setValue):
2122         (Length):
2123         (WebCore::Length::calcValue):
2124         (WebCore::Length::calcMinValue):
2125         (WebCore::Length::calcFloatValue):
2126         (WebCore::Length::isZero):
2127         (WebCore::Length::isPositive):
2128         (WebCore::Length::isNegative):
2129         (WebCore::Length::isPercent):
2130         (WebCore::Length::isSpecified):
2131
2132 2012-03-05  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
2133
2134         Make Node::dumpStatistics() work again
2135         https://bugs.webkit.org/show_bug.cgi?id=80327
2136
2137         Reviewed by Ryosuke Niwa.
2138
2139         Update the code in dumpStatistics() to the latest attribute storage changes. Also
2140         move the DUMP_NODE_STATISTICS define here from the Node.cpp, since its also used
2141         by Document.h.
2142
2143         * dom/Node.cpp:
2144         (WebCore::Node::dumpStatistics): Use more self-describing variable names.
2145         * dom/Node.h:
2146
2147 2012-03-07  Mike Lawther  <mikelawther@chromium.org>
2148
2149         CSS3 calc: mixed absolute/percentages work for width, height, margin and padding
2150         https://bugs.webkit.org/show_bug.cgi?id=79621
2151
2152         Reviewed by Andreas Kling.
2153
2154         ApplyPropertyLength in CSSStyleApplyPropery now handles mixed absolute/percentage
2155         length expressions. All property handlers using this template now work with
2156         mixed expressions.
2157
2158         This patch adds a new expression evaluator in CalculationValue.cpp. This is because
2159         Length.[cpp|h] (in platform) cannot refer to CSSCalculationValue.[cpp|h] (in css) 
2160         due to layering restrictions.
2161
2162         Lengths can be copied, and so the expressions are stored in a hashmap, and only their
2163         ids are copied along with Length. The expressions are RefCounted, and will get 
2164         cleaned up when the last referring Length is destructed.
2165
2166         * WebCore.exp.in:
2167         * css/CSSCalculationValue.cpp:
2168         (WebCore::CSSCalcPrimitiveValue::toCalcValue):
2169         (CSSCalcPrimitiveValue):
2170         (WebCore::CSSCalcBinaryOperation::toCalcValue):
2171         (CSSCalcBinaryOperation):
2172         * css/CSSCalculationValue.h:
2173         (WebCore):
2174         (CSSCalcExpressionNode):
2175         (CSSCalcValue):
2176         (WebCore::CSSCalcValue::toCalcValue):
2177         * css/CSSPrimitiveValue.cpp:
2178         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2179         * css/CSSStyleApplyProperty.cpp:
2180         (WebCore::ApplyPropertyLength::applyValue):
2181         * css/CSSStyleSelector.cpp:
2182         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2183         * css/CSSStyleSelector.h:
2184         (CSSStyleSelector):
2185         * platform/CalculationValue.cpp:
2186         (WebCore::CalcExpressionBinaryOperation::evaluate):
2187         (WebCore):
2188         (WebCore::CalculationValue::create):
2189         (WebCore::CalculationValue::evaluate):
2190         * platform/CalculationValue.h:
2191         (CalcExpressionNode):
2192         (WebCore::CalcExpressionNode::~CalcExpressionNode):
2193         (WebCore):
2194         (CalculationValue):
2195         (WebCore::CalculationValue::CalculationValue):
2196         (CalcExpressionNumber):
2197         (WebCore::CalcExpressionNumber::CalcExpressionNumber):
2198         (WebCore::CalcExpressionNumber::evaluate):
2199         (CalcExpressionLength):
2200         (WebCore::CalcExpressionLength::CalcExpressionLength):
2201         (WebCore::CalcExpressionLength::evaluate):
2202         (CalcExpressionBinaryOperation):
2203         (WebCore::CalcExpressionBinaryOperation::CalcExpressionBinaryOperation):
2204         * platform/Length.cpp:
2205         (WebCore):
2206         (WebCore::Length::~Length):
2207         (CalculationValueHandleMap):
2208         (WebCore::CalculationValueHandleMap::CalculationValueHandleMap):
2209         (WebCore::CalculationValueHandleMap::insert):
2210         (WebCore::CalculationValueHandleMap::remove):
2211         (WebCore::CalculationValueHandleMap::get):
2212         (WebCore::calcHandles):
2213         (WebCore::Length::Length):
2214         (WebCore::Length::calculationValue):
2215         (WebCore::Length::calculatedValue):
2216         (WebCore::Length::calculatedMinValue):
2217         (WebCore::Length::calculatedFloatValue):
2218         (WebCore::Length::incrementCalculatedRef):
2219         (WebCore::Length::decrementCalculatedRef):
2220         (WebCore::Length::nonNanCalculatedValue):
2221         * platform/Length.h:
2222         (Length):
2223         (WebCore::Length::Length):
2224         (WebCore::Length::operator=):
2225         (WebCore::Length::operator*=):
2226         (WebCore::Length::value):
2227         (WebCore::Length::setValue):
2228         (WebCore::Length::calcValue):
2229         (WebCore::Length::calcMinValue):
2230         (WebCore::Length::calcFloatValue):
2231         (WebCore::Length::isZero):
2232         (WebCore::Length::isPositive):
2233         (WebCore::Length::isNegative):
2234         (WebCore::Length::isPercent):
2235         (WebCore::Length::isSpecified):
2236         (WebCore::Length::isCalculated):
2237         (WebCore::Length::initFromLength):
2238         (WebCore::Length::calculationHandle):
2239
2240 2012-03-07  Emil A Eklund  <eae@chromium.org>
2241
2242         Change remaining scroll methods to integers
2243         https://bugs.webkit.org/show_bug.cgi?id=80539
2244
2245         Reviewed by Eric Seidel.
2246
2247         No new tests, no new functionality.
2248
2249         * rendering/RenderLayer.cpp:
2250         (WebCore::RenderLayer::scrollByRecursively):
2251         (WebCore::RenderLayer::scrollToOffset):
2252         (WebCore::RenderLayer::scrollRectToVisible):
2253         (WebCore::RenderLayer::scrollToXOffset):
2254         (WebCore::RenderLayer::scrollToYOffset):
2255         Change scrollTo methods to take integer x and y values as the actual
2256         scrolling is done in increments of full pixels.
2257         
2258         (WebCore::cornerStart):
2259         (WebCore::RenderLayer::scrollWidth):
2260         (WebCore::RenderLayer::scrollHeight):
2261         Change scrollWidth/Height to return pixel snapped values and remove
2262         pixelSnapped versions of same as all callers either used snapped the
2263         values or used the pixelSnapped versions of these methods.
2264
2265         * rendering/RenderListBox.cpp:
2266         (WebCore::RenderListBox::scrollWidth):
2267         Change scrollWidth to return snapped client width.
2268         
2269         * rendering/RenderListBox.h:
2270         Change scrollSize, scrollPosition and setScrollOffset methods to use
2271         integers in accordance with the interface defined by ScrollableArea.
2272         
2273         * rendering/RenderTreeAsText.cpp:
2274         (WebCore::write):
2275
2276 2012-03-07  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
2277
2278         Implement getAttributeNode() in terms of ElementAttributeData instead of NamedNodeMap
2279         https://bugs.webkit.org/show_bug.cgi?id=80541
2280
2281         Reviewed by Ryosuke Niwa.
2282
2283         DOM methods exposed in Element and NamedNodeMap are now implemented in terms of
2284         ElementAttributeData. The difference between them is that Element methods can early
2285         return if there's no attribute storage.
2286
2287         * dom/Element.cpp:
2288         (WebCore::Element::getAttributeNode):
2289         Removed the manual lowercasing letting our existing mechanism in
2290         ElementAttributeData::getAttributeItemIndex() take care of it. I considered that
2291         this could be an optimization, but testing a few Dromaeo tests (dom-attr,
2292         jslib-attr-jquery, jslib-attr-prototype) the difference isn't significant. It
2293         shouldn't affect correctness either.
2294
2295         (WebCore::Element::getAttributeNodeNS):
2296         * dom/ElementAttributeData.cpp:
2297         * dom/ElementAttributeData.h:
2298         (ElementAttributeData):
2299         (WebCore::ElementAttributeData::getAttributeNode):
2300         (WebCore):
2301         * dom/NamedNodeMap.cpp:
2302         (WebCore::NamedNodeMap::getNamedItem):
2303         (WebCore::NamedNodeMap::getNamedItemNS):
2304         * dom/NamedNodeMap.h:
2305         (NamedNodeMap):
2306
2307 2012-03-07  James Robinson  <jamesr@chromium.org>
2308
2309         [chromium] Support printing WebGL content in threaded compositor
2310         https://bugs.webkit.org/show_bug.cgi?id=80464
2311
2312         Reviewed by Kenneth Russell.
2313
2314         Do the readback on the WebGL context instead of the compositor's context since we cannot use the latter from the
2315         main thread. Since we're on the WebGL context, we have to be careful to restore any state we change.
2316
2317         Tested printing manually with threaded compositing enabled.
2318
2319         * platform/graphics/chromium/WebGLLayerChromium.cpp:
2320         (WebCore::WebGLLayerChromium::paintRenderedResultsToCanvas):
2321         * platform/graphics/chromium/WebGLLayerChromium.h:
2322         (WebGLLayerChromium):
2323
2324 2012-03-07  Adam Barth  <abarth@webkit.org>
2325
2326         Remove #define private public from WebCache.cpp
2327         https://bugs.webkit.org/show_bug.cgi?id=80520
2328
2329         Reviewed by Eric Seidel.
2330
2331         Add some accessors for state used by WebCache.cpp.
2332
2333         * loader/cache/MemoryCache.h:
2334         (WebCore::MemoryCache::minDeadCapacity):
2335         (WebCore::MemoryCache::maxDeadCapacity):
2336         (WebCore::MemoryCache::capacity):
2337         (WebCore::MemoryCache::liveSize):
2338         (WebCore::MemoryCache::deadSize):
2339         (MemoryCache):
2340
2341 2012-03-07  Kentaro Hara  <haraken@chromium.org>
2342
2343         [V8][Performance] Optimize Element.firstElementChild, Element.lastElementChild,
2344         Element.previousElementSibling, Element.nextElementSibling, Node.parentElement
2345         https://bugs.webkit.org/show_bug.cgi?id=80506
2346
2347         Reviewed by Adam Barth.
2348
2349         This patch improves the performance of Element.firstElementChild by 5.8 times,
2350         Element.lastElementChild by 6.2 times, Element.previousElementSibling by 7.1 times,
2351         Element.nextElementSibling by 7.1 times, and Node.parentElement by 6.7 times.
2352
2353         Previously, while toV8(Node*) caches a wrapper object on a node object
2354         (i.e. node->wrapper(), node->setWrapper()), toV8(Element*) does not
2355         cache a wrapper object.
2356
2357         This patch removes toV8(Element*), so that DOM attribute getters that return
2358         Element* use toV8(Node*). This change makes these DOM attribute getters
2359         cache the wrapper object on a node object. This optimization is already
2360         implemented in JavaScriptCore.
2361
2362         Performance tests: https://bugs.webkit.org/attachment.cgi?id=130594
2363
2364         The test results in my local Mac environment are as follows:
2365
2366         AppleWebKit/JavaScriptCore:
2367         div.firstElementChild : 1162ms
2368         div.lastElementChild : 1016ms
2369         div.previousElementSibling : 918ms
2370         div.nextElementSibling : 900ms
2371         div.parentElement : 901ms
2372
2373         Chromium/V8 (without this patch):
2374         div.firstElementChild : 9515ms
2375         div.lastElementChild : 9449ms
2376         div.previousElementSibling : 9254ms
2377         div.nextElementSibling : 9315ms
2378         div.parentElement : 9380ms
2379
2380         Chromium/V8 (with this patch):
2381         div.firstElementChild : 1628ms
2382         div.lastElementChild : 1527ms
2383         div.previousElementSibling : 1310ms
2384         div.nextElementSibling : 1310ms
2385         div.parentElement : 1410ms
2386
2387         No tests. No change in behavior.
2388
2389         * dom/Element.idl: Removed toV8(Element*)
2390         * bindings/v8/custom/V8NodeCustom.cpp: Ditto.
2391         (WebCore::toV8Slow):
2392         * bindings/scripts/CodeGeneratorV8.pm: Ditto.
2393         (GenerateHeader):
2394
2395         * bindings/v8/custom/V8ElementCustom.cpp: Removed.
2396         * Target.pri: Removed V8ElementCustom.cpp.
2397         * UseV8.cmake: Ditto.
2398         * WebCore.gypi: Ditto.
2399
2400 2012-03-07  Joshua Bell  <jsbell@chromium.org>
2401
2402         [Chromium] IndexedDB: V8LocalContext creation in IDBKey extraction/injection is slow
2403         https://bugs.webkit.org/show_bug.cgi?id=80358
2404
2405         Cache a re-usable context (per isolate) for cases like IDB's key/SSV extraction/injection,
2406         where no user script is run. This yields a 3x-4x performance improvement in basic IDB
2407         operations.
2408
2409         Reviewed by Tony Chang.
2410
2411         No new tests - no behavior changes.
2412
2413         * bindings/v8/IDBBindingUtilities.cpp:
2414         (WebCore::createIDBKeyFromSerializedValueAndKeyPath):
2415         (WebCore::injectIDBKeyIntoSerializedValue):
2416         * bindings/v8/V8Binding.h:
2417         (WebCore::V8BindingPerIsolateData::auxiliaryContext):
2418         (V8BindingPerIsolateData):
2419         * bindings/v8/V8Utilities.cpp:
2420         (WebCore::V8AuxiliaryContext::V8AuxiliaryContext):
2421         (WebCore::V8AuxiliaryContext::~V8AuxiliaryContext):
2422         (WebCore::V8AuxiliaryContext::auxiliaryContext):
2423         * bindings/v8/V8Utilities.h:
2424         (V8AuxiliaryContext):
2425
2426 2012-03-07  Nat Duca  <nduca@chromium.org>
2427
2428         [chromium] Remove unused wasRecreate variable
2429         https://bugs.webkit.org/show_bug.cgi?id=80533
2430
2431         Reviewed by Adrienne Walker.
2432
2433         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2434         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
2435
2436 2012-03-07  Ryan Sleevi  <rsleevi@chromium.org>
2437
2438         [chromium] Update GYP files to reflect file deletes/renames
2439         https://bugs.webkit.org/show_bug.cgi?id=80525
2440
2441         Reviewed by Ryosuke Niwa.
2442
2443         No change in functionality, so no tests.
2444
2445         * WebCore.gypi:
2446         Updated AppleMac private headers due to r109877
2447         Updated platform/qt references due to r109542
2448         Updated platform/mac references due to r109147
2449         Updated platform/mac references due to r108956
2450
2451 2012-03-07  Eric Carlson  <eric.carlson@apple.com>
2452
2453         Html5 video element Useragent string is Quicktime
2454         https://bugs.webkit.org/show_bug.cgi?id=46241
2455
2456         Reviewed by Daniel Bates.
2457
2458         Test: http/tests/media/video-useragent.html
2459
2460         * html/HTMLMediaElement.cpp:
2461         (WebCore::HTMLMediaElement::mediaPlayerUserAgent): Return the UA string for the current source.
2462         * html/HTMLMediaElement.h:
2463
2464         * platform/graphics/MediaPlayer.cpp:
2465         (WebCore::MediaPlayer::userAgent):  New, return the client's mediaPlayerUserAgent.
2466         * platform/graphics/MediaPlayer.h:
2467         (WebCore::MediaPlayerClient::mediaPlayerUserAgent):
2468
2469         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2470         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Tell AVFoundation to set
2471             the UA header.
2472
2473 2012-03-07  Scott Byer  <scottbyer@chromium.org>
2474
2475         Get ScrollAnimatorNone to handle the stop and reverse cases.
2476         https://bugs.webkit.org/show_bug.cgi?id=80455
2477
2478         Reviewed by James Robinson.
2479
2480         Chromium webkit_unit_tests ScrollAnimatorNoneTest.ScrollStopInMiddle and
2481         ScrollAnimatorNoneTest.ReverseInMiddle.
2482
2483         * platform/ScrollAnimatorNone.cpp:
2484         (WebCore::ScrollAnimatorNone::PerAxisData::updateDataFromParameters):
2485
2486 2012-03-07  Yong Li  <yoli@rim.com>
2487
2488         RenderImage ignores its percent width/height when setContainerSizeForRenderer
2489         https://bugs.webkit.org/show_bug.cgi?id=80431
2490
2491         Reviewed by George Staikos.
2492
2493         Not only respect fixed width/height explicitly specified in img element, but also
2494         respect percent width/height when determining container size for images.
2495
2496         No new tests because there is no functional change but only internal buffer sizes.
2497
2498         * rendering/RenderImage.cpp:
2499         (WebCore::RenderImage::computeReplacedLogicalWidth):
2500
2501 2012-03-06  Benjamin Poulain  <bpoulain@apple.com>
2502
2503         [Mac] Update the configuration files for iOS
2504         https://bugs.webkit.org/show_bug.cgi?id=80435
2505
2506         Reviewed by David Kilzer.
2507
2508         * Configurations/WebCore.xcconfig:
2509
2510 2012-03-07  Dana Jansens  <danakj@chromium.org>
2511
2512         [chromium] Cull occluded tiles during paint
2513         https://bugs.webkit.org/show_bug.cgi?id=76838
2514
2515         Reviewed by Adrienne Walker.
2516
2517         Using CCOcclusionTracker instead of the old custom paint occlusion
2518         tracking. Stops painting tiles when the tile is not visible.
2519
2520         CCOcclusionTracker only uses Layer::opaque() for determining
2521         occlusion so far. The Layer::addSelfToOccludedRegion is being
2522         replaced by a superior method in CCOcclusionTracker that will
2523         work for both threads, so removing that support here.
2524
2525         Unit test: TiledLayerChromiumTest.cpp
2526
2527         * platform/graphics/chromium/ContentLayerChromium.cpp:
2528         (WebCore::ContentLayerChromium::paintContentsIfDirty):
2529         (WebCore::ContentLayerChromium::idlePaintContentsIfDirty):
2530         * platform/graphics/chromium/ContentLayerChromium.h:
2531         (ContentLayerChromium):
2532         * platform/graphics/chromium/ImageLayerChromium.cpp:
2533         (WebCore::ImageLayerChromium::paintContentsIfDirty):
2534         * platform/graphics/chromium/LayerChromium.cpp:
2535         * platform/graphics/chromium/LayerChromium.h:
2536         (WebCore::LayerChromium::idlePaintContentsIfDirty):
2537         (LayerChromium):
2538         * platform/graphics/chromium/TiledLayerChromium.cpp:
2539         (WebCore):
2540         (WebCore::contentToLayerTransform):
2541         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
2542         (WebCore::TiledLayerChromium::prepareToUpdate):
2543         (WebCore::TiledLayerChromium::prepareToUpdateIdle):
2544         * platform/graphics/chromium/TiledLayerChromium.h:
2545         (TiledLayerChromium):
2546         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2547         (WebCore::CCLayerTreeHost::paintContentsIfDirty):
2548         (WebCore::CCLayerTreeHost::paintLayerContents):
2549
2550 2012-03-07  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
2551
2552         Implement removeAttributeNode() in terms of ElementAttributeData instead of NamedNodeMap
2553         https://bugs.webkit.org/show_bug.cgi?id=80522
2554
2555         Reviewed by Andreas Kling.
2556
2557         DOM methods exposed in Element and NamedNodeMap are now implemented in terms of
2558         ElementAttributeData. A helper function takeAttribute() was added to increase
2559         code sharing. Also removed some unneeded methods.
2560
2561         * dom/Element.cpp:
2562         (WebCore::Element::removeAttribute): Use ElementAttributeData function directly.
2563         (WebCore::Element::removeAttributeNode): Get the index manually and use new
2564         takeAttribute() directly.
2565         * dom/Element.h:
2566         (Element): Remove unused removeAttribute(unsigned index).
2567         * dom/ElementAttributeData.cpp:
2568         (WebCore::ElementAttributeData::takeAttribute): Like removeAttribute() but
2569         returns a reference to old Attr.
2570         (WebCore):
2571         * dom/ElementAttributeData.h:
2572         (ElementAttributeData):
2573         * dom/NamedNodeMap.cpp:
2574         (WebCore::NamedNodeMap::removeNamedItem): Avoid looking up the property twice by
2575         getting the index directly from the name, instead of going through the qualified name.
2576         * dom/NamedNodeMap.h: Remove now unused internal methods for removing attributes.
2577
2578 2012-03-07  Alexey Proskuryakov  <ap@apple.com>
2579
2580         Merge AsyncFileStream with FileStreamProxy
2581         https://bugs.webkit.org/show_bug.cgi?id=80325
2582
2583         Build fix.
2584
2585         * WebCore.xcodeproj/project.pbxproj: Removed files that got mysteriously added to the project
2586         with a merge.
2587
2588 2012-03-07  Julien Chaffraix  <jchaffraix@webkit.org>
2589
2590         Unreviewed ASSERT failure fix.
2591         https://bugs.webkit.org/show_bug.cgi?id=75568
2592
2593         * rendering/RenderBoxModelObject.cpp:
2594         (WebCore::RenderBoxModelObject::styleDidChange):
2595         Fix a bad merge of the patch, we should call updateCachedSizeForOverflowClip if we lose
2596         our layer.
2597
2598 2012-03-07  ChangSeok Oh  <shivamidow@gmail.com>
2599
2600         [EFL] Revise PlatformKeyboardEventEfl and EflKeyboardUtilities
2601         https://bugs.webkit.org/show_bug.cgi?id=80511
2602
2603         Reviewed by Gustavo Noronha Silva.
2604
2605         Added 'const' keyword in front of argument of keyIdentifiersForEvasKeyName/windowsKeyCodeForEvasKeyName.
2606         Since they should not be changed while processing each function.
2607         And initialized missing member variables of PlatformKeyboardEventEfl.
2608
2609         No new tests, since no new feature.
2610
2611         * platform/efl/EflKeyboardUtilities.cpp:
2612         (WebCore::keyIdentifierForEvasKeyName): Added const keyword
2613         (WebCore::windowsKeyCodeForEvasKeyName): Added const keyword
2614         * platform/efl/EflKeyboardUtilities.h:
2615         (WebCore):
2616         * platform/efl/PlatformKeyboardEventEfl.cpp:
2617         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2618
2619 2012-03-07  Hironori Bono  <hbono@chromium.org>
2620
2621         [Chromium] Mirror the resizer image of an RTL element when WTF_USE_RTL_SCROLLBAR is 1
2622         https://bugs.webkit.org/show_bug.cgi?id=9223
2623
2624         Reviewed by Tony Chang.
2625
2626         This change mirrors a resizer image of an RTL element horizontall as Firefox
2627         does. This change also mirrors its dragging behavior, i.e. draging the resizer
2628         of an RTL element to the left side increases its width. (This feature is enabled
2629         only when WTF_USE_RTL_SCROLLBAR is 1.)
2630
2631         Test: platform/chromium/scrollbars/drag-rtl-resizer.html
2632
2633         * rendering/RenderLayer.cpp:
2634         (WebCore::RenderLayer::resize): Mirrored the x coordinate of mouse positions
2635         when mirroring a resizer.
2636         (WebCore::RenderLayer::offsetFromResizeCorner): Returned the offset from the
2637         bottom-left corner when rendering a resizer there.
2638         (WebCore::RenderLayer::drawPlatformResizerImage): Mirrored the resizer bitmap
2639         horizontally when rendering a resizer to the bottom-left corner.
2640
2641 2012-03-07  Julien Chaffraix  <jchaffraix@webkit.org>
2642
2643         Lazily allocate overflow: hidden layers if we have overflowing content
2644         https://bugs.webkit.org/show_bug.cgi?id=75568
2645
2646         Reviewed by David Hyatt.
2647
2648         Change covered by the existing tests and the tons of rebaselines.
2649
2650         This change makes us lazily allocate our RenderLayer for overflow: hidden layers only.
2651
2652         Apart from saving some memory, it will also speed up the rendering as we don't need to
2653         go through the layer's machinery when painting and hit testing.
2654
2655         On http://dglazkov.github.com/performance-tests/biggrid.html benchmark, this puts the
2656         overflow: hidden case in par with the overflow: visible case when scrolling that is a
2657         very-smooth scrolling vs a jerky one currently (mostly due to the painting speedup).
2658
2659         * rendering/RenderBlock.cpp:
2660         (WebCore::RenderBlock::updateScrollInfoAfterLayout):
2661         Changed this method to update our size cache if needed.
2662
2663         * rendering/RenderBlock.cpp:
2664         (WebCore::RenderBlock::layoutBlock):
2665         (WebCore::RenderBlock::paint):
2666         (WebCore::RenderBlock::isPointInOverflowControl):
2667         * rendering/RenderBlock.h:
2668         (RenderBlock):
2669         * rendering/RenderBox.cpp:
2670         (WebCore::RenderBox::willBeDestroyed):
2671         (WebCore::RenderBox::styleDidChange):
2672         (WebCore::RenderBox::layout):
2673         (WebCore::RenderBox::scrollWidth):
2674         (WebCore::RenderBox::scrollHeight):
2675         (WebCore::RenderBox::scrollLeft):
2676         (WebCore::RenderBox::scrollTop):
2677         (WebCore::RenderBox::setScrollLeft):
2678         (WebCore::RenderBox::setScrollTop):
2679         (WebCore::RenderBox::includeVerticalScrollbarSize):
2680         (WebCore::RenderBox::includeHorizontalScrollbarSize):
2681         (WebCore::RenderBox::scrolledContentOffset):
2682         (WebCore::RenderBox::pushContentsClip):
2683         (WebCore::RenderBox::popContentsClip):
2684         (WebCore::RenderBox::addLayoutOverflow):
2685         Added layer() check to the previous call sites.
2686
2687         (WebCore::cachedSizeForOverflowClipMap):
2688         (WebCore::RenderBox::cachedSizeForOverflowClip):
2689         (WebCore::RenderBox::updateCachedSizeForOverflowClip):
2690         (WebCore::RenderBox::clearCachedSizeForOverflowClip):
2691         This logic stores the size information for later repainting.
2692         It is in practice replicating what RenderLayer is doing.
2693         I had to disable an ASSERT here as it would trigger in NRWT but
2694         not under DRT. I haven't found by code inspection what was wrong.
2695
2696         * rendering/RenderBox.h:
2697         (WebCore::RenderBox::hasOverflowClipWithLayer):
2698         Helper function.
2699
2700         (WebCore::RenderBox::requiresLayerForOverflowClip):
2701         This determines if we can survive without a RenderLayer. For the moment,
2702         it is very conservative.
2703
2704         (WebCore::RenderBox::requiresLayer):
2705         Updated to call requiresLayerForOverflowClip.
2706
2707         * rendering/RenderBoxModelObject.cpp:
2708         (WebCore::RenderBoxModelObject::ensureLayer):
2709         Added this function to create and add a new layer.
2710
2711         (WebCore::RenderBoxModelObject::willBeDestroyed):
2712         (WebCore::RenderBoxModelObject::styleDidChange):
2713         Patched those method to handle updating / removing
2714         cached size entries.
2715
2716         * rendering/RenderBoxModelObject.h:
2717         (WebCore::RenderBoxModelObject::requiresLayer):
2718         Pushed the overflowClip check down to RenderBox as only RenderBoxes can have
2719         overflow clips.
2720
2721         * rendering/RenderTableRow.h:
2722         (WebCore::RenderTableRow::requiresLayer):
2723         Added a comment about why we need a layout for table rows.
2724
2725         * rendering/RenderDeprecatedFlexibleBox.cpp:
2726         (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
2727         * rendering/RenderFlexibleBox.cpp:
2728         (WebCore::RenderFlexibleBox::layoutBlock):
2729         * rendering/RenderTableSection.cpp:
2730         (WebCore::RenderTableSection::layout):
2731         Updated those call sites to use RenderBlock::updateScrollInfoAfterLayout
2732         or RenderBox::updateCachedSizeForOverflowClip. The current logic is really
2733         not tight proof and would need to be rethought to not avoid cases.
2734
2735 2012-03-07  Konrad Piascik  <kpiascik@rim.com>
2736
2737         [BlackBerry] Fix warnings in CookieMap
2738         https://bugs.webkit.org/show_bug.cgi?id=80512
2739
2740         Reviewed by Rob Buis.
2741
2742         No new tests. No behavioural changes.
2743
2744         * platform/blackberry/CookieMap.cpp:
2745         (WebCore::CookieMap::addOrReplaceCookie):
2746         (WebCore::CookieMap::removeCookie):
2747         (WebCore::CookieMap::getAllCookies):
2748         (WebCore::CookieMap::updateOldestCookie):
2749
2750 2012-03-07  Levi Weintraub  <leviw@chromium.org>
2751
2752         Update usage of LayoutUnits in InlineBox and InlineFlowBox
2753         https://bugs.webkit.org/show_bug.cgi?id=80051
2754
2755         Reviewed by Eric Seidel.
2756
2757         Updating LayoutUnit vs Integer usage in InlineBox and InlineFlowBox. While the
2758         line box tree remains floating point, margins are now subpixel, and rects from
2759         the render tree use LayoutUnits. For more information, see the LayoutUnit wiki
2760         page: https://trac.webkit.org/wiki/LayoutUnit
2761
2762         No new tests. No change in behavior.
2763
2764         * rendering/InlineBox.cpp:
2765         (WebCore::InlineBox::flipForWritingMode): Changing over to LayoutUnits.
2766         * rendering/InlineBox.h:
2767         (InlineBox):
2768         * rendering/InlineFlowBox.cpp:
2769         (WebCore::InlineFlowBox::getFlowSpacingLogicalWidth): Returning a LayoutUnit
2770         instead of an integer, as it uses margin which is a LayoutUnit.
2771         (WebCore::InlineFlowBox::placeBoxesInInlineDirection): Using a LayoutUnit for
2772         margin.
2773         (WebCore::InlineFlowBox::placeBoxesInBlockDirection): Build fixes for when
2774         LayoutUnits are subpixel.
2775         (WebCore::InlineFlowBox::paintFillLayer): Ditto.
2776         * rendering/InlineFlowBox.h:
2777         (WebCore::InlineFlowBox::marginBorderPaddingLogicalLeft): Returning a LayoutUnit
2778         instead of an integer since margin is a LayoutUnit.
2779         (WebCore::InlineFlowBox::marginBorderPaddingLogicalRight): Ditto.
2780         (InlineFlowBox):
2781         (WebCore::InlineFlowBox::logicalLeftLayoutOverflow): Adding a static_cast that's
2782         redundant now, but required when we switch to subpixel LayoutUnits.
2783         (WebCore::InlineFlowBox::logicalRightLayoutOverflow): Ditto.
2784         (WebCore::InlineFlowBox::logicalLeftVisualOverflow): Ditto.
2785         (WebCore::InlineFlowBox::logicalRightVisualOverflow): Ditto.
2786
2787 2012-03-07  Qi Zhang  <qi.2.zhang@nokia.com>
2788
2789         [Qt] Unskip http/tests/websocket/tests/hixie76/long-invalid-header.html
2790         https://bugs.webkit.org/show_bug.cgi?id=80516
2791
2792         Reviewed by Csaba Osztrogonác.
2793
2794         Missed some files related to websocket, take them in.
2795
2796         * Target.pri:
2797
2798 2012-03-05  Alexey Proskuryakov  <ap@apple.com>
2799
2800         Merge AsyncFileStream with FileStreamProxy
2801         https://bugs.webkit.org/show_bug.cgi?id=80325
2802
2803         Reviewed by Filip Pizlo.
2804
2805         AsyncFileStream sounds like a platform concept, but the implementation is web specific.
2806         Better to just keep it in one place.
2807
2808         This is a step toward decoupling blob scheme support from ResourceHandle, which is supposed
2809         to be an interface to platform networking APIs only, and definitely shouldn't know about
2810         Web concepts.
2811
2812         No change in functionality, so no tests.
2813
2814         * CMakeLists.txt:
2815         * GNUmakefile.list.am:
2816         * Target.pri:
2817         * WebCore.gypi:
2818         * WebCore.vcproj/WebCore.vcproj:
2819         * WebCore.xcodeproj/project.pbxproj:
2820         Updated for moved and removed files. Namely, platform/AsyncFileStream is dead, and
2821         fileapi/FileStreamProxy is now fileapi/AsyncFileStream.
2822
2823         * fileapi/AsyncFileStream.cpp: Copied from Source/WebCore/fileapi/FileStreamProxy.cpp.
2824         (WebCore::AsyncFileStream::AsyncFileStream):
2825         (WebCore::AsyncFileStream::create):
2826         (WebCore::AsyncFileStream::~AsyncFileStream):
2827         (WebCore::AsyncFileStream::fileThread):
2828         (WebCore::didStart):
2829         (WebCore::AsyncFileStream::startOnFileThread):
2830         (WebCore::AsyncFileStream::stop):
2831         (WebCore::derefProxyOnContext):
2832         (WebCore::AsyncFileStream::stopOnFileThread):
2833         (WebCore::didGetSize):
2834         (WebCore::AsyncFileStream::getSize):
2835         (WebCore::AsyncFileStream::getSizeOnFileThread):
2836         (WebCore::didOpen):
2837         (WebCore::AsyncFileStream::openForRead):
2838         (WebCore::AsyncFileStream::openForReadOnFileThread):
2839         (WebCore::AsyncFileStream::openForWrite):
2840         (WebCore::AsyncFileStream::openForWriteOnFileThread):
2841         (WebCore::AsyncFileStream::close):
2842         (WebCore::AsyncFileStream::closeOnFileThread):
2843         (WebCore::didRead):
2844         (WebCore::AsyncFileStream::read):
2845         (WebCore::AsyncFileStream::readOnFileThread):
2846         (WebCore::didWrite):
2847         (WebCore::AsyncFileStream::write):
2848         (WebCore::AsyncFileStream::writeOnFileThread):
2849         (WebCore::didTruncate):
2850         (WebCore::AsyncFileStream::truncate):
2851         (WebCore::AsyncFileStream::truncateOnFileThread):
2852         * fileapi/AsyncFileStream.h: Copied from Source/WebCore/fileapi/FileStreamProxy.h.
2853         (WebCore):
2854         (AsyncFileStream):
2855         (WebCore::AsyncFileStream::client):
2856         (WebCore::AsyncFileStream::setClient):
2857         * fileapi/FileStreamProxy.cpp: Removed.
2858         * fileapi/FileStreamProxy.h: Removed.
2859         * loader/ResourceLoader.cpp:
2860         (WebCore::ResourceLoader::createAsyncFileStream):
2861         * platform/AsyncFileStream.h: Removed.
2862         Fewer files!
2863
2864         * platform/network/BlobRegistry.h: Removed createResourceHandle(). It's logically a method
2865         on in-process BlobRegistryImpl only, and we no longer need to call this from platform code.
2866
2867         * platform/network/BlobRegistryImpl.cpp:
2868         (WebCore::createResourceHandle):
2869         (WebCore::registerBlobResourceHandleConstructor):
2870         (WebCore::BlobRegistryImpl::registerBlobURL):
2871         * platform/network/BlobRegistryImpl.h:
2872         Except for chromium, "blob" is a scheme that's handled internally. Added hooks for that.
2873
2874         * platform/network/ResourceHandle.cpp:
2875         (WebCore::builtinResourceHandleConstructorMap):
2876         (WebCore::ResourceHandle::registerBuiltinConstructor):
2877         (WebCore::ResourceHandle::create):
2878         * platform/network/ResourceHandle.h:
2879         Added a way for other code to register handlers for URL schemes. Non-Chromium platforms
2880         use this for blob: now.
2881
2882 2012-03-07  Dan Bernstein  <mitz@apple.com>
2883
2884         <rdar://problem/10923294> REGRESSION (r100847): Entries are clipped out in Day One
2885         https://bugs.webkit.org/show_bug.cgi?id=80494
2886
2887         Reviewed by Sam Weinig.
2888
2889         Test: fast/dom/HTMLDocument/width-and-height.html
2890
2891         * html/HTMLDocument.idl: Reverted r100847 by re-enabling the width and height properties
2892         in the JavaScript bindings.
2893
2894 2012-03-07  Philippe Normand  <pnormand@igalia.com>
2895
2896         [GTK] media/audio-garbage-collect.html is flaky
2897         https://bugs.webkit.org/show_bug.cgi?id=72698
2898
2899         Reviewed by Xan Lopez.
2900
2901         Call ::hasPendingActivity() instead of ::paused() when checking if
2902         the audio element is still active. This is similar to what the
2903         image element (another ActiveDOMObject implementation) does just
2904         above. This contributes to fixing the audio-garbage-collect.html
2905         test.
2906
2907         * bindings/js/JSNodeCustom.cpp:
2908         (WebCore::isReachableFromDOM):
2909
2910 2012-03-07  Adele Peterson  <adele@apple.com>
2911
2912         REGRESSION(r96566): Cursor is I-beam upon dragging an attachment in mail
2913         https://bugs.webkit.org/show_bug.cgi?id=80458
2914         <rdar://problem/10873195>
2915
2916         Reviewed by Dan Bernstein.
2917
2918         No tests because we currently don't have any test machinery for cursors.
2919
2920         Make sure the shortcut to always use an iBeam cursor during selection isn't used during dragging.
2921         Before r96566, we handled plugin cursors as a special case before calling into selectCursor, so we never hit this code path.
2922
2923         * page/EventHandler.cpp: (WebCore::EventHandler::selectCursor):
2924
2925 2012-03-07  ChangSeok Oh  <shivamidow@gmail.com>
2926
2927         [EFL] Key press event is not processed properly.
2928         https://bugs.webkit.org/show_bug.cgi?id=80491
2929
2930         Reviewed by Gustavo Noronha Silva.
2931
2932         This issue is related with mutation observer feature.
2933         If enter key is pressed, then a keyboard event should be processed
2934         and reach to the mutation observer, but it doesn't.
2935         Some special keys like Enter, Backspace and Tab key should be processed
2936         and change to a single character code, but EFL port hasn't handled like that.
2937
2938         At least we can verify this with following two tests as I know. but they require another
2939         functionality for bug79601. I'm going to submit the patch for it after this one.
2940
2941         Test: fast/mutation/end-of-task-delivery.html
2942               fast/mutation/inline-event-listener.html
2943
2944         * platform/efl/EflKeyboardUtilities.cpp:
2945         (WebCore::singleCharacterString):
2946         (WebCore):
2947         * platform/efl/EflKeyboardUtilities.h:
2948         (WebCore):
2949         * platform/efl/PlatformKeyboardEventEfl.cpp:
2950         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2951
2952 2012-03-07  Gavin Peters  <gavinp@chromium.org>
2953
2954         Add Histograms for reporting on PageCache reject reasons
2955         https://bugs.webkit.org/show_bug.cgi?id=80187
2956
2957         Enhance the PageCache debug mode so that it uses Histograms to
2958         report on causes of failure.  Turn on the debug printing path
2959         even in non-debug Chromium builds, so these histograms will
2960         update.
2961
2962         Reviewed by Brady Eidson.
2963
2964         No new tests, does not change behaviour.
2965
2966         * history/PageCache.cpp:
2967         (WebCore):
2968         (WebCore::logCanCacheFrameDecision):
2969         (WebCore::logCanCachePageDecision):
2970         (WebCore::PageCache::canCache):
2971
2972 2012-03-07  Elliot Poger  <epoger@google.com>
2973
2974         [Chromium] Remove use_skia option from GYP
2975         https://bugs.webkit.org/show_bug.cgi?id=75811
2976
2977         Reviewed by Tony Chang.
2978
2979         * WebCore.gyp/WebCore.gyp:
2980
2981 2012-03-07  Yoshifumi Inoue  <yosin@chromium.org>
2982
2983         [Forms] Introduce LabelableElement to share "labels" attribute implementation
2984         https://bugs.webkit.org/show_bug.cgi?id=80392
2985
2986         Reviewed by Kent Tamura.
2987
2988         This patch introduces new class LabelableElement as base class of
2989         HTMLFormControlElement for sharing implementation of "labels" 
2990         attribute among form-associate elements, "meter" element, and 
2991         "progress" element.
2992
2993         This patch allows us to change base class of HTMLMeterElement and
2994         HTMLProgressElement dervied from HTMLFormControlElement to 
2995         HTMLElement for remove them from HTMLFormElement::m_associatedFormElements
2996         where we don't need to put "meter" and "progress" elements(bug 80381.)
2997
2998         This patch also changes implementation of isLabelable using virtual
2999         method rather than sequence of hasTagName for execution speed and
3000         better readability.
3001
3002         No new tests are required. No behavior changes.
3003
3004         * CMakeLists.txt: Add LabelableElement.cpp and .h
3005         * GNUmakefile.list.am:  Add LabelableElement.cpp and .h
3006         * Target.pri: Add LabelableElement.cpp and .h
3007         * WebCore.gypi: Add LabelableElement.cpp and .h
3008         * WebCore.vcproj/WebCore.vcproj: Add LabelableElement.cpp and .h
3009         * WebCore.xcodeproj/project.pbxproj: Add LabelableElement.cpp and .h
3010         * html/HTMLButtonElement.h: Implement isLabelable.
3011         * html/HTMLFormControlElement.cpp:
3012         (WebCore::HTMLFormControlElement::HTMLFormControlElement): Change direct base class.
3013         * html/HTMLFormControlElement.h:
3014         (HTMLFormControlElement): Change direct base class.
3015         * html/HTMLInputElement.cpp:
3016         (WebCore::HTMLInputElement::isLabelable): Removed to use virtual method instead of hasTagName.
3017         (WebCore):
3018         * html/HTMLInputElement.h: Declaration of isLabelable.
3019         * html/HTMLKeygenElement.h: Implement isLabelable.
3020         * html/HTMLMeterElement.h: Implement isLabelable.
3021         * html/HTMLProgressElement.h: Implement isLabelable.
3022         * html/HTMLSelectElement.h: Implement isLabelable.
3023         * html/HTMLTextAreaElement.h: Implement isLabelable.
3024         * html/LabelableElement.cpp: Added.
3025         (WebCore):
3026         (WebCore::LabelableElement::LabelableElement):
3027         (WebCore::LabelableElement::~LabelableElement):
3028         (WebCore::LabelableElement::labels): Moved from HTMLFormControlElement.
3029         * html/LabelableElement.h: Added.
3030         (WebCore):
3031         (LabelableElement):
3032
3033 2012-03-07  Arun Patole  <bmf834@motorola.com>
3034
3035         HTMLTrackElement.idl doesn't have default attribute.
3036         https://bugs.webkit.org/show_bug.cgi?id=80116
3037
3038         Reviewed by Kentaro Hara.
3039
3040         Renamed isDefault to 'default' so that in JS, it will be track.default instead of track.isDefault.
3041         * html/HTMLTrackElement.idl:
3042
3043 2012-03-07  Zoltan Horvath  <zoltan@webkit.org>
3044
3045         [Qt] Add qmake config tests for JPEG and PNG library
3046         https://bugs.webkit.org/show_bug.cgi?id=80398
3047
3048         Reviewed by Tor Arne Vestbø.
3049
3050         Add JPEG and PNG library tests to config.tests and
3051         add error() abort to WebCore.pri if tests don't work.
3052
3053         * WebCore.pri:
3054
3055 2012-03-06  Pavel Podivilov  <podivilov@chromium.org>
3056
3057         Web Inspector: extract source mapping logic from DebuggerPresentationModel to ScriptMappingImpl.
3058         https://bugs.webkit.org/show_bug.cgi?id=80412
3059
3060         Reviewed by Vsevolod Vlasov.
3061
3062         * WebCore.gypi:
3063         * WebCore.vcproj/WebCore.vcproj:
3064         * inspector/compile-front-end.sh:
3065         * inspector/front-end/ScriptMapping.js:
3066         (WebInspector.ScriptMappingImpl):
3067         (WebInspector.ScriptMappingImpl.prototype.rawLocationToUILocation):
3068         (WebInspector.ScriptMappingImpl.prototype.createLiveLocation):
3069         (WebInspector.ScriptMappingImpl.prototype.uiSourceCodeList):
3070         (WebInspector.ScriptMappingImpl.prototype._handleUISourceCodeListChanged):
3071         (WebInspector.ScriptMappingImpl.prototype._uiSourceCodeListChanged):
3072         (WebInspector.ScriptMappingImpl.prototype._bindScriptToRawSourceCode):
3073         (WebInspector.ScriptMappingImpl.prototype.setFormatSource):
3074         (WebInspector.ScriptMappingImpl.prototype.forceUpdateSourceMapping):
3075         (WebInspector.ScriptMappingImpl.prototype.reset):
3076
3077 2012-03-07  Mark Rowe  <mrowe@apple.com>
3078
3079         Fix DerivedSources.make to not assume that WTF and WebCore build in to the same build directory.
3080
3081         We can't assume that wtf/Platform.h can be found inside BUILT_PRODUCTS_DIR as
3082         that won't be the case if WTF and WebCore are building in to different build
3083         directories. We should instead look for wtf/Platform.h in the header search path.
3084         
3085         Unreviewed due to being a build fix.
3086
3087         * DerivedSources.make: Set up the header search path, and invoke the compiler in
3088         such a manner that it looks for wtf/Platform.h in that search path.
3089
3090 2012-03-07  Robin Cao  <robin.cao@torchmobile.com.cn>
3091
3092         [BlackBerry] Upstream Texture and TextureCache
3093         https://bugs.webkit.org/show_bug.cgi?id=80121
3094
3095         Reviewed by Rob Buis.
3096
3097         Initial upstream, no new tests.
3098
3099         * platform/graphics/blackberry/Texture.cpp: Added.
3100         (WebCore):
3101         (WebCore::copyImageData):
3102         (WebCore::Texture::Texture):
3103         (WebCore::Texture::~Texture):
3104         (WebCore::Texture::updateContents):
3105         (WebCore::Texture::setContentsToColor):
3106         (WebCore::Texture::protect):
3107         * platform/graphics/blackberry/Texture.h: Added.
3108         (WebCore):
3109         (Texture):
3110         (WebCore::Texture::create):
3111         (WebCore::Texture::textureId):
3112         (WebCore::Texture::isDirty):
3113         (WebCore::Texture::hasTexture):
3114         (WebCore::Texture::isColor):
3115         (WebCore::Texture::isOpaque):
3116         (WebCore::Texture::isProtected):
3117         (WebCore::Texture::protect):
3118         (WebCore::Texture::unprotect):
3119         (WebCore::Texture::size):
3120         (WebCore::Texture::width):
3121         (WebCore::Texture::height):
3122         (WebCore::Texture::bytesPerPixel):
3123         (WebCore::Texture::setTextureId):
3124         * platform/graphics/blackberry/TextureCacheCompositingThread.cpp: Added.
3125         (WebCore):
3126         (TextureProtector):
3127         (WebCore::TextureProtector::TextureProtector):
3128         (WebCore::TextureProtector::~TextureProtector):
3129         (WebCore::TextureCacheCompositingThread::TextureCacheCompositingThread):
3130         (WebCore::TextureCacheCompositingThread::allocateTextureId):
3131         (WebCore::TextureCacheCompositingThread::freeTextureId):
3132         (WebCore::TextureCacheCompositingThread::collectGarbage):
3133         (WebCore::TextureCacheCompositingThread::textureResized):
3134         (WebCore::TextureCacheCompositingThread::textureDestroyed):
3135         (WebCore::TextureCacheCompositingThread::install):
3136         (WebCore::TextureCacheCompositingThread::evict):
3137         (WebCore::TextureCacheCompositingThread::textureAccessed):
3138         (WebCore::textureCacheCompositingThread):
3139         (WebCore::TextureCacheCompositingThread::prune):
3140         (WebCore::TextureCacheCompositingThread::clear):
3141         (WebCore::TextureCacheCompositingThread::setMemoryUsage):
3142         (WebCore::TextureCacheCompositingThread::textureForTiledContents):
3143         (WebCore::TextureCacheCompositingThread::textureForColor):
3144         (WebCore::TextureCacheCompositingThread::updateContents):
3145         (WebCore::TextureCacheCompositingThread::key):
3146         * platform/graphics/blackberry/TextureCacheCompositingThread.h: Added.
3147         (WebCore):
3148         (TextureCacheCompositingThread):
3149         (WebCore::TextureCacheCompositingThread::createTexture):
3150         (WebCore::TextureCacheCompositingThread::memoryUsage):
3151         (WebCore::TextureCacheCompositingThread::memoryLimit):
3152         (WebCore::TextureCacheCompositingThread::setMemoryLimit):
3153         (WebCore::TextureCacheCompositingThread::prune):
3154         (WebCore::TextureCacheCompositingThread::ZombieTexture::ZombieTexture):
3155         (ZombieTexture):
3156         (WebCore::TextureCacheCompositingThread::incMemoryUsage):
3157         (WebCore::TextureCacheCompositingThread::decMemoryUsage):
3158         (WebCore::TextureCacheCompositingThread::ColorHash::hash):
3159         (WebCore::TextureCacheCompositingThread::ColorHash::equal):
3160         (ColorHash):
3161         (ColorHashTraits):
3162         (WebCore::TextureCacheCompositingThread::ColorHashTraits::constructDeletedValue):
3163         (WebCore::TextureCacheCompositingThread::ColorHashTraits::isDeletedValue):
3164
3165 2012-03-07  Kenichi Ishibashi  <bashi@chromium.org>
3166
3167         [WebSocket] Should raise SYNTAX_ERR when message contains unpaired surrogates
3168         https://bugs.webkit.org/show_bug.cgi?id=80103
3169
3170         Reviewed by Kent Tamura.
3171
3172         Add UTF8 validation checks for WebSocket message and close reason.
3173
3174         Tests: http/tests/websocket/tests/hybi/unpaired-surrogates-in-close-reason.html
3175                http/tests/websocket/tests/hybi/unpaired-surrogates-in-message.html
3176
3177         * Modules/websockets/WebSocket.cpp:
3178         (WebCore::WebSocket::send): Raise SYNTAX_ERR if the message is invalid.
3179         (WebCore::WebSocket::close):Raise SYNTAX_ERR if the reason is invalid.
3180         * Modules/websockets/WebSocketChannel.cpp:
3181         (WebCore::WebSocketChannel::send): Check whether message is a valid UTF8 string.
3182
3183 2012-03-07  Byungwoo Lee  <bw80.lee@samsung.com>
3184
3185         [EFL] Build warning: Fix warn_unused_result warnings.
3186         https://bugs.webkit.org/show_bug.cgi?id=79194
3187
3188         Reviewed by Filip Pizlo.
3189
3190         Fixed build warning which is getting generated when not using return
3191         value of a fuction, especially declared with warn_unused_result
3192         attribute.
3193
3194         * platform/efl/SharedBufferEfl.cpp:
3195         (WebCore::SharedBuffer::createWithContentsOfFile):
3196
3197 2012-03-07  Kent Tamura  <tkent@chromium.org>
3198
3199         Cleanup of RenderTextControl::adjustControlHeightBasedOnLineHeight()
3200         https://bugs.webkit.org/show_bug.cgi?id=80480
3201
3202         Reviewed by Hajime Morita.
3203
3204         The callsite of adjustControlHeightBasedOnLineHeight() stored
3205         padding+border+margin height of the inner text in height(), and
3206         adjustControlHeightBasedOnLineHeight() implementations refered it. It
3207         was unreasonable and hard to understand.
3208
3209         The purpose of adjustControlHeightBasedOnLineHeight() is to compute
3210         - the maximum height of line-heights of the inner text and decorations
3211         - the maximum height of padding+border+margin heights of the inner text and decorations,
3212         and to sum them up. This patch rewrites the code to make it understood easily.
3213
3214         adjustControlHeightBasedOnLineHeight() is renamed to
3215         computeControlheight(), it takes additional parameter of
3216         padding+boder+margin height, and returns the sum of them.
3217
3218         No behavior change.
3219
3220         * rendering/RenderTextControl.cpp:
3221         (WebCore::RenderTextControl::computeLogicalHeight):
3222         * rendering/RenderTextControl.h:
3223         (RenderTextControl):
3224         * rendering/RenderTextControlMultiLine.cpp:
3225         (WebCore::RenderTextControlMultiLine::computeControlHeight):
3226         * rendering/RenderTextControlMultiLine.h:
3227         (RenderTextControlMultiLine):
3228         * rendering/RenderTextControlSingleLine.cpp:
3229         (WebCore::RenderTextControlSingleLine::computeControlHeight):
3230         * rendering/RenderTextControlSingleLine.h:
3231         (RenderTextControlSingleLine):
3232
3233 2012-03-06  Eric Seidel  <eric@webkit.org>
3234
3235         Make WTF public headers use fully-qualified include paths and remove ForwardingHeaders/wtf
3236         https://bugs.webkit.org/show_bug.cgi?id=80363
3237
3238         Reviewed by Mark Rowe.
3239
3240         ForwardingHeaders/wtf is no longer needed (or functional) now that
3241         JavaScriptCore no longer includes the WTF headers as private headers.
3242
3243         * DerivedSources.make:
3244         * ForwardingHeaders/wtf/ASCIICType.h: Removed.
3245         * ForwardingHeaders/wtf/AVLTree.h: Removed.
3246         * ForwardingHeaders/wtf/Alignment.h: Removed.
3247         * ForwardingHeaders/wtf/AlwaysInline.h: Removed.
3248         * ForwardingHeaders/wtf/ArrayBuffer.h: Removed.
3249         * ForwardingHeaders/wtf/ArrayBufferView.h: Removed.
3250         * ForwardingHeaders/wtf/Assertions.h: Removed.
3251         * ForwardingHeaders/wtf/Atomics.h: Removed.
3252         * ForwardingHeaders/wtf/Bitmap.h: Removed.
3253         * ForwardingHeaders/wtf/BloomFilter.h: Removed.
3254         * ForwardingHeaders/wtf/BumpPointerAllocator.h: Removed.
3255         * ForwardingHeaders/wtf/ByteArray.h: Removed.
3256         * ForwardingHeaders/wtf/CheckedArithmetic.h: Removed.
3257         * ForwardingHeaders/wtf/CheckedBoolean.h: Removed.
3258         * ForwardingHeaders/wtf/Compiler.h: Removed.
3259         * ForwardingHeaders/wtf/Complex.h: Removed.
3260         * ForwardingHeaders/wtf/CryptographicallyRandomNumber.h: Removed.
3261         * ForwardingHeaders/wtf/CurrentTime.h: Removed.
3262         * ForwardingHeaders/wtf/DataLog.h: Removed.
3263         * ForwardingHeaders/wtf/DateInstanceCache.h: Removed.
3264         * ForwardingHeaders/wtf/DateMath.h: Removed.
3265         * ForwardingHeaders/wtf/DecimalNumber.h: Removed.
3266         * ForwardingHeaders/wtf/Decoder.h: Removed.
3267         * ForwardingHeaders/wtf/Deque.h: Removed.
3268         * ForwardingHeaders/wtf/DisallowCType.h: Removed.
3269         * ForwardingHeaders/wtf/DoublyLinkedList.h: Removed.
3270         * ForwardingHeaders/wtf/DynamicAnnotations.h: Removed.
3271         * ForwardingHeaders/wtf/Encoder.h: Removed.
3272         * ForwardingHeaders/wtf/ExportMacros.h: Removed.
3273         * ForwardingHeaders/wtf/FastAllocBase.h: Removed.
3274         * ForwardingHeaders/wtf/FastMalloc.h: Removed.
3275         * ForwardingHeaders/wtf/FixedArray.h: Removed.
3276         * ForwardingHeaders/wtf/Float32Array.h: Removed.
3277         * ForwardingHeaders/wtf/Float64Array.h: Removed.
3278         * ForwardingHeaders/wtf/Forward.h: Removed.
3279         * ForwardingHeaders/wtf/Functional.h: Removed.
3280         * ForwardingHeaders/wtf/GetPtr.h: Removed.
3281         * ForwardingHeaders/wtf/HashCountedSet.h: Removed.
3282         * ForwardingHeaders/wtf/HashFunctions.h: Removed.
3283         * ForwardingHeaders/wtf/HashMap.h: Removed.
3284         * ForwardingHeaders/wtf/HashSet.h: Removed.
3285         * ForwardingHeaders/wtf/HashTable.h: Removed.
3286         * ForwardingHeaders/wtf/HashTraits.h: Removed.
3287         * ForwardingHeaders/wtf/HexNumber.h: Removed.
3288         * ForwardingHeaders/wtf/Int16Array.h: Removed.
3289         * ForwardingHeaders/wtf/Int32Array.h: Removed.
3290         * ForwardingHeaders/wtf/Int8Array.h: Removed.
3291         * ForwardingHeaders/wtf/ListHashSet.h: Removed.
3292         * ForwardingHeaders/wtf/ListRefPtr.h: Removed.
3293         * ForwardingHeaders/wtf/Locker.h: Removed.
3294         * ForwardingHeaders/wtf/MD5.h: Removed.
3295         * ForwardingHeaders/wtf/MainThread.h: Removed.
3296         * ForwardingHeaders/wtf/MathExtras.h: Removed.
3297         * ForwardingHeaders/wtf/MessageQueue.h: Removed.
3298         * ForwardingHeaders/wtf/MetaAllocator.h: Removed.
3299         * ForwardingHeaders/wtf/MetaAllocatorHandle.h: Removed.
3300         * ForwardingHeaders/wtf/NonCopyingSort.h: Removed.
3301         * ForwardingHeaders/wtf/Noncopyable.h: Removed.
3302         * ForwardingHeaders/wtf/NotFound.h: Removed.
3303         * ForwardingHeaders/wtf/OSAllocator.h: Removed.
3304         * ForwardingHeaders/wtf/OwnArrayPtr.h: Removed.
3305         * ForwardingHeaders/wtf/OwnPtr.h: Removed.
3306         * ForwardingHeaders/wtf/OwnPtrCommon.h: Removed.
3307         * ForwardingHeaders/wtf/PageAllocation.h: Removed.
3308         * ForwardingHeaders/wtf/PageAllocationAligned.h: Removed.
3309         * ForwardingHeaders/wtf/PageBlock.h: Removed.
3310         * ForwardingHeaders/wtf/PageReservation.h: Removed.
3311         * ForwardingHeaders/wtf/ParallelJobs.h: Removed.
3312         * ForwardingHeaders/wtf/PassOwnArrayPtr.h: Removed.
3313         * ForwardingHeaders/wtf/PassOwnPtr.h: Removed.
3314         * ForwardingHeaders/wtf/PassRefPtr.h: Removed.
3315         * ForwardingHeaders/wtf/Platform.h: Removed.
3316         * ForwardingHeaders/wtf/PossiblyNull.h: Removed.
3317         * ForwardingHeaders/wtf/RandomNumber.h: Removed.
3318         * ForwardingHeaders/wtf/RedBlackTree.h: Removed.
3319         * ForwardingHeaders/wtf/RefCounted.h: Removed.
3320         * ForwardingHeaders/wtf/RefCountedLeakCounter.h: Removed.
3321         * ForwardingHeaders/wtf/RefPtr.h: Removed.
3322         * ForwardingHeaders/wtf/RetainPtr.h: Removed.
3323         * ForwardingHeaders/wtf/SHA1.h: Removed.
3324         * ForwardingHeaders/wtf/SegmentedVector.h: Removed.
3325         * ForwardingHeaders/wtf/SimpleStats.h: Removed.
3326         * ForwardingHeaders/wtf/Spectrum.h: Removed.
3327         * ForwardingHeaders/wtf/StackBounds.h: Removed.
3328         * ForwardingHeaders/wtf/StaticConstructors.h: Removed.
3329         * ForwardingHeaders/wtf/StdLibExtras.h: Removed.
3330         * ForwardingHeaders/wtf/StringExtras.h: Removed.
3331         * ForwardingHeaders/wtf/StringHasher.h: Removed.
3332         * ForwardingHeaders/wtf/TemporaryChange.h: Removed.
3333         * ForwardingHeaders/wtf/ThreadRestrictionVerifier.h: Removed.
3334         * ForwardingHeaders/wtf/ThreadSafeRefCounted.h: Removed.
3335         * ForwardingHeaders/wtf/ThreadSpecific.h: Removed.
3336         * ForwardingHeaders/wtf/Threading.h: Removed.
3337         * ForwardingHeaders/wtf/ThreadingPrimitives.h: Removed.
3338         * ForwardingHeaders/wtf/TypeTraits.h: Removed.
3339         * ForwardingHeaders/wtf/Uint16Array.h: Removed.
3340         * ForwardingHeaders/wtf/Uint32Array.h: Removed.
3341         * ForwardingHeaders/wtf/Uint8Array.h: Removed.
3342         * ForwardingHeaders/wtf/Uint8ClampedArray.h: Removed.
3343         * ForwardingHeaders/wtf/UnusedParam.h: Removed.
3344         * ForwardingHeaders/wtf/VMTags.h: Removed.
3345         * ForwardingHeaders/wtf/ValueCheck.h: Removed.
3346         * ForwardingHeaders/wtf/Vector.h: Removed.
3347         * ForwardingHeaders/wtf/VectorTraits.h: Removed.
3348         * ForwardingHeaders/wtf/WTFThreadData.h: Removed.
3349         * ForwardingHeaders/wtf/dtoa.h: Removed.
3350         * ForwardingHeaders/wtf/dtoa/double-conversion.h: Removed.
3351         * ForwardingHeaders/wtf/text/ASCIIFastPath.h: Removed.
3352         * ForwardingHeaders/wtf/text/AtomicString.h: Removed.
3353         * ForwardingHeaders/wtf/text/AtomicStringHash.h: Removed.
3354         * ForwardingHeaders/wtf/text/AtomicStringImpl.h: Removed.
3355         * ForwardingHeaders/wtf/text/CString.h: Removed.
3356         * ForwardingHeaders/wtf/text/StringBuffer.h: Removed.
3357         * ForwardingHeaders/wtf/text/StringBuilder.h: Removed.
3358         * ForwardingHeaders/wtf/text/StringConcatenate.h: Removed.
3359         * ForwardingHeaders/wtf/text/StringHash.h: Removed.
3360         * ForwardingHeaders/wtf/text/StringImpl.h: Removed.
3361         * ForwardingHeaders/wtf/text/TextPosition.h: Removed.
3362         * ForwardingHeaders/wtf/text/WTFString.h: Removed.
3363         * ForwardingHeaders/wtf/unicode/CharacterNames.h: Removed.
3364         * ForwardingHeaders/wtf/unicode/Collator.h: Removed.
3365         * ForwardingHeaders/wtf/unicode/UTF8.h: Removed.
3366         * ForwardingHeaders/wtf/unicode/Unicode.h: Removed.
3367         * ForwardingHeaders/wtf/unicode/icu/UnicodeIcu.h: Removed.
3368         * ForwardingHeaders/wtf/unicode/wince/UnicodeWince.h: Removed.
3369         * ForwardingHeaders/wtf/url/ParsedURL.h: Removed.
3370
3371 2012-03-07  Yoshifumi Inoue  <yosin@chromium.org>
3372
3373         [Forms] The "legend" element should not be a form-associated element.
3374         https://bugs.webkit.org/show_bug.cgi?id=80239
3375
3376         Reviewed by Kent Tamura.
3377
3378         This patch changes base class of HTMLLegendElement to HTMLElement from
3379         HTMLFormControlElement for saving memory space and iteration time of
3380         extra "legend" elements in HTMLFormElement::m_formAssociatedElements
3381         and matching the HTML5 specification for ease of maintenance.
3382
3383         Changes of TextIterator is lead by usage of isFormControlElement. This
3384         changes will be replaced with more meaningful predicate as part of
3385         https://bugs.webkit.org/show_bug.cgi?id=80381
3386
3387         No new tests are required. No behavior changes.
3388
3389         * editing/TextIterator.cpp:
3390         (WebCore::TextIterator::advance): Check HTMLLegendElement in addition to isFormControlElement. This change is for text dump in LayoutTests implemented by document.innerText attribute.
3391         * html/HTMLLegendElement.cpp:
3392         (WebCore::HTMLLegendElement::HTMLLegendElement): Remove form parameter.
3393         (WebCore::HTMLLegendElement::create): Remove form parameter.
3394         (WebCore::HTMLLegendElement::associatedControl): Stop checking legend element, because HTMLLegendElement is no longer HTMLFormControlElement.
3395         (WebCore::HTMLLegendElement::supportFocus): Removed. It called HTMLElement::supportFocus.
3396         (WebCore::HTMLLegendElement::formControlType): Remove implementation of virtual method declared in HTMLFormControlElement.
3397         * html/HTMLLegendElement.h:
3398         (HTMLLegendElement): Change base class to HTMLElement.
3399         * html/HTMLTagNames.in: Remove "constructorNeedsFormElement" for not passing "form" parameter in HTMLElementFactory.
3400
3401 2012-03-06  Raphael Kubo da Costa  <kubo@profusion.mobi>
3402
3403         [CMake] Make the removal of transitive library dependencies work with CMake < 2.8.7.
3404         https://bugs.webkit.org/show_bug.cgi?id=80469
3405
3406         Reviewed by Antonio Gomes.
3407
3408         No new tests, this is a buildsystem change.
3409
3410         * CMakeLists.txt: Manually set the LINK_INTERFACE_LIBRARIES target
3411         property on the library being created.
3412
3413 2012-03-06  Lianghui Chen  <liachen@rim.com>
3414
3415         [BlackBerry] Set correct ResourceRequest target type.
3416         https://bugs.webkit.org/show_bug.cgi?id=80430
3417
3418         Reviewed by Rob Buis.
3419
3420         For loads started by AppCache, they are based on the manifest file,
3421         it is not definitely sure what target it is for, so we just guess
3422         based on its mimetype or file extension.
3423
3424         * loader/appcache/ApplicationCacheGroup.cpp:
3425         (WebCore::ApplicationCacheGroup::createResourceHandle):
3426         * loader/cache/CachedResource.cpp:
3427         (WebCore):
3428         (WebCore::CachedResource::load):
3429         * platform/network/blackberry/ResourceRequest.h:
3430         (ResourceRequest):
3431         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
3432         (WebCore):
3433         (WebCore::mimeTypeRequestTypeMap):
3434         (WebCore::ResourceRequest::targetTypeFromMimeType):
3435         * workers/DefaultSharedWorkerRepository.cpp:
3436         (WebCore::SharedWorkerScriptLoader::load):
3437         * workers/Worker.cpp:
3438         (WebCore::Worker::create):
3439         * workers/WorkerContext.cpp:
3440         (WebCore::WorkerContext::importScripts):
3441         * workers/WorkerScriptLoader.cpp:
3442         (WebCore::WorkerScriptLoader::createResourceRequest):
3443         * workers/WorkerScriptLoader.h:
3444         (WorkerScriptLoader):
3445
3446 2012-03-06  Dana Jansens  <danakj@chromium.org>
3447
3448         [chromium] Add clipping to scissor rect to CCOcclusionTracker
3449         https://bugs.webkit.org/show_bug.cgi?id=79927
3450
3451         Reviewed by Adrienne Walker.
3452
3453         Adds logic to CCOcclusionTracker to occlude anything outside of the
3454         current screen and target surface scissor rects. When tracking
3455         damage for partial swaps, the scissor rects are bounded by the
3456         tracked damage rects.
3457
3458         Unit tests: CCOcclusionTrackerTest.cpp
3459
3460         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
3461         (WebCore::::CCOcclusionTrackerBase):
3462         (WebCore):
3463         (WebCore::::markOccludedBehindLayer):
3464         (WebCore::testContentRectOccluded):
3465         (WebCore::::occluded):
3466         (WebCore::computeUnoccludedContentRect):
3467         (WebCore::::unoccludedContentRect):
3468         (WebCore::::layerScissorRect):
3469         * platform/graphics/chromium/cc/CCOcclusionTracker.h:
3470         (WebCore):
3471         (CCOcclusionTrackerDamageClientBase):
3472         (CCOcclusionTrackerBase):
3473
3474 2012-03-06  Kentaro Hara  <haraken@chromium.org>
3475
3476         Unreviewed, rolling out r110011.
3477         http://trac.webkit.org/changeset/110011
3478         https://bugs.webkit.org/show_bug.cgi?id=80376
3479
3480         layout tests crash
3481
3482         * bindings/v8/V8HiddenPropertyName.cpp:
3483         (WebCore):
3484         (WebCore::V8HiddenPropertyName::hiddenReferenceName):
3485         * bindings/v8/V8HiddenPropertyName.h:
3486         (WebCore):
3487         (V8HiddenPropertyName):
3488         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
3489         (WebCore::toV8):
3490         * bindings/v8/custom/V8DOMTokenListCustom.cpp:
3491         (WebCore::toV8):
3492         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
3493         (WebCore::toV8):
3494
3495 2012-03-06  Kentaro Hara  <haraken@chromium.org>
3496
3497         Unreviewed, rolling out r110016.
3498         http://trac.webkit.org/changeset/110016
3499
3500         layout tests crash
3501
3502         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
3503         (WebCore::toV8):
3504
3505 2012-03-06  Kentaro Hara  <haraken@chromium.org>
3506
3507         Unreviewed, fixed test crashes.
3508
3509         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
3510         (WebCore::toV8):
3511
3512 2012-03-06  Hajime Morrita  <morrita@chromium.org>
3513
3514         https://bugs.webkit.org/show_bug.cgi?id=79935
3515         REGRESSION: <content> element is not HTMLUnknownElement when Shadow DOM API is disabled
3516
3517         Reviewed by Adam Barth.
3518
3519         This change introduced "runtimeConditional" keyword to make_name.pl sources,
3520         which allows HTMLElementFactory and HTMLElementWrapperFactory to check RuntimeEnabledFeatures
3521         and treat any tag name as HTMLUnknownElement if its definition has runtimeConditional and
3522         the flag given is turned off.
3523
3524         Test: fast/dom/shadow/content-shadow-unknown.html
3525
3526         * WebCore.exp.in:
3527         * dom/make_names.pl:
3528         (defaultTagPropertyHash):
3529         (printConstructorInterior):
3530         (printFactoryCppFile):
3531         (printWrapperFunctions):
3532         (printWrapperFactoryCppFile):
3533         * html/HTMLTagNames.in:
3534         * html/shadow/HTMLContentElement.cpp:
3535         (WebCore::contentTagName):
3536         * testing/InternalSettings.cpp:
3537         (WebCore::InternalSettings::InternalSettings):
3538         (WebCore::InternalSettings::restoreTo):
3539         (WebCore::InternalSettings::setShadowDOMEnabled):
3540         (WebCore):
3541         * testing/InternalSettings.h:
3542         (InternalSettings):
3543         * testing/InternalSettings.idl:
3544
3545 2012-03-06  Kenichi Ishibashi  <bashi@chromium.org>
3546
3547         [WebSocket] Introduce ThreadableWebSocketChannel::SendResult
3548         https://bugs.webkit.org/show_bug.cgi?id=80356
3549
3550         Reviewed by Kent Tamura.
3551
3552         Introduced ThreadableWebSocketChannel::SendResult type so that
3553         WebSocketChannel can pass the validation result.
3554
3555         No new test. No changes in behavior.
3556
3557         * Modules/websockets/ThreadableWebSocketChannel.h: Added SendResult.
3558         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
3559         (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
3560         (WebCore::ThreadableWebSocketChannelClientWrapper::sendRequestResult): Use ThreadableWebSocketChannel::SendResult instead of bool.
3561         (WebCore::ThreadableWebSocketChannelClientWrapper::setSendRequestResult): Ditto.
3562         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
3563         (ThreadableWebSocketChannelClientWrapper):
3564         * Modules/websockets/WebSocketChannel.cpp:
3565         (WebCore::WebSocketChannel::send): Use ThreadableWebSocketChannel::SendResult instead of bool. Pass Cstring to enqueTextFrame instead of String.
3566         (WebCore::WebSocketChannel::enqueueTextFrame): Ditto.
3567         (WebCore::WebSocketChannel::processOutgoingFrameQueue): Ditto.
3568         * Modules/websockets/WebSocketChannel.h:
3569         (WebSocketChannel):
3570         (QueuedFrame): Changed the type of stringData from String to CString.
3571         * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
3572         (WebCore::WorkerThreadableWebSocketChannel::send): Use ThreadableWebSocketChannel::SendResult instead of bool.
3573         (WebCore::workerContextDidSend): Ditto.
3574         (WebCore::WorkerThreadableWebSocketChannel::Peer::send): Ditto.
3575         (WebCore::WorkerThreadableWebSocketChannel::Bridge::send): Ditto.
3576         * Modules/websockets/WorkerThreadableWebSocketChannel.h:
3577         (WorkerThreadableWebSocketChannel): ditto.
3578         (Bridge): Ditto.
3579
3580 2012-03-06  Kentaro Hara  <haraken@chromium.org>
3581
3582         [V8][Performance] Optimize V8 bindings for HTMLElement.classList,
3583         Element.dataset and Node.attributes
3584         https://bugs.webkit.org/show_bug.cgi?id=80376
3585
3586         Reviewed by Adam Barth.
3587
3588         This patch improves the performance of HTMLElement.classList, Element.dataset
3589         and Node.attributes by 6.4 times, 7.1 times and 10.9 times, respectively.
3590
3591         Previously, a 'hiddenReferenceName' string was allocated on v8::Handle and
3592         created every time the DOM attribute is accessed, in spite of the fact that
3593         the 'hiddenReferenceName' string is static.
3594
3595         This patch moves the 'hiddenReferenceName' string to v8::Persistent and makes it static.
3596         Also, this patch removes 'if (!elementValue.IsEmpty() && elementValue->IsObject())',
3597         since if 'element' exists, it is guaranteed that 'elementValue' is not empty
3598         and is an Object.
3599
3600         Performance tests: https://bugs.webkit.org/attachment.cgi?id=130283
3601
3602         AppleWebKit/JavaScriptCore:
3603         div.classList : 382ms
3604         div.classList.foo = 123 : 335ms
3605         div.dataset : 403ms
3606         div.dataset.foo = 123 : 5250ms
3607         div.attributes : 183ms
3608
3609         Chromium/V8 (without this patch):
3610         div.classList : 9140ms
3611         div.classList.foo = 123 : 9086ms
3612         div.dataset : 9930ms
3613         div.dataset.foo = 123 : 49698ms
3614         div.attributes : 13489ms
3615
3616         Chromium/V8 (with this patch):
3617         div.classList : 1435ms
3618         div.classList.foo = 123 : 1470ms
3619         div.dataset : 1400ms
3620         div.dataset.foo = 123 : 30396ms
3621         div.attributes : 1242ms
3622
3623         No tests. No change in behavior.
3624
3625         * bindings/v8/custom/V8DOMStringMapCustom.cpp: Modified as described above.
3626         (WebCore::toV8):
3627         * bindings/v8/custom/V8DOMTokenListCustom.cpp: Ditto.
3628         (WebCore::toV8):
3629         * bindings/v8/custom/V8NamedNodeMapCustom.cpp: Ditto.
3630         (WebCore::toV8):
3631
3632         * bindings/v8/V8HiddenPropertyName.cpp: Defined a hidden property name string statically
3633         to optimize the macro.
3634         (WebCore):
3635         (WebCore::V8HiddenPropertyName::hiddenReferenceName):
3636         * bindings/v8/V8HiddenPropertyName.h: Modified to switch two prefixes "WebCore::HiddenProperty::"
3637         and "WebCore::HiddenReference::", depending on whether a given name represents a hidden property
3638         or a hidden reference.
3639         (WebCore):
3640         (V8HiddenPropertyName):
3641
3642 2012-03-06  Nat Duca  <nduca@chromium.org>
3643
3644         [chromium] CCThreadProxy context lost support
3645         https://bugs.webkit.org/show_bug.cgi?id=80100
3646
3647         Reviewed by James Robinson.
3648
3649         * platform/graphics/chromium/cc/CCScheduler.cpp:
3650         (WebCore::CCScheduler::didLoseContext):
3651         (WebCore):
3652         (WebCore::CCScheduler::didRecreateContext):
3653         (WebCore::CCScheduler::processScheduledActions):
3654         * platform/graphics/chromium/cc/CCScheduler.h:
3655         (CCSchedulerClient):
3656         (CCScheduler):
3657         * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
3658         (WebCore::CCSchedulerStateMachine::CCSchedulerStateMachine):
3659         (WebCore::CCSchedulerStateMachine::nextAction):
3660         (WebCore::CCSchedulerStateMachine::updateState):
3661         (WebCore::CCSchedulerStateMachine::vsyncCallbackNeeded):
3662         (WebCore::CCSchedulerStateMachine::didLoseContext):
3663         (WebCore):
3664         (WebCore::CCSchedulerStateMachine::didRecreateContext):
3665         * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
3666         (CCSchedulerStateMachine):
3667         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3668         (WebCore::CCThreadProxy::recreateContext):
3669         (WebCore::CCThreadProxy::loseContext):
3670         (WebCore::CCThreadProxy::scheduledActionBeginContextRecreation):
3671         (WebCore):
3672         (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
3673         (WebCore::CCThreadProxy::setAnimationEvents):
3674         (WebCore::CCThreadProxy::beginContextRecreation):
3675         (WebCore::CCThreadProxy::recreateContextOnImplThread):
3676         (WebCore::CCThreadProxy::loseContextOnImplThread):
3677         * platform/graphics/chromium/cc/CCThreadProxy.h:
3678         (CCThreadProxy):
3679
3680 2012-03-06  Tony Chang  <tony@chromium.org>
3681
3682         refactor method names in RenderFlexibleBox to make them more consistent
3683         https://bugs.webkit.org/show_bug.cgi?id=80446
3684
3685         Reviewed by Ojan Vafai.
3686
3687         No new tests, just renaming internal methods.
3688
3689         * rendering/RenderFlexibleBox.cpp:
3690         (WebCore::RenderFlexibleBox::flowAwareBorderAfter): New, used by layoutAndPlaceChildren
3691         (WebCore::RenderFlexibleBox::flowAwarePaddingAfter): New, used by layoutAndPlaceChildren
3692         (WebCore::RenderFlexibleBox::marginBoxAscentForChild): Add ForChild for consistency.
3693         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): We were adding the before padding+border twice (it's in the offset and
3694         crossAxisBorderAndPaddingExtent() and subtracting it once.  Instead, just add the after padding+border.
3695         (WebCore::RenderFlexibleBox::alignChildren):
3696         * rendering/RenderFlexibleBox.h:
3697         (RenderFlexibleBox): Reorder methods to match the .cpp file.
3698
3699 2012-03-06  Kentaro Hara  <haraken@chromium.org>
3700
3701         Unreviewed, rolling out r109969.
3702         http://trac.webkit.org/changeset/109969
3703         https://bugs.webkit.org/show_bug.cgi?id=80376
3704
3705         layout tests crash
3706
3707         * bindings/v8/V8HiddenPropertyName.cpp:
3708         (WebCore):
3709         (WebCore::V8HiddenPropertyName::hiddenReferenceName):
3710         * bindings/v8/V8HiddenPropertyName.h:
3711         (WebCore):
3712         (V8HiddenPropertyName):
3713         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
3714         (WebCore::toV8):
3715         * bindings/v8/custom/V8DOMTokenListCustom.cpp:
3716         (WebCore::toV8):
3717         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
3718         (WebCore::toV8):
3719
3720 2012-03-06  Kentaro Hara  <haraken@chromium.org>
3721
3722         Unreviewed, rolling out r109999.
3723         http://trac.webkit.org/changeset/109999
3724
3725         layout tests crash
3726
3727         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
3728         (WebCore::toV8):
3729         * bindings/v8/custom/V8DOMTokenListCustom.cpp:
3730         (WebCore::toV8):
3731
3732 2012-03-06  Kentaro Hara  <haraken@chromium.org>
3733
3734         Unreviewed, fix crashes.
3735
3736         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
3737         (WebCore::toV8):
3738         * bindings/v8/custom/V8DOMTokenListCustom.cpp:
3739         (WebCore::toV8):
3740
3741 2012-03-06  James Robinson  <jamesr@chromium.org>
3742
3743         [chromium] Fix threaded compositing issues in WebGLLayerChromium (except for printing)
3744         https://bugs.webkit.org/show_bug.cgi?id=80459
3745
3746         Reviewed by Kenneth Russell.
3747
3748         This fixes a few wrong-thread issues in WebGLLayerChromium for threaded compositing.  The key requirements that
3749         threaded compositing imposes on LayerChromium subclasses are that the compositor's context can only be used from
3750         the compositor thread, meaning inside of updateCompositorResources() and pushPropertiesTo(), and that
3751         non-compositor contexts can only be used from the main thread. This means specifically that we can't use the
3752         DrawingBuffer's context in either of these two functions.
3753
3754         Summary of changes:
3755         *) Move the publishToPlatformLayer() call and related logic inside of paintContentsIfDirty(), which is called
3756         on the main thread.
3757         *) Move lost context tracking outside of drawsContent(), since that function is called from both threads, to a
3758         separate bool that is updated after each WebGL composite and setDrawingBuffer call.
3759
3760         Printing still doesn't work in threaded mode with this patch, I'll address that separately. Printing and lost
3761         context recovery still work as they did in the single-threaded path.
3762
3763         * platform/graphics/chromium/WebGLLayerChromium.cpp:
3764         (WebCore::WebGLLayerChromium::WebGLLayerChromium):
3765         (WebCore::WebGLLayerChromium::drawsContent):
3766         (WebCore::WebGLLayerChromium::paintContentsIfDirty):
3767         (WebCore::WebGLLayerChromium::updateCompositorResources):
3768         (WebCore::WebGLLayerChromium::setDrawingBuffer):
3769         * platform/graphics/chromium/WebGLLayerChromium.h:
3770         (WebGLLayerChromium):
3771
3772 2012-03-06  Anders Carlsson  <andersca@apple.com>
3773
3774         Cracks between tiles when zoomed in
3775         https://bugs.webkit.org/show_bug.cgi?id=80460
3776         <rdar://problem/10996688>
3777
3778         Use enclosingIntRect instead of enclosedIntRect when converting from FloatRect to IntRect.
3779
3780         * platform/graphics/mac/WebLayer.mm:
3781         (drawLayerContents):
3782
3783 2012-03-06  Anders Carlsson  <andersca@apple.com>
3784
3785         Tile cache layers should always be clipped to the view's bounds
3786         https://bugs.webkit.org/show_bug.cgi?id=80456
3787         <rdar://problem/10996174>
3788
3789         Reviewed by Simon Fraser.
3790
3791         * rendering/RenderLayerBacking.cpp:
3792         (WebCore::RenderLayerBacking::shouldClipCompositedBounds):
3793         Factor this code out into a separate function for better clarity. Always return true if we have a tile cache layer.
3794
3795         (WebCore::RenderLayerBacking::updateCompositedBounds):
3796         Call shouldClipCompositedBounds directly.
3797
3798 2012-03-06  James Robinson  <jamesr@chromium.org>
3799
3800         [chromium] Null-check m_layerRenderer in CCLayerTreeHostImpl::finishAllRendering()
3801         https://bugs.webkit.org/show_bug.cgi?id=80445
3802
3803         Reviewed by Adrienne Walker.
3804
3805         Null-check CCLayerTreeHostImpl::m_layerRenderer since it won't be set if context initialiation failed for any
3806         reason.
3807
3808         Covered by new unit test in CCLayerTreeHostImplTest.
3809
3810         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3811         (WebCore::CCLayerTreeHostImpl::finishAllRendering):
3812
3813 2012-03-06  Ryosuke Niwa  <rniwa@webkit.org>
3814
3815         Can't select a line of RTL text on Facebook
3816         https://bugs.webkit.org/show_bug.cgi?id=59435
3817
3818         Reviewed by Eric Seidel.
3819
3820         Deploy prevLeafChildIgnoringLineBreak and nextLeafChildIgnoringLineBreak
3821         in RenderedPosition::leftBoundaryOfBidiRun and RenderedPosition::rightBoundaryOfBidiRun.
3822
3823         Without this patch, WebKit extends selection from right to left when the user selects
3824         <span dir="rtl">ABC<br></span> from left to right by a mouse drag.
3825
3826         Test: editing/selection/select-bidi-run.html
3827
3828         * editing/RenderedPosition.cpp:
3829         (WebCore::RenderedPosition::leftBoundaryOfBidiRun):
3830         (WebCore::RenderedPosition::rightBoundaryOfBidiRun):
3831
3832 2012-03-06  Raphael Kubo da Costa  <kubo@profusion.mobi>
3833
3834         undefined reference to JSC::IdentifierTable::~IdentifierTable() on EFL port
3835         https://bugs.webkit.org/show_bug.cgi?id=80282
3836
3837         Reviewed by Antonio Gomes.
3838
3839         No new tests, this is a buildsystem change.
3840
3841         Remove transitive library dependencies; they are especially
3842         dangerous when one ends up linking against WTF, JSC and then WTF
3843         again, since some symbols will not be defined.
3844
3845         Passing --no-copy-dt-needed-entries and --as-needed to the linker
3846         (which some recent Linux distros do by default) makes the issue
3847         even more evident.
3848
3849         * CMakeLists.txt: Explicitly link to WTF as WebCore uses symbols
3850         from it.
3851         * PlatformEfl.cmake: Explicitly link against libjpeg and libpng.
3852
3853 2012-03-06  James Robinson  <jamesr@chromium.org>
3854
3855         [chromium] REGRESSION(109469): WebGL printing busted
3856         https://bugs.webkit.org/show_bug.cgi?id=80450
3857
3858         Reviewed by Kenneth Russell.
3859
3860         Avoid marking layers as needing display in setContentsTo...() since this breaks WebGL's damage tracking and is
3861         unnecessary.
3862
3863         Tested WebGL printing manually.
3864
3865         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
3866         (WebCore::GraphicsLayerChromium::setContentsToCanvas):
3867         (WebCore::GraphicsLayerChromium::setContentsToMedia):
3868
3869 2012-03-06  Adrienne Walker  <enne@google.com>
3870
3871         Overlap map for compositing should ignore empty layers
3872         https://bugs.webkit.org/show_bug.cgi?id=63499
3873
3874         Reviewed by Simon Fraser.
3875
3876         Test: compositing/layer-creation/overlap-empty-layer.html
3877
3878         * rendering/RenderLayerCompositor.cpp:
3879         (WebCore::RenderLayerCompositor::addToOverlapMap):
3880         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
3881
3882 2012-03-06  Vangelis Kokkevis  <vangelis@chromium.org>
3883
3884         [chromium] Increase the accelerated canvas min size to 256 * 256
3885         https://bugs.webkit.org/show_bug.cgi?id=80451
3886
3887         Reviewed by Stephen White.
3888
3889         Test: Manually
3890
3891         * page/Settings.cpp:
3892         (WebCore::Settings::Settings):
3893
3894 2012-03-06  Kentaro Hara  <haraken@chromium.org>
3895
3896         [V8][Performance] Optimize V8 bindings for HTMLElement.classList,
3897         Element.dataset and Node.attributes
3898         https://bugs.webkit.org/show_bug.cgi?id=80376
3899
3900         Reviewed by Adam Barth.
3901
3902         This patch improves the performance of HTMLElement.classList, Element.dataset
3903         and Node.attributes by 6.4 times, 7.1 times and 10.9 times, respectively.
3904
3905         Previously, a 'hiddenReferenceName' string was allocated on v8::Handle and
3906         created every time the DOM attribute is accessed, in spite of the fact that
3907         the 'hiddenReferenceName' string is static.
3908
3909         This patch moves the 'hiddenReferenceName' string to v8::Persistent and makes it static.
3910         Also, this patch removes 'if (!elementValue.IsEmpty() && elementValue->IsObject())',
3911         since if 'element' exists, it is guaranteed that 'elementValue' is not empty
3912         and is an Object.
3913
3914         Performance tests: https://bugs.webkit.org/attachment.cgi?id=130283
3915
3916         AppleWebKit/JavaScriptCore:
3917         div.classList : 382ms
3918         div.classList.foo = 123 : 335ms
3919         div.dataset : 403ms
3920         div.dataset.foo = 123 : 5250ms
3921         div.attributes : 183ms
3922
3923         Chromium/V8 (without this patch):
3924         div.classList : 9140ms
3925         div.classList.foo = 123 : 9086ms
3926         div.dataset : 9930ms
3927         div.dataset.foo = 123 : 49698ms
3928         div.attributes : 13489ms
3929
3930         Chromium/V8 (with this patch):
3931         div.classList : 1435ms
3932         div.classList.foo = 123 : 1470ms
3933         div.dataset : 1400ms
3934         div.dataset.foo = 123 : 30396ms
3935         div.attributes : 1242ms
3936
3937         No tests. No change in behavior.
3938
3939         * bindings/v8/custom/V8DOMStringMapCustom.cpp: Modified as described above.
3940         (WebCore::toV8):
3941         * bindings/v8/custom/V8DOMTokenListCustom.cpp: Ditto.
3942         (WebCore::toV8):
3943         * bindings/v8/custom/V8NamedNodeMapCustom.cpp: Ditto.
3944         (WebCore::toV8):
3945
3946         * bindings/v8/V8HiddenPropertyName.cpp: Defined a hidden property name string statically
3947         to optimize the macro.
3948         (WebCore):
3949         (WebCore::V8HiddenPropertyName::hiddenReferenceName):
3950         * bindings/v8/V8HiddenPropertyName.h: Modified to switch two prefixes "WebCore::HiddenProperty::"
3951         and "WebCore::HiddenReference::", depending on whether a given name represents a hidden property
3952         or a hidden reference.
3953         (WebCore):
3954         (V8HiddenPropertyName):
3955
3956 2012-03-06  Alexis Menard  <alexis.menard@openbossa.org>
3957
3958         getComputedStyle returns incorrect values for the width and height of pseudo-elements
3959         https://bugs.webkit.org/show_bug.cgi?id=37835
3960
3961         Reviewed by Tony Chang.
3962
3963         In case we are querying the computed style of an element with a pseudo-element we can't use
3964         the renderer of the element as this one is not the one used to render the pseudo-element. We need
3965         to use the one created to render the pseudo-element.
3966
3967         No new tests : Extend the existing getComputedStyle-with-pseudo-element.
3968
3969         * css/CSSComputedStyleDeclaration.cpp:
3970         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3971
3972 2012-03-06  Shawn Singh  <shawnsingh@chromium.org>
3973
3974         [chromium] Make compositeAndReadback and damage tracking play nicely together
3975         https://bugs.webkit.org/show_bug.cgi?id=80199
3976
3977         Reviewed by James Robinson.
3978
3979         Requires system-level testing (pixels on front-buffer should be
3980         observed for correct behavior) that cannot be done by layout tests
3981         or unit tests, have to rely on manual testing.
3982
3983         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
3984         (WebCore::CCSingleThreadProxy::compositeAndReadback):
3985
3986 2012-03-06  Luke Macpherson   <macpherson@chromium.org>
3987
3988         Make CSSStyleSelector::convertToLength() behave more like CSSPrimitiveValue::convertToLength().
3989         https://bugs.webkit.org/show_bug.cgi?id=80375
3990
3991         Reviewed by Eric Seidel.
3992
3993         No new tests / cleanup only.
3994
3995         This patch removes the bool* ok parameter from CSSStyleSelector's convertToLength,
3996         and instead uses the recently added Length(Undefined) value to indicate failure.
3997         This paves the way for a future patch that will call primitiveValue->convertToLength directly.
3998
3999         * css/CSSStyleSelector.cpp:
4000         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
4001
4002 2012-03-06  Raymes Khoury  <raymes@chromium.org>
4003
4004         Add state variable and ASSERTs to DocumentWriter to help track down
4005         https://bugs.webkit.org/show_bug.cgi?id=80427 and prevent illegal usage
4006         of DocumentWriter. This also makes endIfNotLoadingMainResource() private
4007         as there is no external usage.
4008
4009         Reviewed by Adam Barth.
4010
4011         This only adds ASSERT/CRASH and does not change existing behaviour.
4012
4013         * loader/DocumentWriter.cpp:
4014         (WebCore::DocumentWriter::DocumentWriter):
4015         (WebCore::DocumentWriter::begin):
4016         (WebCore::DocumentWriter::addData):
4017         (WebCore::DocumentWriter::endIfNotLoadingMainResource):
4018         (WebCore::DocumentWriter::setDocumentWasLoadedAsPartOfNavigation):
4019         * loader/DocumentWriter.h:
4020         (DocumentWriter):
4021
4022 2012-03-06  Mihnea Ovidenie  <mihnea@adobe.com>
4023
4024         [CSSRegions][CSSOM]Restrict parsing of named flow name
4025         https://bugs.webkit.org/show_bug.cgi?id=80359
4026
4027         Reviewed by Andreas Kling.
4028
4029         The function that does the parsing for flow thread name should restrict the
4030         number of parsed properties to 1, otherwise it would allow parsing of
4031         "-webkit-flow-into: flow; color: red;" constructions.
4032
4033         Modified fast/regions/webkit-named-flow-invalid-name.html to include the above case.
4034
4035         * css/CSSParser.cpp:
4036         (WebCore::validFlowName):
4037         (WebCore::CSSParser::parseFlowThread):
4038
4039 2012-03-06  Joseph Pecoraro  <pecoraro@apple.com>
4040
4041         Unreviewed build fix for minimal build after r109939.
4042
4043         Guard access to page->inspectorController with ENABLE(INSPECTOR).
4044
4045         * page/FrameView.cpp:
4046         (WebCore::FrameView::performPostLayoutTasks):
4047
4048 2012-03-05  Dean Jackson  <dino@apple.com>
4049
4050         Enable compositing when a CSS filter is animating
4051         https://bugs.webkit.org/show_bug.cgi?id=79048
4052
4053         Reviewed by Simon Fraser.
4054
4055         Now that some systems (e.g. OS X) have both hardware accelerated
4056         CSS filters, and the ability to animate them via the hardware
4057         compositor, all CSS filters should be composited when animating.
4058
4059         Tests: css3/filters/composited-during-animation-layertree.html
4060                css3/filters/composited-during-animation.html
4061                css3/filters/composited-during-transition-layertree.html
4062
4063         * platform/graphics/ca/GraphicsLayerCA.cpp:
4064         (WebCore):
4065         (WebCore::supportsAcceleratedFilterAnimations):
4066             new method that returns true if the platform supports
4067             hardware animations of filters.
4068         (WebCore::GraphicsLayerCA::addAnimation):
4069         (WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
4070             only create layer-animations if the platform supports it.
4071         * rendering/RenderLayerCompositor.cpp:
4072         (WebCore::RenderLayerCompositor::requiresCompositingForAnimation):
4073             create a compositing layer if animating a filter on a
4074             supported platform.
4075
4076 2012-03-06  Stephen White  <senorblanco@chromium.org>
4077
4078         Unreviewed, rolling out r109825.
4079         http://trac.webkit.org/changeset/109825
4080         https://bugs.webkit.org/show_bug.cgi?id=79413
4081
4082         Broke webkit_unit_tests on Chromium Win
4083
4084         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
4085         (WebCore::IDBLevelDBBackingStore::open):
4086         * platform/leveldb/LevelDBDatabase.cpp:
4087         (WebCore):
4088     &nbs