Skia OOM error when upscaling small subsets of images by large quantities
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-04-17  Rachel Blum  <groby@chromium.org>
2
3         Skia OOM error when upscaling small subsets of images by large quantities
4         https://bugs.webkit.org/show_bug.cgi?id=84225
5
6         Reviewed by David Levin.
7
8         Tested with manual tests. 
9
10         * platform/graphics/skia/NativeImageSkia.cpp:
11         (WebCore::NativeImageSkia::shouldCacheResampling):
12
13 2012-04-17  MORITA Hajime  <morrita@google.com>
14
15         ShadowRoot shouldn't be adopted by any Document.
16         https://bugs.webkit.org/show_bug.cgi?id=84127
17
18         Reviewed by Dimitri Glazkov.
19
20         ShadowRoot cannot cannot be removed from its host, which means
21         ShadowRoot cannot be adopted by any Document directly because the
22         adoptNode() tries to remove it from its parent but it doesn't make
23         sense for ShadowRoot.
24
25         This change adds a guard to check such a case.
26
27         Test: fast/dom/shadow/adopt-node-with-shadow-root.html
28
29         * dom/Document.cpp:
30         (WebCore::Document::adoptNode):
31
32 2012-04-17  John Bauman  <jbauman@chromium.org>
33
34         [chromium] Ensure RateLimiter waits for Swapbuffers completion
35         https://bugs.webkit.org/show_bug.cgi?id=83649
36
37         Reviewed by James Robinson.
38
39         We were waiting only on the canvas context, which with the new GPU
40         scheduling was causing the RateLimiter not to ratelimit enough. We
41         need to insert no-op commands in the compositor context, so that we'll
42         wait for the canvas context and SwapBuffers as well.
43
44         * platform/graphics/chromium/LayerRendererChromium.cpp:
45         (WebCore::LayerRendererChromium::doNoOp):
46         (WebCore):
47         * platform/graphics/chromium/LayerRendererChromium.h:
48         (LayerRendererChromium):
49         * platform/graphics/chromium/RateLimiter.cpp:
50         (WebCore::RateLimiter::create):
51         (WebCore::RateLimiter::RateLimiter):
52         (WebCore::RateLimiter::rateLimitContext):
53         * platform/graphics/chromium/RateLimiter.h:
54         (RateLimiterClient):
55         (WebCore):
56         (RateLimiter):
57         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
58         (WebCore::CCLayerTreeHost::startRateLimiter):
59         (WebCore::CCLayerTreeHost::rateLimit):
60         (WebCore):
61         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
62         (CCLayerTreeHost):
63         * platform/graphics/chromium/cc/CCProxy.h:
64         (CCProxy):
65         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
66         (WebCore::CCSingleThreadProxy::forceNoOpCommand):
67         (WebCore):
68         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
69         (CCSingleThreadProxy):
70         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
71         (WebCore::CCThreadProxy::forceNoOpCommand):
72         (WebCore):
73         (WebCore::CCThreadProxy::forceNoOpCommandOnImplThread):
74         * platform/graphics/chromium/cc/CCThreadProxy.h:
75         (CCThreadProxy):
76
77 2012-04-17  Andreas Kling  <kling@webkit.org>
78
79         CSSValuePool: Made identifier value cache a fixed-size array.
80         <http://webkit.org/b/84219>
81
82         Reviewed by Antti Koivisto.
83
84         Change the identifier CSSPrimitiveValue cache in CSSValuePool from a HashMap to a
85         fixed-size array of RefPtr<CSSPrimitiveValue>s.
86
87         We have ~700 values total, so this is quite space efficient now that the CSSValuePool
88         is globally shared. More importantly it avoids a hash lookup every time we need an
89         identifier value.
90
91         * css/CSSValuePool.h:
92         * css/CSSValuePool.cpp:
93         (WebCore::CSSValuePool::createIdentifierValue):
94
95 2012-04-17  Antoine Labour  <piman@chromium.org>
96
97         [Chromium] Clean up texture ids on the impl side when losing the context
98         https://bugs.webkit.org/show_bug.cgi?id=84122
99
100         Reviewed by James Robinson.
101
102         Tested by CCLayerTreeHostImplTest.dontUseOldResourcesAfterLostContext.
103
104         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
105         (WebCore::CCTextureLayerImpl::didLoseContext):
106         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
107         (WebCore::CCTiledLayerImpl::didLoseContext):
108         (WebCore):
109         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
110         (CCTiledLayerImpl):
111         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
112         (WebCore::CCVideoLayerImpl::didLoseContext):
113         (WebCore):
114         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
115         (CCVideoLayerImpl):
116
117 2012-04-17  Emil A Eklund  <eae@chromium.org>
118
119         Change RenderThemeChromiumSkia paint methods to use pixel snapping
120         https://bugs.webkit.org/show_bug.cgi?id=84175
121
122         Reviewed by Eric Seidel.
123
124         No new tests, no change in functionality.
125
126         Change RenderThemeChromiumSkia to use subpixel types and pixel snap
127         values just before painting.
128
129         * rendering/RenderThemeChromiumSkia.cpp:
130         (WebCore::RenderThemeChromiumSkia::convertToPaintingRect):
131         (WebCore::RenderThemeChromiumSkia::paintSearchFieldCancelButton):
132         (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsDecoration):
133         (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton):
134         * rendering/RenderThemeChromiumSkia.h:
135
136  2012-04-17  Levi Weintraub  <leviw@chromium.org>
137
138         Clean up outstanding LayoutUnit misuse in WebCore
139         https://bugs.webkit.org/show_bug.cgi?id=84209
140
141         Reviewed by Eric Seidel.
142
143         Small changes to a handful of files to prepare trunk for FractionalLayoutUnits.
144         For more details, see https://trac.webkit.org/wiki/LayoutUnit
145
146         No new tests. No change in behavior.
147
148         * css/CSSComputedStyleDeclaration.cpp:
149         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): minimumValueForLength preserves
150         sub-pixel precision, so we should avoid unnecessarily using integers.
151         * platform/graphics/FractionalLayoutPoint.h:
152         (WebCore::FractionalLayoutPoint::FractionalLayoutPoint): Adding an explicit constructor from
153         FractionalLayoutSizes. This mirrors a method in IntPoint.
154         * rendering/RenderBoxModelObject.cpp:
155         (WebCore::RenderBoxModelObject::paintBorder): The rects that change come from roundedRects,
156         which are already pixel-snapped.
157         * rendering/RenderBoxModelObject.h: Removing a comment that is no longer applicable.
158         * rendering/RenderTable.cpp:
159         (WebCore::RenderTable::computeLogicalWidth): Since we layout tables using integers, we
160         need to explicitly calculate the width to be integral as well to avoid pushing the next element
161         over by a pixel that we won't later paint with our own box decorations.
162         * rendering/RenderText.h:
163         (RenderText): Correcting an unfortunate mismatch between in the return value of linesBoundingBox
164         between the header and implementation.
165         * rendering/style/RenderStyle.cpp:
166         (WebCore::RenderStyle::getRoundedBorderFor): We were incorrectly not using the snapped border
167         rect to pass to calcRadiiFor (which takes an IntRect). Correcting this.
168
169 2012-04-17  Luke Macpherson  <macpherson@chromium.org>
170
171         Ensure CSSParser member variables are initialized.
172         https://bugs.webkit.org/show_bug.cgi?id=84205
173
174         Reviewed by Andreas Kling.
175
176         No new tests / code cleanup only.
177
178         * css/CSSParser.cpp:
179         (WebCore::CSSParser::CSSParser):
180
181 2012-04-16  Alexandru Chiculita  <achicu@adobe.com>
182
183         Regression(114172): Use after free in CustomFilterProgram::notifyClients
184         https://bugs.webkit.org/show_bug.cgi?id=84000
185
186         Reviewed by Dean Jackson.
187
188         The function returned early and the shaders didn't have a chance to be saved. Moving
189         those two lines before the return false just to make sure that FilterEffectRenderer never adds
190         itself as a client for a shader without keeping track of that.
191
192         No new tests. The problem reproduces with existing tests.
193         css3/filters/custom/custom-filter-property-computed-style.html
194         css3/filters/custom/effect-custom-combined-missing.html
195
196         * rendering/FilterEffectRenderer.cpp:
197         (WebCore::FilterEffectRenderer::build):
198
199 2012-04-17  Alec Flett  <alecflett@chromium.org>
200
201         IndexedDB chooses wrong record on PREV_NO_DUPLICATE index cursor
202         https://bugs.webkit.org/show_bug.cgi?id=60746
203
204         Reviewed by Ojan Vafai.
205
206         When iterating backwards with PREV_NO_DUPLICATE, keep walking past
207         the 'prev' key until it changes, then walk forward one time. This
208         covers the object store and index cases.
209
210         Test: storage/indexeddb/mozilla/index-prev-no-duplicate.html
211
212         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
213         (WebCore):
214
215 2012-04-17  Yi Shen  <yi.4.shen@nokia.com>
216
217         Caret is not rendered properly inside an input element with text-indent
218         https://bugs.webkit.org/show_bug.cgi?id=82688
219
220         Reviewed by Ryosuke Niwa.
221
222         For an empty input element, there is no RenderText. Instead, RenderBlock::localCaretRect provides
223         the caret position for rendering the caret in the empty input element. To get correct caret rect,
224         textIndentOffset() should be used to adjust the caret's position.
225
226         Test: editing/style/text-indent.html
227
228         * rendering/RenderBlock.cpp:
229         (WebCore::RenderBlock::localCaretRect):
230
231 2012-04-17  Filip Pizlo  <fpizlo@apple.com>
232
233         It should be possible to create an inheritorID for the global this object without crashing
234         https://bugs.webkit.org/show_bug.cgi?id=84200
235         <rdar://problem/11251082>
236
237         Reviewed by Oliver Hunt.
238
239         No new tests, because the circumstances necessary to make this happen are rather hairy.
240
241         * bindings/js/JSDOMWindowShell.h:
242         (WebCore::JSDOMWindowShell::window):
243         (WebCore::JSDOMWindowShell::setWindow):
244
245 2012-04-17  Luke Macpherson  <macpherson@chromium.org>
246
247         Make CSSParser::parseValue()'s handling of CSSPropertyCursor more obviously correct.
248         https://bugs.webkit.org/show_bug.cgi?id=83544
249
250         Reviewed by Kentaro Hara.
251
252         No new tests / code cleanup only.
253
254         The code as it stands appears to be correct, but static analysis was concerned that value could become null.
255         This patch adds a null check and ASSERT_NOT_REACHED() to make the code more obviously correct.
256
257         * css/CSSParser.cpp:
258         (WebCore::CSSParser::parseValue):
259
260 2012-04-17  David Reveman  <reveman@chromium.org>
261
262         [Chromium] Add TextureUploader which allows us to use persistent GC3D state for texture uploads.
263         https://bugs.webkit.org/show_bug.cgi?id=83972
264
265         Reviewed by James Robinson.
266
267         Add TextureUploader class that allows us to add persistent GC3D state to the upload machinery.
268
269         * WebCore.gypi:
270         * platform/graphics/chromium/LayerRendererChromium.cpp:
271         (WebCore::LayerRendererChromium::initializeSharedObjects):
272         (WebCore::LayerRendererChromium::cleanupSharedObjects):
273         * platform/graphics/chromium/LayerRendererChromium.h:
274         (WebCore::LayerRendererChromium::textureUploader):
275         (LayerRendererChromium):
276         * platform/graphics/chromium/TextureUploader.cpp: Added.
277         (WebCore):
278         (WebCore::AcceleratedTextureUploader::AcceleratedTextureUploader):
279         (WebCore::AcceleratedTextureUploader::~AcceleratedTextureUploader):
280         (WebCore::AcceleratedTextureUploader::uploadTexture):
281         * platform/graphics/chromium/TextureUploader.h: Added.
282         (WebCore):
283         (TextureUploader):
284         (WebCore::TextureUploader::~TextureUploader):
285         (AcceleratedTextureUploader):
286         (WebCore::AcceleratedTextureUploader::create):
287         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
288         (WebCore::CCSingleThreadProxy::doCommit):
289         * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
290         (WebCore::CCTextureUpdater::update):
291         * platform/graphics/chromium/cc/CCTextureUpdater.h:
292         (WebCore):
293         (CCTextureUpdater):
294         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
295         (WebCore::CCThreadProxy::scheduledActionUpdateMoreResources):
296
297 2012-04-17  Luke Macpherson  <macpherson@chromium.org>
298
299         Clean up CSSParser::parseFillRepeat().
300         https://bugs.webkit.org/show_bug.cgi?id=83547
301
302         Reviewed by Kentaro Hara.
303
304         Removed multiple unnecessary calls to m_valueList->current().
305         Restructured logic for parsing second value to make it clearer.
306
307         No new tests / code cleanup only.
308
309         * css/CSSParser.cpp:
310         (WebCore::CSSParser::parseFillRepeat):
311
312 2012-04-17  Kentaro Hara  <haraken@chromium.org>
313
314         [V8] Pass Isolate to toV8Slow()
315         https://bugs.webkit.org/show_bug.cgi?id=84173
316
317         Reviewed by Nate Chapin.
318
319         The final objective is to pass Isolate around in V8 bindings.
320         This patch passes the Isolate to toV8Slow().
321
322         No tests. No change in behavior.
323
324         * bindings/scripts/CodeGeneratorV8.pm:
325         (GenerateHeader):
326         * bindings/v8/custom/V8NodeCustom.cpp:
327         (WebCore::toV8Slow):
328
329 2012-04-17  Julien Chaffraix  <jchaffraix@webkit.org>
330
331         Fix the ACCELERATED_COMPOSITING code to not expose RenderLayer outside rendering
332         https://bugs.webkit.org/show_bug.cgi?id=83816
333
334         Reviewed by James Robinson.
335
336         No change in behavior expected.
337
338         This code adds several functions on RenderBoxModelObject to forward
339         to the associated layer. This removes the RenderLayer dependencies
340         at the call sites.
341
342         Currently only RenderBoxModelObject can be hardware accelerated as
343         we need a RenderLayer, this looks like the best place to put those
344         new functions.
345
346         * rendering/RenderBoxModelObject.cpp:
347         (WebCore::RenderBoxModelObject::contentChanged):
348         (WebCore::RenderBoxModelObject::hasAcceleratedCompositing):
349         (WebCore::RenderBoxModelObject::startTransition):
350         (WebCore::RenderBoxModelObject::transitionPaused):
351         (WebCore::RenderBoxModelObject::transitionFinished):
352         (WebCore::RenderBoxModelObject::startAnimation):
353         (WebCore::RenderBoxModelObject::animationPaused):
354         (WebCore::RenderBoxModelObject::animationFinished):
355         (WebCore::RenderBoxModelObject::suspendAnimations):
356         * rendering/RenderBoxModelObject.h:
357         Added the previous functions to hide the layer need.
358
359         * rendering/RenderLayer.cpp:
360         (WebCore::RenderLayer::hasAcceleratedCompositing):
361         * rendering/RenderLayer.h:
362         Removed the previous method as it was superseeded by the
363         one on RenderBoxModelObject. Also moved the ContentChangeType
364         enumaration.
365
366         * rendering/RenderLayerBacking.cpp:
367         (WebCore::RenderLayerBacking::contentChanged):
368         * rendering/RenderLayerBacking.h:
369         (RenderLayerBacking):
370         Updated after the ContentChangeType enumaration move.
371
372         * html/HTMLCanvasElement.cpp:
373         (WebCore::HTMLCanvasElement::reset):
374         (WebCore::HTMLCanvasElement::paintsIntoCanvasBuffer):
375         * html/canvas/CanvasRenderingContext2D.cpp:
376         (WebCore::CanvasRenderingContext2D::didDraw):
377         * html/canvas/WebGLRenderingContext.cpp:
378         (WebCore::WebGLRenderingContext::markContextChanged):
379         (WebCore::WebGLRenderingContext::reshape):
380         * page/animation/AnimationBase.cpp:
381         (WebCore::AnimationBase::freezeAtTime):
382         * page/animation/ImplicitAnimation.cpp:
383         (WebCore::ImplicitAnimation::startAnimation):
384         (WebCore::ImplicitAnimation::pauseAnimation):
385         (WebCore::ImplicitAnimation::endAnimation):
386         * page/animation/KeyframeAnimation.cpp:
387         (WebCore::KeyframeAnimation::startAnimation):
388         (WebCore::KeyframeAnimation::pauseAnimation):
389         (WebCore::KeyframeAnimation::endAnimation):
390         * rendering/RenderBox.cpp:
391         (WebCore::RenderBox::imageChanged):
392         * rendering/RenderImage.cpp:
393         (WebCore::RenderImage::imageDimensionsChanged):
394         (WebCore::RenderImage::notifyFinished):
395         * rendering/RenderVideo.cpp:
396         (WebCore::RenderVideo::updatePlayer):
397         Updated all those call sites to use the new functions. Also
398         removed unneeded RenderLayer.h include as we went.
399
400 2012-04-16  Andy Estes  <aestes@apple.com>
401
402         -webkit-mask-box-image does not draw when layer tree flattening is enabled
403         https://bugs.webkit.org/show_bug.cgi?id=84111
404
405         Reviewed by Simon Fraser.
406
407         No new tests since taking pixel test results with
408         PaintBehaviorFlattenCompositingLayers set is not currently supported.
409         <https://bugs.webkit.org/show_bug.cgi?id=84110> tracks fixing this.
410
411         When painting mask images, we should take the non-composited path if
412         layers are being flattened.
413
414         * rendering/InlineFlowBox.cpp:
415         (WebCore::InlineFlowBox::paintMask):
416         * rendering/RenderBox.cpp:
417         (WebCore::RenderBox::paintMaskImages):
418
419 2012-04-17  Emil A Eklund  <eae@chromium.org>
420
421         Rollout r114404 as it broke a couple of chromium builds.
422
423         * platform/FractionalLayoutUnit.h:
424         (WebCore::FractionalLayoutUnit::FractionalLayoutUnit):
425         (WebCore::FractionalLayoutUnit::isInBounds):
426         (WebCore):
427
428 2012-04-17  Ben Murdoch  <benm@google.com>
429
430         `localStorage.setItem` can overwrite `localStorage` methods
431         https://bugs.webkit.org/show_bug.cgi?id=30996
432
433         Update the JSC and V8 bindings such that if the name of the DOM
434         Storage property being retrieved is a match for a property in the
435         prototype, always return the prototype version. If there is a DOM
436         Storage key of the same name, it can still be retrieved via the
437         getItem method. This prevents storage methods from being
438         accidentally hidden. This brings WebKit behavior in line with the
439         de facto standard implemented by FireFox and IE.
440
441         Reviewed by Kentaro Hara.
442
443         Test: storage/domstorage/storage-functions-not-overwritten.html
444
445         * bindings/js/JSStorageCustom.cpp:
446         (WebCore::JSStorage::nameGetter):
447         * bindings/v8/custom/V8StorageCustom.cpp:
448         (WebCore::V8Storage::namedPropertyGetter):
449
450 2012-04-17  Emil A Eklund  <eae@chromium.org>
451
452         Fix Chromium/Windows build broken by r114404.
453
454         * platform/FractionalLayoutUnit.h:
455
456 2012-04-17  Kentaro Hara  <haraken@chromium.org>
457
458         [Performance][V8] Skip Isolate look-up to find StringCache
459         https://bugs.webkit.org/show_bug.cgi?id=84103
460
461         Reviewed by Nate Chapin.
462
463         This patch improves the performance of a lot of DOM attribute
464         getters that return a string.
465
466         - Improves the performance of Dromaeo/dom-attr.html(element.property)
467           by 27.7%.
468         - Improves the performance of Dromaeo/dom-attr.html(getAttribute)
469           by 10.6%.
470         - Improves the performance of div.id, div.className,
471           div.nodeName, text.nodeValue, text.textContent by 12% -- 21%.
472
473         The followings are the test results in my Linux desktop.
474
475         Performance test: Dromaeo/dom-attr.html
476         Total:                     674.64runs/s ->  707.03runs/s (+ 4.8%)
477         getAttribute:             1537.60runs/s -> 1700.20runs/s (+10.6%)
478         element.property:         1389.00runs/s -> 1774.20runs/s (+27.7%)
479         setAttribute:              538.88runs/s ->  548.87runs/s (+ 1.9%)
480         element.property = value:  644.07runs/s ->  656.67runs/s (+ 2.0%)
481         element.expando = value:   219.76runs/s ->  207.14runs/s (- 6.8%)
482         element.expando:           578.77runs/s ->  554.67runs/s (- 4.2%)
483
484         Performance test: https://bugs.webkit.org/attachment.cgi?id=137440
485         div.id:           30.70ns -> 26.70ns (+15%)
486         div.className:    31.10ns -> 26.40ns (+18%)
487         div.nodeName:     37.70ns -> 33.00ns (+14%)
488         text.nodeValue:   31.40ns -> 25.90ns (+21%)
489         text.textContent: 51.50ns -> 45.90ns (+12%)
490
491         Previously V8 bindings need to look up an Isolate to find
492         an Isolate-local StringCache. This patch skips the look-up
493         by getting the Isolate from AccessorInfo.GetIsolate()
494         or Arguments.GetIsolate().
495
496         No tests. No change in behavior.
497
498         * bindings/scripts/CodeGeneratorV8.pm:
499         (GenerateNormalAttrGetter):
500         (GenerateFunctionCallString):
501         (NativeToJSValue):
502         * bindings/v8/V8Binding.cpp:
503         (WebCore::getElementStringAttr):
504         * bindings/v8/V8Binding.h:
505         (WebCore::v8ExternalString): Make 'isolate' an optional argument.
506         Ideally we want to make 'isolate' a non-optional argument,
507         but it is difficult to rewrite all v8ExternalString() callers
508         at a breath. We can rewrite them incrementally.
509         (WebCore::v8String): Ditto.
510         (WebCore::v8StringOrNull): Ditto.
511         (WebCore::v8StringOrUndefined): Ditto.
512         (WebCore::v8StringOrFalse): Ditto.
513
514         * bindings/scripts/test/V8/V8TestEventConstructor.cpp: Updated run-bindings-tests results.
515         (WebCore::TestEventConstructorV8Internal::attr1AttrGetter):
516         (WebCore::TestEventConstructorV8Internal::attr2AttrGetter):
517         * bindings/scripts/test/V8/V8TestInterface.cpp:
518         (WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetter):
519         (WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetter):
520         * bindings/scripts/test/V8/V8TestObj.cpp:
521         (WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetter):
522         (WebCore::TestObjV8Internal::stringAttrAttrGetter):
523         (WebCore::TestObjV8Internal::reflectedStringAttrAttrGetter):
524         (WebCore::TestObjV8Internal::reflectedURLAttrAttrGetter):
525         (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetter):
526         (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetter):
527         (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetter):
528         (WebCore::TestObjV8Internal::hashAttrGetter):
529         (WebCore::TestObjV8Internal::conditionalMethod1Callback):
530
531 2012-04-17  Chris Fleizach  <cfleizach@apple.com>
532
533         Crash in invalid index for _textMarkerForIndex
534         https://bugs.webkit.org/show_bug.cgi?id=84104
535
536         Reviewed by Beth Dakin.
537
538         Test: platform/mac/accessibility/textmarker-for-index-out-of-bounds-crash.html
539
540         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
541         (-[WebAccessibilityObjectWrapper _textMarkerForIndex:]):
542
543 2012-04-17  Jer Noble  <jer.noble@apple.com>
544
545         HTML5 Video Full Screen button broken (looks like white square)
546         https://bugs.webkit.org/show_bug.cgi?id=84101
547
548         Reviewed by Dan Bernstein.
549
550         No new tests; updated platform results which were previously rebaselined.
551
552         Use the correct CSS keyword for the -webkit-appearance of the full screen button.
553
554         * css/mediaControls.css:
555         (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button):
556
557 2012-04-17  Tom Sepez  <tsepez@chromium.org>
558
559         Framesniffing defense is too aggressive.
560         https://bugs.webkit.org/show_bug.cgi?id=83721
561
562         Reviewed by James Robinson.
563
564         The RenderLayer code currently propagates scroll position to parent frames
565         without any cross-origin checks.  This gives it a quick origin boundary check
566         that is set by FrameLoader only when performing a fragment navigation.  This 
567         allows us to safely relax the restriction on not scrolling at load time in 
568         FrameLoader since the safe thing will happen later on at scroll time.
569         
570         Test: http/tests/navigation/anchor-frames-same-origin.html
571
572         * dom/Document.cpp:
573         (WebCore::Document::findUnsafeParentScrollPropagationBoundary):
574         * dom/Document.h:
575         (Document):
576         * loader/FrameLoader.cpp:
577         (WebCore::FrameLoader::finishedParsing):
578         (WebCore::FrameLoader::loadInSameDocument):
579         (WebCore::FrameLoader::scrollToFragmentWithParentBoundary):
580         * loader/FrameLoader.h:
581         (FrameLoader):
582         * page/FrameView.cpp:
583         (WebCore::FrameView::FrameView):
584         (WebCore::FrameView::reset):
585         * page/FrameView.h:
586         (WebCore::FrameView::safeToPropagateScrollToParent):
587         (WebCore::FrameView::setSafeToPropagateScrollToParent):
588         (FrameView):
589         * rendering/RenderLayer.cpp:
590         (WebCore::RenderLayer::scrollRectToVisible):
591
592 2012-04-17  Emil A Eklund  <eae@chromium.org>
593
594         Add size_t versions of multiplication and division operators to FractionalLayoutUnit
595         https://bugs.webkit.org/show_bug.cgi?id=83848
596
597         Reviewed by Julien Chaffraix.
598
599         Add size_t versions of operator* and operator/ for platforms where there
600         is no ambiguity between unsigned int and size_t.
601
602         No new tests, no new functionality.
603
604         * platform/FractionalLayoutUnit.h:
605         (FractionalLayoutUnit):
606         (WebCore::FractionalLayoutUnit::FractionalLayoutUnit):
607         (WebCore::FractionalLayoutUnit::isInBounds):
608         (WebCore):
609         (WebCore::operator*):
610         (WebCore::operator/):
611
612 2012-04-17  Kentaro Hara  <haraken@chromium.org>
613
614         [V8] Add an optional Isolate argument to toV8().
615         https://bugs.webkit.org/show_bug.cgi?id=84161
616
617         Reviewed by Nate Chapin.
618
619         The final objective is to pass Isolate around in V8 bindings.
620         This patch adds an optional Isolate argument to toV8().
621         After rewriting all toV8() callers so that they pass Isolate,
622         I will make the Isolate argument non-optional.
623
624         No tests. No change in behavior.
625
626         * bindings/scripts/CodeGeneratorV8.pm:
627         Modified as described above.
628         (GenerateHeader):
629         (NativeToJSValue):
630         * bindings/v8/custom/V8BlobCustom.cpp:
631         (WebCore::toV8):
632         * bindings/v8/custom/V8CSSRuleCustom.cpp:
633         (WebCore::toV8):
634         * bindings/v8/custom/V8CSSStyleSheetCustom.cpp:
635         (WebCore::toV8):
636         * bindings/v8/custom/V8CSSValueCustom.cpp:
637         (WebCore::toV8):
638         * bindings/v8/custom/V8CanvasPixelArrayCustom.cpp:
639         (WebCore::toV8):
640         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
641         (WebCore::toV8):
642         * bindings/v8/custom/V8DOMTokenListCustom.cpp:
643         (WebCore::toV8):
644         * bindings/v8/custom/V8DOMWindowCustom.cpp:
645         (WebCore::toV8):
646         * bindings/v8/custom/V8DataViewCustom.cpp:
647         (WebCore::toV8):
648         * bindings/v8/custom/V8DocumentCustom.cpp:
649         (WebCore::toV8):
650         * bindings/v8/custom/V8EntryCustom.cpp:
651         (WebCore::toV8):
652         * bindings/v8/custom/V8EntrySyncCustom.cpp:
653         (WebCore::toV8):
654         * bindings/v8/custom/V8EventCustom.cpp:
655         (WebCore::toV8):
656         * bindings/v8/custom/V8Float32ArrayCustom.cpp:
657         (WebCore::toV8):
658         * bindings/v8/custom/V8Float64ArrayCustom.cpp:
659         (WebCore::toV8):
660         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
661         (WebCore::toV8):
662         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
663         (WebCore::toV8):
664         * bindings/v8/custom/V8HTMLElementCustom.cpp:
665         (WebCore::toV8):
666         * bindings/v8/custom/V8IDBAnyCustom.cpp:
667         (WebCore::toV8):
668         * bindings/v8/custom/V8IDBKeyCustom.cpp:
669         (WebCore::toV8):
670         * bindings/v8/custom/V8ImageDataCustom.cpp:
671         (WebCore::toV8):
672         * bindings/v8/custom/V8Int16ArrayCustom.cpp:
673         (WebCore::toV8):
674         * bindings/v8/custom/V8Int32ArrayCustom.cpp:
675         (WebCore::toV8):
676         * bindings/v8/custom/V8Int8ArrayCustom.cpp:
677         (WebCore::toV8):
678         * bindings/v8/custom/V8LocationCustom.cpp:
679         (WebCore::toV8):
680         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
681         (WebCore::toV8):
682         * bindings/v8/custom/V8NodeCustom.cpp:
683         (WebCore::toV8Slow):
684         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
685         (WebCore::toV8):
686         * bindings/v8/custom/V8SVGElementCustom.cpp:
687         (WebCore::toV8):
688         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
689         (WebCore::toV8):
690         * bindings/v8/custom/V8ScriptProfileCustom.cpp:
691         (WebCore::toV8):
692         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
693         (WebCore::toV8):
694         * bindings/v8/custom/V8StyleSheetCustom.cpp:
695         (WebCore::toV8):
696         * bindings/v8/custom/V8Uint16ArrayCustom.cpp:
697         (WebCore::toV8):
698         * bindings/v8/custom/V8Uint32ArrayCustom.cpp:
699         (WebCore::toV8):
700         * bindings/v8/custom/V8Uint8ArrayCustom.cpp:
701         (WebCore::toV8):
702         * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp:
703         (WebCore::toV8):
704         * bindings/v8/custom/V8WorkerContextCustom.cpp:
705         (WebCore::toV8):
706
707         * bindings/scripts/test/V8/V8Float64Array.h:
708         Updated run-bindings-tests results.
709         (WebCore):
710         (WebCore::toV8):
711         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
712         (WebCore::toV8):
713         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
714         (WebCore::toV8):
715         * bindings/scripts/test/V8/V8TestEventConstructor.h:
716         (WebCore::toV8):
717         * bindings/scripts/test/V8/V8TestEventTarget.h:
718         (WebCore::toV8):
719         * bindings/scripts/test/V8/V8TestInterface.h:
720         (WebCore::toV8):
721         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
722         (WebCore::toV8):
723         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
724         (WebCore::toV8):
725         * bindings/scripts/test/V8/V8TestNode.h:
726         (WebCore::toV8):
727         * bindings/scripts/test/V8/V8TestObj.h:
728         (WebCore::toV8):
729         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
730         (WebCore::toV8):
731
732 2012-04-17  Yury Semikhatsky  <yurys@chromium.org>
733
734         Web Inspector: move heap snapshot data grids into their own file
735         https://bugs.webkit.org/show_bug.cgi?id=84160
736
737         Moved heap snapshot data grids into a separate file.
738
739         Reviewed by Pavel Feldman.
740
741         * WebCore.gypi:
742         * WebCore.vcproj/WebCore.vcproj:
743         * inspector/compile-front-end.py:
744         * inspector/front-end/DataGrid.js:
745         * inspector/front-end/HeapSnapshotDataGrids.js: Added.
746         (WebInspector.HeapSnapshotSortableDataGrid):
747         (WebInspector.HeapSnapshotSortableDataGrid.prototype.dispose):
748         (WebInspector.HeapSnapshotSortableDataGrid.prototype.resetSortingCache):
749         (WebInspector.HeapSnapshotSortableDataGrid.prototype.sortingChanged.SortByTwoFields):
750         (WebInspector.HeapSnapshotSortableDataGrid.prototype.sortingChanged):
751         (WebInspector.HeapSnapshotSortableDataGrid.prototype.updateVisibleNodes):
752         (WebInspector.HeapSnapshotSortableDataGrid.prototype.onResize):
753         (WebInspector.HeapSnapshotSortableDataGrid.prototype._onScroll):
754         (WebInspector.HeapSnapshotSortableDataGrid.prototype._performSorting):
755         (WebInspector.HeapSnapshotSortableDataGrid.prototype.recursiveSortingEnter):
756         (WebInspector.HeapSnapshotSortableDataGrid.prototype.recursiveSortingLeave):
757         (WebInspector.HeapSnapshotContainmentDataGrid):
758         (WebInspector.HeapSnapshotContainmentDataGrid.prototype._defaultPopulateCount.100.expandRoute.nextStep.else.afterExpand):
759         (WebInspector.HeapSnapshotContainmentDataGrid.prototype._defaultPopulateCount.100.expandRoute):
760         (WebInspector.HeapSnapshotContainmentDataGrid.prototype.setDataSource):
761         (WebInspector.HeapSnapshotContainmentDataGrid.prototype.sortingChanged):
762         (WebInspector.HeapSnapshotRetainmentDataGrid):
763         (WebInspector.HeapSnapshotRetainmentDataGrid.prototype._sortFields):
764         (WebInspector.HeapSnapshotRetainmentDataGrid.prototype.reset):
765         (WebInspector.HeapSnapshotConstructorsDataGrid):
766         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._defaultPopulateCount.100._sortFields):
767         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.setDataSource):
768         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.populateChildren):
769         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._filterSelectIndexChanged):
770         (WebInspector.HeapSnapshotDiffDataGrid):
771         (WebInspector.HeapSnapshotDiffDataGrid.prototype._defaultPopulateCount.50._sortFields):
772         (WebInspector.HeapSnapshotDiffDataGrid.prototype.setDataSource):
773         (WebInspector.HeapSnapshotDiffDataGrid.prototype._baseProfileIndexChanged):
774         (WebInspector.HeapSnapshotDiffDataGrid.prototype.setBaseDataSource):
775         (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived.addNodeIfNonZeroDiff):
776         (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived):
777         (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren):
778         (WebInspector.HeapSnapshotDominatorsDataGrid):
779         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype._defaultPopulateCount.25.setDataSource):
780         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.sortingChanged):
781         * inspector/front-end/HeapSnapshotView.js:
782         * inspector/front-end/WebKit.qrc:
783         * inspector/front-end/inspector.html:
784
785 2012-04-17  Vivek Galatage  <vivekgalatage@gmail.com>
786
787         Script make_names.pl should generate consistent .h & .cpp files
788         https://bugs.webkit.org/show_bug.cgi?id=84140
789
790         Reviewed by Kentaro Hara.
791
792         Added a newline character and removed ';' after the DEFINE_GLOBAL
793
794         No test cases required for this change.
795
796         * dom/make_names.pl:
797         (printNamesCppFile):
798
799 2012-04-17  Aaron Colwell  <acolwell@chromium.org>
800
801         Add webkitSourceAddId() & webkitSourceRemoveId() to HTMLMediaElement
802         and propagate calls to the MediaPlayerPrivate interface.
803         These are needed to bring the Media Source implementation 
804         up to date with the new 0.4 version of the Media Source spec.
805         http://html5-mediasource-api.googlecode.com/svn/tags/0.4/draft-spec/mediasource-draft-spec.html
806         https://bugs.webkit.org/show_bug.cgi?id=83616
807
808         Reviewed by Eric Carlson, Darin Fisher.
809
810         Test: http/tests/media/media-source/webm/video-media-source-add-and-remove-ids.html
811
812         * html/HTMLMediaElement.cpp:
813         (WebCore):
814         (WebCore::HTMLMediaElement::isValidSourceId):
815         (WebCore::HTMLMediaElement::webkitSourceAddId):
816         (WebCore::HTMLMediaElement::webkitSourceRemoveId):
817         (WebCore::HTMLMediaElement::setSourceState):
818         * html/HTMLMediaElement.h:
819         (HTMLMediaElement):
820         * html/HTMLMediaElement.idl:
821         * platform/graphics/MediaPlayer.cpp:
822         (WebCore::NullMediaPlayerPrivate::sourceAddId):
823         (WebCore::NullMediaPlayerPrivate::sourceRemoveId):
824         (WebCore):
825         (WebCore::MediaPlayer::sourceAddId):
826         (WebCore::MediaPlayer::sourceRemoveId):
827         * platform/graphics/MediaPlayer.h:
828         * platform/graphics/MediaPlayerPrivate.h:
829         (WebCore::MediaPlayerPrivateInterface::sourceAddId):
830         (WebCore::MediaPlayerPrivateInterface::sourceRemoveId):
831
832 2012-04-17  Alexander Pavlov  <apavlov@chromium.org>
833
834         Web Inspector: [CRASH] InspectorDOMAgent::didInsertDOMNode() on page reload with open Inspector
835         https://bugs.webkit.org/show_bug.cgi?id=84154
836
837         Check that a node inserted actually has a parent.
838
839         Reviewed by Yury Semikhatsky.
840
841         Test: inspector/elements/elements-panel-reload-assert.html
842
843         * inspector/InspectorDOMAgent.cpp:
844         (WebCore::InspectorDOMAgent::didInsertDOMNode):
845
846 2012-04-17  Dana Jansens  <danakj@chromium.org>
847
848         [chromium] Consistent checking for clipped rects when we need the computed result enclosed within the real result
849         https://bugs.webkit.org/show_bug.cgi?id=83543
850
851         Reviewed by Adrienne Walker.
852
853         It should not be possible to make a rect in layer space that is clipped
854         by the camera but for which the screen space transform gives a
855         rectilinear output. But use consistent methods for checking that the
856         result remains enclosed within the actual pixels.
857
858         One day when clipped is true, we can find an interior axis-aligned rect
859         within the clipped result, and checking clipped explicitly makes this
860         more clear.
861
862         Covered by existing tests.
863
864         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
865         (WebCore::computeOcclusionBehindLayer):
866         (WebCore::::markOccludedBehindLayer):
867
868 2012-04-17  Vsevolod Vlasov  <vsevik@chromium.org>
869
870         Web Inspector: Suggest box appears after the command was executed in console sometimes.
871         https://bugs.webkit.org/show_bug.cgi?id=84148
872
873         Reviewed by Pavel Feldman.
874
875         TextPrompt.complete() requests completions asynchronously, this change adds a flag
876         that informs TextPrompt._completionsReady() whether completions should still be shown.
877
878         * inspector/front-end/TextPrompt.js:
879         (WebInspector.TextPrompt.prototype.clearAutoComplete):
880         (WebInspector.TextPrompt.prototype.complete):
881         (WebInspector.TextPrompt.prototype._completionsReady):
882
883 2012-04-17  Yong Li  <yoli@rim.com>
884
885         REGRESSION (r105453): Crash when handling touch events
886         https://bugs.webkit.org/show_bug.cgi?id=81958
887
888         Reviewed by Antonio Gomes.
889
890         Always perform sanity checks when handling every touch point
891         because the node and document may have been destroyed or detached.
892
893         ManualTests/touch-stale-iframe-crash.html added.
894         (DumpRenderTree doesn't support transiting touch states in one shot yet)
895
896         * page/EventHandler.cpp:
897         (WebCore::EventHandler::handleTouchEvent):
898
899 2012-04-17  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
900
901         Asserts in XMLHttpRequestProgressEventThrottle
902         https://bugs.webkit.org/show_bug.cgi?id=81506
903
904         Reviewed by Julien Chaffraix.
905
906         The asserts were incorrectly triggered because suspending active DOM objects
907         (which suspends the XMLHttpRequestProgressEventThrottle) doesn't stop JavaScript
908         from running or suspend any running loader we may have. The previous code would
909         assume those 2 cases were impossible.
910
911         When XmlHttpRequest::open is called or data is received while the XmlHttpRequest object
912         is suspended the object may attempt to dispatch events. This patch defers these events
913         until the object is resumed.
914
915         Progress events are coalesced similar to normal throttling, and readystate-change events
916         are coalesced to avoid identical events emitted right after eachother.
917
918         On resume the events are dispatched after a timer to avoid interfering with 
919         ScriptExecutionContext which is iterating over suspended objects.
920
921         Test: fast/events/pagehide-xhr-open.html
922
923         * xml/XMLHttpRequestProgressEventThrottle.cpp:
924         (WebCore::XMLHttpRequestProgressEventThrottle::XMLHttpRequestProgressEventThrottle):
925         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchProgressEvent):
926         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchEvent):
927         (WebCore::XMLHttpRequestProgressEventThrottle::flushProgressEvent):
928         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchDeferredEvents):
929         (WebCore::XMLHttpRequestProgressEventThrottle::fired):
930         (WebCore::XMLHttpRequestProgressEventThrottle::suspend):
931         (WebCore::XMLHttpRequestProgressEventThrottle::resume):
932         * xml/XMLHttpRequestProgressEventThrottle.h:
933         (XMLHttpRequestProgressEventThrottle):
934
935 2012-04-16  Vsevolod Vlasov  <vsevik@chromium.org>
936
937         Web Inspector: [Chromium] Crash when inspecting empty IndexedDB object store.
938         https://bugs.webkit.org/show_bug.cgi?id=84035
939
940         Reviewed by Pavel Feldman.
941
942         Added a check that m_idbCursor is not null before calling postSuccessHandlerCallback() on it.
943
944         * inspector/InspectorIndexedDBAgent.cpp:
945         (WebCore):
946
947 2012-04-17  Pavel Feldman  <pfeldman@chromium.org>
948
949         Web Inspector: [regression r112413]content scripts tree outline is not added to the tab.
950         https://bugs.webkit.org/show_bug.cgi?id=84146
951
952         Reviewed by Vsevolod Vlasov.
953
954         Adding the tree to the container.
955
956         * inspector/front-end/ScriptsNavigator.js:
957         (WebInspector.ScriptsNavigator):
958
959 2012-04-17  Mariusz Grzegorczyk  <mariusz.g@samsung.com>
960
961         [EFL][WK2] Fix build break when CONTEXT_MENUS is disabled.
962         https://bugs.webkit.org/show_bug.cgi?id=83285
963
964         Reviewed by Ryosuke Niwa.
965
966         * platform/ContextMenuItem.h: Remove macro around enums - needed by InjectedBundle.
967         (WebCore):
968         * platform/Widget.h: Remove namespace WebCore for PlatformPageClient typedef.
969
970 2012-04-17  Kent Tamura  <tkent@chromium.org>
971
972         Introduce an internal feature for a fixed placeholder
973         https://bugs.webkit.org/show_bug.cgi?id=84009
974
975         Reviewed by Hajime Morita.
976
977         This change adds a framework to support fixed placeholder string for
978         textfield-like <input> without the palceholder attribute support. This
979         doesn't change any behavior of input types which support the
980         'placeholder' attribute.
981
982         According to the standard, <input type=date> doesn't support the
983         'placeholder' attribute. However it is a kind of text field in WebKit
984         platforms with ENABLE_CALENDAR_PICKER, and we may show something useful
985         information as the default placeholder.
986
987         No new tests because of no behavior changes.
988
989         * html/HTMLTextFormControlElement.h:
990         (HTMLTextFormControlElement): Make isPlaceholderEmpty() virtual.
991         * html/HTMLInputElement.h:
992         (HTMLInputElement): Overrides isPlaceholderEmpty().
993         * html/HTMLInputElement.cpp:
994         (WebCore::HTMLInputElement::isPlaceholderEmpty):
995         Check InputType::defaultPlaceholder() if InputType::usesFixedPlaceholder().
996         * html/InputType.cpp:
997         (WebCore::InputType::usesFixedPlaceholder): Added. Returns false.
998         (WebCore::InputType::fixedPlaceholder): Added. Returns a null string.
999         * html/InputType.h:
1000         (InputType): Add usesFixedPlaceholder() and fixedPlaceholder().
1001         * html/TextFieldInputType.cpp:
1002         (WebCore::TextFieldInputType::updatePlaceholderText):
1003         Uses fixedPlaceholder() instead of strippedPlaceholder() if usesFixedPlaceholder().
1004
1005 2012-04-17  Kent Tamura  <tkent@chromium.org>
1006
1007         Move some code of LocalizedNumberICU.cpp to ICULocale.cpp
1008         https://bugs.webkit.org/show_bug.cgi?id=84128
1009
1010         Reviewed by Hajime Morita.
1011
1012         No new tests. No behavior change.
1013
1014         * WebCore.gypi: Add ICULocale.cpp
1015         * platform/text/ICULocale.cpp:
1016         Added. Move some code from LocalizedNumberICU.cpp
1017         * platform/text/ICULocale.h:
1018         (ICULocale): Add currentLocale().
1019         * platform/text/LocalizedNumberICU.cpp:
1020         (WebCore::convertToLocalizedNumber): Use ICULocale::currentLocale().
1021         (WebCore::convertFromLocalizedNumber): ditto.
1022
1023 2012-04-17  Bang Kwang min  <justine.bang@samsung.com>
1024
1025         [Plugins] delete ws_info regardless of window mode.
1026         https://bugs.webkit.org/show_bug.cgi?id=83004
1027
1028         Reviewed by Simon Hausmann.
1029
1030         m_npWindow.ws_info should be deleted even if plugin run as windowless mode to remove memory leak.
1031         Every plugin works well after this patch without any crash.
1032         Additionally, change casting syntax to C++ style.
1033
1034         * plugins/PluginView.cpp:
1035         (WebCore::PluginView::stop):
1036
1037 2012-04-17  Kent Tamura  <tkent@chromium.org>
1038
1039         Calendar Picker: Support RTL layout
1040         https://bugs.webkit.org/show_bug.cgi?id=83668
1041
1042         Reviewed by Hajime Morita.
1043
1044         Manual test: ManualTests/forms/calendar-picker.html
1045
1046         * Resources/calendarPicker.js:
1047         (layout): If params.isRTL, add dir=rtl to the body.
1048         (DaysTable.prototype._handleKey): Reverse Left and Right cursor keys if RTL.
1049         * html/shadow/CalendarPickerElement.cpp:
1050         (WebCore::addProperty): Add addProperty() with a bool value.
1051         (WebCore::CalendarPickerElement::writeDocument):
1052         Check the direction of the first character of localized January label,
1053         and pass it as isRTL property.
1054
1055 2012-04-16  Carlos Garcia Campos  <cgarcia@igalia.com>
1056
1057         Unreviewed. Fix make distcheck issues.
1058
1059         * GNUmakefile.list.am: Add missing files.
1060
1061 2012-04-16  Hajime Morrita  <morrita@chromium.org>
1062
1063         insertedIntoDocument and insertedIntoTree should be unitifed.
1064         https://bugs.webkit.org/show_bug.cgi?id=82701
1065
1066         Reviewed by Ryosuke Niwa.
1067
1068         Both Node::insertedIntoTree() and Node::insertedIntoDocument() are
1069         served as lifecycle callbacks which are invoked when a node is
1070         inserted into its new parent. There are also removedFromTree()
1071         and removedFromDocument() respectively. Considering that this pair
1072         of virtual functions are laid onto the hot path, it's worth
1073         merging them into one, to gain some speedup. Such
1074         unification could clarify the semantics as well.
1075
1076         This change makes following change to merge these functions.
1077
1078         - pulling the tree traversal out from ContainerNode to ChildNodeInsertionNotifier.
1079         - letting new Node::insertInto() do the job for its own, but not
1080           for its children and
1081         - Pass the parent of each insertion root as a parameter of insertedInto().
1082           This root node can tell inserted node where it is inserted,
1083           specifically whetehr the insertion is to the document or not.
1084
1085         Same pattern is also applied to Node::removedFromDocument() and
1086         Node::removedFromTree(), which are factored to Node::removedFrom()
1087         and ChildNodeRemovalNotifier respectively.
1088
1089         Speed up on Dromaeo/dom-modify.html is about 2%.
1090         Further speed-up by de-virtulization would be possible.
1091
1092         Caveat:
1093
1094         There is possible situation where a node need to invoke
1095         insertedInto() after its children is nofitied, instead of before
1096         that.  It was represented naturally with previous
1097         traversal-by-ContainerNode pattern, but is no longer simple with
1098         this new external traversal. To support this scenario, we
1099         introduced the InsertionNotificationRequest as a return value of insertedInto()
1100         and a supplemental hook Node::didNotifyDescendantInseretions(). See for
1101         example HTMLFormElement.cpp to learn how it works.
1102
1103         No new tests. Covered by existing tests.
1104
1105         * CMakeLists.txt:
1106         * GNUmakefile.list.am:
1107         * Target.pri:
1108         * WebCore.gypi:
1109         * WebCore.xcodeproj/project.pbxproj:
1110         * dom/ContainerNode.cpp:
1111         (WebCore::ContainerNode::parserInsertBefore):
1112         (WebCore::ContainerNode::removeChild):
1113         (WebCore::ContainerNode::parserRemoveChild):
1114         (WebCore::ContainerNode::removeChildren):
1115         (WebCore::ContainerNode::parserAddChild):
1116         (WebCore::updateTreeAfterInsertion):
1117         * dom/ContainerNode.h:
1118         (ContainerNode):
1119         (WebCore::Node::highestAncestor):
1120         (WebCore):
1121         * dom/ContainerNodeAlgorithms.cpp: Added.
1122         (WebCore):
1123         (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
1124         (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoTree):
1125         (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
1126         (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromTree):
1127         * dom/ContainerNodeAlgorithms.h:
1128         (ChildNodeInsertionNotifier):
1129         (WebCore::ChildNodeInsertionNotifier::ChildNodeInsertionNotifier):
1130         (WebCore):
1131         (ChildNodeRemovalNotifier):
1132         (WebCore::ChildNodeRemovalNotifier::ChildNodeRemovalNotifier):
1133         (WebCore::removeAllChildrenInContainer):
1134         (WebCore::appendChildToContainer):
1135         (Private):
1136         (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument):
1137         (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree):
1138         (WebCore::ChildNodeInsertionNotifier::notifyInsertedIntoDocument):
1139         (WebCore::ChildNodeInsertionNotifier::notify):
1140         (WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromDocument):
1141         (WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromTree):
1142         (WebCore::ChildNodeRemovalNotifier::notify):
1143         * dom/DOMAllInOne.cpp:
1144         * dom/DocumentType.cpp:
1145         (WebCore::DocumentType::insertedInto):
1146         (WebCore::DocumentType::removedFrom):
1147         * dom/DocumentType.h:
1148         (DocumentType):
1149         * dom/Element.cpp:
1150         (WebCore::Element::insertedInto):
1151         (WebCore::Element::removedFrom):
1152         * dom/Element.h:
1153         (Element):
1154         * dom/Node.cpp:
1155         (WebCore::Node::insertedInto):
1156         (WebCore::Node::removedFrom):
1157         * dom/Node.h:
1158         (Node):
1159         (WebCore::Node::didNotifyDescendantInseretions):
1160         * dom/ProcessingInstruction.cpp:
1161         (WebCore::ProcessingInstruction::insertedInto):
1162         (WebCore::ProcessingInstruction::removedFrom):
1163         * dom/ProcessingInstruction.h:
1164         (ProcessingInstruction):
1165         * dom/ScriptElement.cpp:
1166         (WebCore::ScriptElement::insertedInto):
1167         * dom/ScriptElement.h:
1168         (WebCore):
1169         (ScriptElement):
1170         * dom/ShadowTree.cpp:
1171         (WebCore::ShadowTree::addShadowRoot):
1172         (WebCore::ShadowTree::removeAllShadowRoots):
1173         * dom/ShadowTree.h:
1174         (ShadowTree):
1175         (ShadowRootVector):
1176         (WebCore::ShadowRootVector::ShadowRootVector):
1177         (WebCore):
1178         * html/FormAssociatedElement.cpp:
1179         (WebCore::FormAssociatedElement::insertedInto):
1180         (WebCore::FormAssociatedElement::removedFrom):
1181         (WebCore::FormAssociatedElement::formRemovedFromTree):
1182         * html/FormAssociatedElement.h:
1183         (FormAssociatedElement):
1184         * html/HTMLBaseElement.cpp:
1185         (WebCore::HTMLBaseElement::insertedInto):
1186         (WebCore::HTMLBaseElement::removedFrom):
1187         * html/HTMLBaseElement.h:
1188         (HTMLBaseElement):
1189         * html/HTMLBodyElement.cpp:
1190         (WebCore::HTMLBodyElement::insertedInto):
1191         (WebCore::HTMLBodyElement::didNotifyDescendantInseretions):
1192         * html/HTMLBodyElement.h:
1193         (HTMLBodyElement):
1194         * html/HTMLFormControlElement.cpp:
1195         (WebCore::HTMLFormControlElement::insertedInto):
1196         (WebCore::HTMLFormControlElement::removedFrom):
1197         * html/HTMLFormControlElement.h:
1198         (HTMLFormControlElement):
1199         * html/HTMLFormElement.cpp:
1200         (WebCore::HTMLFormElement::insertedInto):
1201         (WebCore::HTMLFormElement::didNotifyDescendantInseretions):
1202         (WebCore::HTMLFormElement::removedFrom):
1203         * html/HTMLFormElement.h:
1204         (HTMLFormElement):
1205         * html/HTMLFrameElementBase.cpp:
1206         (WebCore::HTMLFrameElementBase::insertedInto):
1207         (WebCore):
1208         (WebCore::HTMLFrameElementBase::didNotifyDescendantInseretions):
1209         * html/HTMLFrameElementBase.h:
1210         (HTMLFrameElementBase):
1211         * html/HTMLFrameSetElement.cpp:
1212         (WebCore::HTMLFrameSetElement::insertedInto):
1213         (WebCore::HTMLFrameSetElement::removedFrom):
1214         * html/HTMLFrameSetElement.h:
1215         (HTMLFrameSetElement):
1216         * html/HTMLIFrameElement.cpp:
1217         (WebCore::HTMLIFrameElement::insertedInto):
1218         (WebCore::HTMLIFrameElement::removedFrom):
1219         * html/HTMLIFrameElement.h:
1220         (HTMLIFrameElement):
1221         * html/HTMLImageElement.cpp:
1222         (WebCore::HTMLImageElement::insertedInto):
1223         (WebCore::HTMLImageElement::removedFrom):
1224         * html/HTMLImageElement.h:
1225         (HTMLImageElement):
1226         * html/HTMLInputElement.cpp:
1227         (WebCore::HTMLInputElement::insertedInto):
1228         (WebCore::HTMLInputElement::removedFrom):
1229         * html/HTMLInputElement.h:
1230         * html/HTMLLinkElement.cpp:
1231         (WebCore::HTMLLinkElement::insertedInto):
1232         (WebCore::HTMLLinkElement::removedFrom):
1233         * html/HTMLLinkElement.h:
1234         (HTMLLinkElement):
1235         * html/HTMLMapElement.cpp:
1236         (WebCore::HTMLMapElement::insertedInto):
1237         (WebCore::HTMLMapElement::removedFrom):
1238         * html/HTMLMapElement.h:
1239         (HTMLMapElement):
1240         * html/HTMLMediaElement.cpp:
1241         (WebCore::HTMLMediaElement::insertedInto):
1242         (WebCore::HTMLMediaElement::removedFrom):
1243         * html/HTMLMediaElement.h:
1244         (HTMLMediaElement):
1245         * html/HTMLMetaElement.cpp:
1246         (WebCore::HTMLMetaElement::insertedInto):
1247         * html/HTMLMetaElement.h:
1248         (HTMLMetaElement):
1249         * html/HTMLObjectElement.cpp:
1250         (WebCore::HTMLObjectElement::insertedInto):
1251         (WebCore::HTMLObjectElement::removedFrom):
1252         * html/HTMLObjectElement.h:
1253         (HTMLObjectElement):
1254         * html/HTMLOptionElement.cpp:
1255         (WebCore::HTMLOptionElement::insertedInto):
1256         * html/HTMLOptionElement.h:
1257         (HTMLOptionElement):
1258         * html/HTMLQuoteElement.cpp:
1259         (WebCore::HTMLQuoteElement::insertedInto):
1260         * html/HTMLQuoteElement.h:
1261         (HTMLQuoteElement):
1262         * html/HTMLScriptElement.cpp:
1263         (WebCore::HTMLScriptElement::insertedInto):
1264         * html/HTMLScriptElement.h:
1265         (HTMLScriptElement):
1266         * html/HTMLSelectElement.cpp:
1267         (WebCore::HTMLSelectElement::insertedInto):
1268         * html/HTMLSelectElement.h:
1269         * html/HTMLSourceElement.cpp:
1270         (WebCore::HTMLSourceElement::insertedInto):
1271         * html/HTMLSourceElement.h:
1272         (HTMLSourceElement):
1273         * html/HTMLStyleElement.cpp:
1274         (WebCore::HTMLStyleElement::insertedInto):
1275         (WebCore::HTMLStyleElement::removedFrom):
1276         * html/HTMLStyleElement.h:
1277         (HTMLStyleElement):
1278         * html/HTMLTextFormControlElement.cpp:
1279         (WebCore::HTMLTextFormControlElement::insertedInto):
1280         * html/HTMLTextFormControlElement.h:
1281         * html/HTMLTitleElement.cpp:
1282         (WebCore::HTMLTitleElement::insertedInto):
1283         (WebCore::HTMLTitleElement::removedFrom):
1284         * html/HTMLTitleElement.h:
1285         (HTMLTitleElement):
1286         * html/HTMLTrackElement.cpp:
1287         (WebCore::HTMLTrackElement::insertedInto):
1288         * html/HTMLTrackElement.h:
1289         (HTMLTrackElement):
1290         * mathml/MathMLMathElement.cpp:
1291         (WebCore::MathMLMathElement::insertedInto):
1292         * mathml/MathMLMathElement.h:
1293         (MathMLMathElement):
1294         * svg/SVGElement.cpp:
1295         (WebCore::SVGElement::removedFrom):
1296         * svg/SVGElement.h:
1297         (SVGElement):
1298         * svg/SVGFEImageElement.cpp:
1299         (WebCore::SVGFEImageElement::insertedInto):
1300         (WebCore::SVGFEImageElement::removedFrom):
1301         * svg/SVGFEImageElement.h:
1302         (SVGFEImageElement):
1303         * svg/SVGFontFaceElement.cpp:
1304         (WebCore::SVGFontFaceElement::insertedInto):
1305         (WebCore::SVGFontFaceElement::removedFrom):
1306         * svg/SVGFontFaceElement.h:
1307         (SVGFontFaceElement):
1308         * svg/SVGFontFaceUriElement.cpp:
1309         (WebCore::SVGFontFaceUriElement::insertedInto):
1310         * svg/SVGFontFaceUriElement.h:
1311         (SVGFontFaceUriElement):
1312         * svg/SVGGlyphElement.cpp:
1313         (WebCore::SVGGlyphElement::insertedInto):
1314         (WebCore::SVGGlyphElement::removedFrom):
1315         * svg/SVGGlyphElement.h:
1316         (SVGGlyphElement):
1317         * svg/SVGHKernElement.cpp:
1318         (WebCore::SVGHKernElement::insertedInto):
1319         (WebCore::SVGHKernElement::removedFrom):
1320         * svg/SVGHKernElement.h:
1321         (SVGHKernElement):
1322         * svg/SVGImageElement.cpp:
1323         (WebCore::SVGImageElement::insertedInto):
1324         * svg/SVGImageElement.h:
1325         (SVGImageElement):
1326         * svg/SVGSVGElement.cpp:
1327         (WebCore::SVGSVGElement::insertedInto):
1328         (WebCore::SVGSVGElement::removedFrom):
1329         * svg/SVGSVGElement.h:
1330         (SVGSVGElement):
1331         * svg/SVGScriptElement.cpp:
1332         (WebCore::SVGScriptElement::insertedInto):
1333         * svg/SVGScriptElement.h:
1334         (SVGScriptElement):
1335         * svg/SVGStyleElement.cpp:
1336         (WebCore::SVGStyleElement::insertedInto):
1337         (WebCore::SVGStyleElement::removedFrom):
1338         * svg/SVGStyleElement.h:
1339         (SVGStyleElement):
1340         * svg/SVGStyledElement.cpp:
1341         (WebCore::SVGStyledElement::insertedInto):
1342         (WebCore::SVGStyledElement::removedFrom):
1343         (WebCore::SVGStyledElement::updateRelativeLengthsInformation):
1344         * svg/SVGStyledElement.h:
1345         (SVGStyledElement):
1346         * svg/SVGTRefElement.cpp:
1347         (WebCore::SVGTRefElement::buildPendingResource):
1348         (WebCore::SVGTRefElement::insertedInto):
1349         (WebCore::SVGTRefElement::removedFrom):
1350         * svg/SVGTRefElement.h:
1351         (SVGTRefElement):
1352         * svg/SVGTextPathElement.cpp:
1353         (WebCore::SVGTextPathElement::insertedInto):
1354         * svg/SVGTextPathElement.h:
1355         * svg/SVGTitleElement.cpp:
1356         (WebCore::SVGTitleElement::insertedInto):
1357         (WebCore::SVGTitleElement::removedFrom):
1358         * svg/SVGTitleElement.h:
1359         (SVGTitleElement):
1360         * svg/SVGUseElement.cpp:
1361         (WebCore::SVGUseElement::insertedInto):
1362         (WebCore::SVGUseElement::removedFrom):
1363         * svg/SVGUseElement.h:
1364         (SVGUseElement):
1365         * svg/SVGVKernElement.cpp:
1366         (WebCore::SVGVKernElement::insertedInto):
1367         (WebCore::SVGVKernElement::removedFrom):
1368         * svg/SVGVKernElement.h:
1369         (SVGVKernElement):
1370         * svg/animation/SVGSMILElement.cpp:
1371         (WebCore::SVGSMILElement::insertedInto):
1372         (WebCore::SVGSMILElement::removedFrom):
1373         * svg/animation/SVGSMILElement.h:
1374         (SVGSMILElement):
1375
1376 2012-04-16  David Barr  <davidbarr@chromium.org>
1377
1378         Stack overflow in CSS parser caused by recursive stylesheet import
1379         https://bugs.webkit.org/show_bug.cgi?id=83545
1380
1381         Reviewed by Ryosuke Niwa.
1382
1383         Test: http/tests/css/css-imports-redirect-cycle.html
1384
1385         * css/CSSImportRule.cpp:
1386         (WebCore::StyleRuleImport::requestStyleSheet):
1387
1388 2012-04-16  Kent Tamura  <tkent@chromium.org>
1389
1390         Rename LocalizedNumberICU.h to ICULocale.h
1391         https://bugs.webkit.org/show_bug.cgi?id=84119
1392
1393         Reviewed by Kentaro Hara.
1394
1395         LocalizedNumberICU.h contains only ICULocale class. It should be
1396         named as ICULocale.h. We're going to move some functions in
1397         LocalizedDateICU.cpp and LocalizedCalendarICU.cpp to ICULocale,
1398         and add unit tests for them.
1399
1400         * WebCore.gypi: Rename LocalizedNumberICU.h to ICULocale.h
1401         * platform/text/ICULocale.h:
1402         Renamed from Source/WebCore/platform/text/LocalizedNumberICU.h.
1403         * platform/text/LocalizedNumberICU.cpp:
1404         Rename LocalizedNumberICU.h to ICULocale.h
1405
1406 2012-04-16  James Robinson  <jamesr@chromium.org>
1407
1408         [chromium] Move paintRenderedResultsToCanvas code into DrawingBuffer
1409         https://bugs.webkit.org/show_bug.cgi?id=84066
1410
1411         Reviewed by Adrienne Walker.
1412
1413         WebGLLayerChromium used to be responsible for the readback path for software painting WebGL canvases (for
1414         printing, etc), but this path no longer has any compositor interaction. This moves the code into
1415         DrawingBufferChromium which is responsible for managing the front / back buffers for WebGL.
1416
1417         * platform/graphics/chromium/DrawingBufferChromium.cpp:
1418         (WebCore::DrawingBuffer::paintCompositedResultsToCanvas):
1419         * platform/graphics/chromium/WebGLLayerChromium.cpp:
1420         * platform/graphics/chromium/WebGLLayerChromium.h:
1421         (WebGLLayerChromium):
1422
1423 2012-04-16  Dana Jansens  <danakj@chromium.org>
1424
1425         [chromium] Expose compositor filters to Aura through WebLayer
1426         https://bugs.webkit.org/show_bug.cgi?id=80054
1427
1428         Reviewed by James Robinson.
1429
1430         Adds WebFilterOperation that wraps WebCore::FilterOperation and
1431         WebFilterOperations that wraps WebCore::FilterOperations.
1432
1433         We add support for most of the FilterOperation subclasses, and
1434         allow the user to set the WebFilterOperations for both layer
1435         content filters and background filters.
1436
1437         * WebCore.gypi:
1438         * platform/chromium/support/WebFilterOperation.cpp: Added.
1439         (WebKit):
1440         (WebKit::WebBasicColorMatrixFilterOperation::toFilterOperation):
1441         (WebKit::WebBasicComponentTransferFilterOperation::toFilterOperation):
1442         (WebKit::WebBlurFilterOperation::toFilterOperation):
1443         (WebKit::WebDropShadowFilterOperation::toFilterOperation):
1444         * platform/chromium/support/WebFilterOperations.cpp: Added.
1445         (WebKit):
1446         (WebKit::WebFilterOperations::WebFilterOperations):
1447         (WebKit::WebFilterOperations::append):
1448         (WebKit::WebFilterOperations::clear):
1449         (WebKit::WebFilterOperations::toFilterOperations):
1450
1451 2012-04-16  Andrei Burago  <aburago@chromium.org>
1452
1453         Auto-sized frames may be taller than expected
1454         https://bugs.webkit.org/show_bug.cgi?id=84106
1455
1456         Reviewed by David Levin.
1457
1458         No new tests. The repro steps require using Chrome notifications on Win.
1459
1460         * page/FrameView.cpp:
1461         (WebCore::FrameView::autoSizeIfEnabled):
1462
1463 2012-04-13  James Robinson  <jamesr@chromium.org>
1464
1465         [chromium] Expose WebVideoLayer to Platform API and port WebMediaPlayerClientImpl to using it
1466         https://bugs.webkit.org/show_bug.cgi?id=83963
1467
1468         Reviewed by Adrienne Walker.
1469
1470         Converts VideoLayerChromium / CCVideoLayerImpl to use a Platform WebVideoFrameProvider interface instead of a
1471         WebCore VideoFrameProvider.
1472
1473         * WebCore.gypi:
1474         * platform/graphics/chromium/VideoLayerChromium.cpp:
1475         (WebCore::VideoLayerChromium::create):
1476         (WebCore::VideoLayerChromium::VideoLayerChromium):
1477         * platform/graphics/chromium/VideoLayerChromium.h:
1478         (WebKit):
1479         (WebCore):
1480         (VideoLayerChromium):
1481         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
1482         (WebCore::CCVideoLayerImpl::CCVideoLayerImpl):
1483         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
1484         (WebCore::CCVideoLayerImpl::create):
1485         (CCVideoLayerImpl):
1486
1487 2012-04-16  Takashi Sakamoto  <tasak@google.com>
1488
1489         [Shadow DOM] InsertionPoint should have isActive() member function.
1490         https://bugs.webkit.org/show_bug.cgi?id=82010
1491
1492         Reviewed by Hajime Morita.
1493
1494         This patch adds isActive public member function to InsertionPoint and
1495         makes InsertionPoint elements consider whether active or not.
1496         If an InsertionPoint is inactive, the element is not shadow boundary
1497         and is needed to be rendered.
1498         c.f. https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#dfn-active-insertion-point
1499
1500         Test: update existing tests, i.e.
1501         LayoutTests/fast/dom/shadow/shadow-contents-fallback-dynamic.html and
1502         LayoutTests/fast/dom/shadow/shadow-contents-fallback.html
1503
1504         * html/shadow/InsertionPoint.cpp:
1505         (WebCore::InsertionPoint::isActive):
1506         A new public method for checking whether an insertion point is active or inactive.
1507         If active, returns true. Otherwise, false.
1508         (WebCore::InsertionPoint::isShadowBoundary):
1509         Make the method consider whether an insertin point is active or inactive.
1510         (WebCore::InsertionPoint::rendererIsNeeded):
1511         Changed to return true If an insertion point is inactive.
1512         (WebCore::InsertionPoint::attach):
1513         Changed to call only HTMLElement::attach If an insertion point is inactive.
1514         (WebCore::InsertionPoint::detach):
1515         Changed to call only HTMLElement::detach If an insertion point is inactive.
1516         * html/shadow/InsertionPoint.h:
1517         (InsertionPoint):
1518         Added isActive public method.
1519         * dom/NodeRenderingContext.cpp:
1520         (WebCore::NodeRenderingContext::NodeRenderingContext):
1521         Changed to take into account an insertion point's activeness when parent is an insertion point.
1522         (WebCore::NodeRenderingContext::firstRendererOf):
1523         (WebCore::NodeRenderingContext::lastRendererOf):
1524         Changed to take into account an insertion point's activeness.
1525
1526 2012-04-16  MORITA Hajime  <morrita@google.com>
1527
1528         Type tags in NodeFlags could be compressed
1529         https://bugs.webkit.org/show_bug.cgi?id=79299
1530
1531         Because existing node flags which indicate the class of each node
1532         are mutually exclusive, these flags can be represented as a enum.
1533         This patch introduces Node::NodeTypeTag to turn these flags into a
1534         enum, and embeds it into Node::m_nodeFlags.
1535
1536         Reviewed by Antti Koivisto.
1537
1538         No new tests. No bahavior change.
1539
1540         * dom/Node.cpp:
1541         (WebCore):
1542         * dom/Node.h:
1543         (WebCore):
1544         (Node):
1545         (WebCore::Node::typeTag):
1546         (WebCore::Node::parentNode):
1547         (WebCore::Node::parentNodeGuaranteedHostFree):
1548         (WebCore::Node::isContainerNode):
1549         (WebCore::Node::isElementNode):
1550         (WebCore::Node::isStyledElement):
1551         (WebCore::Node::isTextNode):
1552         (WebCore::Node::isHTMLElement):
1553         (WebCore::Node::isSVGElement):
1554         (WebCore::Node::isShadowRoot):
1555
1556 2012-04-16  Sheriff Bot  <webkit.review.bot@gmail.com>
1557
1558         Unreviewed, rolling out r114285.
1559         http://trac.webkit.org/changeset/114285
1560         https://bugs.webkit.org/show_bug.cgi?id=84107
1561
1562         broke fast/media/media-query-list-08.html in Mac (Requested by
1563         andersca on #webkit).
1564
1565         * dom/Document.cpp:
1566         (WebCore::Document::styleSelectorChanged):
1567         * dom/Document.h:
1568         (Document):
1569         * page/FrameView.cpp:
1570         (WebCore::FrameView::layout):
1571
1572 2012-04-16  Nate Chapin  <japhet@chromium.org>
1573
1574         Remove unused variable CachedResourceLoader::m_loadFinishing
1575         https://bugs.webkit.org/show_bug.cgi?id=84100
1576
1577         Reviewed by Alexey Proskuryakov.
1578
1579         No new tests, removing dead code.
1580
1581         * loader/cache/CachedResourceLoader.cpp:
1582         (WebCore::CachedResourceLoader::CachedResourceLoader):
1583         (WebCore::CachedResourceLoader::loadDone):
1584         (WebCore::CachedResourceLoader::decrementRequestCount):
1585         * loader/cache/CachedResourceLoader.h:
1586         (CachedResourceLoader):
1587         (WebCore::CachedResourceLoader::requestCount):
1588
1589 2012-04-16  Andreas Kling  <kling@webkit.org>
1590
1591         Remove contextStyleSheet argument from CSSValuePool::createFontFaceValue().
1592         <http://webkit.org/b/83988>
1593
1594         Reviewed by Antti Koivisto.
1595
1596         Remove the 'context style sheet' argument to <font face> value parsing.
1597         It was only ever used to grab at the CSSValuePool back when they were per-Document.
1598
1599         * css/CSSParser.h:
1600         * css/CSSParser.cpp:
1601         (WebCore::CSSParser::parseFontFaceValue):
1602         * css/CSSValuePool.h:
1603         * css/CSSValuePool.cpp:
1604         (WebCore::CSSValuePool::createFontFaceValue):
1605         * html/HTMLFontElement.cpp:
1606         (WebCore::HTMLFontElement::collectStyleForAttribute):
1607
1608 2012-04-16  Dana Jansens  <danakj@chromium.org>
1609
1610         [chromium] Consistent checking for clipped rects when we need the computed result enclosed within the real result
1611         https://bugs.webkit.org/show_bug.cgi?id=83543
1612
1613         Reviewed by Adrienne Walker.
1614
1615         It should not be possible to make a rect in layer space that is clipped
1616         by the camera but for which the screen space transform gives a
1617         rectilinear output. But use consistent methods for checking that the
1618         result remains enclosed within the actual pixels.
1619
1620         One day when clipped is true, we can find an interior axis-aligned rect
1621         within the clipped result, and checking clipped explicitly makes this
1622         more clear.
1623
1624         Covered by existing tests.
1625
1626         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
1627         (WebCore::computeOcclusionBehindLayer):
1628         (WebCore::::markOccludedBehindLayer):
1629
1630 2012-04-16  Erik Arvidsson  <arv@chromium.org>
1631
1632         [V8] Don't delete the per context data until the V8IsolatedContext is deleted
1633         https://bugs.webkit.org/show_bug.cgi?id=83831
1634
1635         Reviewed by Nate Chapin.
1636
1637         Test: http/tests/security/isolatedWorld/context-destroy.html
1638
1639         * bindings/v8/V8IsolatedContext.cpp:
1640         (WebCore::V8IsolatedContext::destroy):
1641
1642 2012-04-16  Greg Billock  <gbillock@google.com>
1643
1644         Add V8 code generation support for MessagePortArray attributes.
1645         https://bugs.webkit.org/show_bug.cgi?id=83943
1646
1647         Reviewed by Kentaro Hara.
1648
1649         * bindings/scripts/CodeGeneratorV8.pm:
1650         (GenerateNormalAttrGetter):
1651         * bindings/scripts/IDLAttributes.txt:
1652         * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.cpp:
1653         (WebDOMTestSerializedScriptValueInterface::ports):
1654         * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.h:
1655         (WebDOMTestSerializedScriptValueInterface):
1656         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
1657         (webkit_dom_test_serialized_script_value_interface_get_property):
1658         (webkit_dom_test_serialized_script_value_interface_class_init):
1659         (webkit_dom_test_serialized_script_value_interface_get_ports):
1660         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
1661         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1662         (WebCore):
1663         (WebCore::jsTestSerializedScriptValueInterfacePorts):
1664         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
1665         (WebCore):
1666         * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.h:
1667         * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.mm:
1668         (-[DOMTestSerializedScriptValueInterface ports]):
1669         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
1670         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1671         (WebCore::TestSerializedScriptValueInterfaceInternal::portsAttrGetter):
1672         (TestSerializedScriptValueInterfaceInternal):
1673         (WebCore):
1674
1675 2012-04-16  Xiaomei Ji  <xji@chromium.org>
1676
1677         platform/graphics/skia/GlyphPageTreeNodeSkia.cpp mis-use 'continue' for 'break'
1678         https://bugs.webkit.org/show_bug.cgi?id=83521
1679
1680         Reviewed by David Levin.
1681
1682         No functionality change, so no new tests.
1683
1684         * platform/graphics/skia/GlyphPageTreeNodeSkia.cpp:
1685         (WebCore::GlyphPage::fill):
1686
1687 2012-04-16  Levi Weintraub  <leviw@chromium.org>
1688
1689         Make borderBoxRect sub-pixel precise and add a pixel snapped version
1690         https://bugs.webkit.org/show_bug.cgi?id=84063
1691
1692         Reviewed by Eric Seidel.
1693
1694         In an effort to prevent misuse, we previously decided to have borderBoxRect return a
1695         pixel-snapped IntRect. This is because borderBoxRect returns a rect that's positioned
1696         at (0,0), and therefore won't snap to the same size as the element it's covering.
1697
1698         There are a couple uses of borderBoxRect that don't pixel snap the values and require
1699         sub-pixel precision. This patch adds a pixelSnappedBorderBoxRect that makes the snapping
1700         explicit, and moves uses that would otherwise pixel snap the rect to this version to
1701         avoid producing a rect of the incorrect size. For details about pixel snapping with
1702         LayoutUnits, please see https://trac.webkit.org/wiki/LayoutUnit
1703
1704         No new tests. No change in behavior.
1705
1706         * html/shadow/TextControlInnerElements.cpp:
1707         (WebCore::SpinButtonElement::defaultEventHandler):
1708         * rendering/RenderBlock.cpp:
1709         (WebCore::RenderBlock::addVisualOverflowFromTheme):
1710         * rendering/RenderBox.h:
1711         (WebCore::RenderBox::borderBoxRect):
1712         (WebCore::RenderBox::pixelSnappedBorderBoxRect):
1713         (WebCore::RenderBox::borderBoundingBox):
1714         (WebCore::RenderBox::hasVisualOverflow):
1715         * rendering/RenderLayer.cpp:
1716         (WebCore::RenderLayer::scrollCornerRect):
1717         (WebCore::RenderLayer::scrollCornerAndResizerRect):
1718         (WebCore::RenderLayer::horizontalScrollbarStart):
1719         (WebCore::RenderLayer::positionOverflowControls):
1720         (WebCore::RenderLayer::paintResizer):
1721         (WebCore::RenderLayer::hitTestOverflowControls):
1722         * rendering/RenderLayerBacking.cpp:
1723         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1724         (WebCore::RenderLayerBacking::startAnimation):
1725         (WebCore::RenderLayerBacking::startTransition):
1726         * rendering/RenderTable.cpp:
1727         (WebCore::RenderTable::addOverflowFromChildren):
1728         * rendering/RenderThemeMac.mm:
1729         (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
1730         (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration):
1731         (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
1732         * rendering/svg/RenderSVGRoot.cpp:
1733         (WebCore::RenderSVGRoot::paintReplaced):
1734         (WebCore::RenderSVGRoot::computeFloatRectForRepaint):
1735
1736 2012-04-16  Anders Carlsson  <andersca@apple.com>
1737
1738         Crash when running some editing related tests
1739         https://bugs.webkit.org/show_bug.cgi?id=84091
1740
1741         Reviewed by Andreas Kling.
1742
1743         Null check triggeringEvent.
1744
1745         * editing/Editor.cpp:
1746         (WebCore::Editor::insertTextWithoutSendingTextEvent):
1747
1748 2012-04-16  Simon Fraser  <simon.fraser@apple.com>
1749
1750         Rename to updateZOrderListsSlowCase to rebuildZOrderLists
1751         https://bugs.webkit.org/show_bug.cgi?id=84071
1752
1753         Reviewed by Antti Koivisto.
1754
1755         Use a better name for updateZOrderListsSlowCase().
1756
1757         * rendering/RenderLayer.cpp:
1758         (WebCore::RenderLayer::rebuildZOrderLists):
1759         * rendering/RenderLayer.h:
1760         (RenderLayer):
1761         (WebCore::RenderLayer::updateZOrderLists):
1762
1763 2012-04-16  Terry Anderson  <tdanderson@chromium.org>
1764
1765         [chromium] Allow WebGestureEvent to store four floating point values
1766         https://bugs.webkit.org/show_bug.cgi?id=84053
1767
1768         Reviewed by Darin Fisher.
1769
1770         See bug description for an explanation of the changes made.
1771
1772         * platform/PlatformGestureEvent.h:
1773         (WebCore::PlatformGestureEvent::PlatformGestureEvent):
1774         (PlatformGestureEvent):
1775         (WebCore::PlatformGestureEvent::gammaX):
1776         (WebCore::PlatformGestureEvent::gammaY):
1777
1778 2012-04-16  Kentaro Hara  <haraken@chromium.org>
1779
1780         [Refactoring][V8] Remove $indent from NativeToJSValue()
1781         https://bugs.webkit.org/show_bug.cgi?id=84077
1782
1783         Reviewed by Nate Chapin.
1784
1785         $indent in NativeToJSValue() in CodeGeneratorV8.pm is not used.
1786         This patch removes it.
1787
1788         No new tests. No change in behavior.
1789
1790         * bindings/scripts/CodeGeneratorV8.pm:
1791         (GenerateNormalAttrGetter):
1792         (GenerateFunctionCallString):
1793         (NativeToJSValue):
1794
1795 2012-04-16  Luiz Agostini  <luiz.agostini@palm.com>
1796
1797         matchMedia() MediaQueryList not updating
1798         https://bugs.webkit.org/show_bug.cgi?id=75903
1799
1800         Reviewed by Antti Koivisto.
1801
1802         Test: fast/media/media-query-list-08.html
1803
1804         Viewport related MediaQueryList listeners were not triggered and the value
1805         of matches were not updated if the document's style selector were not
1806         affected by viewport changes.
1807
1808         The new method evaluateMediaQueries() is now called by FrameView instead of
1809         styleSelectorChanged() if the style selector is not affected by viewport changes.
1810
1811         * dom/Document.cpp:
1812         (WebCore::Document::evaluateMediaQueries):
1813         (WebCore):
1814         (WebCore::Document::styleSelectorChanged):
1815         * dom/Document.h:
1816         (Document):
1817         * page/FrameView.cpp:
1818         (WebCore::FrameView::layout):
1819
1820 2012-04-16  James Robinson  <jamesr@chromium.org>
1821
1822         [chromium] Delete uncalled unreserveContentsTextures function
1823         https://bugs.webkit.org/show_bug.cgi?id=84005
1824
1825         Reviewed by Adrienne Walker.
1826
1827         This is vestigal dead code.
1828
1829         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
1830         * platform/graphics/chromium/Canvas2DLayerChromium.h:
1831         (Canvas2DLayerChromium):
1832         * platform/graphics/chromium/LayerChromium.h:
1833         * platform/graphics/chromium/cc/CCLayerImpl.h:
1834         (CCLayerImpl):
1835
1836 2012-04-13  Simon Fraser  <simon.fraser@apple.com>
1837
1838         Avoid using backing store for compositing layers that just need to clip
1839         https://bugs.webkit.org/show_bug.cgi?id=40547
1840
1841         Reviewed by Dean Jackson.
1842         
1843         If a layer becomes composited because it needs to clip composited
1844         descendants, or if it has perspective, then it doesn't actually
1845         needs its own backing store; its contents can be painted by an
1846         ancestor, and we can just have an empty layer that does the clipping
1847         or applies the perspective transform.
1848         
1849         This saves backing store memory on some pages.
1850
1851         Tests: compositing/backing/no-backing-for-clip-overlap.html
1852                compositing/backing/no-backing-for-clip.html
1853                compositing/backing/no-backing-for-perspective.html
1854
1855         * rendering/RenderLayer.cpp:
1856         (WebCore):
1857         (WebCore::RenderLayer::enclosingCompositingLayerForRepaint):
1858         (WebCore::RenderLayer::paintLayer):
1859         * rendering/RenderLayer.h:
1860         (RenderLayer):
1861         * rendering/RenderLayerBacking.cpp:
1862         (WebCore::RenderLayerBacking::RenderLayerBacking):
1863         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1864         (WebCore::RenderLayerBacking::containsPaintedContent):
1865         (WebCore::RenderLayerBacking::setContentsNeedDisplay):
1866         (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
1867         (WebCore::RenderLayerBacking::paintIntoLayer):
1868         * rendering/RenderLayerBacking.h:
1869         (RenderLayerBacking):
1870         (WebCore::RenderLayerBacking::paintsIntoCompositedAncestor):
1871         (WebCore::RenderLayerBacking::setRequiresOwnBackingStore):
1872         * rendering/RenderLayerCompositor.cpp:
1873         (WebCore::RenderLayerCompositor::layerWillBeRemoved):
1874         (WebCore::RenderLayerCompositor::recursiveRepaintLayerRect):
1875         (WebCore::RenderLayerCompositor::requiresCompositingLayer):
1876         (WebCore::RenderLayerCompositor::requiresOwnBackingStore):
1877         (WebCore):
1878         * rendering/RenderLayerCompositor.h:
1879         * rendering/RenderObject.cpp:
1880         (WebCore::RenderObject::containerForRepaint):
1881         * rendering/RenderTreeAsText.cpp:
1882         (WebCore::write):
1883         * rendering/RenderView.cpp:
1884         (WebCore::RenderView::paintBoxDecorations):
1885
1886 2012-04-16  Brady Eidson  <beidson@apple.com>
1887
1888         <rdar://problem/11249336> and https://bugs.webkit.org/show_bug.cgi?id=84050
1889         WebKit2 back/forward items in the page cache are never removed when the page is closed
1890
1891         Reviewed by Jessie Berlin and unofficially reviewed by Jon Lee.
1892
1893         * WebCore.exp.in: Export PageCache::remove()
1894
1895 2012-04-16  Philippe Normand  <pnormand@igalia.com>
1896
1897         Unreviewed, GTK build fix after r114269.
1898
1899         * GNUmakefile.list.am:
1900
1901 2012-04-16  Andrey Kosyakov  <caseq@chromium.org>
1902
1903         Web Inspector: timeline. Range selection works incorrect with right click
1904         https://bugs.webkit.org/show_bug.cgi?id=83870
1905
1906         Reviewed by Pavel Feldman.
1907
1908         - only start window dragging upon mousedown with left button (right will cause a context menu and we won't see mouseup)
1909
1910         * inspector/front-end/TimelineOverviewPane.js:
1911         (WebInspector.TimelineOverviewWindow.prototype._dragWindow):
1912
1913 2012-04-16  Andrey Kosyakov  <caseq@chromium.org>
1914
1915         Web Inspector: touch pad is pain to use in lower pane of Timeline panel due two two-axis scrolling
1916         https://bugs.webkit.org/show_bug.cgi?id=83946
1917
1918         Reviewed by Pavel Feldman.
1919
1920         Remove delegation of mousewheel events from lower timeline pane to the timeline overview. This disables
1921         support for moving overview window with horizontal swype over lower timeline pane, thus removing
1922         an irritating situation when we try to both change overview window and scroll lower timeline pane
1923         upon a single touchpad gesture. Those willing to move timeline window now would need to position
1924         mouse over overview.
1925
1926         * inspector/front-end/TimelineOverviewPane.js:
1927         (WebInspector.TimelineOverviewWindow.prototype._onMouseWheel):
1928         (WebInspector.TimelineOverviewWindow.prototype._zoom):
1929         * inspector/front-end/TimelinePanel.js:
1930         (WebInspector.TimelinePanel):
1931
1932 2012-04-16  Yury Semikhatsky  <yurys@chromium.org>
1933
1934         Web Inspector: rename heap profiler files and classes DetailedHeapshot* ->HeapSnapshot*
1935         https://bugs.webkit.org/show_bug.cgi?id=84038
1936
1937         A bunch of renames "detailed heapshot" -> "heap snapshot".
1938
1939         Reviewed by Pavel Feldman.
1940
1941         Tests: inspector/profiler/heap-snapshot-comparison-expansion-preserved-when-sorting.html
1942                inspector/profiler/heap-snapshot-comparison-show-all.html
1943                inspector/profiler/heap-snapshot-comparison-show-next.html
1944                inspector/profiler/heap-snapshot-comparison-shown-node-count-preserved-when-sorting.html
1945                inspector/profiler/heap-snapshot-comparison-sorting.html
1946                inspector/profiler/heap-snapshot-containment-expansion-preserved-when-sorting.html
1947                inspector/profiler/heap-snapshot-containment-show-all.html
1948                inspector/profiler/heap-snapshot-containment-show-next.html
1949                inspector/profiler/heap-snapshot-containment-shown-node-count-preserved-when-sorting.html
1950                inspector/profiler/heap-snapshot-containment-sorting.html
1951                inspector/profiler/heap-snapshot-dominators-expansion-preserved-when-sorting.html
1952                inspector/profiler/heap-snapshot-dominators-show-all.html
1953                inspector/profiler/heap-snapshot-dominators-show-next.html
1954                inspector/profiler/heap-snapshot-dominators-shown-node-count-preserved-when-sorting.html
1955                inspector/profiler/heap-snapshot-dominators-sorting.html
1956                inspector/profiler/heap-snapshot-summary-expansion-preserved-when-sorting.html
1957                inspector/profiler/heap-snapshot-summary-show-all.html
1958                inspector/profiler/heap-snapshot-summary-show-next.html
1959                inspector/profiler/heap-snapshot-summary-shown-node-count-preserved-when-sorting.html
1960                inspector/profiler/heap-snapshot-summary-sorting.html
1961
1962         * WebCore.gypi:
1963         * WebCore.vcproj/WebCore.vcproj:
1964         * inspector/compile-front-end.py:
1965         * inspector/front-end/HeapSnapshotGridNodes.js: Renamed from Source/WebCore/inspector/front-end/DetailedHeapshotGridNodes.js.
1966         (WebInspector.HeapSnapshotGridNode):
1967         (WebInspector.HeapSnapshotGridNode.prototype.ensureContentCreated):
1968         (WebInspector.HeapSnapshotGridNode.prototype.createCell):
1969         (WebInspector.HeapSnapshotGridNode.prototype.dispose):
1970         (WebInspector.HeapSnapshotGridNode.prototype.hasHoverMessage.false.queryObjectContent):
1971         (WebInspector.HeapSnapshotGridNode.prototype._toPercentString):
1972         (WebInspector.HeapSnapshotGridNode.prototype._createValueCell):
1973         (WebInspector.HeapSnapshotGridNode.prototype._populate.sorted):
1974         (WebInspector.HeapSnapshotGridNode.prototype._populate):
1975         (WebInspector.HeapSnapshotGridNode.prototype.populateChildren.callSerialize):
1976         (WebInspector.HeapSnapshotGridNode.prototype.populateChildren.childrenRetrieved.notify):
1977         (WebInspector.HeapSnapshotGridNode.prototype.populateChildren.childrenRetrieved):
1978         (WebInspector.HeapSnapshotGridNode.prototype.populateChildren):
1979         (WebInspector.HeapSnapshotGridNode.prototype._saveChildren):
1980         (WebInspector.HeapSnapshotGridNode.prototype.sort.afterSort.afterPopulate):
1981         (WebInspector.HeapSnapshotGridNode.prototype.sort.afterSort):
1982         (WebInspector.HeapSnapshotGridNode.prototype.sort):
1983         (WebInspector.HeapSnapshotLazyGridNode):
1984         (WebInspector.HeapSnapshotLazyGridNode.prototype.ensureContentCreated):
1985         (WebInspector.HeapSnapshotLazyGridNode.prototype.createCells):
1986         (WebInspector.HeapSnapshotGenericObjectNode):
1987         (WebInspector.HeapSnapshotGenericObjectNode.prototype.createCell):
1988         (WebInspector.HeapSnapshotGenericObjectNode.prototype._createObjectCell):
1989         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
1990         (WebInspector.HeapSnapshotGenericObjectNode.prototype.queryObjectContent.else.formatResult):
1991         (WebInspector.HeapSnapshotGenericObjectNode.prototype.queryObjectContent):
1992         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get _retainedSizePercent):
1993         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get _shallowSizePercent):
1994         (WebInspector.HeapSnapshotGenericObjectNode.prototype.updateHasChildren):
1995         (WebInspector.HeapSnapshotGenericObjectNode.prototype.isWindow):
1996         (WebInspector.HeapSnapshotGenericObjectNode.prototype.shortenWindowURL):
1997         (WebInspector.HeapSnapshotObjectNode):
1998         (WebInspector.HeapSnapshotObjectNode.prototype.updateHasChildren):
1999         (WebInspector.HeapSnapshotObjectNode.prototype._createChildNode):
2000         (WebInspector.HeapSnapshotObjectNode.prototype._childHashForEntity):
2001         (WebInspector.HeapSnapshotObjectNode.prototype._childHashForNode):
2002         (WebInspector.HeapSnapshotObjectNode.prototype.comparator):
2003         (WebInspector.HeapSnapshotObjectNode.prototype._emptyData):
2004         (WebInspector.HeapSnapshotObjectNode.prototype._enhanceData):
2005         (WebInspector.HeapSnapshotObjectNode.prototype._prefixObjectCell):
2006         (WebInspector.HeapSnapshotInstanceNode):
2007         (WebInspector.HeapSnapshotInstanceNode.prototype._createChildNode):
2008         (WebInspector.HeapSnapshotInstanceNode.prototype._childHashForEntity):
2009         (WebInspector.HeapSnapshotInstanceNode.prototype._childHashForNode):
2010         (WebInspector.HeapSnapshotInstanceNode.prototype.comparator):
2011         (WebInspector.HeapSnapshotInstanceNode.prototype._emptyData):
2012         (WebInspector.HeapSnapshotInstanceNode.prototype._enhanceData):
2013         (WebInspector.HeapSnapshotInstanceNode.prototype.get isDeletedNode):
2014         (WebInspector.HeapSnapshotConstructorNode):
2015         (WebInspector.HeapSnapshotConstructorNode.prototype.createCell):
2016         (WebInspector.HeapSnapshotConstructorNode.prototype._createChildNode):
2017         (WebInspector.HeapSnapshotConstructorNode.prototype._createNodesProvider):
2018         (WebInspector.HeapSnapshotConstructorNode.prototype.comparator):
2019         (WebInspector.HeapSnapshotConstructorNode.prototype._childHashForEntity):
2020         (WebInspector.HeapSnapshotConstructorNode.prototype._childHashForNode):
2021         (WebInspector.HeapSnapshotConstructorNode.prototype.get data):
2022         (WebInspector.HeapSnapshotConstructorNode.prototype.get _countPercent):
2023         (WebInspector.HeapSnapshotConstructorNode.prototype.get _retainedSizePercent):
2024         (WebInspector.HeapSnapshotConstructorNode.prototype.get _shallowSizePercent):
2025         (WebInspector.HeapSnapshotIteratorsTuple):
2026         (WebInspector.HeapSnapshotIteratorsTuple.prototype.dispose):
2027         (WebInspector.HeapSnapshotIteratorsTuple.prototype.sortAndRewind):
2028         (WebInspector.HeapSnapshotDiffNode):
2029         (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff.diffCalculated):
2030         (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff):
2031         (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff.baseIdsReceived):
2032         (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff.idsReceived):
2033         (WebInspector.HeapSnapshotDiffNode.prototype._createChildNode):
2034         (WebInspector.HeapSnapshotDiffNode.prototype._createNodesProvider.createProvider):
2035         (WebInspector.HeapSnapshotDiffNode.prototype._createNodesProvider):
2036         (WebInspector.HeapSnapshotDiffNode.prototype._childHashForEntity):
2037         (WebInspector.HeapSnapshotDiffNode.prototype._childHashForNode):
2038         (WebInspector.HeapSnapshotDiffNode.prototype.comparator):
2039         (WebInspector.HeapSnapshotDiffNode.prototype.populateChildren.firstProviderPopulated):
2040         (WebInspector.HeapSnapshotDiffNode.prototype.populateChildren.else.firstProviderPopulated):
2041         (WebInspector.HeapSnapshotDiffNode.prototype.populateChildren):
2042         (WebInspector.HeapSnapshotDiffNode.prototype._signForDelta):
2043         (WebInspector.HeapSnapshotDiffNode.prototype.get data):
2044         (WebInspector.HeapSnapshotDominatorObjectNode):
2045         (WebInspector.HeapSnapshotDominatorObjectNode.prototype._createChildNode):
2046         (WebInspector.HeapSnapshotDominatorObjectNode.prototype._createProvider):
2047         (WebInspector.HeapSnapshotDominatorObjectNode.prototype._childHashForEntity):
2048         (WebInspector.HeapSnapshotDominatorObjectNode.prototype._childHashForNode):
2049         (WebInspector.HeapSnapshotDominatorObjectNode.prototype.comparator):
2050         (WebInspector.HeapSnapshotDominatorObjectNode.prototype._emptyData):
2051         (MixInSnapshotNodeFunctions):
2052         * inspector/front-end/HeapSnapshotView.js: Renamed from Source/WebCore/inspector/front-end/DetailedHeapshotView.js.
2053         (WebInspector.HeapSnapshotSortableDataGrid):
2054         (WebInspector.HeapSnapshotSortableDataGrid.prototype.dispose):
2055         (WebInspector.HeapSnapshotSortableDataGrid.prototype.resetSortingCache):
2056         (WebInspector.HeapSnapshotSortableDataGrid.prototype.sortingChanged.SortByTwoFields):
2057         (WebInspector.HeapSnapshotSortableDataGrid.prototype.sortingChanged):
2058         (WebInspector.HeapSnapshotSortableDataGrid.prototype.updateVisibleNodes):
2059         (WebInspector.HeapSnapshotSortableDataGrid.prototype.onResize):
2060         (WebInspector.HeapSnapshotSortableDataGrid.prototype._onScroll):
2061         (WebInspector.HeapSnapshotSortableDataGrid.prototype._performSorting):
2062         (WebInspector.HeapSnapshotSortableDataGrid.prototype.recursiveSortingEnter):
2063         (WebInspector.HeapSnapshotSortableDataGrid.prototype.recursiveSortingLeave):
2064         (WebInspector.HeapSnapshotContainmentDataGrid):
2065         (WebInspector.HeapSnapshotContainmentDataGrid.prototype._defaultPopulateCount.100.expandRoute.nextStep.else.afterExpand):
2066         (WebInspector.HeapSnapshotContainmentDataGrid.prototype._defaultPopulateCount.100.expandRoute):
2067         (WebInspector.HeapSnapshotContainmentDataGrid.prototype.setDataSource):
2068         (WebInspector.HeapSnapshotContainmentDataGrid.prototype.sortingChanged):
2069         (WebInspector.HeapSnapshotRetainmentDataGrid):
2070         (WebInspector.HeapSnapshotRetainmentDataGrid.prototype._sortFields):
2071         (WebInspector.HeapSnapshotRetainmentDataGrid.prototype.reset):
2072         (WebInspector.HeapSnapshotConstructorsDataGrid):
2073         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._defaultPopulateCount.100._sortFields):
2074         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.setDataSource):
2075         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.populateChildren):
2076         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._filterSelectIndexChanged):
2077         (WebInspector.HeapSnapshotDiffDataGrid):
2078         (WebInspector.HeapSnapshotDiffDataGrid.prototype._defaultPopulateCount.50._sortFields):
2079         (WebInspector.HeapSnapshotDiffDataGrid.prototype.setDataSource):
2080         (WebInspector.HeapSnapshotDiffDataGrid.prototype._baseProfileIndexChanged):
2081         (WebInspector.HeapSnapshotDiffDataGrid.prototype.setBaseDataSource):
2082         (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived.addNodeIfNonZeroDiff):
2083         (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived):
2084         (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren):
2085         (WebInspector.HeapSnapshotDominatorsDataGrid):
2086         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype._defaultPopulateCount.25.setDataSource):
2087         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.sortingChanged):
2088         (WebInspector.HeapSnapshotView.profileCallback):
2089         (WebInspector.HeapSnapshotView):
2090         (WebInspector.HeapSnapshotView.prototype.dispose):
2091         (WebInspector.HeapSnapshotView.prototype.get statusBarItems):
2092         (WebInspector.HeapSnapshotView.prototype.get profile):
2093         (WebInspector.HeapSnapshotView.prototype.get profileWrapper):
2094         (WebInspector.HeapSnapshotView.prototype.get baseProfile):
2095         (WebInspector.HeapSnapshotView.prototype.get baseProfileWrapper):
2096         (WebInspector.HeapSnapshotView.prototype.wasShown.profileCallback1):
2097         (WebInspector.HeapSnapshotView.prototype.wasShown.profileCallback2):
2098         (WebInspector.HeapSnapshotView.prototype.wasShown):
2099         (WebInspector.HeapSnapshotView.prototype.willHide):
2100         (WebInspector.HeapSnapshotView.prototype.onResize):
2101         (WebInspector.HeapSnapshotView.prototype.searchCanceled):
2102         (WebInspector.HeapSnapshotView.prototype.performSearch.matchesByName):
2103         (WebInspector.HeapSnapshotView.prototype.performSearch.matchesById):
2104         (WebInspector.HeapSnapshotView.prototype.performSearch.matchesQuery):
2105         (WebInspector.HeapSnapshotView.prototype.performSearch):
2106         (WebInspector.HeapSnapshotView.prototype.jumpToFirstSearchResult):
2107         (WebInspector.HeapSnapshotView.prototype.jumpToLastSearchResult):
2108         (WebInspector.HeapSnapshotView.prototype.jumpToNextSearchResult):
2109         (WebInspector.HeapSnapshotView.prototype.jumpToPreviousSearchResult):
2110         (WebInspector.HeapSnapshotView.prototype.showingFirstSearchResult):
2111         (WebInspector.HeapSnapshotView.prototype.showingLastSearchResult):
2112         (WebInspector.HeapSnapshotView.prototype._jumpToSearchResult):
2113         (WebInspector.HeapSnapshotView.prototype.refreshVisibleData):
2114         (WebInspector.HeapSnapshotView.prototype._changeBase):
2115         (WebInspector.HeapSnapshotView.prototype._changeFilter):
2116         (WebInspector.HeapSnapshotView.prototype._createToolbarWithClassNameFilter):
2117         (WebInspector.HeapSnapshotView.prototype._changeNameFilter):
2118         (WebInspector.HeapSnapshotView.prototype._profiles):
2119         (WebInspector.HeapSnapshotView.prototype._loadProfile):
2120         (WebInspector.HeapSnapshotView.prototype._loadProfileByIndex):
2121         (WebInspector.HeapSnapshotView.prototype.isDetailedSnapshot):
2122         (WebInspector.HeapSnapshotView.prototype.processLoadedSnapshot):
2123         (WebInspector.HeapSnapshotView.prototype._selectionChanged):
2124         (WebInspector.HeapSnapshotView.prototype._inspectedObjectChanged):
2125         (WebInspector.HeapSnapshotView.prototype._setRetainmentDataGridSource):
2126         (WebInspector.HeapSnapshotView.prototype._mouseDownInContentsGrid):
2127         (WebInspector.HeapSnapshotView.prototype.changeView.sortingComplete):
2128         (WebInspector.HeapSnapshotView.prototype.changeView):
2129         (WebInspector.HeapSnapshotView.prototype._changeView):
2130         (WebInspector.HeapSnapshotView.prototype._getHoverAnchor):
2131         (WebInspector.HeapSnapshotView.prototype._resolveObjectForPopover):
2132         (WebInspector.HeapSnapshotView.prototype._helpClicked.appendHelp):
2133         (WebInspector.HeapSnapshotView.prototype._helpClicked):
2134         (WebInspector.HeapSnapshotView.prototype._startRetainersHeaderDragging):
2135         (WebInspector.HeapSnapshotView.prototype._retainersHeaderDragging):
2136         (WebInspector.HeapSnapshotView.prototype._endRetainersHeaderDragging):
2137         (WebInspector.HeapSnapshotView.prototype._updateRetainmentViewHeight):
2138         (WebInspector.HeapSnapshotView.prototype._updateBaseOptions):
2139         (WebInspector.HeapSnapshotView.prototype._updateFilterOptions):
2140         (WebInspector.HeapSnapshotProfileType):
2141         (WebInspector.HeapSnapshotProfileType.prototype.get buttonTooltip):
2142         (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
2143         (WebInspector.HeapSnapshotProfileType.prototype.get treeItemTitle):
2144         (WebInspector.HeapSnapshotProfileType.prototype.get description):
2145         (WebInspector.HeapSnapshotProfileType.prototype.createSidebarTreeElementForProfile):
2146         (WebInspector.HeapSnapshotProfileType.prototype.createView):
2147         * inspector/front-end/ProfilesPanel.js:
2148         (WebInspector.ProfilesPanel.prototype._addHeapSnapshotChunk):
2149         (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot):
2150         (WebInspector.ProfilesPanel.prototype._reportHeapSnapshotProgress):
2151         * inspector/front-end/WebKit.qrc:
2152         * inspector/front-end/heapProfiler.css:
2153         (.heap-snapshot-view):
2154         (.heap-snapshot-view.visible):
2155         (.heap-snapshot-view .view):
2156         (.heap-snapshot-view .view.visible):
2157         (.heap-snapshot-view .data-grid tr:empty):
2158         (.heap-snapshot-view .data-grid):
2159         (.heap-snapshot-view .data-grid td.count-column):
2160         (.heap-snapshot-view .data-grid td.addedCount-column):
2161         (.heap-snapshot-view .data-grid td.removedCount-column):
2162         (.heap-snapshot-view .data-grid td.countDelta-column):
2163         (.heap-snapshot-view .data-grid td.addedSize-column):
2164         (.heap-snapshot-view .data-grid td.removedSize-column):
2165         (.heap-snapshot-view .data-grid td.sizeDelta-column):
2166         (.heap-snapshot-view .data-grid td.shallowSize-column):
2167         (.heap-snapshot-view .data-grid td.retainedSize-column):
2168         (.heap-snapshot-view .data-grid td.distanceToWindow-column):
2169         (.heap-snapshot-view .data-grid span.percent-column):
2170         (.heap-snapshot-view .console-formatted-object, .console-formatted-node):
2171         (.heap-snapshot-view .console-formatted-string):
2172         (.heap-snapshot-view .console-formatted-id):
2173         (.heap-snapshot-view .data-grid tr.selected *):
2174         (.heap-snapshot-view .data-grid:focus tr.selected *):
2175         (.heap-snapshot-view .delimiter):
2176         (.heap-snapshot-view .views-container):
2177         (.heap-snapshot-view .views-container .view):
2178         (.heap-snapshot-view .retaining-paths-view):
2179         (.heap-snapshot-view .class-view-grid):
2180         (.heap-snapshot-view .class-view-toolbar):
2181         (.heap-snapshot-view .class-view-toolbar input.class-name-filter):
2182         (.heap-snapshot-view .retainers-view-header):
2183         (.heap-snapshot-view .retainers-view-header .title > span):
2184         (.heap-snapshot-view tr:not(.selected) td.object-column span.highlight):
2185         (.heap-snapshot-view td.object-column span.grayed):
2186         (.heap-snapshot-help-status-bar-item .glyph):
2187         (table.heap-snapshot-help):
2188         * inspector/front-end/inspector.html:
2189
2190 2012-04-16  Andrey Kosyakov  <caseq@chromium.org>
2191
2192         Web Inspector: touch pad is pain to use in lower pane of Timeline panel due two two-axis scrolling
2193         https://bugs.webkit.org/show_bug.cgi?id=83946
2194
2195         Reviewed by Pavel Feldman.
2196
2197         Remove delegation of mousewheel events from lower timeline pane to the timeline overview. This disables
2198         support for moving overview window with horizontal swype over lower timeline pane, thus removing
2199         an irritating situation when we try to both change overview window and scroll lower timeline pane
2200         upon a single touchpad gesture. Those willing to move timeline window now would need to position
2201         mouse over overview.
2202
2203         * inspector/front-end/TimelineOverviewPane.js:
2204         (WebInspector.TimelineOverviewWindow.prototype._onMouseWheel):
2205         (WebInspector.TimelineOverviewWindow.prototype._zoom):
2206         * inspector/front-end/TimelinePanel.js:
2207         (WebInspector.TimelinePanel):
2208
2209 2012-04-11  Philippe Normand  <pnormand@igalia.com>
2210
2211         [GStreamer] HRTFDatabaseLoader conflicts with AudioFileReader
2212         https://bugs.webkit.org/show_bug.cgi?id=78095
2213
2214         Reviewed by Martin Robinson.
2215
2216         Moved the GStreamer initialization logic to a new
2217         GStreamerUtilities module, used by the MediaPlayer and the
2218         AudioContext. I also removed the static variables as
2219         gst_init_check already handles cases where it's called multiple
2220         times.
2221
2222         * GNUmakefile.list.am:
2223         * Modules/webaudio/AudioContext.cpp:
2224         (WebCore::AudioContext::constructCommon):
2225         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
2226         (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
2227         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
2228         (WebCore::AudioFileReader::createBus):
2229         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
2230         (WTF::adoptGRef):
2231         (WTF):
2232         (WTF::GstElementFactory):
2233         * platform/graphics/gstreamer/GRefPtrGStreamer.h:
2234         (WTF):
2235         * platform/graphics/gstreamer/GStreamerUtilities.cpp: Added.
2236         (WebCore):
2237         (WebCore::initializeGStreamer):
2238         * platform/graphics/gstreamer/GStreamerUtilities.h: Added.
2239         (WebCore):
2240         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2241         (WebCore::doGstInit):
2242
2243 2012-04-16  ChangSeok Oh  <shivamidow@gmail.com>
2244
2245         Update GraphicsContext3DOpenGLES.cpp and fix some issues to build with GLES.
2246         https://bugs.webkit.org/show_bug.cgi?id=83982
2247
2248         Reviewed by Martin Robinson.
2249
2250         GL_BGRA is not defined in GLESv2, so it causes build-break at readRenderingResults.
2251         To resolve this, a helper function readPixelsAndConvertToBGRAIfNecessary is added
2252         in GC3DOpenGL.cpp & GC3DOpenGLES.cpp and it's used in GC3DOpenGLCommon.cpp.
2253         And some other issues to build with GLES are gone with this patch.
2254
2255         No new tests, since no new feature.
2256
2257         * platform/graphics/GraphicsContext3D.h:
2258         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
2259         (WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary):
2260         (WebCore):
2261         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
2262         (WebCore::GraphicsContext3D::readRenderingResults):
2263         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
2264         (WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary):
2265         (WebCore):
2266         (WebCore::GraphicsContext3D::reshapeFBOs):
2267         (WebCore::GraphicsContext3D::resolveMultisamplingIfNecessary):
2268
2269 2012-04-16  Xiaomei Ji  <xji@chromium.org>
2270
2271         [chromium] wrong justification for arabic/persian page in cr-win.
2272         https://bugs.webkit.org/show_bug.cgi?id=83227
2273
2274         Reviewed by Kent Tamura.
2275
2276         Disable kashida justification if using Skia to draw.
2277
2278         Test: fast/text/international/arabic-justify.html
2279
2280         * platform/graphics/chromium/UniscribeHelper.cpp:
2281         (WebCore::UniscribeHelper::justify):
2282
2283 2012-04-16  Jia Pu  <jpu@apple.com>
2284
2285         Build fix.
2286
2287         Change set 114220 broke OS X internal build. Change set 114231 attempted to fix it, but isn't entirely
2288         correct. This patch amends change set 114231.
2289
2290         * WebCore.exp.in:
2291         * editing/DictationAlternative.cpp:
2292         (WebCore::DictationAlternative::DictationAlternative):
2293         * editing/DictationAlternative.h:
2294         (DictationAlternative):
2295
2296 2012-04-16  Antti Koivisto  <antti@apple.com>
2297
2298         REGRESSION (r104445): Style is not recomputed on serenaandlily.com
2299         https://bugs.webkit.org/show_bug.cgi?id=83663
2300
2301         Reviewed by Andreas Kling.
2302         
2303         CSS class and id selectors are case insensitive in non-strict modes. The code
2304         that invalidated the scope elements used getElementByID() which is case
2305         sensitive in all modes. As a result we would fail to invalidate elements
2306         that would match a style rule but used different case in id.
2307         
2308         The new code invalidates by crawling the DOM tree. This often (when there are classes) 
2309         actually faster than the existing code as we can now handle everything in a single pass.
2310         Each class scope required a crawl with the old code.
2311         
2312         The code uses the same functions as the selector matching code to get the same behavior.
2313         
2314         The maximum class limit is lifted as number of classes does not affect complexity anymore.
2315
2316         Test: fast/css/id-or-class-before-stylesheet-strict.html
2317
2318         * css/SelectorChecker.h:
2319         (WebCore::SelectorChecker::elementMatchesSelectorScopes):
2320         (WebCore):
2321         * dom/Document.cpp:
2322         (WebCore::Document::testAddedStylesheetRequiresStyleRecalc):
2323         (WebCore):
2324
2325 2012-04-16  Uday Kiran  <udaykiran@motorola.com>
2326
2327         CSS3 Selectors failures on css3test.com
2328         https://bugs.webkit.org/show_bug.cgi?id=83885
2329
2330         Reviewed by Zoltan Herczeg.
2331
2332         Parsing fix for CSS3 selectors :nth-child(), :nth-last-child() :nth-of-type() :nth-last-of-type()
2333         with values -n-b and n-b as they are of valid form an+b where a and b are integers.
2334         http://www.w3.org/TR/selectors/#structural-pseudos
2335
2336         Descriptors of form n-b or -n-b, where b is number, are valid CSS identifiers.
2337         However, in NthChildMode we need to check whether this identifier is a valid nth child descriptor.
2338         The original code only checked this if the string was n- or -n- but this is not enough.
2339         We need to check everything which starts with an n- or -n- prefix.
2340
2341         Test: css3/parsing-css3-nthchild.html
2342
2343         * css/CSSParser.cpp:
2344         (WebCore::CSSParser::lex):
2345
2346 2012-04-16  Eric Carlson  <eric.carlson@apple.com>
2347
2348         ASSERT in notifyChildInserted when HTMLMediaElement is removed from tree
2349         https://bugs.webkit.org/show_bug.cgi?id=83949
2350
2351         Reviewed by Antti Koivisto.
2352
2353         No new tests. I was not able to create a reproducible test case, but I have been unable
2354         to reproduce the ASSERT that occassionally fired in existing tests since I have been
2355         living on these changes.
2356
2357         * html/HTMLMediaElement.cpp:
2358         (WebCore::HTMLMediaElement::insertedIntoDocument): Call configureMediaControls.
2359         (WebCore::HTMLMediaElement::removedFromDocument): Ditto.
2360         (WebCore::HTMLMediaElement::configureMediaControls): Don't show controls when the
2361             media element is not in a Document.
2362
2363 2012-04-16  Eric Carlson  <eric.carlson@apple.com>
2364
2365         Layout Test media/track/track-delete-during-setup.html is hitting an ASSERT_NOT_REACHED
2366         https://bugs.webkit.org/show_bug.cgi?id=82269
2367
2368         Reviewed by Antti Koivisto.
2369
2370         No new tests, already tested by media/track/track-delete-during-setup.html.
2371
2372         * html/HTMLTrackElement.cpp:
2373         (WebCore::HTMLTrackElement::insertedIntoDocument): Don't notify the media element until/unless
2374         the track element is inserted into the document.
2375         * html/HTMLTrackElement.h:
2376
2377 2012-04-16  Yael Aharon  <yael.aharon@nokia.com>
2378
2379         [Qt][WK2] Fixed elements position is wrong after zooming.
2380         https://bugs.webkit.org/show_bug.cgi?id=83981
2381
2382         Reviewed by Kenneth Rohde Christiansen.
2383
2384         When setFixedVisibleContentRect is called we mark all fixed elements in the frame for layout.
2385         In order to find these elements, RenderView maintains a list of fixed elements.
2386         They are added and removed at the same time that they are added and removed from their parent RenderBlock.
2387         The idea is taken from the iOS5.1 branch, at opensource.apple.com.
2388         Added a manual test that allows removing and adding fixed elements at will.
2389
2390         * page/FrameView.cpp:
2391         (WebCore::FrameView::setFixedVisibleContentRect):
2392         * rendering/RenderBlock.cpp:
2393         (WebCore::RenderBlock::insertPositionedObject):
2394         (WebCore::RenderBlock::removePositionedObject):
2395         * rendering/RenderView.cpp:
2396         (WebCore::RenderView::setFixedPositionedObjectsNeedLayout):
2397         (WebCore):
2398         (WebCore::RenderView::insertFixedPositionedObject):
2399         (WebCore::RenderView::removeFixedPositionedObject):
2400         * rendering/RenderView.h:
2401         (RenderView):
2402
2403 2012-04-13  Pavel Feldman  <pfeldman@chromium.org>
2404
2405         Web Inspector: extract ContentProvider into its own file, make NetworkRequest, Resoruce and others implement it.
2406         https://bugs.webkit.org/show_bug.cgi?id=83922
2407
2408         Reviewed by Yury Semikhatsky.
2409
2410         We have two different types of requestContent methods: one on the source mapping level and one on the resource level.
2411         There are also adapters between the two. I'm aligning it all to a single requestContent method declared in ContentProvider.
2412
2413         * WebCore.gypi:
2414         * WebCore.vcproj/WebCore.vcproj:
2415         * inspector/compile-front-end.py:
2416         * inspector/front-end/BreakpointsSidebarPane.js:
2417         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype.addBreakpoint.didRequestContent):
2418         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype.addBreakpoint):
2419         * inspector/front-end/ContentProvider.js: Added.
2420         (WebInspector.ContentProvider):
2421         (WebInspector.ContentProvider.prototype.contentURL):
2422         (WebInspector.ContentProvider.prototype.requestContent):
2423         (WebInspector.ContentProvider.prototype.searchInContent):
2424         (WebInspector.ContentProvider.SearchMatch):
2425         * inspector/front-end/ContentProviders.js:
2426         (WebInspector.ScriptContentProvider.prototype.contentURL):
2427         (WebInspector.ScriptContentProvider.prototype.requestContent):
2428         (WebInspector.ConcatenatedScriptsContentProvider.prototype.contentURL):
2429         (WebInspector.ConcatenatedScriptsContentProvider.prototype.requestContent):
2430         (WebInspector.CompilerSourceMappingContentProvider.prototype.contentURL):
2431         (WebInspector.CompilerSourceMappingContentProvider.prototype.requestContent):
2432         (WebInspector.StaticContentProvider.prototype.contentURL):
2433         (WebInspector.StaticContentProvider.prototype.requestContent):
2434         * inspector/front-end/DebuggerPresentationModel.js:
2435         * inspector/front-end/ExtensionServer.js:
2436         (WebInspector.ExtensionServer.prototype._getResourceContent):
2437         * inspector/front-end/JavaScriptSourceFrame.js:
2438         (WebInspector.JavaScriptSourceFrame.prototype.requestContent):
2439         * inspector/front-end/NetworkItemView.js:
2440         (WebInspector.RequestContentView.prototype._ensureInnerViewShown.callback):
2441         (WebInspector.RequestContentView.prototype._ensureInnerViewShown):
2442         * inspector/front-end/NetworkRequest.js:
2443         (WebInspector.NetworkRequest.prototype.contentURL):
2444         (WebInspector.NetworkRequest.prototype.requestContent):
2445         (WebInspector.NetworkRequest.prototype.searchInContent):
2446         (WebInspector.NetworkRequest.prototype.populateImageSource):
2447         (WebInspector.NetworkRequest.prototype._innerRequestContent.onResourceContent):
2448         (WebInspector.NetworkRequest.prototype._innerRequestContent):
2449         * inspector/front-end/RawSourceCode.js:
2450         (WebInspector.RawSourceCode.prototype._createContentProvider):
2451         (WebInspector.RawSourceCode.prototype._createSourceMapping.didRequestContent):
2452         (WebInspector.RawSourceCode.prototype._createSourceMapping):
2453         * inspector/front-end/Resource.js:
2454         (WebInspector.Resource.prototype.contentURL):
2455         (WebInspector.Resource.prototype.requestContent):
2456         (WebInspector.Resource.prototype._innerRequestContent.callback):
2457         (WebInspector.Resource.prototype._innerRequestContent):
2458         (WebInspector.ResourceRevision.prototype.contentURL):
2459         (WebInspector.ResourceRevision.prototype.requestContent.callbackWrapper):
2460         (WebInspector.ResourceRevision.prototype.requestContent):
2461         (WebInspector.ResourceRevision.prototype.searchInContent):
2462         * inspector/front-end/ResourceView.js:
2463         (WebInspector.ResourceSourceFrame.prototype.requestContent):
2464         (WebInspector.ResourceSourceFrame.prototype._contentChanged):
2465         (WebInspector.ResourceRevisionSourceFrame.prototype.requestContent):
2466         * inspector/front-end/ScriptFormatter.js:
2467         * inspector/front-end/ScriptsPanel.js:
2468         (WebInspector.ScriptsPanel.prototype.requestVisibleScriptOutline):
2469         * inspector/front-end/SourceFrame.js:
2470         (WebInspector.SourceFrame.prototype.setContent):
2471         * inspector/front-end/UISourceCode.js:
2472         (WebInspector.UISourceCode):
2473         (WebInspector.UISourceCode.prototype.requestContent):
2474         (WebInspector.UISourceCode.prototype._didRequestContent):
2475         * inspector/front-end/WebKit.qrc:
2476         * inspector/front-end/inspector.html:
2477
2478 2012-04-16  Jason Liu  <jason.liu@torchmobile.com.cn>
2479
2480         [BlackBerry] Missing readyState 2 when a XMLHttpRequest calls xmlhttp.open("HEAD","notExist.html",true).
2481         https://bugs.webkit.org/show_bug.cgi?id=83866
2482
2483         Reviewed by George Staikos.
2484         
2485         We receive 404 for a XMLHttpRequest which calls open("HEAD", "notExist.html", true).
2486         There are no data received because its method is HEAD.
2487         This case shouldn't be treated as a failure.
2488
2489         Test: http/tests/xmlhttprequest/xmlhttprequest-check-head-readystate-for-404.html
2490
2491         * platform/network/blackberry/NetworkJob.cpp:
2492         (WebCore::NetworkJob::handleNotifyClose):
2493
2494 2012-04-16  Jon Lee  <jonlee@apple.com>
2495
2496         Build fix.
2497
2498         * WebCore.exp.in:
2499         * editing/DictationAlternative.cpp:
2500         (WebCore::DictationAlternative::DictationAlternative):
2501         * editing/DictationAlternative.h:
2502         (DictationAlternative):
2503
2504 2012-04-16  George Staikos  <staikos@webkit.org>
2505
2506         Fix signed/unsigned mismatch warning for BlackBerry debug builds.
2507         https://bugs.webkit.org/show_bug.cgi?id=80790
2508
2509         Reviewed by Rob Buis.
2510
2511         * platform/blackberry/CookieMap.cpp:
2512         (WebCore::CookieMap::removeCookieAtIndex):
2513
2514 2012-04-15  Kent Tamura  <tkent@chromium.org>
2515
2516         WebCore::weekDayShortLabels() for ICU always returns the fallback labels
2517         https://bugs.webkit.org/show_bug.cgi?id=83991
2518
2519         Reviewed by Hajime Morita.
2520
2521         We need to specfiy 1-based index to udat_getSymbols() with
2522         UDAT_SHORT_WEEKDAYS. Also, udat_countSymbols() with UDAT_SHORT_WEEKDAYS
2523         returns 8.
2524
2525         No new tests because this behavior depends on locale setting.
2526
2527         * platform/text/LocalizedCalendarICU.cpp:
2528         (WebCore::createLabelVector): Add startIndex argument.
2529         (WebCore::createMonthLabels):
2530         Pass UDAT_JANUARRY(0) as startIndex to createLabelVector().
2531         (WebCore::createWeekDayShortLabels):
2532         Pass UDAT_SUNDAY(1) as startIndex to createLabelVector().
2533
2534 2012-04-15  MORITA Hajime  <morrita@google.com>
2535
2536         Unreviewed attempt to chromium-win build fix.
2537
2538         * editing/DictationAlternative.h:
2539
2540 2012-04-15  Noel Gordon  <noel.gordon@gmail.com>
2541
2542         Align JSC/V8 bindings canvas.toDataURL() code flows
2543         https://bugs.webkit.org/show_bug.cgi?id=84003
2544
2545         Reviewed by Eric Seidel.
2546
2547         Align JSC/V8 bindings canvas.toDataURL() code flow so that the binding
2548         code implementations read alike.
2549
2550         No new tests. Covered by existing cnavas toDataURL tests.
2551
2552         * bindings/js/JSHTMLCanvasElementCustom.cpp:
2553         (WebCore::JSHTMLCanvasElement::toDataURL):
2554
2555 2012-04-15  Jia Pu  <jpu@apple.com>
2556
2557         Introducing DictationCommand.
2558         https://bugs.webkit.org/show_bug.cgi?id=83549
2559
2560         Reviewed by Hajime Morita.
2561
2562         No new tests. This patch doesn't introduce any change of new functionality. It prepares for
2563         additional changes which will inlude tests.
2564
2565         On OS X, alternative dictation results need to be stored as document markers. This patch introduces
2566         following changes to achieve this:
2567         1. Added DictationMarkDetails to store non-string type maker detail.
2568         2. Introduce DictationCommand, which is similor to TypingCommand, but allows inserting text with
2569           attached markers.
2570         3. Added Editor::insertDictatedText as interaface to WebKit and WebKit2.
2571         4. Added struct DictationAlternative to pass dictation related info from WebKit to WebCore.
2572
2573         Several fragments of code in TypingCommand can be also used by DictationCommand. So this patch
2574         introduced a new class, TextInsertionBaseCommand. It's a subclass of CompositeEditCommmand, and
2575         base class of both TypingCommand and DictationCommand.
2576
2577         This patch also extends InsertTextCommand class. Its constructor will take an TextInsertionMarkerSupplier
2578         object. After text is inserted to a node, InsertTextCommand would give marker supplier a chance to
2579         add document markers to the inserted text.
2580
2581         * CMakeLists.txt:
2582         * GNUmakefile.list.am:
2583         * Target.pri:
2584         * WebCore.exp.in:
2585         * WebCore.gypi:
2586         * WebCore.vcproj/WebCore.vcproj:
2587         * WebCore.xcodeproj/project.pbxproj:
2588         * dom/Document.cpp:
2589         (WebCore::eventTargetNodeForDocument): Moved this function from EventHandler so that it can be used
2590           by AlternativeTextController.
2591         (WebCore):
2592         * dom/Document.h:
2593         (WebCore):
2594         * dom/DocumentMarker.cpp:
2595         (WebCore::DocumentMarker::DocumentMarker): New constructor that takes a pointer to DocumentMarkerDetails object.
2596         (WebCore):
2597         * dom/DocumentMarker.h:
2598         (WebCore::DocumentMarker::AllMarkers::AllMarkers):
2599         (DocumentMarker):
2600         * dom/DocumentMarkerController.cpp:
2601         (WebCore::DocumentMarkerController::addMarker):
2602         (WebCore):
2603         * dom/DocumentMarkerController.h:
2604         (DocumentMarkerController):
2605         * dom/TextEvent.cpp:
2606         (WebCore::TextEvent::createForDictation):
2607         (WebCore):
2608         (WebCore::TextEvent::TextEvent):
2609         * dom/TextEvent.h: Added member variable for dictation alternatives.
2610         (TextEvent):
2611         (WebCore::TextEvent::isDictation):
2612         (WebCore::TextEvent::dictationAlternatives):
2613         * dom/TextEventInputType.h:
2614         * editing/AlternativeTextController.cpp:
2615         (WebCore::AlternativeTextController::AlternativeTextController):
2616         (WebCore::AlternativeTextController::insertDictatedText): Used by Editor::insertDictatedText().
2617         (WebCore):
2618         * editing/AlternativeTextController.h:
2619         (WebCore):
2620         (DictationMarkerDetails):
2621         (WebCore::DictationMarkerDetails::create):
2622         (WebCore::DictationMarkerDetails::originalText):
2623         (WebCore::DictationMarkerDetails::dictationContext):
2624         (WebCore::DictationMarkerDetails::DictationMarkerDetails):
2625         (AlternativeTextController):
2626         * editing/CompositeEditCommand.h:
2627         (WebCore::CompositeEditCommand::isDictationCommand):
2628         * editing/DictationAlternative.cpp: Added.
2629         (WebCore):
2630         (WebCore::DictationAlternative::DictationAlternative):
2631         * editing/DictationAlternative.h: Added. Data structure for passing dictation related data from WebKit to WebCore.
2632         (DictationAlternative):
2633         (WebCore):
2634         * editing/DictationCommand.cpp: Added.
2635         (WebCore):
2636         (DictationCommandLineOperation):
2637         (WebCore::DictationCommandLineOperation::DictationCommandLineOperation):
2638         (WebCore::DictationCommandLineOperation::operator()):
2639         (DictationMarkerSupplier):
2640         (WebCore::DictationMarkerSupplier::create):
2641         (WebCore::DictationMarkerSupplier::addMarkersToTextNode):
2642         (WebCore::DictationMarkerSupplier::DictationMarkerSupplier):
2643         (WebCore::DictationCommand::DictationCommand):
2644         (WebCore::DictationCommand::insertText):
2645         (WebCore::DictationCommand::doApply):
2646         (WebCore::DictationCommand::insertTextRunWithoutNewlines):
2647         (WebCore::DictationCommand::insertParagraphSeparator):
2648         (WebCore::DictationCommand::collectDictationAlternativesInRange):
2649         * editing/DictationCommand.h: Added.
2650         (WebCore):
2651         (DictationCommand):
2652         (WebCore::DictationCommand::isDictationCommand):
2653         (WebCore::DictationCommand::create):
2654         * editing/EditingAllInOne.cpp:
2655         * editing/Editor.cpp:
2656         (WebCore::Editor::insertDictatedText): Main interface that allows WebKit passes in text with attached dictation information.
2657         (WebCore):
2658         (WebCore::Editor::insertTextWithoutSendingTextEvent):
2659         (WebCore::Editor::updateMarkersForWordsAffectedByEditing):
2660         * editing/Editor.h:
2661         (Editor):
2662         * editing/InsertTextCommand.cpp:
2663         (WebCore::InsertTextCommand::InsertTextCommand):
2664         (WebCore):
2665         (WebCore::InsertTextCommand::doApply):
2666         * editing/InsertTextCommand.h:
2667         (WebCore):
2668         (TextInsertionMarkerSupplier): Interface to allow caller of InsertTextCommand to add document markers to inserted text.
2669         (WebCore::TextInsertionMarkerSupplier::~TextInsertionMarkerSupplier):
2670         (WebCore::TextInsertionMarkerSupplier::TextInsertionMarkerSupplier):
2671         (WebCore::InsertTextCommand::createWithMarkerSupplier):
2672         (InsertTextCommand):
2673         * editing/TextInsertionBaseCommand.cpp: Added. This class contains functions shared by TypingCommand and DictationCommand.
2674         (WebCore):
2675         (WebCore::TextInsertionBaseCommand::TextInsertionBaseCommand):
2676         (WebCore::TextInsertionBaseCommand::applyTextInsertionCommand):
2677         (WebCore::dispatchBeforeTextInsertedEvent):
2678         (WebCore::canAppendNewLineFeedToSelection):
2679         * editing/TextInsertionBaseCommand.h: Added.
2680         (WebCore):
2681         (TextInsertionBaseCommand):
2682         (WebCore::TextInsertionBaseCommand::~TextInsertionBaseCommand):
2683         (WebCore::forEachLineInString):
2684         * editing/TypingCommand.cpp:
2685         (TypingCommandLineOperation):
2686         (WebCore::TypingCommandLineOperation::TypingCommandLineOperation):
2687         (WebCore::TypingCommandLineOperation::operator()):
2688         (WebCore::TypingCommand::TypingCommand):
2689         (WebCore::TypingCommand::insertText):
2690         (WebCore::TypingCommand::insertLineBreak):
2691         (WebCore::TypingCommand::insertParagraphSeparator):
2692         * editing/TypingCommand.h:
2693         * page/EventHandler.cpp:
2694         * rendering/InlineTextBox.cpp:
2695         (WebCore::lineStyleForMarkerType):
2696         (WebCore::InlineTextBox::paintDocumentMarker): Renamed existing function to reflect new funcationality.
2697         (WebCore::InlineTextBox::paintDocumentMarkers):
2698         * rendering/InlineTextBox.h:
2699         (InlineTextBox):
2700         * testing/Internals.cpp:
2701         (WebCore::markerTypesFrom):
2702
2703 2012-04-15  James Robinson  <jamesr@chromium.org>
2704
2705         [chromium] LayerRendererChromium shouldn't know anything about CCLayerImpl
2706         https://bugs.webkit.org/show_bug.cgi?id=83415
2707
2708         Reviewed by Adrienne Walker.
2709
2710         This removes all knowledge of CCLayerImpl from LayerRendererChromium. The most significant move code-wise is
2711         moving the HUD up to live on CCLayerTreeHostImpl, since it's aware of the layer tree. This involves two changes.
2712         First, CCHeadsUpDisplay is in charge of populating a ManagedTexture but the actual drawing code now lives in
2713         LayerRendererChromium. Second, since we don't recreate CCLayerTreeHostImpl on a lost context, the font atlas
2714         ownership is much simpler. Now a CCFontAtlas is created on the main thread if needed and passed asynchronously
2715         to the CCHeadsUpDisplay which takes ownership of the atlas.
2716
2717         * platform/graphics/chromium/LayerRendererChromium.cpp:
2718         (WebCore::LayerRendererChromium::create):
2719         (WebCore::LayerRendererChromium::initialize):
2720         (WebCore::LayerRendererChromium::~LayerRendererChromium):
2721         (WebCore::LayerRendererChromium::beginDrawingFrame):
2722         (WebCore::LayerRendererChromium::drawHeadsUpDisplay):
2723         (WebCore):
2724         (WebCore::LayerRendererChromium::finishDrawingFrame):
2725         (WebCore::LayerRendererChromium::swapBuffers):
2726         * platform/graphics/chromium/LayerRendererChromium.h:
2727         (LayerRendererChromiumClient):
2728         (LayerRendererChromium):
2729         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
2730         (WebCore::CCHeadsUpDisplay::CCHeadsUpDisplay):
2731         (WebCore::CCHeadsUpDisplay::setFontAtlas):
2732         (WebCore):
2733         (WebCore::CCHeadsUpDisplay::enabled):
2734         (WebCore::CCHeadsUpDisplay::showPlatformLayerTree):
2735         (WebCore::CCHeadsUpDisplay::draw):
2736         (WebCore::CCHeadsUpDisplay::drawHudContents):
2737         * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
2738         (WebCore):
2739         (WebCore::CCHeadsUpDisplay::create):
2740         (CCHeadsUpDisplay):
2741         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2742         (WebCore::CCLayerTreeHost::initialize):
2743         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2744         (CCLayerTreeHost):
2745         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2746         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
2747         (WebCore::CCLayerTreeHostImpl::~CCLayerTreeHostImpl):
2748         (WebCore::CCLayerTreeHostImpl::canDraw):
2749         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
2750         (WebCore::CCLayerTreeHostImpl::prepareToDraw):
2751         (WebCore::CCLayerTreeHostImpl::drawLayers):
2752         (WebCore::CCLayerTreeHostImpl::swapBuffers):
2753         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
2754         (WebCore::CCLayerTreeHostImpl::setFullRootLayerDamage):
2755         (WebCore::CCLayerTreeHostImpl::layerTreeAsText):
2756         (WebCore):
2757         (WebCore::CCLayerTreeHostImpl::setFontAtlas):
2758         (WebCore::CCLayerTreeHostImpl::dumpRenderSurfaces):
2759         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2760         (CCLayerTreeHostImpl):
2761         (WebCore::CCLayerTreeHostImpl::rootLayer):
2762         * platform/graphics/chromium/cc/CCProxy.h:
2763         (WebCore):
2764         (CCProxy):
2765         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2766         (WebCore::CCSingleThreadProxy::initializeLayerRenderer):
2767         (WebCore::CCSingleThreadProxy::recreateContext):
2768         (WebCore::CCSingleThreadProxy::setFontAtlas):
2769         (WebCore):
2770         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
2771         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2772         (WebCore::CCThreadProxy::initializeLayerRendererOnImplThread):
2773         (WebCore::CCThreadProxy::setFontAtlas):
2774         (WebCore):
2775         (WebCore::CCThreadProxy::setFontAtlasOnImplThread):
2776         (WebCore::CCThreadProxy::recreateContextOnImplThread):
2777         * platform/graphics/chromium/cc/CCThreadProxy.h:
2778         (CCThreadProxy):
2779
2780 2012-04-15  Antti Koivisto  <antti@apple.com>
2781
2782         Capture CSS parser context
2783         https://bugs.webkit.org/show_bug.cgi?id=83998
2784
2785         Reviewed by Andreas Kling.
2786
2787         Currently the CSS parser calls to the Document and StyleSheetInternal objects to get settings, base URL etc.
2788         The required information should be passed in on parser construction instead. The parser should not need to
2789         know about the document at all.
2790         
2791         The patch adds CSSParserContext struct that captures the parsing context. StyleSheetInternal saves the
2792         parsing context and reuses it for any further parsing.
2793         
2794         If the same stylesheet source is parsed with an identical context then the resulting stylesheet structure will
2795         be identical. This will allow sharing parsed stylesheets in the future.
2796
2797         * css/CSSGrammar.y:
2798         * css/CSSImportRule.cpp:
2799         (WebCore::StyleRuleImport::setCSSStyleSheet):
2800         * css/CSSMediaRule.cpp:
2801         (WebCore::CSSMediaRule::insertRule):
2802         * css/CSSPageRule.cpp:
2803         (WebCore::CSSPageRule::setSelectorText):
2804         * css/CSSParser.cpp:
2805         (WebCore):
2806         (WebCore::strictCSSParserContext):
2807         (WebCore::CSSParserContext::CSSParserContext):
2808         (WebCore::CSSParser::CSSParser):
2809         (WebCore::CSSParser::parseKeyframeRule):
2810         (WebCore::CSSParser::parseValue):
2811         (WebCore::CSSParser::parseSelector):
2812         (WebCore::CSSParser::completeURL):
2813         (WebCore::CSSParser::parseContent):
2814         (WebCore::CSSParser::parseAttr):
2815         (WebCore::CSSParser::parseFillImage):
2816         (WebCore::CSSParser::parseFontFaceSrcURI):
2817         (WebCore::CSSParser::parseFontFaceSrc):
2818         (WebCore::CSSParser::parseBorderImage):
2819         (WebCore::CSSParser::parseImageSet):
2820         (WebCore::CSSParser::parseCustomFilter):
2821         (WebCore::CSSParser::parseFilter):
2822         (WebCore::CSSParser::cssRegionsEnabled):
2823         (WebCore::CSSParser::parseFlowThread):
2824         (WebCore::CSSParser::createMediaRule):
2825         (WebCore::CSSParser::createStyleRule):
2826         (WebCore::CSSParser::createFontFaceRule):
2827         (WebCore::CSSParser::createPageRule):
2828         (WebCore::CSSParser::createKeyframe):
2829         * css/CSSParser.h:
2830         (CSSParser):
2831         (WebCore::CSSParser::inStrictMode):
2832         (WebCore::CSSParser::inQuirksMode):
2833         (WebCore::CSSParser::validUnit):
2834         * css/CSSParserMode.h:
2835         (WebCore):
2836         (CSSParserContext):
2837         * css/CSSRule.h:
2838         (WebCore::CSSRule::parserContext):
2839         (CSSRule):
2840         * css/CSSStyleRule.cpp:
2841         (WebCore::CSSStyleRule::setSelectorText):
2842         * css/CSSStyleSheet.cpp:
2843         (WebCore::StyleSheetInternal::StyleSheetInternal):
2844         (WebCore::StyleSheetInternal::parseString):
2845         (WebCore::StyleSheetInternal::parseStringAtLine):
2846         (WebCore):
2847         (WebCore::StyleSheetInternal::updateBaseURL):
2848         (WebCore::StyleSheetInternal::completeURL):
2849         (WebCore::CSSStyleSheet::insertRule):
2850         * css/CSSStyleSheet.h:
2851         (StyleSheetInternal):
2852         (WebCore::StyleSheetInternal::parserContext):
2853         (WebCore::StyleSheetInternal::charset):
2854         (WebCore::StyleSheetInternal::setFinalURL):
2855         (WebCore::StyleSheetInternal::baseURL):
2856         * css/CSSValuePool.cpp:
2857         * css/StylePropertySet.cpp:
2858         (WebCore::StylePropertySet::parseDeclaration):
2859         * css/WebKitCSSKeyframesRule.cpp:
2860         (WebCore::WebKitCSSKeyframesRule::insertRule):
2861         * dom/Document.cpp:
2862         (WebCore::Document::webkitGetFlowByName):
2863         (WebCore::Document::pageUserSheet):
2864         (WebCore::Document::pageGroupUserSheets):
2865         * dom/Element.cpp:
2866         (WebCore::Element::webkitMatchesSelector):
2867         * dom/Node.cpp:
2868         (WebCore::Node::querySelector):
2869         (WebCore::Node::querySelectorAll):
2870         * dom/ProcessingInstruction.cpp:
2871         (WebCore::ProcessingInstruction::parseStyleSheet):
2872         * dom/StyleElement.cpp:
2873         (WebCore::StyleElement::createSheet):
2874         * html/HTMLLinkElement.cpp:
2875         (WebCore::HTMLLinkElement::setCSSStyleSheet):
2876         * html/shadow/ContentSelectorQuery.cpp:
2877         (WebCore::ContentSelectorQuery::ContentSelectorQuery):
2878         * inspector/InspectorStyleSheet.cpp:
2879         (WebCore::InspectorStyle::setPropertyText):
2880         (WebCore::InspectorStyleSheet::reparseStyleSheet):
2881         (WebCore::InspectorStyleSheet::ensureSourceData):
2882         (WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
2883
2884 2012-04-15  Noel Gordon  <noel.gordon@gmail.com>
2885
2886         [Cairo] Separate image encoding from dataURL construction
2887         https://bugs.webkit.org/show_bug.cgi?id=83975
2888
2889         Reviewed by Martin Robinson.
2890
2891         Remove the implicit assumption that a dataURL is the only desired output format
2892         of the image encoding phase.
2893
2894         No new tests. Covered by existing canvas toDataURL tests.
2895
2896         * platform/graphics/cairo/ImageBufferCairo.cpp:
2897         (WebCore::writeFunction): Rename closure to output.
2898         (WebCore::encodeImage): Output the encoded image to the provided Vector<char>.
2899         PNG format is only supported per the Cairo encoding MIMETypeRegistry.
2900         (WebCore):
2901         (WebCore::ImageBuffer::toDataURL): Refactor to use encodeImage().
2902
2903 2012-04-15  Yuta Kitamura  <yutak@chromium.org>
2904
2905         Leak in WebSocketChannel with workers/worker-reload.html (part 2)
2906         https://bugs.webkit.org/show_bug.cgi?id=83749
2907
2908         Reviewed by David Levin.
2909
2910         Second attempt to remove leaks around WorkerThreadableWebSocketChannel.
2911
2912         No new tests, as this patch does not impose any functional change.
2913
2914         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
2915         (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
2916         (WebCore::ThreadableWebSocketChannelClientWrapper::failedWebSocketChannelCreation):
2917         (WebCore::ThreadableWebSocketChannelClientWrapper::setFailedWebSocketChannelCreation):
2918         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
2919         Add a boolean flag indicating whether Bridge::initialize() has exited without receiving
2920         a pointer to the peer object.
2921         * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
2922         (WebCore::WorkerThreadableWebSocketChannel::WorkerContextDidInitializeTask::create):
2923         (WebCore::WorkerThreadableWebSocketChannel::WorkerContextDidInitializeTask::WorkerContextDidInitializeTask):
2924         (WebCore::WorkerThreadableWebSocketChannel::WorkerContextDidInitializeTask::performTask):
2925         Kick mainThreadDestroy() to delete the peer if the bridge has failed to receive
2926         a pointer to the peer (waitForMethodCompletion() exited due to message queue's
2927         termination).
2928         (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
2929         (WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize):
2930         * Modules/websockets/WorkerThreadableWebSocketChannel.h:
2931         (WorkerThreadableWebSocketChannel):
2932         Make WorkerContextDidInitializeTask an inner class of WorkerThreadableWebSocketChannel
2933         so it can refer WorkerThreadableWebSocketChannel's static member function (mainThreadDestroy()).
2934
2935 2012-04-14  Emil A Eklund  <eae@chromium.org>
2936
2937         Fix pixelSnapping for CalendarPicker, MediaControl and ScrollbarPart
2938         https://bugs.webkit.org/show_bug.cgi?id=83929
2939
2940         Reviewed by Eric Seidel.
2941
2942         Update CalendarPickerElement and MediaControlElements to use
2943         pixelSnappedSize in preparation for turning on subpixel support.
2944         Update RenderScrollbarPart to pixel snap rect before painting to ensure
2945         that it is painted on device pixel boundaries.
2946
2947         No new tests, no change in functionality.
2948
2949         * html/shadow/CalendarPickerElement.cpp:
2950         (WebCore::CalendarPickerElement::openPopup):
2951         * html/shadow/MediaControlElements.cpp:
2952         (WebCore::RenderMediaVolumeSliderContainer::layout):
2953         * rendering/RenderScrollbarPart.cpp:
2954         (WebCore::RenderScrollbarPart::paintIntoRect):
2955
2956 2012-04-14  Kent Tamura  <tkent@chromium.org>
2957
2958         Day of week labels are wrong if WebCore::firstDayOfWeek() is not 0
2959         https://bugs.webkit.org/show_bug.cgi?id=83990
2960
2961         Reviewed by Kentaro Hara.
2962
2963         We passed the "weekStartDay" property value as a
2964         string. CalendarPickerElement::writeDocument() created:
2965             weekStartDay: "1",
2966         and the JavaScript code used it in the following code:
2967             dayLabels[(weekStartDay + i) % 7]
2968         If weekStartDay was "1", the expression (weekStartDay + i)
2969         produced "10", "11", "12", ... We expected "1", "2", "3", ...
2970
2971         We need to pass the "weekStartDay" property as a number.
2972
2973         No new tests because we have no ways to test this for now. We'll
2974         introduce tests for the calendar picker later.
2975
2976         * html/shadow/CalendarPickerElement.cpp:
2977         (WebCore::addProperty): Add addProperty() function for a number.
2978         (WebCore::CalendarPickerElement::writeDocument):
2979         Pass a number, not a serialized number.
2980
2981 2012-04-14  Joe Thomas  <joethomas@motorola.com>
2982
2983         Viewport-percentage Length units does not work for Replaced elements size
2984         https://bugs.webkit.org/show_bug.cgi?id=83425
2985
2986         Reviewed by Antti Koivisto.
2987
2988         Added the support for viewport-percentage length units while calculating the width/height of replaced elements.
2989
2990         Tests: css3/viewport-percentage-lengths/viewport-percentage-image-size.html
2991
2992         * platform/Length.h:
2993         (WebCore::Length::isSpecified):
2994         * rendering/RenderBox.cpp:
2995         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
2996
2997 2012-04-14  Joe Thomas  <joethomas@motorola.com>
2998
2999         CSSStyleDeclaration.getPropertyValue() for 'border-radius' returns null when value is set
3000         https://bugs.webkit.org/show_bug.cgi?id=80736
3001
3002         Reviewed by Antti Koivisto.
3003
3004         Added support for fetching the value of 'border-radius' CSS property which was missing.
3005
3006         Test: fast/css/border-radius-property-value.html
3007
3008         * css/StylePropertySet.cpp:
3009         (WebCore::StylePropertySet::getPropertyValue):
3010
3011 2012-04-14  David Hyatt  <hyatt@apple.com>
3012
3013         https://bugs.webkit.org/show_bug.cgi?id=83826
3014         
3015         Wrong Font code path was chosen after r114032. The TextRun constructor has an additional argument that
3016         needs to be included if rounding hacks are mentioned.
3017
3018         Reviewed by Dan Bernstein.
3019
3020         * html/canvas/CanvasRenderingContext2D.cpp:
3021         (WebCore::CanvasRenderingContext2D::drawTextInternal):
3022         * rendering/RenderListBox.cpp:
3023         (WebCore::RenderListBox::paintItemForeground):
3024         * rendering/break_lines.cpp:
3025         (WebCore::nextBreakablePosition):
3026
3027 2012-04-14  Noel Gordon  <noel.gordon@gmail.com>
3028
3029         [Cairo] ImageBuffer::toDataURL(): improve error handling, add mimeType ASSERTs
3030         https://bugs.webkit.org/show_bug.cgi?id=83569
3031
3032         Reviewed by Eric Seidel.
3033
3034         No new tests. Covered by exiting fast/canvas/*toDataURL* tests.
3035
3036         * platform/graphics/cairo/ImageBufferCairo.cpp:
3037         (WebCore::writeFunction): Return write success or failure with the appropriate
3038         cairo status code per http://cairographics.org/manual/cairo-PNG-Support.html
3039         (WebCore::ImageBuffer::toDataURL): Add mimeType ASSERT()s. <canvas> ensures that
3040         a valid mimeType (supported by the port) is sent to toDataURL() calls. Check for
3041         encoding failure and return "data:," if so.
3042
3043 2012-04-13  David Reveman  <reveman@chromium.org>
3044
3045         [Chromium] Avoid unnecessary full tile updates for checkerboard tiles.
3046         https://bugs.webkit.org/show_bug.cgi?id=83804
3047
3048         Reviewed by James Robinson.
3049
3050         Cleanup code that determines if we need to use a buffered update and
3051         avoid buffering of tiles that are not in use by the impl thread.
3052
3053         Tests: CCLayerTreeHostTestAtomicCommitWithPartialUpdate.runMultiThread
3054                TiledLayerChromiumTest.partialUpdates
3055
3056         * platform/graphics/chromium/TiledLayerChromium.cpp:
3057         (UpdatableTile):
3058         (WebCore::UpdatableTile::UpdatableTile):
3059         (WebCore::TiledLayerChromium::pushPropertiesTo):
3060         (WebCore::TiledLayerChromium::tileOnlyNeedsPartialUpdate):
3061         (WebCore::TiledLayerChromium::tileNeedsBufferedUpdate):
3062         (WebCore::TiledLayerChromium::updateTiles):
3063         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3064         (WebCore::CCLayerTreeHost::bufferedUpdates):
3065         (WebCore):
3066         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3067         (CCLayerTreeHost):
3068
3069 2012-04-13  Dana Jansens  <danakj@chromium.org>
3070
3071         [chromium] Cleanup texture memory eviction when LayerTreeHost becomes invisible
3072         https://bugs.webkit.org/show_bug.cgi?id=83899
3073
3074         Reviewed by Adrienne Walker.
3075
3076         When a LTH becomes invisible, the texture eviction is spread out across
3077         two different functions and is not entirely clear. We move all the logic
3078         together into a single place in didBecomeInvisibleOnImplThread() and
3079         make the consequences of the current code more clear.
3080
3081         Covered by existing tests.
3082
3083         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3084         (WebCore::CCLayerTreeHost::deleteContentsTexturesOnImplThread):
3085         (WebCore::CCLayerTreeHost::setVisible):
3086         (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread):
3087
3088 2012-04-13  Sheriff Bot  <webkit.review.bot@gmail.com>
3089
3090         Unreviewed, rolling out r114036.
3091         http://trac.webkit.org/changeset/114036
3092         https://bugs.webkit.org/show_bug.cgi?id=83969
3093
3094         Breaks gmail.com causing it to never finish loading (Requested
3095         by danakj on #webkit).
3096
3097         * bindings/scripts/CodeGeneratorJS.pm:
3098         (GenerateHeader):
3099         (GenerateImplementation):
3100         * bindings/scripts/CodeGeneratorV8.pm:
3101         (GenerateNamedConstructorCallback):
3102         (GenerateImplementation):
3103         * bindings/scripts/IDLAttributes.txt:
3104         * bindings/scripts/test/JS/JSTestObj.cpp:
3105         (WebCore::JSTestObj::createPrototype):
3106         * bindings/scripts/test/JS/JSTestObj.h:
3107         * bindings/scripts/test/TestObj.idl:
3108         * bindings/scripts/test/V8/V8Float64Array.cpp:
3109         (WebCore):
3110         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
3111         (WebCore):
3112         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
3113         (WebCore):
3114         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
3115         (WebCore):
3116         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
3117         (WebCore):
3118         * bindings/scripts/test/V8/V8TestInterface.cpp:
3119         (WebCore):
3120         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
3121         (WebCore):
3122         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
3123         (WebCore):
3124         * bindings/scripts/test/V8/V8TestNode.cpp:
3125         (WebCore):
3126         * bindings/scripts/test/V8/V8TestObj.cpp:
3127         (WebCore):
3128         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
3129         (WebCore):
3130         * bindings/v8/NPV8Object.cpp:
3131         (WebCore::npObjectTypeInfo):
3132         * bindings/v8/V8BindingPerContextData.cpp:
3133         (WebCore::V8BindingPerContextData::init):
3134         (WebCore::V8BindingPerContextData::createWrapperFromCacheSlowCase):
3135         (WebCore::V8BindingPerContextData::constructorForTypeSlowCase):
3136         * bindings/v8/V8BindingPerContextData.h:
3137         (V8BindingPerContextData):
3138         * bindings/v8/V8HiddenPropertyName.h:
3139         (WebCore):
3140         * bindings/v8/WrapperTypeInfo.h:
3141         (WrapperTypeInfo):
3142         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
3143         (WebCore):
3144         * dom/NodeList.idl:
3145
3146 2012-04-13  Alexandre Elias  <aelias@google.com>
3147
3148         [chromium] Add null pointer check to animatePageScale
3149         https://bugs.webkit.org/show_bug.cgi?id=83940
3150
3151         Reviewed by James Robinson.
3152
3153         Add null pointer check to startPageScaleAnimation.
3154
3155         If the root scroll layer goes away in the middle of a page scale
3156         animation, there can be a null pointer access here.
3157
3158         No new tests.
3159
3160         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3161         (WebCore::CCLayerTreeHostImpl::animatePageScale):
3162
3163 2012-04-13  Dana Jansens  <danakj@chromium.org>
3164
3165         [chromium] Replicas should be included in the computed occlusion
3166         https://bugs.webkit.org/show_bug.cgi?id=82262
3167
3168         Reviewed by Adrienne Walker.
3169
3170         When merging a surface's occlusion up to its target, make a copy of it
3171         where the replica will be as well, and make sure that occlusion from a
3172         RenderSurface does not leave its clipRect.
3173
3174         Unit test: CCOcclusionTrackerTestReplicaDoesOcclude
3175                    CCOcclusionTrackerTestReplicaWithClipping
3176                    CCOcclusionTrackerTestSurfaceChildOfSurface
3177
3178         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
3179         (WebCore::RenderSurfaceChromium::hasReplica):
3180         (WebCore):
3181         * platform/graphics/chromium/RenderSurfaceChromium.h:
3182         (RenderSurfaceChromium):
3183         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
3184         (WebCore::transformSurfaceOpaqueRegion):
3185         (WebCore::::leaveToTargetRenderSurface):
3186
3187 2012-04-13  Raymond Liu  <raymond.liu@intel.com>
3188
3189         AudioContext createChannelMerger() method should have optional argument for number of inputs.
3190         https://bugs.webkit.org/show_bug.cgi?id=83759
3191
3192         Reviewed by Chris Rogers.
3193
3194         Check https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html for the optional argument.
3195
3196         Test: webaudio/audiochannelmerger-basic.html
3197
3198         * Modules/webaudio/AudioChannelMerger.cpp:
3199         (WebCore):
3200         (WebCore::AudioChannelMerger::create):
3201         (WebCore::AudioChannelMerger::AudioChannelMerger):
3202         * Modules/webaudio/AudioChannelMerger.h:
3203         (AudioChannelMerger):
3204         * Modules/webaudio/AudioContext.cpp:
3205         (WebCore::AudioContext::createChannelMerger):
3206         (WebCore):
3207         * Modules/webaudio/AudioContext.h:
3208         (AudioContext):
3209         * Modules/webaudio/AudioContext.idl:
3210
3211 2012-04-13  Dana Jansens  <danakj@chromium.org>
3212
3213         [chromium] Remove viewport memory restrictions
3214         https://bugs.webkit.org/show_bug.cgi?id=83316
3215
3216         Reviewed by Adrienne Walker.
3217
3218         We remove the memory restriction on web pages based on viewport size
3219         on desktop. This is causing pages that have complex use of layers to
3220         end up hitting our memory limits, and moreso when the window is small.
3221         Page complexity is not really a function of the viewport size.
3222
3223         We drop the mininum memory limit entirely, and just evict all
3224         unprotected textures instead.
3225
3226         Covered by existing tests.
3227
3228         * platform/graphics/chromium/TextureManager.cpp:
3229         (WebCore::TextureManager::highLimitBytes):
3230         (WebCore::TextureManager::reclaimLimitBytes):
3231         * platform/graphics/chromium/TextureManager.h:
3232         (TextureManager):
3233         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3234         (WebCore::CCLayerTreeHost::beginCommitOnImplThread):
3235         (WebCore::CCLayerTreeHost::setVisible):
3236         (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread):
3237         (WebCore::CCLayerTreeHost::updateLayers):
3238
3239 2012-04-13  Ken Buchanan  <kenrb@chromium.org>
3240
3241         Optimize tracking of intruding floats being removed from RenderBlock during layout
3242         https://bugs.webkit.org/show_bug.cgi?id=82928
3243
3244         Reviewed by David Hyatt.
3245
3246         Performance tweaks in RenderBlock layout as a follow up to r112935.
3247
3248         * rendering/RenderBlock.cpp:
3249         (WebCore::RenderBlock::clearFloats):
3250
3251 2012-04-13  Mihnea Ovidenie  <mihnea@adobe.com>
3252
3253         [CSSRegions]Implement NamedFlow::contentNodes attribute
3254         https://bugs.webkit.org/show_bug.cgi?id=80134
3255
3256         Reviewed by David Hyatt.
3257
3258         The named flow content nodes collection contains those nodes with webkitFlowInto property set to 'flow'.
3259         In the list, the nodes are placed in document order. Nodes with display:none are also part of the list.
3260         The list of nodes is returned as a static node list.
3261
3262         The content nodes are stored in RenderNamedFlowThread. The content nodes are added to the list in NodeRenderingContext::moveToFlowThreadIfNeeded
3263         and removed from the list in Element::detach. When an element -webkit-flow-into property is changed, the element is detached and attached.
3264         I have also added a bit in NodeFlags to mark that an element is part of a named flow (and the corresponding inNamedFlow/setInNamedFlow/clearInNamedFlow functions).
3265
3266         Test: fast/regions/webkit-named-flow-content-nodes.html
3267
3268         * dom/Document.cpp:
3269         (WebCore::Document::webkitGetFlowByName):
3270         * dom/Document.h:
3271         * dom/Element.cpp:
3272         (WebCore::Element::detach):
3273         * dom/Node.h:
3274         (WebCore::Node::inNamedFlow):
3275         (WebCore::Node::setInNamedFlow):
3276         (WebCore::Node::clearInNamedFlow):
3277         (Node):
3278         * dom/NodeRenderingContext.cpp:
3279         (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
3280         * dom/WebKitNamedFlow.cpp:
3281         (WebCore::WebKitNamedFlow::contentNodes):
3282         (WebCore):
3283         * dom/WebKitNamedFlow.h:
3284         (WebKitNamedFlow):
3285         * dom/WebKitNamedFlow.idl:
3286         * rendering/FlowThreadController.cpp:
3287         (WebCore::FlowThreadController::registerNamedFlowContentNode):
3288         (WebCore):
3289         (WebCore::FlowThreadController::unregisterNamedFlowContentNode):
3290         * rendering/FlowThreadController.h:
3291         (FlowThreadController):
3292         * rendering/RenderNamedFlowThread.cpp:
3293         (WebCore):
3294         (WebCore::RenderNamedFlowThread::registerNamedFlowContentNode):
3295         (WebCore::RenderNamedFlowThread::unregisterNamedFlowContentNode):
3296         * rendering/RenderNamedFlowThread.h:
3297         (WebCore):
3298         (RenderNamedFlowThread):
3299         (WebCore::RenderNamedFlowThread::contentNodes):
3300         (WebCore::RenderNamedFlowThread::hasContentNode):
3301
3302 2012-04-13  Jessie Berlin  <jberlin@apple.com>
3303
3304         Remove the calls to CRASH() from ResourceLoader.cpp.
3305         https://bugs.webkit.org/show_bug.cgi?id=83962
3306
3307         Reviewed by Alexey Proskuryakov.
3308
3309         They were added in r91316 to aid debugging for the issue fixed in r105556 and r106130.
3310
3311         * loader/ResourceLoader.cpp:
3312         (WebCore::ResourceLoader::willSendRequest):
3313         (WebCore::ResourceLoader::didSendData):
3314         (WebCore::ResourceLoader::didReceiveResponse):
3315         (WebCore::ResourceLoader::didReceiveData):
3316         (WebCore::ResourceLoader::didFinishLoading):
3317         (WebCore::ResourceLoader::didFail):
3318         (WebCore::ResourceLoader::wasBlocked):
3319         (WebCore::ResourceLoader::cannotShowURL):
3320         (WebCore::ResourceLoader::shouldUseCredentialStorage):
3321         (WebCore::ResourceLoader::willCacheResponse):
3322
3323 2012-04-13  Xiaomei Ji  <xji@chromium.org>
3324
3325         REGRESSION(r102190) [chromium] text rendering (font and font size) in some Arabic/Persian page is wrong
3326         when using certain fonts
3327         https://bugs.webkit.org/show_bug.cgi?id=83523
3328
3329         Reviewed by Kent Tamura.
3330
3331         Revert r102190.
3332         Convert characters being treatAsSpace to white space. 
3333
3334         * platform/graphics/chromium/UniscribeHelper.cpp:
3335         (WebCore::UniscribeHelper::fillRuns):
3336         (WebCore::UniscribeHelper::adjustSpaceAdvances):
3337
3338 2012-04-13  Timothy Hatcher  <timothy@apple.com>
3339
3340         Change how the Web Insector is installed on Mac builds.
3341
3342         <rdar://problem/10857918>
3343
3344         Reviewed by Mark Rowe.
3345
3346         * WebCore.xcodeproj/project.pbxproj: Updated Copy Inspector Resources
3347         and Streamline Inspector Source build phases.
3348
3349 2012-04-13  Jer Noble  <jer.noble@apple.com>
3350
3351         Video at apple.com gets standard controls in addition to custom controls after returning from full screen
3352         https://bugs.webkit.org/show_bug.cgi?id=83939
3353
3354         Reviewed by Eric Carlson.
3355
3356         No new tests; DRT and WKTR don't have the infrastructure to test full-screen animation related bugs.
3357
3358         Instead of asking the media element whether it is in full screen or not, rely on when the media root element
3359         was told that it enteredFullscreen() or exitedFullscreen(), which may occur at a different time than the
3360         media element due to animations.
3361
3362         * html/shadow/MediaControlRootElement.cpp:
3363         (WebCore::MediaControlRootElement::reset):
3364         (WebCore::MediaControlRootElement::playbackStarted):
3365         (WebCore::MediaControlRootElement::enteredFullscreen):
3366         (WebCore::MediaControlRootElement::exitedFullscreen):
3367         (WebCore::MediaControlRootElement::defaultEventHandler):
3368         (WebCore::MediaControlRootElement::startHideFullscreenControlsTimer):
3369         (WebCore::MediaControlRootElement::hideFullscreenControlsTimerFired):
3370         * html/shadow/MediaControlRootElement.h:
3371         (MediaControlRootElement): Added m_isFullscreen;
3372
3373 2012-04-13  Jer Noble  <jer.noble@apple.com>
3374
3375         fullscreen/video-controls-drag.html failing on Mac
3376         https://bugs.webkit.org/show_bug.cgi?id=81176
3377
3378         Reviewed by Eric Carlson.
3379
3380         No new tests.  Fixes fullscreen/video-controls-drag.html.
3381
3382         Regressed in r110409.  When the -webkit-media-controls-panel were changed
3383         from position:absolute to position:relative, this broke dragging of the 
3384         controls in fullscreen, which relies on the panel being absolutely positioned
3385         to do its drag positioning. Change the way drag positioning is calculated to
3386         accommodate position:relative.
3387
3388         * css/fullscreenQuickTime.css:
3389         (video:-webkit-full-screen::-webkit-media-controls-panel): Instead of bottom:50px,
3390             use margin-bottom:50px to push panel up from the bottom of the screen.
3391         * html/shadow/MediaControlElements.cpp:
3392         (WebCore::MediaControlPanelElement::startDrag): Do not ask for the current renderer location.
3393         (WebCore::MediaControlPanelElement::continueDrag): Use the delta between the event locations
3394             only to calculate the new panel position.
3395         * html/shadow/MediaControlElements.h:
3396
3397 2012-04-13  Simon Fraser  <simon.fraser@apple.com>
3398
3399         Compositing layers not updated after scroll in WebKit1
3400         https://bugs.webkit.org/show_bug.cgi?id=83945
3401
3402         Reviewed by James Robinson.
3403         
3404         Fix the WebKit1 code path to correctly update compositing layers
3405         after a scroll, by calling updateFixedElementsAfterScrolling() from
3406         scrollPositionChangedViaPlatformWidget().
3407
3408         Covered by existing tests.
3409
3410         * page/FrameView.cpp:
3411         (WebCore::FrameView::scrollPositionChangedViaPlatformWidget):
3412
3413 2012-04-13  Dean Jackson  <dino@apple.com>
3414
3415         Don't process filters if the input region is exceptionally large.
3416         https://bugs.webkit.org/show_bug.cgi?id=83317
3417
3418         Reviewed by Simon Fraser.
3419
3420         An extremely large element causes problems with filters, either by
3421         taking too long to compute the output or using too much memory. The
3422         filter engine already has some constants for maximum expected size.
3423         Make sure the render tree checks them before deciding to apply
3424         effects.
3425
3426         Tests: css3/filters/huge-region-composited.html
3427                css3/filters/huge-region.html
3428
3429         * platform/graphics/filters/FilterEffect.cpp:
3430         (WebCore::FilterEffect::apply):
3431         * rendering/FilterEffectRenderer.cpp:
3432         (WebCore):
3433         (WebCore::isFilterSizeValid):
3434         (WebCore::FilterEffectRenderer::build):
3435         (WebCore::FilterEffectRenderer::updateBackingStore):
3436         (WebCore::FilterEffectRendererHelper::beginFilterEffect):
3437         * rendering/FilterEffectRenderer.h:
3438         (FilterEffectRenderer):
3439         * rendering/RenderLayer.cpp:
3440         (WebCore::RenderLayer::updateOrRemoveFilterEffect):
3441
3442 2012-04-13  Anna Cavender  <annacc@chromium.org>
3443
3444         Queue the cuechange event on HTMLTrackElement for proper sorting.
3445         https://bugs.webkit.org/show_bug.cgi?id=83858
3446
3447         Reviewed by Eric Carlson.
3448
3449         No new tests. Updates to media/track/track-cues-cuechange.html and
3450         media/track/track-mode.html
3451
3452         * html/HTMLMediaElement.cpp:
3453         (WebCore::HTMLMediaElement::updateActiveTextTrackCues):
3454             Add HTMLTrackElement's cuechange event to the event queue rather than 
3455             firing it synchronously.
3456         * html/track/LoadableTextTrack.cpp:
3457             Remove fireCueChangeEvent() as it is no longer used.
3458         * html/track/LoadableTextTrack.h:
3459             Ditto.