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