b55983edffdd4322134f7dc9eb0a85e1d7acc0be
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-04-23  Michael Nordman  <michaeln@google.com>
2
3         [chromium] DomStorage event handling mods.
4         https://bugs.webkit.org/show_bug.cgi?id=84387
5
6         Add a few simple inline getters to allow the source Document of a storage
7         event to be identified given a pointer to the source StorageArea so those
8         Documents can be excluded by the event dispatching logic.
9
10         Reviewed by Dimitri Glazkov.
11
12         No new tests. No new functionality or change in behavior.
13
14         * page/DOMWindow.h:
15         (WebCore::DOMWindow::optionalSessionStorage): simple inline getter to avoid construction where possible
16         (WebCore::DOMWindow::optionalLocalStorage): ditto
17         * storage/Storage.h:
18         (WebCore::Storage::area): simple inline getter
19
20 2012-04-23  Kenneth Russell  <kbr@google.com>
21
22         Change ImageData to reference Uint8ClampedArray rather than CanvasPixelArray
23         https://bugs.webkit.org/show_bug.cgi?id=73011
24
25         Reviewed by Oliver Hunt.
26
27         Changed ImageData to contain Uint8ClampedArray instead of ByteArray
28         per current HTML5 spec.
29
30         In order to avoid introducing large data copies, it was necessary to
31         switch a few other places in WebKit to use Uint8ClampedArray at the
32         same time, most notably the FilterEffect implementation, portions of
33         ImageBuffer, and a couple of places in the image encoders.
34
35         Note that the change in method name from "get" to "item" occurred
36         because JSC's autogenerated indexed getters reference a method
37         called "item". If desired, a convenience method could be
38         introduced to avoid the renamings in the FilterEffect classes.
39
40         With these changes, ByteArray and some custom code in JavaScriptCore
41         actually become unreferenced, and can be deleted. This deletion will
42         be done separately in Bug 83655, to keep the size of this patch
43         manageable.
44
45         Test: fast/canvas/imagedata-contains-uint8clampedarray.html
46
47         * bindings/js/JSImageDataCustom.cpp:
48         (WebCore::toJS):
49         * bindings/js/SerializedScriptValue.cpp:
50         (WebCore::CloneSerializer::dumpIfTerminal):
51         (WebCore::CloneDeserializer::readTerminal):
52         * bindings/v8/SerializedScriptValue.cpp:
53         * bindings/v8/custom/V8ImageDataCustom.cpp:
54         (WebCore::toV8):
55         * bridge/qt/qt_pixmapruntime.cpp:
56         (JSC::Bindings::QtPixmapToImageDataMethod::invoke):
57         * html/ImageData.cpp:
58         (WebCore::ImageData::create):
59         (WebCore::ImageData::ImageData):
60         * html/ImageData.h:
61         (ImageData):
62         (WebCore::ImageData::data):
63         * html/ImageData.idl:
64         * html/canvas/CanvasRenderingContext2D.cpp:
65         (WebCore::createEmptyImageData):
66         (WebCore::CanvasRenderingContext2D::getImageData):
67         (WebCore::CanvasRenderingContext2D::putImageData):
68         * platform/graphics/GraphicsContext3D.cpp:
69         (WebCore::GraphicsContext3D::extractImageData):
70         * platform/graphics/ImageBuffer.cpp:
71         (WebCore::ImageBuffer::genericConvertToLuminanceMask):
72         * platform/graphics/ImageBuffer.h:
73         * platform/graphics/ShadowBlur.cpp:
74         (WebCore::ShadowBlur::blurShadowBuffer):
75         * platform/graphics/cairo/ImageBufferCairo.cpp:
76         (WebCore::getImageData):
77         (WebCore::ImageBuffer::getUnmultipliedImageData):
78         (WebCore::ImageBuffer::getPremultipliedImageData):
79         (WebCore::ImageBuffer::putByteArray):
80         * platform/graphics/cg/ImageBufferCG.cpp:
81         (WebCore::ImageBuffer::getUnmultipliedImageData):
82         (WebCore::ImageBuffer::getPremultipliedImageData):
83         (WebCore::ImageBuffer::putByteArray):
84         (WebCore::ImageBuffer::toDataURL):
85         (WebCore::ImageDataToDataURL):
86         * platform/graphics/cg/ImageBufferDataCG.cpp:
87         (WebCore::ImageBufferData::getData):
88         (WebCore::ImageBufferData::putData):
89         * platform/graphics/cg/ImageBufferDataCG.h:
90         (ImageBufferData):
91         * platform/graphics/filters/FEBlend.cpp:
92         (WebCore::FEBlend::platformApplySoftware):
93         * platform/graphics/filters/FEColorMatrix.cpp:
94         (WebCore::effectType):
95         (WebCore::FEColorMatrix::platformApplySoftware):
96         * platform/graphics/filters/FEComponentTransfer.cpp:
97         (WebCore::FEComponentTransfer::platformApplySoftware):
98         * platform/graphics/filters/FEComposite.cpp:
99         (WebCore::FEComposite::platformArithmeticSoftware):
100         (WebCore::FEComposite::platformApplySoftware):
101         * platform/graphics/filters/FEComposite.h:
102         * platform/graphics/filters/FEConvolveMatrix.cpp:
103         (WebCore::setDestinationPixels):
104         (WebCore::FEConvolveMatrix::fastSetInteriorPixels):
105         (WebCore::FEConvolveMatrix::fastSetOuterPixels):
106         (WebCore::FEConvolveMatrix::platformApplySoftware):
107         * platform/graphics/filters/FEConvolveMatrix.h:
108         (PaintingData):
109         * platform/graphics/filters/FECustomFilter.cpp:
110         (WebCore::FECustomFilter::platformApplySoftware):
111         (WebCore::FECustomFilter::bindProgramAndBuffers):
112         * platform/graphics/filters/FECustomFilter.h:
113         (JSC):
114         (FECustomFilter):
115         * platform/graphics/filters/FEDisplacementMap.cpp:
116         (WebCore::FEDisplacementMap::platformApplySoftware):
117         * platform/graphics/filters/FEDropShadow.cpp:
118         (WebCore::FEDropShadow::platformApplySoftware):
119         * platform/graphics/filters/FEGaussianBlur.cpp:
120         (WebCore::boxBlur):
121         (WebCore::FEGaussianBlur::platformApplyGeneric):
122         (WebCore::FEGaussianBlur::platformApply):
123         (WebCore::FEGaussianBlur::platformApplySoftware):
124         * platform/graphics/filters/FEGaussianBlur.h:
125         (PlatformApplyParameters):
126         (FEGaussianBlur):
127         * platform/graphics/filters/FELighting.cpp:
128         (WebCore::FELighting::LightingData::topLeft):
129         (WebCore::FELighting::LightingData::topRow):
130         (WebCore::FELighting::LightingData::topRight):
131         (WebCore::FELighting::LightingData::leftColumn):
132         (WebCore::FELighting::LightingData::interior):
133         (WebCore::FELighting::LightingData::rightColumn):
134         (WebCore::FELighting::LightingData::bottomLeft):
135         (WebCore::FELighting::LightingData::bottomRow):
136         (WebCore::FELighting::LightingData::bottomRight):
137         (WebCore::FELighting::inlineSetPixel):
138         (WebCore::FELighting::drawLighting):
139         (WebCore::FELighting::platformApplySoftware):
140         * platform/graphics/filters/FELighting.h:
141         (LightingData):
142         (FELighting):
143         * platform/graphics/filters/FEMorphology.cpp:
144         (WebCore::FEMorphology::platformApplyGeneric):
145         (WebCore::FEMorphology::platformApplySoftware):
146         * platform/graphics/filters/FEMorphology.h:
147         (PaintingData):
148         * platform/graphics/filters/FETurbulence.cpp:
149         (WebCore::FETurbulence::fillRegion):
150         (WebCore::FETurbulence::platformApplySoftware):
151         * platform/graphics/filters/FETurbulence.h:
152         (FillRegionParameters):
153         (FETurbulence):
154         * platform/graphics/filters/FilterEffect.cpp:
155         (WebCore::FilterEffect::forceValidPreMultipliedPixels):
156         (WebCore::FilterEffect::asUnmultipliedImage):
157         (WebCore::FilterEffect::asPremultipliedImage):
158         (WebCore::FilterEffect::copyImageBytes):
159         (WebCore::FilterEffect::copyUnmultipliedImage):
160         (WebCore::FilterEffect::copyPremultipliedImage):
161         (WebCore::FilterEffect::createUnmultipliedImageResult):
162         (WebCore::FilterEffect::createPremultipliedImageResult):
163         * platform/graphics/filters/FilterEffect.h:
164         (FilterEffect):
165         * platform/graphics/filters/arm/FEGaussianBlurNEON.h:
166         (WebCore::FEGaussianBlur::platformApplyNeon):
167         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
168         (WebCore::GraphicsContext3D::paintRenderingResultsToImageData):
169         * platform/graphics/qt/ImageBufferQt.cpp:
170         (WebCore::getImageData):
171         (WebCore::ImageBuffer::getUnmultipliedImageData):
172         (WebCore::ImageBuffer::getPremultipliedImageData):
173         (WebCore::ImageBuffer::putByteArray):
174         * platform/graphics/skia/ImageBufferSkia.cpp:
175         (WebCore::getImageData):
176         (WebCore::ImageBuffer::getUnmultipliedImageData):
177         (WebCore::ImageBuffer::getPremultipliedImageData):
178         (WebCore::ImageBuffer::putByteArray):
179         * platform/graphics/texmap/TextureMapperGL.cpp:
180         * platform/graphics/wince/ImageBufferWinCE.cpp:
181         (WebCore::getImageData):
182         (WebCore::ImageBuffer::getUnmultipliedImageData):
183         (WebCore::ImageBuffer::getPremultipliedImageData):
184         (WebCore::ImageBuffer::putByteArray):
185         * platform/graphics/wx/ImageBufferWx.cpp:
186         (WebCore::ImageBuffer::getUnmultipliedImageData):
187         (WebCore::ImageBuffer::getPremultipliedImageData):
188         (WebCore::ImageBuffer::putByteArray):
189         * platform/image-encoders/skia/JPEGImageEncoder.cpp:
190         (WebCore::JPEGImageEncoder::encode):
191         * platform/image-encoders/skia/PNGImageEncoder.cpp:
192         (WebCore::PNGImageEncoder::encode):
193         * platform/image-encoders/skia/WEBPImageEncoder.cpp:
194         (WebCore::WEBPImageEncoder::encode):
195
196 2012-04-23  Ryan Sleevi  <rsleevi@chromium.org>
197
198         [chromium] Remove deleted files from WebCore.gypi and fix typo
199         https://bugs.webkit.org/show_bug.cgi?id=84651
200
201         Reviewed by Ryosuke Niwa.
202
203         No new tests. No behavior change.
204
205         * WebCore.gypi:
206         Remove references to PlatformMouseEventQt.cpp and WheelEventQt.cpp. Add a missing comma.
207
208 2012-04-23  Erik Arvidsson  <arv@chromium.org>
209
210         [V8] Fix issue with trying to access a constructor in a frame that has been removed
211         https://bugs.webkit.org/show_bug.cgi?id=84640
212
213         Reviewed by Kentaro Hara.
214
215         This regressed in r113250. Now we do what we did before and return undefined if the frame
216         does not have a context.
217
218         Test: fast/dom/constructor-in-removed-frame.html
219
220         * bindings/v8/V8DOMWrapper.cpp:
221         (WebCore::V8DOMWrapper::constructorForType):
222
223 2012-04-23  Chris Rogers  <crogers@google.com>
224
225         Oscillator::setWaveTable() should not reset oscillator phase
226         https://bugs.webkit.org/show_bug.cgi?id=84647
227         
228         Reviewed by Kenneth Russell.
229
230         * Modules/webaudio/Oscillator.cpp:
231         (WebCore::Oscillator::setWaveTable):
232
233 2012-04-23  Kentaro Hara  <haraken@chromium.org>
234
235         [V8][Refactoring] Remove V8Proxy::throwSyntaxError()
236         https://bugs.webkit.org/show_bug.cgi?id=84627
237
238         Reviewed by Nate Chapin.
239
240         This patch removes V8Proxy::throwSyntaxError()
241         since it is no longer used.
242
243         No tests. No change in behavior.
244
245         * bindings/v8/V8Proxy.cpp:
246         * bindings/v8/V8Proxy.h:
247         (V8Proxy):
248
249 2012-04-18  James Robinson  <jamesr@chromium.org>
250
251         [chromium] Use TextureLayerChromium for WebGL content instead of a dedicated layer type
252         https://bugs.webkit.org/show_bug.cgi?id=84311
253
254         Reviewed by Adrienne Walker.
255
256         WebGL content's interface with the compositor can be expressed in terms of two basic operations:
257         1.) Do some stuff
258         2.) Provide a texture ID for the compositor to use
259
260         This implements (1) in DrawingBufferChromium and uses the already-existing TextureLayerChromium to handle (2).
261         This cuts down the compositor interface significantly and allows for more code reuse in exchange for more code
262         in TextureLayerChromium to handle the features WebGL needs.
263
264         * WebCore.gypi:
265         * platform/graphics/chromium/DrawingBufferChromium.cpp:
266         (WebCore::DrawingBuffer::~DrawingBuffer):
267         (DrawingBufferPrivate):
268         (WebCore::DrawingBufferPrivate::DrawingBufferPrivate):
269         (WebCore::DrawingBufferPrivate::~DrawingBufferPrivate):
270         (WebCore::DrawingBufferPrivate::layer):
271         (WebCore):
272         (WebCore::DrawingBuffer::platformLayer):
273         * platform/graphics/chromium/LayerRendererChromium.cpp:
274         * platform/graphics/chromium/TextureLayerChromium.h:
275         (TextureLayerChromiumClient):
276         (WebCore::TextureLayerChromiumClient::~TextureLayerChromiumClient):
277         (WebCore):
278         (TextureLayerChromium):
279         (WebCore::TextureLayerChromium::clearClient):
280         * platform/graphics/chromium/WebGLLayerChromium.cpp: Removed.
281         * platform/graphics/chromium/WebGLLayerChromium.h: Removed.
282         * platform/graphics/gpu/DrawingBuffer.h:
283         (WebCore):
284         (WebCore::DrawingBuffer::graphicsContext3D):
285         (DrawingBuffer):
286
287 2012-04-23  Alec Flett  <alecflett@chromium.org>
288
289         IndexedDB: remove IDB(Index|ObjectStore)BackendImpl::get/getKey for IDBKey
290         https://bugs.webkit.org/show_bug.cgi?id=84285
291
292         Reviewed by Dimitri Glazkov.
293
294         No new tests required, this code is no longer called.
295
296         This is old code supporting IDBKey-based lookup, supplanted by
297         IDBKeyRange. Now that chromium IPC/proxy code has landed,
298         these functions can be removed.
299
300         * Modules/indexeddb/IDBIndexBackendInterface.h:
301         (IDBIndexBackendInterface):
302         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
303         (IDBObjectStoreBackendInterface):
304
305 2012-04-22  Martin Robinson  <mrobinson@igalia.com>
306
307         REGRESSION(113604): [Soup] Some pages that use synchronous XMLHttpRequests freeze the browser
308         https://bugs.webkit.org/show_bug.cgi?id=84560
309
310         Reviewed by Xan Lopez.
311
312         When kicking off a synchronous XMLHttpRequest, add one to the connection
313         limit. This ensures that when a page starts a synchronous request, while
314         already at the connection limit the request will not deadlock.
315
316         * platform/network/soup/ResourceHandleSoup.cpp:
317         (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader): Accept a new SoupSession
318         argument so that we can get the correct SoupSession for the networking context. Bump
319         the connection limit.
320         (WebCore::WebCoreSynchronousLoader::~WebCoreSynchronousLoader): Decrement the connection limit.
321         (WebCore::WebCoreSynchronousLoader::adjustMaxConnections): Added this helper.
322         (WebCoreSynchronousLoader): Added a new SoupSession member.
323         (WebCore::sessionFromContext): Added this helper.
324         (WebCore::ResourceHandleInternal::soupSession): Use the new sessionFromContext helper.
325         (WebCore::ResourceHandle::loadResourceSynchronously): Pass the SoupSession from the NetworkingContext
326         to the synchronous loader.
327
328 2012-04-23  Sheriff Bot  <webkit.review.bot@gmail.com>
329
330         Unreviewed, rolling out r114965.
331         http://trac.webkit.org/changeset/114965
332         https://bugs.webkit.org/show_bug.cgi?id=84665
333
334         Four new resource load delegate test failures (Requested by
335         jernoble on #webkit).
336
337         * loader/SubresourceLoader.cpp:
338         (WebCore::SubresourceLoader::didFinishLoading):
339         (WebCore::SubresourceLoader::didFail):
340         (WebCore::SubresourceLoader::willCancel):
341         (WebCore::SubresourceLoader::releaseResources):
342
343 2012-04-23  Beth Dakin  <bdakin@apple.com>
344
345         https://bugs.webkit.org/show_bug.cgi?id=84649
346         RenderMathMLOperator currently ignores font families, fails 
347         to use Stix
348
349         Reviewed by Dan Bernstein.
350
351         This patch makes RenderMathMLOperator honor the font-family 
352         list. This means that by default, Stix glyphs will now be 
353         used for operators just like for other MathML content. 
354         Unfortunately, just doing that resulted in a bug because of 
355         the fragile hardcoded glyph sizes. The Stix vertical bar 
356         glyph is much smaller than the code assumed any glyphs would 
357         be. That code should be re-written, but in the meantime, I 
358         put a fix in place to try to make it work for small glyphs.
359
360         These new functions should be used instead of accessing
361         gGlyphHeight or gGlyphLineHeight directly. If the glyph is
362         smaller than the expected hardcoded value, then the actual
363         glyph height is used, and a new line height based on the
364         glyph height is used.
365         (WebCore::RenderMathMLOperator::glyphHeightForCharacter):
366         (WebCore::RenderMathMLOperator::lineHeightForCharacter):
367
368         Use the style's FontDescription to honor the font family
369         list and the style's FontSelector to honor @font-face.
370         Also use glyphHeightForCharacter() instead of gGlyphHeight. 
371         And now that createGlyph() takes a lineHeight, use 
372         lineHeightForCharacter() to determine the right value. 
373         (WebCore::RenderMathMLOperator::updateFromElement):
374
375         size was an ambiguous variable name, so I renamed it to the 
376         more accurate maxHeightForRenderer. This function also now
377         takes a lineHeight instead of using gGlyphLineHeight. And
378         again, use the style's FontDescription and FontSelector.
379         (WebCore::RenderMathMLOperator::createStackableStyle):
380
381         Re-name size to maxHeightForRenderer, and take lineHeight as 
382         a parameter.
383         (WebCore::RenderMathMLOperator::createGlyph):
384         * rendering/mathml/RenderMathMLOperator.h:
385         (RenderMathMLOperator):
386
387 2012-04-23  Eriq Augustine  <eaugusti@chromium.org>
388
389         Return value from executed script in Chromium.
390         https://bugs.webkit.org/show_bug.cgi?id=79851
391
392         Reviewed by Adam Barth.
393
394         Providing a varaiant of evaluateScriptInIsolatedWorld that
395         returns the value of the evaluated script.
396
397         Test: platform/chromium/http/tests/misc/execute-and-return-value.html
398
399         * bindings/v8/ScriptController.cpp:
400         (WebCore::ScriptController::evaluateInIsolatedWorld):
401         * bindings/v8/ScriptController.h:
402         (ScriptController):
403         * bindings/v8/V8Proxy.cpp:
404         (WebCore::V8Proxy::evaluateInIsolatedWorld):
405         * bindings/v8/V8Proxy.h:
406         (V8Proxy):
407
408 2012-04-23  Kent Tamura  <tkent@chromium.org>
409
410         RenderDetailsMarker should draw the triangle inside the content box
411         https://bugs.webkit.org/show_bug.cgi?id=84557
412
413         Reviewed by Hajime Morita.
414
415         RenderDetailsMarker didn't support cases in which a marker has
416         borders and/or padings, or non-square size.
417
418         Test: fast/html/details-marker-style.html
419
420         * rendering/RenderDetailsMarker.cpp:
421         (WebCore::RenderDetailsMarker::getPath):
422         Scale by contentWidth() and contentHeight().
423         (WebCore::RenderDetailsMarker::paint):
424         Move the trianle origin by the ammount of left/top borders and paddings.
425
426 2012-04-23  Kentaro Hara  <haraken@chromium.org>
427
428         [V8] Pass Isolate to toV8() (Part6)
429         https://bugs.webkit.org/show_bug.cgi?id=84273
430
431         Reviewed by Nate Chapin.
432
433         The objective is to pass Isolate to all toV8()s.
434         Since there are a lot of toV8()s, I'll make the change
435         step by step. This patch passes Isolate to toV8() in
436         several custom bindings.
437
438         No tests. No change in behavior.
439
440         * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
441         (WebCore::getNamedItems):
442         (WebCore::getItem):
443         (WebCore::V8HTMLAllCollection::namedPropertyGetter):
444         (WebCore::V8HTMLAllCollection::itemCallback):
445         (WebCore::V8HTMLAllCollection::namedItemCallback):
446         (WebCore::V8HTMLAllCollection::callAsFunctionCallback):
447         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
448         (WebCore::getNamedItems):
449         (WebCore::V8HTMLCollection::namedPropertyGetter):
450         (WebCore::V8HTMLCollection::namedItemCallback):
451         (WebCore::toV8):
452         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
453         (WebCore::toV8):
454         * bindings/v8/custom/V8StyleSheetCustom.cpp:
455         (WebCore::toV8):
456         * bindings/v8/custom/V8StyleSheetListCustom.cpp:
457         (WebCore::V8StyleSheetList::namedPropertyGetter):
458         * bindings/v8/custom/V8TrackEventCustom.cpp:
459         (WebCore::V8TrackEvent::trackAccessorGetter):
460         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
461         (WebCore::toV8Object):
462         (WebCore::getObjectParameter):
463         (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
464         (WebCore::V8WebGLRenderingContext::getExtensionCallback):
465         (WebCore::V8WebGLRenderingContext::getFramebufferAttachmentParameterCallback):
466         (WebCore::V8WebGLRenderingContext::getParameterCallback):
467         (WebCore::V8WebGLRenderingContext::getProgramParameterCallback):
468         (WebCore::V8WebGLRenderingContext::getShaderParameterCallback):
469         (WebCore::V8WebGLRenderingContext::getUniformCallback):
470         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
471         (WebCore::V8XMLHttpRequest::responseAccessorGetter):
472         * bindings/v8/custom/V8XSLTProcessorCustom.cpp:
473         (WebCore::V8XSLTProcessor::transformToFragmentCallback):
474         (WebCore::V8XSLTProcessor::transformToDocumentCallback):
475
476 2012-04-23  Kent Tamura  <tkent@chromium.org>
477
478         Move the content of LocalizedCalendarICU.cpp and LocalizedDateICU.cpp to ICULocale.cpp.
479         https://bugs.webkit.org/show_bug.cgi?id=84568
480
481         Reviewed by Hajime Morita.
482
483         Move it to ICULocal.cpp because we want to share UDateFormat
484         object in LocalizedDate functions and LocalizedCalendar functions,
485         and it becomes easier to cache the UDateFormat object, and making
486         unit tests for these functions easier.
487
488         No new tests because of no bahevior changes.
489
490         * platform/text/ICULocale.cpp:
491         (WebCore::ICULocale::ICULocale): Initialize new members.
492         (WebCore::ICULocale::~ICULocale): Delete m_shortDateFormat.
493         (WebCore::ICULocale::initializeShortDateFormat):
494         Moved from creteShortDateFormatter of LocalizedDateICU.cpp.
495         (WebCore::ICULocale::parseLocalizedDate):
496         Moved from LocalizedDate.cpp, use m_shortDateFormat.
497         (WebCore::ICULocale::formatLocalizedDate): ditto.
498         (WebCore::ICULocale::createLabelVector):
499         Moved from LocalizedCalendarICU.cpp, use m_shortDateFormat.
500         (WebCore::createFallbackMonthLabels): Moved from LocalizedCalendarICU.cpp.
501         (WebCore::createFallbackWeekDayShortLabels): ditto.
502         (WebCore::ICULocale::initializeCalendar):
503         lazy initialization of m_monthLabels, m_weekDayShortLabels, and m_firstDayOfWeek.
504         (WebCore::ICULocale::monthLabels):
505         (WebCore::ICULocale::weekDayShortLabels):
506         (WebCore::ICULocale::firstDayOfWeek):
507         * platform/text/ICULocale.h:
508         (ICULocale): Add declarations.
509         * platform/text/LocalizedCalendarICU.cpp:
510         (WebCore::monthLabels): Use ICULocale::currentLocale().
511         (WebCore::weekDayShortLabels): ditto.
512         (WebCore::firstDayOfWeek): ditto.
513         * platform/text/LocalizedDateICU.cpp:
514         (WebCore::parseLocalizedDate): ditto.
515         (WebCore::formatLocalizedDate): ditto.
516
517 2012-04-23  Raymond Toy  <rtoy@google.com>
518
519         Move AudioDestinationChromium FIFO class to its own class.
520         https://bugs.webkit.org/show_bug.cgi?id=84058
521
522         Reviewed by Chris Rogers.
523
524         Current tests cover the changes.
525
526         * WebCore.gypi: Update with new files.
527         * platform/audio/AudioPullFIFO.cpp: Copied from Source/WebKit/chromium/src/AudioDestinationChromium.cpp.
528         (WebCore): Renamed old class the AudioPullFIFO.
529         (WebCore::AudioPullFIFO::AudioPullFIFO):
530         (WebCore::AudioPullFIFO::consume):
531         (WebCore::AudioPullFIFO::findWrapLengths):
532         (WebCore::AudioPullFIFO::fillBuffer):
533         * platform/audio/AudioPullFIFO.h: Added.
534         (WebCore):
535         (AudioPullFIFO):
536         (WebCore::AudioPullFIFO::updateIndex):
537
538 2012-04-23  Nate Chapin  <japhet@chromium.org>
539
540         REGRESSION (r100311): YummySoup app crashes when trying to print
541         https://bugs.webkit.org/show_bug.cgi?id=83918
542
543         Reviewed by Alexey Proskuryakov.
544
545         Test: http/tests/xmlhttprequest/cancel-during-failure-crash.html
546
547         * loader/SubresourceLoader.cpp:
548         (WebCore::SubresourceLoader::didFinishLoading):
549         (WebCore::SubresourceLoader::didFail):
550         (WebCore::SubresourceLoader::willCancel): Now that we might enter the function if we're already Finishing,
551             some cleanup needs to be done in the Initialized state only.
552         (WebCore::SubresourceLoader::releaseResources): Move requesting counting decrement and laodDone() to
553             the finishing functions.
554
555 2012-04-23  Shawn Singh  <shawnsingh@chromium.org>
556
557         [chromium] Visualize accelerated compositor rects.
558         https://bugs.webkit.org/show_bug.cgi?id=79400
559
560         Reviewed by Adrienne Walker.
561
562         No tests, all the code added is only debugging code.
563
564         This patch adds support for visualizing three different types of
565         rects on the chromium heads-up display:
566         1. updateRects that indicate what was painted/uploaded to a resource
567         2. propertyChangedRects that indicate layers that has property changes
568         3. surfaceDamageRects that are the accumulation of updateRects and
569            propertyChangedRects, indicating what pixels on the screen have
570            actually changed.  (Surface damage also accounts for newly exposed
571            areas but that is not explicitly visualized.)
572
573         In addition to adding support for visualizing this, the
574         CCHeadsUpDisplay was significantly refactored, separating the FPS
575         Counter functionality into a different class, so that the heads-up
576         display is all about visualizing annotations, and those
577         annotations (frame rate, debug rects) are logged separately.
578
579         * WebCore.gypi:
580         * platform/graphics/chromium/cc/CCDebugRectHistory.cpp: Added.
581         (WebCore):
582         (WebCore::CCDebugRectHistory::CCDebugRectHistory):
583         (WebCore::CCDebugRectHistory::enabled):
584         (WebCore::CCDebugRectHistory::saveDebugRectsForCurrentFrame):
585         (WebCore::CCDebugRectHistory::savePaintRects):
586         (WebCore::CCDebugRectHistory::savePropertyChangedRects):
587         (WebCore::CCDebugRectHistory::saveSurfaceDamageRects):
588         * platform/graphics/chromium/cc/CCDebugRectHistory.h: Added.
589         (WebCore):
590         (WebCore::CCDebugRect::CCDebugRect):
591         (CCDebugRect):
592         (CCDebugRectHistory):
593         (WebCore::CCDebugRectHistory::create):
594         (WebCore::CCDebugRectHistory::debugRects):
595         * platform/graphics/chromium/cc/CCFrameRateCounter.cpp: Added.
596         (WebCore):
597         (WebCore::safeMod):
598         (WebCore::CCFrameRateCounter::frameIndex):
599         (WebCore::CCFrameRateCounter::CCFrameRateCounter):
600         (WebCore::CCFrameRateCounter::markBeginningOfFrame):
601         (WebCore::CCFrameRateCounter::markEndOfFrame):
602         (WebCore::CCFrameRateCounter::isBadFrameInterval):
603         (WebCore::CCFrameRateCounter::isBadFrame):
604         (WebCore::CCFrameRateCounter::getAverageFPSAndStandardDeviation):
605         (WebCore::CCFrameRateCounter::timeStampOfRecentFrame):
606         * platform/graphics/chromium/cc/CCFrameRateCounter.h: Added.
607         (WebCore):
608         (CCFrameRateCounter):
609         (WebCore::CCFrameRateCounter::create):
610         (WebCore::CCFrameRateCounter::currentFrameNumber):
611         (WebCore::CCFrameRateCounter::timeStampHistorySize):
612         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
613         (WebCore):
614         (WebCore::CCHeadsUpDisplay::enabled):
615         (WebCore::CCHeadsUpDisplay::showDebugRects):
616         (WebCore::CCHeadsUpDisplay::draw):
617         (WebCore::CCHeadsUpDisplay::drawHudContents):
618         (WebCore::CCHeadsUpDisplay::drawFPSCounter):
619         (WebCore::CCHeadsUpDisplay::drawFPSCounterText):
620         (WebCore::CCHeadsUpDisplay::drawDebugRects):
621         * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
622         (WebCore):
623         (CCHeadsUpDisplay):
624         (WebCore::CCHeadsUpDisplay::CCHeadsUpDisplay):
625         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
626         (WebCore::CCSettings::CCSettings):
627         (CCSettings):
628         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
629         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
630         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
631         (WebCore::CCLayerTreeHostImpl::drawLayers):
632         (WebCore::CCLayerTreeHostImpl::swapBuffers):
633         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
634         (WebCore):
635         (WebCore::CCLayerTreeHostImpl::fpsCounter):
636         (WebCore::CCLayerTreeHostImpl::debugRectHistory):
637         (CCLayerTreeHostImpl):
638
639 2012-04-23  Julien Chaffraix  <jchaffraix@webkit.org>
640
641         Cut dependency on RenderLayer::scrollRectToVisible outside rendering
642         https://bugs.webkit.org/show_bug.cgi?id=84607
643
644         Reviewed by Simon Fraser.
645
646         Layering fix only, there should be no change behavior.
647
648         Because we don't have an accessor on RenderObject, a lot of the code needs
649         to know about RenderLayer. This is not necessary and exposes RenderLayer to
650         objects that shouldn't know about it.
651
652         This patch adds a RenderObject::scrollRectToVisible with the ad-hoc explanation
653         as to why it isn't on RenderBox (scrolling is a RenderBox concept).
654
655         * WebCore.exp.in:
656         * WebCore.order:
657         Updated to expose the new method.
658
659         * dom/Element.cpp:
660         (WebCore::Element::scrollIntoView):
661         (WebCore::Element::scrollIntoViewIfNeeded):
662         (WebCore::Element::updateFocusAppearance):
663         * editing/Editor.cpp:
664         (WebCore::Editor::findStringAndScrollToVisible):
665         * editing/FrameSelection.cpp:
666         (WebCore::FrameSelection::revealSelection):
667         * page/FrameView.cpp:
668         (WebCore::FrameView::scrollToAnchor):
669         Updated those call sites to use the new function.
670
671         * rendering/RenderLayer.h:
672         Removed ScrollBehavior.h #include and default argument values
673         as we are always called through RenderObject now.
674
675         * rendering/RenderObject.cpp:
676         (WebCore::RenderObject::scrollRectToVisible):
677         * rendering/RenderObject.h:
678         Added a new function that just forwards to the enclosing layer
679         if any. We return whether we actually tried to scroll to match
680         some call sites expectations.
681
682 2012-04-23  Zhenyao Mo  <zmo@google.com>
683
684         framebuffer binding should not be changed after canvas resize or compositing
685         https://bugs.webkit.org/show_bug.cgi?id=84609
686
687         Reviewed by Kenneth Russell.
688
689         Test: fast/canvas/webgl/framebuffer-bindings-unaffected-on-resize.html
690
691         * html/canvas/WebGLRenderingContext.cpp: set framebuffer binding to DrawingBuffer.
692         (WebCore):
693         (WebCore::WebGLRenderingContext::bindFramebuffer):
694         (WebCore::WebGLRenderingContext::deleteFramebuffer):
695         (WebCore::WebGLRenderingContext::loseContextImpl):
696         * platform/graphics/cairo/DrawingBufferCairo.cpp: initialize m_framebufferBinding.
697         (WebCore::DrawingBuffer::DrawingBuffer):
698         * platform/graphics/chromium/DrawingBufferChromium.cpp: Ditto.
699         (WebCore::DrawingBuffer::DrawingBuffer):
700         * platform/graphics/chromium/WebGLLayerChromium.cpp: Recover framebuffer binding after update().
701         (WebCore::WebGLLayerChromium::update):
702         * platform/graphics/gpu/DrawingBuffer.cpp: Add a function to restore framebuffer binding.
703         (WebCore::DrawingBuffer::restoreFramebufferBinding):
704         (WebCore):
705         * platform/graphics/gpu/DrawingBuffer.h: Ditto.
706         (WebCore::DrawingBuffer::setTexture2DBinding):
707         (DrawingBuffer):
708         (WebCore::DrawingBuffer::setFramebufferBinding):
709         * platform/graphics/gpu/mac/DrawingBufferMac.mm: initialize m_framebufferBinding.
710         (WebCore::DrawingBuffer::DrawingBuffer):
711         * platform/graphics/gpu/qt/DrawingBufferQt.cpp: initialize m_framebufferBinding.
712         (WebCore::DrawingBuffer::DrawingBuffer):
713
714 2012-04-23  Victor Carbune  <vcarbune@adobe.com>
715
716         Simplify volume slider rendering
717         https://bugs.webkit.org/show_bug.cgi?id=82150
718
719         Reviewed by Eric Carlson.
720
721         Test: media/video-controls-rendering-toggle-display-none.html
722
723         * css/mediaControlsChromium.css: Update controls css for Chromium.
724         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
725         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
726         (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
727         * css/mediaControlsGtk.css: Update controls css for GTK.
728         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
729         (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
730         * css/mediaControlsQuickTime.css: Update controls css for Safari.
731         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
732         (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
733         (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
734         * html/shadow/MediaControlElements.cpp: Removed particular renderer.
735         (WebCore):
736         * html/shadow/MediaControlElements.h:
737         (MediaControlVolumeSliderContainerElement): Remoed particular renderer.
738         * html/shadow/MediaControlRootElement.cpp:
739         (WebCore::MediaControlRootElement::create): Added a div element as a container. Removed extra unused mute button.
740         * html/shadow/MediaControlRootElementChromium.cpp: Added an extra div
741         element as a container for the mute button and the volume slider to
742         easily position them relative to each other.
743         (WebCore::MediaControlRootElementChromium::create):
744
745 2012-04-23  Sheriff Bot  <webkit.review.bot@gmail.com>
746
747         Unreviewed, rolling out r109981.
748         http://trac.webkit.org/changeset/109981
749         https://bugs.webkit.org/show_bug.cgi?id=84630
750
751         Broke Twitter map buddy icon (see
752         https://bugs.webkit.org/show_bug.cgi?id=84558) (Requested by
753         thorton on #webkit).
754
755         * rendering/RenderLayerCompositor.cpp:
756         (WebCore::RenderLayerCompositor::addToOverlapMap):
757         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
758
759 2012-04-23  Emil A Eklund  <eae@chromium.org>
760
761         Crash in RenderInline::clippedOverflowRectForRepaint for PrintPreview
762         https://bugs.webkit.org/show_bug.cgi?id=84300
763
764         Reviewed by Simon Fraser.
765
766         No new tests, have not been able to come up with a reliable reduction.
767
768         * rendering/RenderInline.cpp:
769         (WebCore::RenderInline::clippedOverflowRectForRepaint):
770         Add NULL check for containingBlock() as it can return NULL when detached
771         from the tree.
772
773 2012-04-23  Sheriff Bot  <webkit.review.bot@gmail.com>
774
775         Unreviewed, rolling out r114929.
776         http://trac.webkit.org/changeset/114929
777         https://bugs.webkit.org/show_bug.cgi?id=84623
778
779         Broke 35 canvas/webgl tests (Requested by jernoble on
780         #webkit).
781
782         * html/canvas/WebGLRenderingContext.cpp:
783         (WebCore):
784         (WebCore::WebGLRenderingContext::bindFramebuffer):
785         (WebCore::WebGLRenderingContext::deleteFramebuffer):
786         (WebCore::WebGLRenderingContext::loseContextImpl):
787         * platform/graphics/cairo/DrawingBufferCairo.cpp:
788         (WebCore::DrawingBuffer::DrawingBuffer):
789         * platform/graphics/chromium/DrawingBufferChromium.cpp:
790         (WebCore::DrawingBuffer::DrawingBuffer):
791         * platform/graphics/chromium/WebGLLayerChromium.cpp:
792         (WebCore::WebGLLayerChromium::update):
793         * platform/graphics/gpu/DrawingBuffer.cpp:
794         * platform/graphics/gpu/DrawingBuffer.h:
795         (WebCore::DrawingBuffer::setTexture2DBinding):
796         (DrawingBuffer):
797         * platform/graphics/gpu/mac/DrawingBufferMac.mm:
798         (WebCore::DrawingBuffer::DrawingBuffer):
799         * platform/graphics/gpu/qt/DrawingBufferQt.cpp:
800         (WebCore::DrawingBuffer::DrawingBuffer):
801
802 2012-04-23  Kentaro Hara  <haraken@chromium.org>
803
804         [V8] Pass Isolate around in V8Collection.h
805         https://bugs.webkit.org/show_bug.cgi?id=84299
806
807         Reviewed by Nate Chapin.
808
809         The objective is to pass Isolate around in V8 bindings.
810         This patch passes Isolate around in V8Collection.h.
811
812         No tests. No change in behavior.
813
814         * bindings/v8/V8Collection.h:
815         (WebCore::getV8Object):
816         (WebCore::getNamedPropertyOfCollection):
817         (WebCore::collectionNamedPropertyGetter):
818         (WebCore::getIndexedPropertyOfCollection):
819         (WebCore::collectionIndexedPropertyGetter):
820
821 2012-04-23  Kentaro Hara  <haraken@chromium.org>
822
823         [V8] Pass Isolate to toV8() (Part5)
824         https://bugs.webkit.org/show_bug.cgi?id=84271
825
826         Reviewed by Nate Chapin.
827
828         The objective is to pass Isolate to all toV8()s.
829         Since there are a lot of toV8(), I'll make the change
830         step by step. This patch passes Isolate to toV8()
831         in several custom bindings.
832
833         No tests. No change in behavior.
834
835         * bindings/v8/custom/V8MessageChannelConstructor.cpp:
836         (WebCore::V8MessageChannel::constructorCallback):
837         * bindings/v8/custom/V8MessageEventCustom.cpp:
838         (WebCore::V8MessageEvent::dataAccessorGetter):
839         (WebCore::V8MessageEvent::portsAccessorGetter):
840         * bindings/v8/custom/V8MutationCallbackCustom.cpp:
841         (WebCore::V8MutationCallback::handleEvent):
842         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
843         (WebCore::V8NamedNodeMap::indexedPropertyGetter):
844         (WebCore::V8NamedNodeMap::namedPropertyGetter):
845         (WebCore::toV8):
846         * bindings/v8/custom/V8NodeListCustom.cpp:
847         (WebCore::V8NodeList::namedPropertyGetter):
848         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
849         (WebCore::V8NotificationCenter::createHTMLNotificationCallback):
850         (WebCore::V8NotificationCenter::createNotificationCallback):
851         * bindings/v8/custom/V8PerformanceCustom.cpp:
852         (WebCore::V8Performance::memoryAccessorGetter):
853         * bindings/v8/custom/V8PopStateEventCustom.cpp:
854         (WebCore::V8PopStateEvent::stateAccessorGetter):
855         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
856         (WebCore::V8SQLTransactionSync::executeSqlCallback):
857         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
858         (WebCore::toV8):
859
860 2012-04-23  Zhenyao Mo  <zmo@google.com>
861
862         framebuffer binding should not be changed after canvas resize or compositing
863         https://bugs.webkit.org/show_bug.cgi?id=84609
864
865         Reviewed by Kenneth Russell.
866
867         Test: fast/canvas/webgl/framebuffer-bindings-unaffected-on-resize.html
868
869         * html/canvas/WebGLRenderingContext.cpp: set framebuffer binding to DrawingBuffer.
870         (WebCore):
871         (WebCore::WebGLRenderingContext::bindFramebuffer):
872         (WebCore::WebGLRenderingContext::deleteFramebuffer):
873         (WebCore::WebGLRenderingContext::loseContextImpl):
874         * platform/graphics/cairo/DrawingBufferCairo.cpp: initialize m_framebufferBinding.
875         (WebCore::DrawingBuffer::DrawingBuffer):
876         * platform/graphics/chromium/DrawingBufferChromium.cpp: Ditto.
877         (WebCore::DrawingBuffer::DrawingBuffer):
878         * platform/graphics/chromium/WebGLLayerChromium.cpp: Recover framebuffer binding after update().
879         (WebCore::WebGLLayerChromium::update):
880         * platform/graphics/gpu/DrawingBuffer.cpp: Add a function to restore framebuffer binding.
881         (WebCore::DrawingBuffer::restoreFramebufferBinding):
882         (WebCore):
883         * platform/graphics/gpu/DrawingBuffer.h: Ditto.
884         (WebCore::DrawingBuffer::setTexture2DBinding):
885         (DrawingBuffer):
886         (WebCore::DrawingBuffer::setFramebufferBinding):
887         * platform/graphics/gpu/mac/DrawingBufferMac.mm: initialize m_framebufferBinding.
888         (WebCore::DrawingBuffer::DrawingBuffer):
889         * platform/graphics/gpu/qt/DrawingBufferQt.cpp: initialize m_framebufferBinding.
890         (WebCore::DrawingBuffer::DrawingBuffer):
891
892 2012-04-23  Kentaro Hara  <haraken@chromium.org>
893
894         [V8] Pass Isolate to toV8() (Part4)
895         https://bugs.webkit.org/show_bug.cgi?id=84269
896
897         Reviewed by Nate Chapin.
898
899         The objective is to pass Isolate to all toV8()s.
900         Since there are a lot of toV8()s, I'll make the change
901         step by step. This patch passes Isolate to toV8() in
902         several custom bindings.
903
904         No tests. No change in behavior.
905
906         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
907         (WebCore::V8HTMLCanvasElement::getContextCallback):
908         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
909         (WebCore::toV8):
910         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
911         (WebCore::V8HTMLDocument::allAccessorGetter):
912         * bindings/v8/custom/V8HTMLElementCustom.cpp:
913         (WebCore::toV8Object):
914         (WebCore::V8HTMLElement::itemValueAccessorGetter):
915         * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
916         (WebCore::V8HTMLFormElement::indexedPropertyGetter):
917         (WebCore::V8HTMLFormElement::namedPropertyGetter):
918         * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
919         (WebCore::V8HTMLFrameSetElement::namedPropertyGetter):
920         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
921         (WebCore::v8HTMLImageElementConstructorCallback):
922         * bindings/v8/custom/V8HTMLLinkElementCustom.cpp:
923         (WebCore::V8HTMLLinkElement::sizesAccessorGetter):
924         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
925         (WebCore::V8HTMLOptionsCollection::indexedPropertyGetter):
926         * bindings/v8/custom/V8HTMLOutputElementCustom.cpp:
927         (WebCore::V8HTMLOutputElement::htmlForAccessorGetter):
928         * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
929         (WebCore::V8HTMLSelectElement::indexedPropertyGetter):
930         * bindings/v8/custom/V8ImageDataCustom.cpp:
931         (WebCore::toV8):
932
933 2012-04-23  Emil A Eklund  <eae@chromium.org>
934
935         Clean up subpixel unit handling in hit testing code
936         https://bugs.webkit.org/show_bug.cgi?id=84496
937
938         Reviewed by Eric Seidel.
939
940         Fix use of IntRect and LayoutRect in hit testing code in preparation for
941         subpixel layout.
942
943         No new tests, no change in functionality.
944
945         * rendering/HitTestResult.cpp:
946         (WebCore::HitTestResult::rectForPoint):
947         Revert rectForPoint to IntRect as all call sites converted it to an
948         IntRect anyway to compare it with an IntPoint or another IntRect.
949
950         * rendering/HitTestingTransformState.cpp:
951         (WebCore::HitTestingTransformState::boundsOfMappedQuad):
952         * rendering/HitTestingTransformState.h:
953         Convert boundsOfMappedQuad to LayoutRect as the TransformationMatrix now
954         has subpixel precision.
955
956 2012-04-23  Kentaro Hara  <haraken@chromium.org>
957
958         [V8] Pass Isolate to toV8() (Part3)
959         https://bugs.webkit.org/show_bug.cgi?id=84261
960
961         Reviewed by Nate Chapin.
962
963         The objective is to pass Isolate to all toV8()s.
964         Since there are a lot of toV8(), I'll make the change
965         step by step. This patch passes Isolate to toV8()
966         in several custom bindings.
967
968         No tests. No change in behavior.
969
970         * bindings/v8/custom/V8DOMWindowCustom.cpp:
971         (WebCore::V8DOMWindow::openCallback):
972         (WebCore::V8DOMWindow::indexedPropertyGetter):
973         (WebCore::V8DOMWindow::namedPropertyGetter):
974         * bindings/v8/custom/V8DirectoryEntrySyncCustom.cpp:
975         (WebCore::V8DirectoryEntrySync::getDirectoryCallback):
976         (WebCore::V8DirectoryEntrySync::getFileCallback):
977         * bindings/v8/custom/V8DocumentCustom.cpp:
978         (WebCore::V8Document::evaluateCallback):
979         (WebCore::V8Document::getCSSCanvasContextCallback):
980         (WebCore::V8Document::createTouchListCallback):
981         * bindings/v8/custom/V8DocumentLocationCustom.cpp:
982         (WebCore::V8Document::locationAccessorGetter):
983         * bindings/v8/custom/V8EntryCustom.cpp:
984         (WebCore::toV8):
985         * bindings/v8/custom/V8EntrySyncCustom.cpp:
986         (WebCore::toV8):
987         * bindings/v8/custom/V8EventCustom.cpp:
988         (WebCore::V8Event::dataTransferAccessorGetter):
989         (WebCore::V8Event::clipboardDataAccessorGetter):
990         (WebCore):
991         * bindings/v8/custom/V8FileReaderCustom.cpp:
992         (WebCore::V8FileReader::resultAccessorGetter):
993         * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
994         (WebCore::getItem):
995         (WebCore::V8HTMLAllCollection::callAsFunctionCallback):
996
997 2012-04-23  Kentaro Hara  <haraken@chromium.org>
998
999         [V8] Pass Isolate to toV8() (Part2)
1000         https://bugs.webkit.org/show_bug.cgi?id=84259
1001
1002         Reviewed by Nate Chapin.
1003
1004         The objective is to pass Isolate to all toV8()s.
1005         Since there are a lot of toV8(), I'll make the change
1006         step by step. This patch passes Isolate to toV8() in
1007         several custom bindings.
1008
1009         No tests. No change in behavior.
1010
1011         * bindings/v8/custom/V8BlobCustom.cpp:
1012         (WebCore::toV8):
1013         * bindings/v8/custom/V8CSSRuleCustom.cpp:
1014         (WebCore::toV8):
1015         * bindings/v8/custom/V8CSSStyleSheetCustom.cpp:
1016         (WebCore::toV8):
1017         * bindings/v8/custom/V8CSSValueCustom.cpp:
1018         (WebCore::toV8):
1019         * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
1020         (WebCore::toV8Object):
1021         (WebCore::V8CanvasRenderingContext2D::strokeStyleAccessorGetter):
1022         (WebCore::V8CanvasRenderingContext2D::fillStyleAccessorGetter):
1023         * bindings/v8/custom/V8ConsoleCustom.cpp:
1024         (WebCore::V8Console::memoryAccessorGetter):
1025         * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
1026         (WebCore::V8SQLStatementErrorCallback::handleEvent):
1027         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
1028         (WebCore::toV8):
1029         * bindings/v8/custom/V8DOMTokenListCustom.cpp:
1030         (WebCore::toV8):
1031
1032 2012-04-23  Kentaro Hara  <haraken@chromium.org>
1033
1034         [V8][Refactoring] Remove V8Proxy::toV8()
1035         https://bugs.webkit.org/show_bug.cgi?id=84257
1036
1037         Reviewed by Nate Chapin.
1038
1039         Some constructorCallback()s are using V8Proxy::toV8(),
1040         other constructorCallback()s are directly using setJSWrapperForXXX()
1041         (XXX can be DOMObject, ActiveDOMObject, Node or ActiveNode).
1042         We should unify them.
1043
1044         Considering the fact that V8Proxy::toV8() just supports
1045         XXX=DOMObject and thus is not flexible, replacing V8Proxy::toV8()
1046         with setJSWrapperForDOMObject() would make sense.
1047
1048         No tests. No change in behavior.
1049
1050         * bindings/v8/V8Proxy.h: Removed toV8().
1051
1052         * bindings/scripts/CodeGeneratorV8.pm: Replaced toV8() with setJSWrapperForDOMObject().
1053         (GenerateEventConstructorCallback):
1054         * bindings/v8/custom/V8ArrayBufferCustom.cpp: Ditto.
1055         (WebCore::V8ArrayBuffer::constructorCallback):
1056         * bindings/v8/custom/V8ArrayBufferViewCustom.h: Ditto.
1057         (WebCore::constructWebGLArrayWithArrayBufferArgument):
1058         (WebCore::constructWebGLArray):
1059         * bindings/v8/custom/V8DOMFormDataCustom.cpp: Ditto.
1060         (WebCore::V8DOMFormData::constructorCallback):
1061         * bindings/v8/custom/V8DataViewCustom.cpp: Ditto.
1062         (WebCore::V8DataView::constructorCallback):
1063         * bindings/v8/custom/V8MessageChannelConstructor.cpp: Ditto.
1064         (WebCore::V8MessageChannel::constructorCallback):
1065         * bindings/v8/custom/V8WebKitPointConstructor.cpp: Ditto.
1066         (WebCore::V8WebKitPoint::constructorCallback):
1067
1068         * bindings/scripts/test/V8/V8TestEventConstructor.cpp: Updated run-bindings-tests results.
1069         (WebCore::V8TestEventConstructor::constructorCallback):
1070
1071 2012-04-23  Kentaro Hara  <haraken@chromium.org>
1072
1073         [V8] Pass Isolate to toV8() (Part1)
1074         https://bugs.webkit.org/show_bug.cgi?id=84250
1075
1076         Reviewed by Nate Chapin.
1077
1078         The final objective is to pass Isolate around in V8 bindings.
1079         This patch makes a change in CodeGeneratorV8.pm so that the
1080         generated code passes Isolate to toV8().
1081
1082         No tests. No change in behavior.
1083
1084         * bindings/scripts/CodeGeneratorV8.pm: Modified as described above.
1085         (GenerateNormalAttrGetter):
1086         (GenerateNamedConstructorCallback):
1087         (GenerateCallbackImplementation):
1088         (GenerateFunctionCallString):
1089         (NativeToJSValue):
1090
1091         * bindings/scripts/test/V8/V8Float64Array.cpp: Updated run-bindings-tests results.
1092         (WebCore::Float64ArrayV8Internal::fooCallback):
1093         * bindings/scripts/test/V8/V8TestCallback.cpp:
1094         (WebCore::V8TestCallback::callbackWithClass1Param):
1095         (WebCore::V8TestCallback::callbackWithClass2Param):
1096         (WebCore::V8TestCallback::callbackWithStringList):
1097         (WebCore::V8TestCallback::callbackRequiresThisToPass):
1098         * bindings/scripts/test/V8/V8TestInterface.cpp:
1099         (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
1100         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1101         (WebCore::V8TestNamedConstructorConstructorCallback):
1102         * bindings/scripts/test/V8/V8TestObj.cpp:
1103         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
1104         (WebCore::TestObjV8Internal::testObjAttrAttrGetter):
1105         (WebCore::TestObjV8Internal::XMLObjAttrAttrGetter):
1106         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrGetter):
1107         (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetter):
1108         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetter):
1109         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetter):
1110         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetter):
1111         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetter):
1112         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
1113         (WebCore::TestObjV8Internal::cachedAttribute1AttrGetter):
1114         (WebCore::TestObjV8Internal::cachedAttribute2AttrGetter):
1115         (WebCore::TestObjV8Internal::mutablePointAttrGetter):
1116         (WebCore::TestObjV8Internal::immutablePointAttrGetter):
1117         (WebCore::TestObjV8Internal::objMethodCallback):
1118         (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
1119         (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
1120         (WebCore::TestObjV8Internal::withScriptStateObjCallback):
1121         (WebCore::TestObjV8Internal::withScriptStateObjExceptionCallback):
1122         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionCallback):
1123         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesCallback):
1124         (WebCore::TestObjV8Internal::mutablePointFunctionCallback):
1125         (WebCore::TestObjV8Internal::immutablePointFunctionCallback):
1126         (WebCore::TestObjV8Internal::strictFunctionCallback):
1127         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1128         (WebCore::TestSerializedScriptValueInterfaceV8Internal::portsAttrGetter):
1129
1130 2012-04-23  Kentaro Hara  <haraken@chromium.org>
1131
1132         [V8] Add an optional Isolate argument to setDOMException() and throwError()
1133         https://bugs.webkit.org/show_bug.cgi?id=84310
1134
1135         Reviewed by Nate Chapin.
1136
1137         The objective is to pass Isolate to setDOMException()
1138         and throwError(). This patch adds an optional Isolate argument
1139         to setDOMException() and throwError(). I'll pass the Isolate
1140         to these methods in the following patches.
1141
1142         No tests. No change in behavior.
1143
1144         * bindings/v8/V8Proxy.cpp:
1145         (WebCore):
1146         (WebCore::V8Proxy::setDOMException):
1147         (WebCore::V8Proxy::throwError):
1148         * bindings/v8/V8Proxy.h:
1149         (V8Proxy):
1150         (WebCore):
1151         (WebCore::throwError):
1152
1153 2012-04-23  Ian Vollick  <vollick@chromium.org>
1154
1155         [chromium] Properly ignore unsupported animation directions.
1156         https://bugs.webkit.org/show_bug.cgi?id=84599
1157
1158         Reviewed by Adrienne Walker.
1159
1160         Tested in CCLayerAnimationControllerTest.ignoreUnsupportedAnimationDirections.
1161
1162         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
1163
1164 2012-04-17  Kentaro Hara  <haraken@chromium.org>
1165
1166         [Performance][V8] Skip Isolate look-up to find StringCache
1167         https://bugs.webkit.org/show_bug.cgi?id=84103
1168
1169         Reviewed by Nate Chapin.
1170
1171         This patch improves the performance of a lot of DOM attribute
1172         getters that return a string.
1173
1174         - Improves the performance of Dromaeo/dom-attr.html(element.property)
1175           by 27.7%.
1176         - Improves the performance of Dromaeo/dom-attr.html(getAttribute)
1177           by 10.6%.
1178         - Improves the performance of div.id, div.className,
1179           div.nodeName, text.nodeValue, text.textContent by 12% -- 21%.
1180
1181         The followings are the test results in my Linux desktop.
1182
1183         Performance test: Dromaeo/dom-attr.html
1184         Total:                     674.64runs/s ->  707.03runs/s (+ 4.8%)
1185         getAttribute:             1537.60runs/s -> 1700.20runs/s (+10.6%)
1186         element.property:         1389.00runs/s -> 1774.20runs/s (+27.7%)
1187         setAttribute:              538.88runs/s ->  548.87runs/s (+ 1.9%)
1188         element.property = value:  644.07runs/s ->  656.67runs/s (+ 2.0%)
1189         element.expando = value:   219.76runs/s ->  207.14runs/s (- 6.8%)
1190         element.expando:           578.77runs/s ->  554.67runs/s (- 4.2%)
1191
1192         Performance test: https://bugs.webkit.org/attachment.cgi?id=137440
1193         div.id:           30.70ns -> 26.70ns (+15%)
1194         div.className:    31.10ns -> 26.40ns (+18%)
1195         div.nodeName:     37.70ns -> 33.00ns (+14%)
1196         text.nodeValue:   31.40ns -> 25.90ns (+21%)
1197         text.textContent: 51.50ns -> 45.90ns (+12%)
1198
1199         Previously V8 bindings need to look up an Isolate to find
1200         an Isolate-local StringCache. This patch skips the look-up
1201         by getting the Isolate from AccessorInfo.GetIsolate()
1202         or Arguments.GetIsolate().
1203
1204         No tests. No change in behavior.
1205
1206         * bindings/scripts/CodeGeneratorV8.pm:
1207         (GenerateNormalAttrGetter):
1208         (GenerateFunctionCallString):
1209         (NativeToJSValue):
1210         * bindings/v8/V8Binding.cpp:
1211         (WebCore::getElementStringAttr):
1212         * bindings/v8/V8Binding.h:
1213         (WebCore::v8ExternalString): Make 'isolate' an optional argument.
1214         Ideally we want to make 'isolate' a non-optional argument,
1215         but it is difficult to rewrite all v8ExternalString() callers
1216         at a breath. We can rewrite them incrementally.
1217         (WebCore::v8String): Ditto.
1218         (WebCore::v8StringOrNull): Ditto.
1219         (WebCore::v8StringOrUndefined): Ditto.
1220         (WebCore::v8StringOrFalse): Ditto.
1221
1222         * bindings/scripts/test/V8/V8TestEventConstructor.cpp: Updated run-bindings-tests results.
1223         (WebCore::TestEventConstructorV8Internal::attr1AttrGetter):
1224         (WebCore::TestEventConstructorV8Internal::attr2AttrGetter):
1225         * bindings/scripts/test/V8/V8TestInterface.cpp:
1226         (WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetter):
1227         (WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetter):
1228         * bindings/scripts/test/V8/V8TestObj.cpp:
1229         (WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetter):
1230         (WebCore::TestObjV8Internal::stringAttrAttrGetter):
1231         (WebCore::TestObjV8Internal::reflectedStringAttrAttrGetter):
1232         (WebCore::TestObjV8Internal::reflectedURLAttrAttrGetter):
1233         (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetter):
1234         (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetter):
1235         (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetter):
1236         (WebCore::TestObjV8Internal::hashAttrGetter):
1237         (WebCore::TestObjV8Internal::conditionalMethod1Callback):
1238
1239 2012-04-17  Kentaro Hara  <haraken@chromium.org>
1240
1241         [V8] Add an optional Isolate argument to wrap()
1242         https://bugs.webkit.org/show_bug.cgi?id=84202
1243
1244         Reviewed by Nate Chapin.
1245
1246         The final objective is to pass Isolate around in V8 bindings.
1247         This patch adds an optional Isolate argument to wrap().
1248         After rewriting all wrap() callers so that they pass Isolate
1249         to wrap(), I'll make the Isolate argument non-optional.
1250
1251         No tests. No change in behavior.
1252
1253         * bindings/scripts/CodeGeneratorV8.pm: Modified as described above.
1254         (GenerateHeader):
1255         * bindings/v8/custom/V8DocumentCustom.cpp: Ditto.
1256         (WebCore::toV8):
1257         * bindings/v8/custom/V8HTMLDocumentCustom.cpp: Ditto.
1258         (WebCore::toV8):
1259         * bindings/v8/custom/V8NodeCustom.cpp: Ditto.
1260         (WebCore::toV8Slow):
1261         * bindings/v8/custom/V8SVGDocumentCustom.cpp: Ditto.
1262         (WebCore::toV8):
1263         * dom/make_names.pl: Ditto.
1264         (printWrapperFactoryCppFile):
1265
1266         * bindings/scripts/test/V8/V8Float64Array.h:
1267         Updated run-bindings-tests results.
1268         (V8Float64Array):
1269         (WebCore::V8Float64Array::wrap):
1270         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
1271         (V8TestActiveDOMObject):
1272         (WebCore::V8TestActiveDOMObject::wrap):
1273         (WebCore::toV8):
1274         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
1275         (V8TestCustomNamedGetter):
1276         (WebCore::V8TestCustomNamedGetter::wrap):
1277         (WebCore::toV8):
1278         * bindings/scripts/test/V8/V8TestEventConstructor.h:
1279         (V8TestEventConstructor):
1280         (WebCore::V8TestEventConstructor::wrap):
1281         (WebCore::toV8):
1282         * bindings/scripts/test/V8/V8TestEventTarget.h:
1283         (V8TestEventTarget):
1284         (WebCore::V8TestEventTarget::wrap):
1285         (WebCore::toV8):
1286         * bindings/scripts/test/V8/V8TestInterface.h:
1287         (V8TestInterface):
1288         (WebCore::V8TestInterface::wrap):
1289         (WebCore::toV8):
1290         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
1291         (V8TestMediaQueryListListener):
1292         (WebCore::V8TestMediaQueryListListener::wrap):
1293         (WebCore::toV8):
1294         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
1295         (V8TestNamedConstructor):
1296         (WebCore::V8TestNamedConstructor::wrap):
1297         (WebCore::toV8):
1298         * bindings/scripts/test/V8/V8TestNode.h:
1299         (V8TestNode):
1300         (WebCore::V8TestNode::wrap):
1301         (WebCore::toV8):
1302         * bindings/scripts/test/V8/V8TestObj.h:
1303         (V8TestObj):
1304         (WebCore::V8TestObj::wrap):
1305         (WebCore::toV8):
1306         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
1307         (V8TestSerializedScriptValueInterface):
1308         (WebCore::V8TestSerializedScriptValueInterface::wrap):
1309         (WebCore::toV8):
1310
1311 2012-04-17  Kentaro Hara  <haraken@chromium.org>
1312
1313         [V8] Pass Isolate to toV8Slow()
1314         https://bugs.webkit.org/show_bug.cgi?id=84173
1315
1316         Reviewed by Nate Chapin.
1317
1318         The final objective is to pass Isolate around in V8 bindings.
1319         This patch passes the Isolate to toV8Slow().
1320
1321         No tests. No change in behavior.
1322
1323         * bindings/scripts/CodeGeneratorV8.pm:
1324         (GenerateHeader):
1325         * bindings/v8/custom/V8NodeCustom.cpp:
1326         (WebCore::toV8Slow):
1327
1328 2012-04-17  Kentaro Hara  <haraken@chromium.org>
1329
1330         [V8] Add an optional Isolate argument to toV8().
1331         https://bugs.webkit.org/show_bug.cgi?id=84161
1332
1333         Reviewed by Nate Chapin.
1334
1335         The final objective is to pass Isolate around in V8 bindings.
1336         This patch adds an optional Isolate argument to toV8().
1337         After rewriting all toV8() callers so that they pass Isolate,
1338         I will make the Isolate argument non-optional.
1339
1340         No tests. No change in behavior.
1341
1342         * bindings/scripts/CodeGeneratorV8.pm:
1343         Modified as described above.
1344         (GenerateHeader):
1345         (NativeToJSValue):
1346         * bindings/v8/custom/V8BlobCustom.cpp:
1347         (WebCore::toV8):
1348         * bindings/v8/custom/V8CSSRuleCustom.cpp:
1349         (WebCore::toV8):
1350         * bindings/v8/custom/V8CSSStyleSheetCustom.cpp:
1351         (WebCore::toV8):
1352         * bindings/v8/custom/V8CSSValueCustom.cpp:
1353         (WebCore::toV8):
1354         * bindings/v8/custom/V8CanvasPixelArrayCustom.cpp:
1355         (WebCore::toV8):
1356         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
1357         (WebCore::toV8):
1358         * bindings/v8/custom/V8DOMTokenListCustom.cpp:
1359         (WebCore::toV8):
1360         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1361         (WebCore::toV8):
1362         * bindings/v8/custom/V8DataViewCustom.cpp:
1363         (WebCore::toV8):
1364         * bindings/v8/custom/V8DocumentCustom.cpp:
1365         (WebCore::toV8):
1366         * bindings/v8/custom/V8EntryCustom.cpp:
1367         (WebCore::toV8):
1368         * bindings/v8/custom/V8EntrySyncCustom.cpp:
1369         (WebCore::toV8):
1370         * bindings/v8/custom/V8EventCustom.cpp:
1371         (WebCore::toV8):
1372         * bindings/v8/custom/V8Float32ArrayCustom.cpp:
1373         (WebCore::toV8):
1374         * bindings/v8/custom/V8Float64ArrayCustom.cpp:
1375         (WebCore::toV8):
1376         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
1377         (WebCore::toV8):
1378         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
1379         (WebCore::toV8):
1380         * bindings/v8/custom/V8HTMLElementCustom.cpp:
1381         (WebCore::toV8):
1382         * bindings/v8/custom/V8IDBAnyCustom.cpp:
1383         (WebCore::toV8):
1384         * bindings/v8/custom/V8IDBKeyCustom.cpp:
1385         (WebCore::toV8):
1386         * bindings/v8/custom/V8ImageDataCustom.cpp:
1387         (WebCore::toV8):
1388         * bindings/v8/custom/V8Int16ArrayCustom.cpp:
1389         (WebCore::toV8):
1390         * bindings/v8/custom/V8Int32ArrayCustom.cpp:
1391         (WebCore::toV8):
1392         * bindings/v8/custom/V8Int8ArrayCustom.cpp:
1393         (WebCore::toV8):
1394         * bindings/v8/custom/V8LocationCustom.cpp:
1395         (WebCore::toV8):
1396         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
1397         (WebCore::toV8):
1398         * bindings/v8/custom/V8NodeCustom.cpp:
1399         (WebCore::toV8Slow):
1400         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
1401         (WebCore::toV8):
1402         * bindings/v8/custom/V8SVGElementCustom.cpp:
1403         (WebCore::toV8):
1404         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
1405         (WebCore::toV8):
1406         * bindings/v8/custom/V8ScriptProfileCustom.cpp:
1407         (WebCore::toV8):
1408         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
1409         (WebCore::toV8):
1410         * bindings/v8/custom/V8StyleSheetCustom.cpp:
1411         (WebCore::toV8):
1412         * bindings/v8/custom/V8Uint16ArrayCustom.cpp:
1413         (WebCore::toV8):
1414         * bindings/v8/custom/V8Uint32ArrayCustom.cpp:
1415         (WebCore::toV8):
1416         * bindings/v8/custom/V8Uint8ArrayCustom.cpp:
1417         (WebCore::toV8):
1418         * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp:
1419         (WebCore::toV8):
1420         * bindings/v8/custom/V8WorkerContextCustom.cpp:
1421         (WebCore::toV8):
1422
1423         * bindings/scripts/test/V8/V8Float64Array.h:
1424         Updated run-bindings-tests results.
1425         (WebCore):
1426         (WebCore::toV8):
1427         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
1428         (WebCore::toV8):
1429         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
1430         (WebCore::toV8):
1431         * bindings/scripts/test/V8/V8TestEventConstructor.h:
1432         (WebCore::toV8):
1433         * bindings/scripts/test/V8/V8TestEventTarget.h:
1434         (WebCore::toV8):
1435         * bindings/scripts/test/V8/V8TestInterface.h:
1436         (WebCore::toV8):
1437         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
1438         (WebCore::toV8):
1439         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
1440         (WebCore::toV8):
1441         * bindings/scripts/test/V8/V8TestNode.h:
1442         (WebCore::toV8):
1443         * bindings/scripts/test/V8/V8TestObj.h:
1444         (WebCore::toV8):
1445         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
1446         (WebCore::toV8):
1447
1448 2012-04-23  Michał Pakuła vel Rutka  <m.pakula@samsung.com>
1449         [EFL][WK2] Fix build break when non-cross platform CONTEXT_MENUS are enabled.
1450         https://bugs.webkit.org/show_bug.cgi?id=84136
1451
1452         Reviewed by Andreas Kling.
1453
1454         There was a mismatch between contextMenuItemVector declaration and definition.
1455         Fixed by changing PlatformMenuDescription for EFL port by adding a const modifier.
1456
1457         No new tests required.
1458
1459         * platform/PlatformMenuDescription.h:
1460         (WebCore): Added const modifier to PlatformMenuDescription definition.
1461
1462 2012-04-23  Pierre Rossi  <pierre.rossi@gmail.com>
1463
1464         [Qt] Ensure zero-width space effectively accounts for a width of zero.
1465         https://bugs.webkit.org/show_bug.cgi?id=84595
1466
1467         Reviewed by Simon Hausmann.
1468
1469         The logic so far relies on FontCache::getFontDataForCharacters to
1470         return a valid fontData in the case where the fonts specified don't
1471         have a glyph for the zero-width space character.
1472         QTextLayout::glyphRuns simply ignores characters that don't render in
1473         the glyph runs it returns, so we need to ensure that the subsequent
1474         call to platformWidthForGlyph doesn't lead to a non-zero width.
1475
1476         Covered by tests containing control characters such as
1477         a soft-hyphen like it's the case in:
1478         svg/as-image/img-preserveAspectRatio-support-1.html
1479
1480         * platform/graphics/qt/SimpleFontDataQt.cpp:
1481         (WebCore::SimpleFontData::platformWidthForGlyph):
1482
1483 2012-04-23  Ian Vollick  <vollick@chromium.org>
1484
1485         [chromium] When prepareToDraw fails due to animation checkerboard, we need to call setNeedsCommit
1486         https://bugs.webkit.org/show_bug.cgi?id=84520
1487
1488         Reviewed by Adrienne Walker.
1489
1490         Tested in CCLayerTreeHostImplTest.prepareToDrawFailsWhenAnimationUsesCheckerboard
1491
1492         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1493         (WebCore::CCLayerTreeHostImpl::prepareToDraw):
1494
1495 2012-04-23  Alexis Menard  <alexis.menard@openbossa.org>
1496
1497         Simplify CSSParser::parseFont.
1498         https://bugs.webkit.org/show_bug.cgi?id=78698
1499
1500         Reviewed by Antti Koivisto.
1501
1502         Simplify parseFont by sharing the code we have for
1503         the longhands of the font property.
1504
1505         No new tests : Extend the existing font shorthand test and modify expected files
1506         as now the order of the longhands added in the property list of the style
1507         has changed. It's very unlikely that some code is relying on this order though. It will
1508         also match the way the spec order them http://www.w3.org/TR/css3-fonts/#font-prop
1509         even though the order is arbitrary for some values.
1510
1511         * css/CSSParser.cpp:
1512         (WebCore::CSSParser::parseValue):
1513         (WebCore::CSSParser::parseFont):
1514         (WebCore::CSSParser::parseLineHeight):
1515         (WebCore):
1516         (WebCore::CSSParser::parseFontSize):
1517         (WebCore::CSSParser::parseFontWeight):  Fix a bug discovered while using parseFontWeight from
1518         the parseFont (case font: 0/0, Arial, sans-serif; in a layout test), we should return true only
1519         when we add something in the property list.
1520         * css/CSSParser.h:
1521
1522 2012-04-23  Yury Semikhatsky  <yurys@chromium.org>
1523
1524         Web Inspector: improve the way heap snapshot diff is calculated
1525         https://bugs.webkit.org/show_bug.cgi?id=84590
1526
1527         Diff calculation now consists of the following steps:
1528         1. Collect data about nodes in the base heap snapshot
1529         2. Pass it to the second snapshot.
1530         3. Calculate delta for each class.
1531
1532         Reviewed by Pavel Feldman.
1533
1534         * inspector/front-end/HeapSnapshot.js:
1535         (WebInspector.HeapSnapshot):
1536         (WebInspector.HeapSnapshot.prototype.dispose):
1537         (WebInspector.HeapSnapshot.prototype.aggregatesForDiff):
1538         (WebInspector.HeapSnapshot.prototype.calculateSnapshotDiff):
1539         (WebInspector.HeapSnapshot.prototype._calculateDiffForClass):
1540         (WebInspector.HeapSnapshot.prototype.createAddedNodesProvider):
1541         (WebInspector.HeapSnapshot.prototype.createDeletedNodesProvider):
1542         * inspector/front-end/HeapSnapshotDataGrids.js:
1543         (WebInspector.HeapSnapshotDiffDataGrid.prototype._populateChildren.aggregatesForDiffReceived.didCalculateSnapshotDiff):
1544         (WebInspector.HeapSnapshotDiffDataGrid.prototype._populateChildren):
1545         * inspector/front-end/HeapSnapshotGridNodes.js:
1546         (WebInspector.HeapSnapshotIteratorsTuple):
1547         (WebInspector.HeapSnapshotDiffNode):
1548         (WebInspector.HeapSnapshotDiffNode.prototype._createChildNode):
1549         (WebInspector.HeapSnapshotDiffNode.prototype._createNodesProvider):
1550         * inspector/front-end/HeapSnapshotProxy.js:
1551         (WebInspector.HeapSnapshotProxy.prototype.aggregatesForDiff):
1552         (WebInspector.HeapSnapshotProxy.prototype.calculateSnapshotDiff):
1553         (WebInspector.HeapSnapshotProxy.prototype.createAddedNodesProvider):
1554         (WebInspector.HeapSnapshotProxy.prototype.createDeletedNodesProvider):
1555         * inspector/front-end/HeapSnapshotView.js:
1556         (WebInspector.HeapSnapshotView.prototype._changeBase):
1557
1558 2012-04-23  Pavel Feldman  <pfeldman@chromium.org>
1559
1560         Web Inspector: Rename and extract UISourceCodeImpl into JavaScriptSource
1561         https://bugs.webkit.org/show_bug.cgi?id=84587
1562
1563         Reviewed by Yury Semikhatsky.
1564
1565         No changes other than extraction here. This is the first step in the Resource
1566         hierarchy refactoring described in bug 84586.
1567
1568         * WebCore.gypi:
1569         * WebCore.vcproj/WebCore.vcproj:
1570         * inspector/compile-front-end.py:
1571         * inspector/front-end/CompilerScriptMapping.js:
1572         (WebInspector.CompilerScriptMapping.prototype.addScript):
1573         * inspector/front-end/DebuggerPresentationModel.js:
1574         * inspector/front-end/JavaScriptSource.js: Added.
1575         (WebInspector.JavaScriptSource):
1576         (WebInspector.JavaScriptSource.prototype.breakpoints):
1577         (WebInspector.JavaScriptSource.prototype.breakpointAdded):
1578         (WebInspector.JavaScriptSource.prototype.breakpointRemoved):
1579         (WebInspector.JavaScriptSource.prototype.consoleMessages):
1580         (WebInspector.JavaScriptSource.prototype.consoleMessageAdded):
1581         (WebInspector.JavaScriptSource.prototype.consoleMessagesCleared):
1582         * inspector/front-end/RawSourceCode.js:
1583         (WebInspector.RawSourceCode.prototype._createUISourceCode):
1584         * inspector/front-end/SnippetsModel.js:
1585         (WebInspector.SnippetsScriptMapping.prototype._snippetAdded):
1586         (WebInspector.SnippetsScriptMapping.prototype._createUISourceCodeForScript):
1587         * inspector/front-end/WebKit.qrc:
1588         * inspector/front-end/inspector.html:
1589
1590 2012-04-23  Gavin Peters  <gavinp@chromium.org>
1591
1592         Move ReferrerPolicy out of SecurityPolicy class into its own header in platform.
1593         https://bugs.webkit.org/show_bug.cgi?id=84516
1594
1595         Reviewed by Adam Barth.
1596
1597         No change in behaviour; same enum, different class.
1598
1599         * GNUmakefile.list.am:
1600         * Target.pri:
1601         * WebCore.exp.in:
1602         * WebCore.gypi:
1603         * WebCore.vcproj/WebCore.vcproj:
1604         * WebCore.xcodeproj/project.pbxproj:
1605         * dom/Document.cpp:
1606         (WebCore::Document::Document):
1607         (WebCore::Document::processReferrerPolicy):
1608         * dom/Document.h:
1609         (WebCore::Document::referrerPolicy):
1610         (Document):
1611         * page/SecurityPolicy.h:
1612         * platform/ReferrerPolicy.h: Added.
1613         (WebCore):
1614
1615 2012-04-23  Vineet Chaudhary  <rgf748@motorola.com>
1616
1617         JS binding code generator doesn't handle "attribute unsigned long[]" well
1618         https://bugs.webkit.org/show_bug.cgi?id=84540
1619
1620         Reviewed by Kentaro Hara.
1621
1622         Codegenerator should handle spaces with the sequence<> to support
1623         numeric types like "unsigned long", "int" .. etc. and primitive types
1624         like "boolean", "Date" etc.
1625
1626         Tests: bindings/scripts/test/TestObj.idl
1627
1628         * bindings/scripts/CodeGenerator.pm:
1629         (SkipIncludeHeader): Rename AvoidInclusionOfType to SkipIncludeHeader.
1630         (GetArrayType):
1631         * bindings/scripts/CodeGeneratorJS.pm:
1632         (AddIncludesForType):
1633         (NativeToJSValue):
1634         * bindings/scripts/CodeGeneratorObjC.pm:
1635         (AddIncludesForType):
1636         (GenerateImplementation):
1637         * bindings/scripts/CodeGeneratorV8.pm:
1638         (AddIncludesForType):
1639         (GetHeaderClassInclude):
1640         (GenerateNormalAttrGetter):
1641         (NativeToJSValue):
1642         * bindings/scripts/IDLStructure.pm:
1643         * bindings/scripts/test/JS/JSTestObj.cpp:
1644         (WebCore):
1645         (WebCore::jsTestObjIntSequenceAttr):
1646         (WebCore::jsTestObjShortSequenceAttr):
1647         (WebCore::jsTestObjLongSequenceAttr):
1648         (WebCore::jsTestObjLongLongSequenceAttr):
1649         (WebCore::jsTestObjUnsignedIntSequenceAttr):
1650         (WebCore::jsTestObjUnsignedShortSequenceAttr):
1651         (WebCore::jsTestObjUnsignedLongSequenceAttr):
1652         (WebCore::jsTestObjUnsignedLongLongSequenceAttr):
1653         (WebCore::jsTestObjFloatSequenceAttr):
1654         (WebCore::jsTestObjDoubleSequenceAttr):
1655         (WebCore::jsTestObjBooleanSequenceAttr):
1656         (WebCore::jsTestObjVoidSequenceAttr):
1657         (WebCore::jsTestObjDateSequenceAttr):
1658         (WebCore::setJSTestObjSequenceAttr):
1659         (WebCore::setJSTestObjIntSequenceAttr):
1660         (WebCore::setJSTestObjShortSequenceAttr):
1661         (WebCore::setJSTestObjLongSequenceAttr):
1662         (WebCore::setJSTestObjLongLongSequenceAttr):
1663         (WebCore::setJSTestObjUnsignedIntSequenceAttr):
1664         (WebCore::setJSTestObjUnsignedShortSequenceAttr):
1665         (WebCore::setJSTestObjUnsignedLongSequenceAttr):
1666         (WebCore::setJSTestObjUnsignedLongLongSequenceAttr):
1667         (WebCore::setJSTestObjFloatSequenceAttr):
1668         (WebCore::setJSTestObjDoubleSequenceAttr):
1669         (WebCore::setJSTestObjBooleanSequenceAttr):
1670         (WebCore::setJSTestObjVoidSequenceAttr):
1671         (WebCore::setJSTestObjDateSequenceAttr):
1672         * bindings/scripts/test/JS/JSTestObj.h:
1673         (WebCore):
1674         * bindings/scripts/test/ObjC/DOMTestObj.h:
1675         * bindings/scripts/test/TestObj.idl:
1676         * bindings/scripts/test/V8/V8TestObj.cpp:
1677         (WebCore::TestObjV8Internal::intSequenceAttrAttrGetter):
1678         (TestObjV8Internal):
1679         (WebCore::TestObjV8Internal::intSequenceAttrAttrSetter):
1680         (WebCore::TestObjV8Internal::shortSequenceAttrAttrGetter):
1681         (WebCore::TestObjV8Internal::shortSequenceAttrAttrSetter):
1682         (WebCore::TestObjV8Internal::longSequenceAttrAttrGetter):
1683         (WebCore::TestObjV8Internal::longSequenceAttrAttrSetter):
1684         (WebCore::TestObjV8Internal::longLongSequenceAttrAttrGetter):
1685         (WebCore::TestObjV8Internal::longLongSequenceAttrAttrSetter):
1686         (WebCore::TestObjV8Internal::unsignedIntSequenceAttrAttrGetter):
1687         (WebCore::TestObjV8Internal::unsignedIntSequenceAttrAttrSetter):
1688         (WebCore::TestObjV8Internal::unsignedShortSequenceAttrAttrGetter):
1689         (WebCore::TestObjV8Internal::unsignedShortSequenceAttrAttrSetter):
1690         (WebCore::TestObjV8Internal::unsignedLongSequenceAttrAttrGetter):
1691         (WebCore::TestObjV8Internal::unsignedLongSequenceAttrAttrSetter):
1692         (WebCore::TestObjV8Internal::unsignedLongLongSequenceAttrAttrGetter):
1693         (WebCore::TestObjV8Internal::unsignedLongLongSequenceAttrAttrSetter):
1694         (WebCore::TestObjV8Internal::floatSequenceAttrAttrGetter):
1695         (WebCore::TestObjV8Internal::floatSequenceAttrAttrSetter):
1696         (WebCore::TestObjV8Internal::doubleSequenceAttrAttrGetter):
1697         (WebCore::TestObjV8Internal::doubleSequenceAttrAttrSetter):
1698         (WebCore::TestObjV8Internal::booleanSequenceAttrAttrGetter):
1699         (WebCore::TestObjV8Internal::booleanSequenceAttrAttrSetter):
1700         (WebCore::TestObjV8Internal::voidSequenceAttrAttrGetter):
1701         (WebCore::TestObjV8Internal::voidSequenceAttrAttrSetter):
1702         (WebCore::TestObjV8Internal::dateSequenceAttrAttrGetter):
1703         (WebCore::TestObjV8Internal::dateSequenceAttrAttrSetter):
1704         (WebCore):
1705
1706 2012-04-23  Andreas Kling  <kling@webkit.org>
1707
1708         Unreviewed assertion fix for Chromium bots.
1709
1710         Skip unnecessary Attr::attachToElement() after constructing an Attr using the
1711         constructor that attaches to an Element.
1712
1713         * dom/ElementAttributeData.cpp:
1714         (WebCore::ElementAttributeData::ensureAttr):
1715
1716 2012-04-23  Andreas Kling  <kling@webkit.org>
1717
1718         REGRESSION(r114870): Assertion failure in ElementAttributeData::setAttr().
1719         <http://webkit.org/b/84581>
1720
1721         Reviewed by Antti Koivisto.
1722
1723         Attach the Attr and bump m_attrCount manually in ensureAttr() instead of calling
1724         setAttr(). The latter asserts that the Attr isn't present in the map, which
1725         obviously isn't true after we've just added it.
1726
1727         This has the added effect of removing one unnecessary hash lookup.
1728
1729         * dom/ElementAttributeData.cpp:
1730         (WebCore::ElementAttributeData::ensureAttr):
1731
1732 2012-04-23  Pavel Feldman  <pfeldman@chromium.org>
1733
1734         Web Inspector: make ParsedURL.prototype.displayName data url friendly.
1735         https://bugs.webkit.org/show_bug.cgi?id=84578
1736
1737         Reviewed by Yury Semikhatsky.
1738
1739         We'd like to define valid URL as the one that has scheme, host and path.
1740         We can append to this URL and manipulate its content. We still want 
1741         possibly invalid specs (such as data or about) to exist and have nice
1742         display names.
1743
1744         * inspector/front-end/ResourceUtils.js:
1745         (WebInspector.ParsedURL):
1746         (WebInspector.ParsedURL.prototype.get displayName):
1747
1748 2012-04-23  Pavel Feldman  <pfeldman@chromium.org>
1749
1750         Web Inspector: introduce String.prototype.starts/endsWith and use it all over the place.
1751         https://bugs.webkit.org/show_bug.cgi?id=84574
1752
1753         Reviewed by Yury Semikhatsky.
1754
1755         * inspector/front-end/AuditRules.js:
1756         (WebInspector.AuditRules.VendorPrefixedCSSProperties.prototype.visitProperty):
1757         * inspector/front-end/BreakpointsSidebarPane.js:
1758         (WebInspector.EventListenerBreakpointsSidebarPane.prototype._setBreakpoint):
1759         (WebInspector.EventListenerBreakpointsSidebarPane.prototype._removeBreakpoint):
1760         * inspector/front-end/CSSCompletions.js:
1761         (WebInspector.CSSCompletions.prototype.startsWith):
1762         (WebInspector.CSSCompletions.prototype._firstIndexOfPrefix):
1763         * inspector/front-end/ConsoleView.js:
1764         (WebInspector.ConsoleView.prototype._reportCompletions):
1765         * inspector/front-end/CookieItemsView.js:
1766         (WebInspector.Cookies.cookieMatchesResourceURL):
1767         * inspector/front-end/DatabaseQueryView.js:
1768         (WebInspector.DatabaseQueryView.prototype.completions):
1769         * inspector/front-end/ElementsTreeOutline.js:
1770         (WebInspector.ElementsTreeElement.prototype._buildAttributeDOM):
1771         * inspector/front-end/ProfileView.js:
1772         * inspector/front-end/ProfilesPanel.js:
1773         (WebInspector.ProfilesPanel.prototype.addProfileHeader):
1774         (WebInspector.ProfilesPanel.prototype.displayTitleForProfileLink):
1775         (WebInspector.ProfileSidebarTreeElement):
1776         (WebInspector.ProfileSidebarTreeElement.prototype.get mainTitle):
1777         * inspector/front-end/ResourceUtils.js:
1778         (WebInspector.ParsedURL):
1779         (WebInspector.displayNameForURL):
1780         (WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
1781         (WebInspector.completeURL):
1782         * inspector/front-end/SnippetsModel.js:
1783         (WebInspector.SnippetsModel.prototype.snippetIdForSourceURL):
1784         * inspector/front-end/SourceCSSTokenizer.js:
1785         (WebInspector.SourceCSSTokenizer.prototype.nextToken):
1786         * inspector/front-end/SourceCSSTokenizer.re2js:
1787         * inspector/front-end/TextPrompt.js:
1788         (WebInspector.TextPrompt.prototype._completeCommonPrefix):
1789         * inspector/front-end/UIUtils.js:
1790         (WebInspector.startEditing):
1791         * inspector/front-end/utilities.js:
1792
1793 2012-04-23  Andreas Kling  <kling@webkit.org>
1794
1795         REGRESSION(r114870): Performance hit on DOM/CloneNodes and DOM/CreateNodes.
1796         <http://webkit.org/b/84575>
1797
1798         Reviewed by Antti Koivisto.
1799
1800         Simplify the cloning of Attributes from one Element to another by simply
1801         assigning to m_attributes. This avoids default-constructing a bunch of
1802         Attribute objects that we overwrite immediately anyway (this used to be
1803         fine because they were RefPtr<Attribute> but now that a default-constructed
1804         Attribute contains a QualifiedName, we were doing a bunch of extra hash
1805         lookups, etc.)
1806
1807         * dom/ElementAttributeData.cpp:
1808         (WebCore::ElementAttributeData::setAttributes):
1809
1810 2012-04-20  Pavel Feldman  <pfeldman@chromium.org>
1811
1812         Web Inspector: implement "open stylesheet" dialog.
1813         https://bugs.webkit.org/show_bug.cgi?id=84466
1814
1815         Reviewed by Yury Semikhatsky.
1816
1817         This change introduces abstract OpenResourceDialog and re-uses it in OpenScriptDialog and OpenStylesheetDialog.
1818         Drive-by fix for data: url representation in the navigator and open resource dialogs.
1819
1820         * inspector/front-end/FilteredItemSelectionDialog.js:
1821         (WebInspector.FilteredItemSelectionDialog.prototype.position):
1822         (WebInspector.OpenResourceDialog.filterOutEmptyURLs):
1823         (WebInspector.OpenResourceDialog.compareFunction):
1824         (WebInspector.OpenResourceDialog):
1825         (WebInspector.OpenResourceDialog.prototype.itemTitleAt):
1826         (WebInspector.OpenResourceDialog.prototype.itemKeyAt):
1827         (WebInspector.OpenResourceDialog.prototype.itemsCount):
1828         (WebInspector.OpenResourceDialog.prototype.requestItems):
1829         (WebInspector.OpenResourceDialog.prototype.selectItem):
1830         (WebInspector.OpenScriptDialog):
1831         (WebInspector.OpenScriptDialog.install):
1832         (WebInspector.OpenScriptDialog._show):
1833         (WebInspector.OpenScriptDialog.prototype.selectItem):
1834         * inspector/front-end/ResourceUtils.js:
1835         (WebInspector.ParsedURL):
1836         * inspector/front-end/ScriptsPanel.js:
1837         * inspector/front-end/StylesPanel.js:
1838         (WebInspector.StylesPanel):
1839         (WebInspector.StylesPanel.prototype._showOpenStylesheetDialog):
1840         (WebInspector.OpenStylesheetDialog):
1841         (WebInspector.OpenStylesheetDialog.prototype.selectItem):
1842         * inspector/front-end/inspector.html:
1843
1844 2012-04-23  Kent Tamura  <tkent@chromium.org>
1845
1846         Add test function to get placeholder string
1847         https://bugs.webkit.org/show_bug.cgi?id=84536
1848
1849         Reviewed by Ryosuke Niwa.
1850
1851         Add window.internals.visiblePlaceholder(element), which returns a
1852         placeholder string only when it's visible.
1853
1854         * WebCore.exp.in: Expose HTMLTextFormControlElement::placeholderShouldBeVisible().
1855         * testing/Internals.cpp:
1856         (WebCore::Internals::visiblePlaceholder): Added.
1857         (WebCore::Internals::selectColorInColorChooser): Omit HTMLNames::.
1858         * testing/Internals.h:
1859         (Internals): Add visiblePlaceholder().
1860         * testing/Internals.idl: ditto.
1861
1862 2012-04-23  Szilard Ledan  <szledan@inf.u-szeged.hu>
1863
1864         Incorrect handling of CSS escape sequences that encode surrogates
1865         https://bugs.webkit.org/show_bug.cgi?id=76152
1866
1867         Reviewed by Kent Tamura.
1868
1869         Test: fast/css/parsing-css-surrogate-pairs.html
1870
1871         * css/CSSParser.cpp:
1872         (WebCore::CSSParser::parseEscape):
1873
1874 2012-04-22  Yury Semikhatsky  <yurys@chromium.org>
1875
1876         Web Inspector: make populateChildren methods private in heap profiler front-end
1877         https://bugs.webkit.org/show_bug.cgi?id=84562
1878
1879         - populateChildren method on HeapSnapshotConstructorsDataGrid and
1880         HeapSnapshotDiffDataGrid now is private.
1881         - Made _defaultPopulateCount a public method on HeapSnapshotSortableDataGrid which
1882         is overriden in some descendants
1883         - Removed unused HeapSnapshotPathFinderProxy
1884         - added closure compiler annotations
1885
1886         Reviewed by Pavel Feldman.
1887
1888         * inspector/front-end/HeapSnapshotDataGrids.js:
1889         (WebInspector.HeapSnapshotSortableDataGrid.prototype.defaultPopulateCount):
1890         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.setDataSource):
1891         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._filterSelectIndexChanged):
1892         (WebInspector.HeapSnapshotDiffDataGrid.prototype.defaultPopulateCount):
1893         (WebInspector.HeapSnapshotDiffDataGrid.prototype.setBaseDataSource):
1894         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.defaultPopulateCount):
1895         * inspector/front-end/HeapSnapshotGridNodes.js:
1896         (WebInspector.HeapSnapshotGridNode):
1897         (WebInspector.HeapSnapshotGridNode.prototype.populateChildren.callSerialize):
1898         (WebInspector.HeapSnapshotDiffNode):
1899         (WebInspector.HeapSnapshotDiffNode.prototype.populateChildren.firstProviderPopulated):
1900         * inspector/front-end/HeapSnapshotProxy.js:
1901
1902 2012-04-22  Andreas Kling  <kling@webkit.org>
1903
1904         Unreviewed build fix, remove Attribute.cpp from DOMAllInOne.cpp.
1905
1906         * dom/DOMAllInOne.cpp: My nemesis.
1907
1908 2012-04-22  Andreas Kling  <kling@webkit.org>
1909
1910         Optimize Element attribute storage for the common case (no Attr objects.)
1911         <http://webkit.org/b/83440>
1912
1913         Reviewed by Antti Koivisto.
1914
1915         Reduce Attribute to its smallest possible size; a qname/value pair.
1916         They are no-longer ref-counted, which allows us to store them in Vectors.
1917
1918         Refactored the DOM Attr object to go with the new Attribute:
1919         Attr now wraps either {element, qname} or {qname, value}. The latter is for
1920         the case where a standalone Attr object is instantiated via DOM APIs.
1921
1922         ElementAttributeData.cpp manages a map of pair<element, qname> => Attr.
1923         Each Element (well, ElementAttributeData) keeps track of how many Attr
1924         objects are pointing to it. This is so we can avoid hash lookups during
1925         common operations in the typical case where you have zero Attrs.
1926
1927         Also removed the inline capacity (was 4) from AttributeVector as that
1928         would significantly increase bloat now that we store Attribute (2 pointers)
1929         rather than RefPtr<Attribute>. We trade this one piece of indirection
1930         for the removal of per-Attribute indirection.
1931
1932         * CMakeLists.txt:
1933         * GNUmakefile.list.am:
1934         * Target.pri:
1935         * WebCore.gypi:
1936         * WebCore.vcproj/WebCore.vcproj:
1937         * WebCore.xcodeproj/project.pbxproj:
1938         * dom/Attr.cpp:
1939         (WebCore::Attr::Attr):
1940         (WebCore):
1941         (WebCore::Attr::create):
1942         (WebCore::Attr::~Attr):
1943         (WebCore::Attr::createTextChild):
1944         (WebCore::Attr::setPrefix):
1945         (WebCore::Attr::setValue):
1946         (WebCore::Attr::cloneNode):
1947         (WebCore::Attr::childrenChanged):
1948         (WebCore::Attr::style):
1949         (WebCore::Attr::value):
1950         (WebCore::Attr::elementAttribute):
1951         (WebCore::Attr::detachFromElementWithValue):
1952         (WebCore::Attr::attachToElement):
1953         * dom/Attr.h:
1954         (WebCore):
1955         (Attr):
1956         (WebCore::Attr::qualifiedName):
1957         (WebCore::Attr::localName):
1958         (WebCore::Attr::namespaceURI):
1959         (WebCore::Attr::prefix):
1960         * dom/Attribute.cpp: Removed.
1961         * dom/Attribute.h:
1962         (WebCore::Attribute::Attribute):
1963         (Attribute):
1964         * dom/Document.cpp:
1965         (WebCore::Document::importNode):
1966         (WebCore::Document::createAttributeNS):
1967         * dom/Element.cpp:
1968         (WebCore::Element::~Element):
1969         (WebCore::Element::detachAttribute):
1970         (WebCore):
1971         (WebCore::Element::removeAttribute):
1972         (WebCore::Element::setAttributeInternal):
1973         (WebCore::Element::parserSetAttributes):
1974         (WebCore::Element::setAttributeNode):
1975         (WebCore::Element::removeAttributeNode):
1976         (WebCore::Element::normalizeAttributes):
1977         (WebCore::Element::didRemoveAttribute):
1978         (WebCore::Element::attrIfExists):
1979         (WebCore::Element::ensureAttr):
1980         * dom/Element.h:
1981         (Element):
1982         (WebCore::Element::getAttributeItemIndex):
1983         * dom/ElementAttributeData.cpp:
1984         (WebCore):
1985         (WebCore::attrMap):
1986         (WebCore::ElementAttributeData::attrIfExists):
1987         (WebCore::ElementAttributeData::ensureAttr):
1988         (WebCore::ElementAttributeData::setAttr):
1989         (WebCore::ElementAttributeData::removeAttr):
1990         (WebCore::AttributeVector::removeAttribute):
1991         (WebCore::ElementAttributeData::~ElementAttributeData):
1992         (WebCore::ElementAttributeData::addAttribute):
1993         (WebCore::ElementAttributeData::removeAttribute):
1994         (WebCore::ElementAttributeData::isEquivalent):
1995         (WebCore::ElementAttributeData::detachAttributesFromElement):
1996         (WebCore::ElementAttributeData::getAttributeItemIndexSlowCase):
1997         (WebCore::ElementAttributeData::setAttributes):
1998         (WebCore::ElementAttributeData::clearAttributes):
1999         (WebCore::ElementAttributeData::replaceAttribute):
2000         (WebCore::ElementAttributeData::getAttributeNode):
2001         * dom/ElementAttributeData.h:
2002         (WebCore):
2003         (WebCore::AttributeVector::AttributeVector):
2004         (AttributeVector):
2005         (WebCore::AttributeVector::getAttributeItem):
2006         (WebCore::AttributeVector::getAttributeItemIndex):
2007         (WebCore::AttributeVector::insertAttribute):
2008         (WebCore::ElementAttributeData::attributeItem):
2009         (ElementAttributeData):
2010         (WebCore::ElementAttributeData::ElementAttributeData):
2011         (WebCore::ElementAttributeData::attributeVector):
2012         (WebCore::ElementAttributeData::clonedAttributeVector):
2013         (WebCore::ElementAttributeData::removeAttribute):
2014         (WebCore::ElementAttributeData::getAttributeItem):
2015         (WebCore::ElementAttributeData::getAttributeItemIndex):
2016         * dom/NamedNodeMap.cpp:
2017         (WebCore::NamedNodeMap::getNamedItem):
2018         (WebCore::NamedNodeMap::getNamedItemNS):
2019         (WebCore::NamedNodeMap::removeNamedItem):
2020         (WebCore::NamedNodeMap::removeNamedItemNS):
2021         (WebCore::NamedNodeMap::item):
2022         * dom/Node.cpp:
2023         (WebCore::Node::compareDocumentPosition):
2024         * html/HTMLAnchorElement.cpp:
2025         (WebCore::HTMLAnchorElement::parseAttribute):
2026         * html/HTMLSelectElement.cpp:
2027         (WebCore::HTMLSelectElement::parseAttribute):
2028         * html/parser/HTMLConstructionSite.cpp:
2029         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
2030         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
2031         (WebCore::HTMLConstructionSite::insertScriptElement):
2032         (WebCore::HTMLConstructionSite::createElement):
2033         (WebCore::HTMLConstructionSite::createHTMLElement):
2034         (WebCore::HTMLConstructionSite::createHTMLElementFromSavedElement):
2035         * html/parser/HTMLToken.h:
2036         (WebCore::AtomicHTMLToken::AtomicHTMLToken):
2037         * html/parser/HTMLTreeBuilder.cpp:
2038         (WebCore::HTMLTreeBuilder::processFakeStartTag):
2039         (WebCore::HTMLTreeBuilder::attributesForIsindexInput):
2040         (WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody):
2041         (WebCore):
2042         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
2043         * html/parser/HTMLTreeBuilder.h:
2044         * html/parser/TextDocumentParser.cpp:
2045         (WebCore::TextDocumentParser::insertFakePreElement):
2046         * page/PageSerializer.cpp:
2047         (WebCore::SerializerMarkupAccumulator::appendCustomAttributes):
2048         * svg/SVGFitToViewBox.cpp:
2049         * svg/properties/SVGAnimatedPropertySynchronizer.h:
2050         * xml/XMLErrors.cpp:
2051         (WebCore::createXHTMLParserErrorHeader):
2052         (WebCore::XMLErrors::insertErrorMessageBlock):
2053         * xml/XPathNodeSet.cpp:
2054         (WebCore::XPath::NodeSet::traversalSort):
2055         * xml/XPathStep.cpp:
2056         (WebCore::XPath::Step::nodesInAxis):
2057         * xml/parser/MarkupTokenBase.h:
2058         (WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
2059         (WebCore::AtomicMarkupTokenBase::getAttributeItem):
2060         (WebCore::AtomicMarkupTokenBase::attributes):
2061         (AtomicMarkupTokenBase):
2062         (WebCore::::initializeAttributes):
2063         * xml/parser/XMLToken.h:
2064         (WebCore::AtomicXMLToken::AtomicXMLToken):
2065         * xml/parser/XMLTreeBuilder.cpp:
2066         (WebCore::XMLTreeBuilder::processNamespaces):
2067         (WebCore::XMLTreeBuilder::processAttributes):
2068
2069 2012-04-22  Sriram Neelakandan  <sriram.neelakandan@gmail.com>
2070
2071         Sync the MOZ_X11 changes from r14 of http://code.google.com/p/npapi-sdk/
2072         also, modified required build flags for Qt,Gtk and CMake
2073         [Qt]  Added MOZ_X11 build flag for !embedded
2074         https://bugs.webkit.org/show_bug.cgi?id=40785
2075
2076         Reviewed by Anders Carlsson.
2077
2078         No new tests. This does not change functionality. Affects all X11 Ports. Build should break if MOZ_X11 is not passed where required
2079
2080         * WebCore.pri:
2081         * plugins/npapi.h:
2082
2083 2012-04-22  Pablo Flouret  <pablof@motorola.com>
2084
2085         Reset event propagation and canceled flags in Event.initEvent
2086         https://bugs.webkit.org/show_bug.cgi?id=83964
2087
2088         Reviewed by Ryosuke Niwa.
2089
2090         Step 3 in http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-event-initevent
2091         Useful for re-configuring an event before dispatching.
2092
2093         Test: fast/events/flags-unset-on-init-event.html
2094
2095         * dom/Event.cpp:
2096         (WebCore::Event::initEvent):
2097
2098 2012-04-22  Martin Robinson  <mrobinson@igalia.com>
2099
2100         [Cairo] Implement CompositeDifference
2101         https://bugs.webkit.org/show_bug.cgi?id=77354
2102
2103         Reviewed by Alejandro G. Castro.
2104
2105         No new tests. The difference compositing operator are not exposed
2106         to web content, so this change is simply in preparation for a time
2107         in which it is used.
2108
2109         Properly map the difference compositing blend modes to a Cairo operator.
2110
2111         * platform/graphics/cairo/CairoUtilities.cpp:
2112         (WebCore::toCairoOperator): Add a mapping for difference. Remove
2113         code supporting versions of Cairo before 1.10, since the Cairo backend
2114         requires 1.10 or greater already.
2115
2116 2012-04-22  Jon Lee  <jonlee@apple.com>
2117
2118         Remove notifications support on Mac Lion.
2119         https://bugs.webkit.org/show_bug.cgi?id=84554
2120         <rdar://problem/11297128>
2121
2122         Reviewed by Sam Weinig.
2123
2124         * Configurations/FeatureDefines.xcconfig:
2125
2126 2012-04-22  Shawn Singh  <shawnsingh@chromium.org>
2127
2128         [chromium] Damage Tracker needs to use CCMathUtil transforms
2129         https://bugs.webkit.org/show_bug.cgi?id=84070
2130
2131         Reviewed by Adrienne Walker.
2132
2133         Unit test added to CCDamageTracker.cpp.
2134
2135         This patch makes CCDamageTracker use CCMathUtil transforms, so
2136         that perspective w < 0 problem is correctly handled.
2137
2138         * platform/graphics/chromium/cc/CCDamageTracker.cpp:
2139         (WebCore::CCDamageTracker::extendDamageForLayer):
2140         (WebCore::CCDamageTracker::extendDamageForRenderSurface):
2141
2142 2012-04-20  Jon Lee  <jonlee@apple.com>
2143
2144         Add Notification constructor
2145         https://bugs.webkit.org/show_bug.cgi?id=80477
2146         <rdar://problem/10912431>
2147
2148         Reviewed by Jian Li.
2149
2150         Tests will be added once there is support for web notifications on the Mac ports.
2151
2152         * WebCore.exp.in: Export finalize() function.
2153
2154         Modify Dictionary to support creation of event listeners.
2155         * bindings/js/Dictionary.h:
2156         (WebCore::Dictionary::isObject): Return true if the JSDictionary is valid.
2157         (WebCore::Dictionary::isUndefinedOrNull): Return true if the JSDictionary is not valid.
2158         (WebCore::Dictionary::get): Add convenience function to take const char* for
2159         property name, to prevent having to do implicit conversion to WTF::String.
2160         (WebCore::Dictionary::getEventListener): Add function to create event listener
2161         from the dictionary.
2162         (WebCore::Dictionary::asJSObject): Helper to convert WebCore objects to JS wrapper.
2163         * bindings/js/Dictionary.cpp:
2164         (WebCore::Notification): Implement asJSObject() for Notification.
2165         * bindings/js/JSDictionary.h:
2166         (WebCore::JSDictionary::execState): Expose the exec state so that the Dictionary
2167         can obtain its world for creating the event listener.
2168
2169         * bindings/v8/Dictionary.h:
2170         (WebCore::Dictionary::getEventListener): Stub implementation.
2171
2172         Add new constructor to idl definitions.
2173         * notifications/DOMWindowNotifications.idl: Add Notification constructor, if
2174         ENABLE(NOTIFICATIONS) is on.
2175         * notifications/Notification.idl: If ENABLE(NOTIFICATIONS) is turned on, define
2176         the constructor. Otherwise, use OmitConstructor.
2177         * notifications/NotificationCenter.idl: Wrap creation functions in
2178         ENABLE(LEGACY_NOTIFICATIONS).
2179         * notifications/NotificationCenter.h: Ditto.
2180         (NotificationCenter):
2181
2182         * notifications/Notification.h:
2183         (Notification): Wrap legacy constructors in ENABLE(LEGACY_NOTIFICATIONS).
2184         (WebCore::Notification::create): New creation function based on discussions in WG.
2185         * notifications/Notification.cpp:
2186         (WebCore::getAndAddEventListener): Helper function to get the listener from the
2187         dictionary, and attach to the notification.
2188         (WebCore::Notification::create): Create the notification, then apply whatever
2189         properties can be found in the dictionary to the notification. In order to
2190         attach the event listeners, the notification has to have been created, which is
2191         why this all happens in the factory method and not in the constructor.
2192         (WebCore::Notification::setBody): Added so that it can be set if we find it in the
2193         dictionary.
2194
2195         The new constructor queues a task to show when it is created. To support this, we
2196         use a one-shot timer that calls show() in the next iteration of the run loop.
2197         (WebCore::Notification::Notification): Start the timer.
2198         (WebCore::Notification::showTaskTimerFired): Call show().
2199
2200         Notifications, not being attached to the DOM, could be GC'ed by the JS engine
2201         before its life cycle has completed. We add calls to setPendingActivity() when the
2202         notification has been shown, and when it is closed, we unsetPendingActivity().
2203         To guarantee that we only call this once, we add a new state to the Notification
2204         state machine, called NotificationState::Closed.
2205         (WebCore::Notification::show): Call setPendingActivity() for all ports. Remove conditional on Mac.
2206         (WebCore::Notification::close): Include Closed state to machine; do nothing.
2207         (WebCore::Notification::dispatchCloseEvent): Call finalize().
2208         (WebCore::Notification::finalize): If the state is not Closed, we unsetPendingActivity()
2209         to make it available for GC.
2210         (WebCore::Notification::finishLoading): Remove the unsetPendingActivity(). That call
2211         was to balance the setPendingActivity() called for loading the icon. Instead of wrapping
2212         around the icon load, we wrap around the show() -> finalize() loop.
2213
2214         In Notification, rename some of the stages and functions to more clearly communicate
2215         that they mostly deal with the icon of the notification, instead of general loading.
2216         (WebCore::Notification::show): Refactored to use LoadingIcon and CancelledIcon.
2217         (WebCore::Notification::close): Refactored to use LoadingIcon and CancelledIcon.
2218         (WebCore::Notification::~Notification): Refactor to use LoadingIcon.
2219         (WebCore::Notification::startLoadingIcon): Renamed from startLoading().
2220         (WebCore::Notification::stopLoadingIcon): Renamed from stopLoading().
2221         (WebCore::Notification::finishLoadingIcon): Renamed from finishLoading().
2222         (WebCore::Notification::didFinishLoading):
2223         (WebCore::Notification::didFail):
2224         (WebCore::Notification::didFailRedirectCheck):
2225         (WebCore::Notification::didReceiveResponse):
2226         (WebCore::Notification::finishLoading):
2227
2228         Add Dictionary.cpp.
2229         * GNUmakefile.list.am:
2230         * Target.pri:
2231         * UseJSC.cmake:
2232         * WebCore.gypi:
2233
2234         Fix bug in V8 bindings generation code. If the constructor doesn't raise an exception,
2235         don't use an exception code.
2236         * bindings/scripts/CodeGeneratorV8.pm:
2237         (GenerateParametersCheck):
2238         * bindings/scripts/test/V8/V8TestObj.cpp: Reset results.
2239         (WebCore::TestObjV8Internal::optionsObjectCallback):
2240
2241 2012-04-21  Benjamin C Meyer  <bmeyer@rim.com>
2242
2243         Support loading the same plugin in multiple locations in the Blackberry port.
2244         https://bugs.webkit.org/show_bug.cgi?id=84537
2245
2246         The hash for the plugin is only based upon the plugin meta information
2247         which will be the same for the same plugin in the system and user's
2248         plugin folders.
2249
2250         It looks like this code was copied/based on the windows port
2251         which doesn't allow the same plugin to be loaded more than once.
2252
2253         Because we want to support multiple copies of the same plugin
2254         in the blackberry port we want to incorperate the path of the plugin
2255         into the hash.
2256
2257         PR 150404
2258
2259         Reviewed by Adam Treat.
2260
2261         * plugins/blackberry/PluginPackageBlackBerry.cpp:
2262         (WebCore::PluginPackage::hash):
2263
2264 2012-04-21  Benjamin C Meyer  <bmeyer@rim.com>
2265
2266         System plugins are preferred over application plugins
2267         https://bugs.webkit.org/show_bug.cgi?id=84538
2268
2269         Set the preferred paths for plugins so that plugins that reside
2270         inside of the bar will be preferred over plugins that are in the
2271         system folder.
2272
2273         PR 150404
2274
2275         Reviewed by Adam Treat.
2276
2277         * plugins/PluginDatabase.cpp:
2278         (WebCore::PluginDatabase::isPreferredPluginDirectory):
2279
2280 2012-04-21  Darin Adler  <darin@apple.com>
2281
2282         Improve performance of removing user and password from URLs
2283         https://bugs.webkit.org/show_bug.cgi?id=84525
2284
2285         Reviewed by Dan Bernstein.
2286
2287         Performance improvement only. Correctness covered by existing regression tests.
2288
2289         The most common use of KURL::setUser and KURL::setPass, by far, is to remove
2290         the user and password from a URL that already has neither. Optimize this by
2291         not re-parsing the URL in that case.
2292
2293         * platform/KURL.cpp:
2294         (WebCore::KURL::setUser): Restructure code so that the code path that removes
2295         the user does no work when there is nothing to remove. Otherwise, leave the
2296         logic of the function untouched.
2297         (WebCore::KURL::setPass): Same thing, only for password rather than user.
2298
2299 2012-04-20  Sheriff Bot  <webkit.review.bot@gmail.com>
2300
2301         Unreviewed, rolling out r114768.
2302         http://trac.webkit.org/changeset/114768
2303         https://bugs.webkit.org/show_bug.cgi?id=84521
2304
2305         Original patch was not the problem, re-applying (Requested by
2306         pfeldman_ on #webkit).
2307
2308         * bindings/v8/V8IsolatedContext.cpp:
2309         (WebCore::setInjectedScriptContextDebugId):
2310         (WebCore):
2311         (WebCore::V8IsolatedContext::V8IsolatedContext):
2312         * bindings/v8/V8Proxy.cpp:
2313         (WebCore::V8Proxy::evaluateInIsolatedWorld):
2314         * bindings/v8/V8Proxy.h:
2315         (V8Proxy):
2316
2317 2012-04-20  Adrienne Walker  <enne@google.com>
2318
2319         [chromium] Refactor opaque content transform out of Skia context
2320         https://bugs.webkit.org/show_bug.cgi?id=83608
2321
2322         Reviewed by James Robinson.
2323
2324         Having PlatformContextSkia know about the transform into content space
2325         for a layer is a layering violation. This change lets the
2326         PlatformContextSkia deal with opaque rects in its own space and lets
2327         the caller handle transforming it into its own space. This also
2328         prevents a matrix multiply per draw into the Skia canvas and does it
2329         just once at the end to transform the final rect.
2330
2331         This is an incremental refactoring so that additional tracking for
2332         text rects can be added and use the same space as opaque rects.
2333
2334         Tests: LayerTextureUpdaterTest.testPartialOpaqueRectNoTransform
2335                LayerTextureUpdaterTest.testPartialOpaqueRectTranslation
2336                LayerTextureUpdaterTest.testPartialOpaqueRectScale
2337
2338         * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
2339         (WebCore::BitmapCanvasLayerTextureUpdater::prepareToUpdate):
2340         * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h:
2341         (BitmapCanvasLayerTextureUpdater):
2342         * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
2343         (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::prepareToUpdate):
2344         * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
2345         (BitmapSkPictureCanvasLayerTextureUpdater):
2346         * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp:
2347         (WebCore::CanvasLayerTextureUpdater::paintContents):
2348         * platform/graphics/chromium/CanvasLayerTextureUpdater.h:
2349         (CanvasLayerTextureUpdater):
2350         * platform/graphics/chromium/LayerTextureUpdater.h:
2351         (WebCore::LayerTextureUpdater::prepareToUpdate):
2352         * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp:
2353         (WebCore::SkPictureCanvasLayerTextureUpdater::prepareToUpdate):
2354         * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.h:
2355         (SkPictureCanvasLayerTextureUpdater):
2356         * platform/graphics/chromium/TiledLayerChromium.cpp:
2357         (WebCore::TiledLayerChromium::updateTiles):
2358         * platform/graphics/skia/OpaqueRegionSkia.cpp:
2359         (WebCore::OpaqueRegionSkia::didDrawRect):
2360         (WebCore::OpaqueRegionSkia::didDrawPath):
2361         (WebCore::OpaqueRegionSkia::didDrawPoints):
2362         (WebCore::OpaqueRegionSkia::didDrawBounded):
2363         (WebCore::OpaqueRegionSkia::didDraw):
2364         * platform/graphics/skia/OpaqueRegionSkia.h:
2365         (OpaqueRegionSkia):
2366         * platform/graphics/skia/PlatformContextSkia.cpp:
2367         (WebCore::PlatformContextSkia::didDrawRect):
2368         (WebCore::PlatformContextSkia::didDrawPath):
2369         (WebCore::PlatformContextSkia::didDrawPoints):
2370         (WebCore::PlatformContextSkia::didDrawBounded):
2371         * platform/graphics/skia/PlatformContextSkia.h:
2372         (PlatformContextSkia):
2373
2374 2012-04-20  Enrica Casucci  <enrica@apple.com>
2375
2376         CRASH at WebCore::ReplaceSelectionCommand::removeRedundantMarkup
2377         https://bugs.webkit.org/show_bug.cgi?id=84518
2378         <rdar://problem/10714790>
2379
2380         Reviewed by Simon Fraser.
2381
2382         There are cases where the m_lastNodeInserted is NULL to begin with or
2383         gets deleted by removeRedundantStylesAndKeepStyleSpanInline.
2384         This change handles those cases properly.
2385         
2386         Tests: editing/pasteboard/paste-sanitize-crash-1.html
2387                editing/pasteboard/paste-sanitize-crash-2.html
2388
2389         * editing/ReplaceSelectionCommand.h:
2390         (WebCore::ReplaceSelectionCommand::InsertedNodes::pastLastLeaf):
2391         * editing/SimplifyMarkupCommand.cpp:
2392         (WebCore::SimplifyMarkupCommand::doApply):
2393
2394 2012-04-20  Michael Nordman  <michaeln@google.com>
2395
2396         [chromium] Tiny change to DomStorage v8 bindings to avoid a relatively expensive test in a couple
2397         of places by reordering the expressions in compound conditions, if (fastTest && moreExpensiveTest)
2398         https://bugs.webkit.org/show_bug.cgi?id=84500
2399
2400         Reviewed by Kentaro Hara.
2401
2402         No new tests, no new functionality.
2403
2404         * bindings/v8/custom/V8StorageCustom.cpp:
2405         (WebCore::storageGetter):
2406         (WebCore::V8Storage::namedPropertyQuery):
2407
2408 2012-04-20  Dan Bernstein  <mitz@apple.com>
2409
2410         REGRESSION (r114784): svg/text/foreignObject-text-clipping-bug.xml failing on Mountain Lion Debug Tests
2411         https://bugs.webkit.org/show_bug.cgi?id=84505
2412
2413         Reviewed by Anders Carlsson.
2414
2415         * rendering/RenderBlock.cpp:
2416         (WebCore::RenderBlock::blockBeforeWithinSelectionRoot): Changed to not assume that boxes only
2417         have boxes as siblings.
2418
2419 2012-04-20  Dana Jansens  <danakj@chromium.org>
2420
2421         [chromium] Remove special case for recreating layers during sync
2422         https://bugs.webkit.org/show_bug.cgi?id=84458
2423
2424         Reviewed by James Robinson.
2425
2426         We no longer delete layers on the impl side, unless it is due to
2427         deleting the layer on webkit side. So we will no longer have a
2428         situation where we need to push properties from an old
2429         LayerChromium to a new CCLayerImpl.
2430
2431         * platform/graphics/chromium/TreeSynchronizer.cpp:
2432         (WebCore::TreeSynchronizer::reuseOrCreateCCLayerImpl):
2433
2434 2012-04-20  Dana Jansens  <danakj@chromium.org>
2435
2436         [chromium] WebFilterOperations API does not compile or dynamically link
2437         https://bugs.webkit.org/show_bug.cgi?id=84506
2438
2439         Reviewed by James Robinson.
2440
2441         Non-inline functions need WEBKIT_EXPORT in their declarations,
2442         and the type used in the WebPrivateOwnPtr needs to be forward-
2443         declared even when WEBKIT_IMPLEMENTATION is not defined.
2444
2445         * platform/chromium/support/WebFilterOperations.cpp:
2446         (WebKit::WebFilterOperations::initialize):
2447
2448 2012-04-20  Sheriff Bot  <webkit.review.bot@gmail.com>
2449
2450         Unreviewed, rolling out r114333.
2451         http://trac.webkit.org/changeset/114333
2452         https://bugs.webkit.org/show_bug.cgi?id=84511
2453
2454         perf regression (Requested by morrita on #webkit).
2455
2456         * dom/Node.cpp:
2457         * dom/Node.h:
2458         (WebCore):
2459         (Node):
2460         (WebCore::Node::isElementNode):
2461         (WebCore::Node::isContainerNode):
2462         (WebCore::Node::isTextNode):
2463         (WebCore::Node::isHTMLElement):
2464         (WebCore::Node::isSVGElement):
2465         (WebCore::Node::isStyledElement):
2466         (WebCore::Node::isShadowRoot):
2467         (WebCore::Node::parentNode):
2468         (WebCore::Node::parentNodeGuaranteedHostFree):
2469
2470 2012-04-20  Alec Flett  <alecflett@chromium.org>
2471
2472         IndexedDB: Support get/getKey(keyRange)
2473         https://bugs.webkit.org/show_bug.cgi?id=83638
2474
2475         Reviewed by Ojan Vafai.
2476
2477         Support IDBKeyRange as a parameter to all the various get/getKey 
2478         combinations. Switches the existing get/getKey versions that use 
2479         IDBKey directly to start using IDBKeyRange.only(). 
2480
2481         Test: storage/indexeddb/get-keyrange.html
2482
2483         * Modules/indexeddb/IDBIndex.cpp:
2484         (WebCore::IDBIndex::get):
2485         (WebCore):
2486         (WebCore::IDBIndex::getKey):
2487         * Modules/indexeddb/IDBIndex.h:
2488         (IDBIndex):
2489         * Modules/indexeddb/IDBIndex.idl:
2490         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
2491         (WebCore::IDBIndexBackendImpl::getInternal):
2492         (WebCore):
2493         (WebCore::IDBIndexBackendImpl::getByRangeInternal):
2494         (WebCore::IDBIndexBackendImpl::getKeyInternal):
2495         (WebCore::IDBIndexBackendImpl::getKeyByRangeInternal):
2496         (WebCore::IDBIndexBackendImpl::get):
2497         (WebCore::IDBIndexBackendImpl::getKey):
2498         * Modules/indexeddb/IDBIndexBackendImpl.h:
2499         (IDBIndexBackendImpl):
2500         * Modules/indexeddb/IDBIndexBackendInterface.h:
2501         (IDBIndexBackendInterface):
2502         * Modules/indexeddb/IDBObjectStore.cpp:
2503         (WebCore::IDBObjectStore::get):
2504         (WebCore):
2505         * Modules/indexeddb/IDBObjectStore.h:
2506         (IDBObjectStore):
2507         * Modules/indexeddb/IDBObjectStore.idl:
2508         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
2509         (WebCore):
2510         (WebCore::IDBObjectStoreBackendImpl::get):
2511         (WebCore::IDBObjectStoreBackendImpl::getByRangeInternal):
2512         (WebCore::IDBObjectStoreBackendImpl::getInternal):
2513         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
2514         (IDBObjectStoreBackendImpl):
2515         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
2516         (IDBObjectStoreBackendInterface):
2517
2518 2012-04-20  Sheriff Bot  <webkit.review.bot@gmail.com>
2519
2520         Unreviewed, rolling out r114789.
2521         http://trac.webkit.org/changeset/114789
2522         https://bugs.webkit.org/show_bug.cgi?id=84515
2523
2524         Caused 5 tests to fail on mac/ (Requested by jernoble on
2525         #webkit).
2526
2527         * css/CSSPrimitiveValueMappings.h:
2528         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2529         * css/CSSValueKeywords.in:
2530         * platform/ThemeTypes.h:
2531         * rendering/RenderTheme.cpp:
2532         (WebCore::RenderTheme::paint):
2533
2534 2012-04-20  Brady Eidson  <beidson@apple.com>
2535
2536         https://bugs.webkit.org/show_bug.cgi?id=84512
2537         Repurpose ActiveDOMObject::WillShowDialog to WillDeferLoading
2538
2539         Reviewed by Eric Carlson.
2540
2541         No new tests. (Refactor, no behavior change)
2542
2543         Rename WillShowDialog to WillDeferLoading:
2544         * dom/ActiveDOMObject.h:
2545         * html/HTMLMediaElement.cpp:
2546         (WebCore::HTMLMediaElement::suspend):
2547
2548         Don't take a ReasonForSuspension argument anymore, just use WillDeferLoading:
2549         * page/PageGroupLoadDeferrer.cpp:
2550         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
2551         * page/PageGroupLoadDeferrer.h:
2552
2553         Don't pass a Reason anymore as WillDeferLoading is used by default:
2554         * page/Chrome.cpp:
2555         (WebCore::Chrome::runModal):
2556         (WebCore::Chrome::runBeforeUnloadConfirmPanel):
2557         (WebCore::Chrome::runJavaScriptAlert):
2558         (WebCore::Chrome::runJavaScriptConfirm):
2559         (WebCore::Chrome::runJavaScriptPrompt):
2560         (WebCore::Chrome::shouldInterruptJavaScript):
2561
2562 2012-04-20  James Robinson  <jamesr@chromium.org>
2563
2564         [chromium] Plumb a compositor surface ready notification through to the threaded compositor
2565         https://bugs.webkit.org/show_bug.cgi?id=84305
2566
2567         Reviewed by Adrienne Walker.
2568
2569         Plumb setSurfaceReady through to the scheduler.
2570
2571         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2572         (WebCore::CCLayerTreeHost::setSurfaceReady):
2573         (WebCore):
2574         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2575         (CCLayerTreeHost):
2576         * platform/graphics/chromium/cc/CCProxy.h:
2577         (CCProxy):
2578         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2579         (WebCore::CCSingleThreadProxy::setSurfaceReady):
2580         (WebCore):
2581         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
2582         (CCSingleThreadProxy):
2583         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2584         (WebCore::CCThreadProxy::setSurfaceReady):
2585         (WebCore):
2586         (WebCore::CCThreadProxy::setSurfaceReadyOnImplThread):
2587         (WebCore::CCThreadProxy::initializeImplOnImplThread):
2588         * platform/graphics/chromium/cc/CCThreadProxy.h:
2589         (CCThreadProxy):
2590
2591 2012-04-20  Mark Pilgrim  <pilgrim@chromium.org>
2592
2593         [Chromium] Call memoryUsageMB directly
2594         https://bugs.webkit.org/show_bug.cgi?id=84376
2595
2596         Reviewed by Kentaro Hara.
2597
2598         Now that memoryUsageMB has been moved from PlatformSupport.h to
2599         Platform.h, we need to be able to call it directly
2600         from WebCore/bindings/v8/V8GCController.cpp.
2601         That means we need a new MemoryUsageSupport class in
2602         WebCore/platform/ and an implementation in
2603         WebCore/platform/chromium/MemoryUsageSupportChromium.cpp.
2604         Other ports are welcome to implement their memory usage
2605         functions if they wish. This pattern was based on the
2606         HistogramSupport/HistogramSupportChromium classes.
2607
2608         Part of a refactoring series. See tracking bug 82948.
2609
2610         * CMakeLists.txt:
2611         * GNUmakefile.list.am:
2612         * Target.pri:
2613         * WebCore.gypi:
2614         * WebCore.vcproj/WebCore.vcproj:
2615         * WebCore.xcodeproj/project.pbxproj:
2616         * bindings/v8/V8GCController.cpp:
2617         (WebCore):
2618         * platform/MemoryUsageSupport.cpp: Added.
2619         (WebCore):
2620         (WebCore::MemoryUsageSupport::memoryUsageMB):
2621         * platform/MemoryUsageSupport.h: Added.
2622         (WebCore):
2623         (MemoryUsageSupport):
2624         * platform/chromium/MemoryUsageSupportChromium.cpp: Added.
2625         (WebCore):
2626         (WebCore::MemoryUsageSupport::memoryUsageMB):
2627         * platform/chromium/PlatformSupport.h:
2628         (PlatformSupport):
2629
2630 2012-04-20  Anders Carlsson  <andersca@apple.com>
2631
2632         Re-land. The non-fast scrollable region is now always updated after layout, and frameViewScrollableAreasDidChange has been removed.
2633
2634         computeNonFastScrollableRegion needs to traverse the entire frame tree
2635         https://bugs.webkit.org/show_bug.cgi?id=84409
2636         <rdar://problem/11285741>
2637
2638         Reviewed by Dan Bernstein.
2639
2640         Now that scrollable areas won't be in the set of scrollable areas unless they are actually scrollable, we need to look for scrollable
2641         areas in the entire frame tree since there can be a scrollable frame that's a subframe of a non-scrollable frame for example.
2642
2643         * page/scrolling/ScrollingCoordinator.cpp:
2644         (WebCore::computeNonFastScrollableRegion):
2645         (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
2646
2647 2012-04-20  Adrienne Walker  <enne@google.com>
2648
2649         [chromium] Clip TransparencyWin to prevent OOM from large Skia canvas
2650         https://bugs.webkit.org/show_bug.cgi?id=84289
2651
2652         Reviewed by James Robinson.
2653
2654         TransparencyWin will create a Skia canvas of whatever size is passed
2655         in, even if the result will ultimately be clipped. Handle the clip
2656         implicitly and try (in some cases) to create a smaller canvas. This
2657         can happen due to RenderBox::paintBoxDecorations passing a paint rect
2658         down of the entire element's size.
2659
2660         Modes with more complicated transforms (ScaleTransform, UnTransform)
2661         are not handled yet.
2662
2663         Tests: TransparencyWin.ClippedKeepTransformNoLayer
2664                TransparencyWin.ClippedKeepTransformOpaqueCompositeLayer
2665                TransparencyWin.ClippedKeepTransformOpaqueWhiteLayer
2666
2667         * platform/graphics/chromium/TransparencyWin.cpp:
2668         (WebCore::TransparencyWin::computeLayerSize):
2669
2670 2012-04-04  Jer Noble  <jer.noble@apple.com>
2671
2672         apple.com top navigation bar appears inside video during full screen exit animation
2673         https://bugs.webkit.org/show_bug.cgi?id=83095
2674
2675         Reviewed by Eric Carlson.
2676
2677         Test: fullscreen/full-screen-exit-animation-stacking-context.html
2678
2679         Only tell ancestors of the full screen element that they are no longer ancestors once
2680         the full screen animation is complete:
2681         * dom/Document.cpp:
2682         (WebCore::Document::webkitWillExitFullScreenForElement):
2683         (WebCore::Document::webkitDidExitFullScreenForElement):
2684
2685         To facilitate writing reproducible LayoutTests, expose webkitWill/Did/Enter/ExitFullScreen
2686         from the Internals object, so scripts can call them explicitly:
2687         * testing/Internals.cpp:
2688         (WebCore::Internals::webkitWillEnterFullScreenForElement): Call the Document equivalent.
2689         (WebCore::Internals::webkitDidEnterFullScreenForElement): Ditto.
2690         (WebCore::Internals::webkitWillExitFullScreenForElement): Ditto.
2691         (WebCore::Internals::webkitDidExitFullScreenForElement): Ditto.
2692         * testing/Internals.h:
2693         * testing/Internals.idl:
2694
2695 2012-04-17  Jer Noble  <jer.noble@apple.com>
2696
2697         media-exit-fullscreen-button (and related enums) is unnecessary and should be removed.
2698         https://bugs.webkit.org/show_bug.cgi?id=84162
2699
2700         Reviewed by Eric Carlson.
2701
2702         No new tests; no change in functionality so covered by existing tests.
2703
2704         Remove the media-exit-fullscreen-button keyword, and rename media-enter-fullscreen-button to
2705         media-fullscreen-button.
2706
2707         * css/CSSPrimitiveValueMappings.h:
2708         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2709         * css/CSSValueKeywords.in:
2710         * css/mediaControls.css:
2711         (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button):
2712         * platform/ThemeTypes.h:
2713         * rendering/RenderTheme.cpp:
2714         (WebCore::RenderTheme::paint):
2715
2716 2012-04-20  Alexandre Elias  <aelias@google.com>
2717
2718         [chromium] Fix compile errors when DEBUG_GL_CALLS is enabled
2719         https://bugs.webkit.org/show_bug.cgi?id=84491
2720
2721         Reviewed by Ojan Vafai.
2722
2723         DEBUG_GL_CALLS had not been used in a while and the mode no longer
2724         compiled when I tried it.  I improved the GLC macro to support either
2725         raw pointers or RefPtrs, and to be a single expression in order to
2726         interact properly with if/else blocks.  I fixed the cases where we
2727         were passing in the "context" method pointer by mistake, and removed the
2728         now-unnecessary "get()" calls for the RefPtrs.
2729
2730         No new tests. (No-op change in release builds.)
2731
2732         * platform/graphics/chromium/LayerRendererChromium.cpp:
2733         (WebCore::LayerRendererChromium::initialize):
2734         (WebCore::LayerRendererChromium::clearRenderSurface):
2735         (WebCore::LayerRendererChromium::beginDrawingFrame):
2736         (WebCore::LayerRendererChromium::doNoOp):
2737         (WebCore::LayerRendererChromium::drawQuad):
2738         (WebCore::LayerRendererChromium::drawTextureQuad):
2739         (WebCore::LayerRendererChromium::drawHeadsUpDisplay):
2740         (WebCore::LayerRendererChromium::finishDrawingFrame):
2741         (WebCore::LayerRendererChromium::useRenderSurface):
2742         (WebCore::LayerRendererChromium::bindFramebufferToTexture):
2743         (WebCore::LayerRendererChromium::setScissorToRect):
2744         (WebCore::LayerRendererChromium::setDrawViewportRect):
2745         (WebCore::LayerRendererChromium::initializeSharedObjects):
2746         (WebCore::LayerRendererChromium::cleanupSharedObjects):
2747         * platform/graphics/chromium/LayerRendererChromium.h:
2748         (WebCore):
2749
2750 2012-04-20  Anders Carlsson  <andersca@apple.com>
2751
2752         Fix build.
2753
2754         * page/scrolling/ScrollingCoordinator.cpp:
2755         (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionAndScrollLayerPosition):
2756
2757 2012-04-19  Simon Fraser  <simon.fraser@apple.com>
2758
2759         Set m_compositingDependsOnGeometry to false if possible
2760         https://bugs.webkit.org/show_bug.cgi?id=84391
2761
2762         Reviewed by James Robinson.
2763         
2764         For some kinds of elements, RenderLayerCompositor has to delay decisions about
2765         compositing until the element's size and/or position are known. This was previsouly
2766         based on the confusingly named m_compositingDependsOnGeometry flag, but another
2767         variant of the same technique, with an additional flag m_compositingNeedsUpdate,
2768         was added in r98627.
2769         
2770         Also, once the m_compositingDependsOnGeometry flag was set to true, nothing
2771         set it to false, so every compositing layer update resulted in a computeCompositingRequirements()
2772         pass over the layers.
2773         
2774         Rename the m_compositingDependsOnGeometry flag to m_reevaluateCompositingAfterLayout,
2775         and clear the flag when we do a layout-related compositing layer update.
2776         Use the same flag for position:fixed compositing.
2777         
2778         This requires RenderLayerCompositor to distinguish between style- and layout-
2779         related updates, requiring some minor refactoring in FrameView.
2780
2781         Should not change behavior.
2782         
2783         * dom/Document.cpp:
2784         (WebCore::Document::recalcStyle):
2785         (WebCore::Document::implicitClose):
2786         * page/FrameView.cpp:
2787         (WebCore::FrameView::updateCompositingLayersAfterStyleChange):
2788         (WebCore::FrameView::updateCompositingLayersAfterLayout):
2789         (WebCore::FrameView::restoreBackingStores):
2790         (WebCore::FrameView::layout):
2791         * page/FrameView.h:
2792         (FrameView):
2793         * rendering/RenderLayerCompositor.cpp:
2794         (WebCore::RenderLayerCompositor::RenderLayerCompositor):
2795         (WebCore::RenderLayerCompositor::updateCompositingLayersTimerFired):
2796         (WebCore::RenderLayerCompositor::updateCompositingLayers):
2797         (WebCore::RenderLayerCompositor::layerTreeAsText):
2798         (WebCore::RenderLayerCompositor::requiresCompositingForPlugin):
2799         (WebCore::RenderLayerCompositor::requiresCompositingForFrame):
2800         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
2801         * rendering/RenderLayerCompositor.h:
2802         (RenderLayerCompositor):
2803
2804 2012-04-20  Dan Bernstein  <mitz@apple.com>
2805
2806         <rdar://problem/10786000> Selection highlights of lines in adjoining blocks can overlap
2807         https://bugs.webkit.org/show_bug.cgi?id=84489
2808
2809         Reviewed by Anders Carlsson.
2810
2811         Test: fast/block/line-layout/selection-highlight-overlap.html
2812
2813         * rendering/EllipsisBox.cpp:
2814         (WebCore::EllipsisBox::selectionRect): Changed to use
2815         selection{Top,Height}AdjustedForPrecedingBlock().
2816         * rendering/InlineTextBox.cpp:
2817         (WebCore::InlineTextBox::paintSelection): Ditto.
2818         * rendering/RenderBlock.cpp:
2819         (WebCore::RenderBlock::inlineSelectionGaps): Ditto.
2820         (WebCore::RenderBlock::blockBeforeWithinSelectionRoot): Added. Returns the block which is
2821         likely to contain the selected line just before the first line in this block, if it is
2822         within the same selection root.
2823         * rendering/RenderBlock.h:
2824         * rendering/RootInlineBox.cpp:
2825         (WebCore::RootInlineBox::selectionTopAdjustedForPrecedingBlock): Added. If the selection
2826         starts before our block, finds the last line in the preceding block and adjusts the selection
2827         top to avoid overlap with that line’s selection bottom.
2828         * rendering/RootInlineBox.h:
2829         (WebCore::RootInlineBox::selectionHeightAdjustedForPrecedingBlock): Added. Like
2830         selectionHeight(), but uses selectionTopAdjustedForPrecedingBlock().
2831
2832 2012-04-20  Xianzhu Wang  <wangxianzhu@chromium.org>
2833
2834         Crash in getOrDrawNodeHighlight after r114659
2835         https://bugs.webkit.org/show_bug.cgi?id=84486
2836
2837         Reviewed by Daniel Bates.
2838
2839         No new tests. Fixes a crash in test: inspector/elements/elements-panel-selection-on-refresh.html.
2840
2841         * inspector/DOMNodeHighlighter.cpp:
2842
2843 2012-04-20  Brady Eidson  <beidson@apple.com>
2844
2845         https://bugs.webkit.org/show_bug.cgi?id=84490
2846         PageGroupLoadDeferrer needs to take a ReasonForSuspension argument
2847
2848         Reviewed by Anders Carlsson.
2849
2850         No new tests. (Refactor, no change in behavior)
2851
2852         - Make PageGroupLoadDeferrer take a ReasonForSuspension argument so it can pass it along.
2853         * page/PageGroupLoadDeferrer.cpp:
2854         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
2855         * page/PageGroupLoadDeferrer.h:
2856
2857         - Change suspendScheduledTasks to take a ReasonForSuspension.
2858         - As long as we're changing Document.h, add a m_suspendedScheduledTasks flag and some
2859           ASSERTs to catch what would be epically wrong behavior in the future.
2860         * dom/Document.cpp:
2861         (WebCore::Document::Document):
2862         (WebCore::Document::suspendScheduledTasks):
2863         (WebCore::Document::resumeScheduledTasks):
2864         * dom/Document.h:
2865
2866         - Pass ActiveDOMObject::WillShowDialog along to all PageGroupLoadDeferrers, as it used
2867           to be the default behavior
2868         * page/Chrome.cpp:
2869         (WebCore::Chrome::runModal):
2870         (WebCore::Chrome::runBeforeUnloadConfirmPanel):
2871         (WebCore::Chrome::runJavaScriptAlert):
2872         (WebCore::Chrome::runJavaScriptConfirm):
2873         (WebCore::Chrome::runJavaScriptPrompt):
2874         (WebCore::Chrome::shouldInterruptJavaScript):
2875
2876 2012-04-20  Anders Carlsson  <andersca@apple.com>
2877
2878         Scrolling after going to a find-in-page result jumps to the top of the page
2879         https://bugs.webkit.org/show_bug.cgi?id=84485
2880         <rdar://problem/11273734>
2881
2882         Reviewed by Beth Dakin.
2883
2884         If we're both updating the requested scroll position and entering slow mode in the same commit, the
2885         probable main thread scroll position should be the requested scroll position.
2886
2887         * page/scrolling/mac/ScrollingTreeNodeMac.mm:
2888         (WebCore::ScrollingTreeNodeMac::update):
2889
2890 2012-04-20  James Robinson  <jamesr@chromium.org>
2891
2892         Avoid synchronously recalculating the nonFastScrollableRegion when the ScrollableArea set changes
2893         https://bugs.webkit.org/show_bug.cgi?id=84470
2894
2895         Reviewed by Anders Carlsson.
2896
2897         When a scrollable area is added or removed, we shouldn't recalculate the nonFastScrollableRegion synchronously
2898         since this is slow, the RenderObject tree might not be in an up-to-date state, and we'll typically do layout
2899         soon anyway.
2900
2901         * page/FrameView.cpp:
2902         (WebCore::FrameView::addScrollableArea):
2903         (WebCore::FrameView::removeScrollableArea):
2904         * page/scrolling/ScrollingCoordinator.cpp:
2905         * page/scrolling/ScrollingCoordinator.h:
2906         (ScrollingCoordinator):
2907
2908 2012-04-20  Emil A Eklund  <eae@chromium.org>
2909
2910         Fix use of LayoutUnits in DOMNodeHighlighter
2911         https://bugs.webkit.org/show_bug.cgi?id=84472
2912
2913         Reviewed by Eric Seidel.
2914
2915         Fix use of subpixel units and rounding in new code introduced in r114659.
2916
2917         No new tests, no change in functionality.
2918
2919         * inspector/DOMNodeHighlighter.cpp:
2920
2921 2012-04-17  Antonio Gomes  <agomes@rim.com>
2922
2923         Relax ScrollView::adjustScrollPositionWithinRange in case constrainsScrollingToContentEdge is false
2924         https://bugs.webkit.org/show_bug.cgi?id=84178
2925
2926         Reviewed by Adam Treat.
2927
2928         No new tests since it is not easily testable.
2929
2930         When a port has both delegatesScrolling and constrainsScrollingToContentEdge set to FALSE
2931         (i.e. it accepts overscrolled position), calling ScrollView::setScrollPosition with an overscrolled
2932         position still gets the position clamped to the content size edges.
2933
2934         Patch relaxes ::adjustScrollPositionWithinRange in that sense in order to track the actual scroll
2935         position.
2936
2937         Note: ScrollView::setScrollOffset already does something similar.
2938
2939         * platform/ScrollView.cpp:
2940         (WebCore::ScrollView::adjustScrollPositionWithinRange):
2941
2942 2012-04-20  Sheriff Bot  <webkit.review.bot@gmail.com>
2943
2944         Unreviewed, rolling out r114535.
2945         http://trac.webkit.org/changeset/114535
2946         https://bugs.webkit.org/show_bug.cgi?id=84475
2947
2948         It might have caused V8 crashes. (Requested by pfeldman_ on
2949         #webkit).
2950
2951         * bindings/v8/V8IsolatedContext.cpp:
2952         (WebCore::V8IsolatedContext::V8IsolatedContext):
2953         * bindings/v8/V8Proxy.cpp:
2954         (WebCore::V8Proxy::evaluateInIsolatedWorld):
2955         (WebCore::V8Proxy::setInjectedScriptContextDebugId):
2956         (WebCore):
2957         * bindings/v8/V8Proxy.h:
2958         (V8Proxy):
2959
2960 2012-04-20  Dean Jackson  <dino@apple.com>
2961
2962         -webkit-filter missing from computed style enumeration
2963         https://bugs.webkit.org/show_bug.cgi?id=84468
2964
2965         Reviewed by Timothy Hatcher.
2966         
2967         CSSComputedStyleDeclaration has a list of properties that it exposes.
2968         While the computed style for filter was available, the property wasn't
2969         listed and hence missing in clients like the Web Inspector.
2970
2971         Covered by existing tests.
2972
2973         * css/CSSComputedStyleDeclaration.cpp:
2974         (WebCore): add CSSPropertyWebkitFilter
2975
2976 2012-04-20  Emil A Eklund  <eae@chromium.org>
2977
2978         [win] Update windows platform code to use pixel snapped values
2979         https://bugs.webkit.org/show_bug.cgi?id=84283
2980
2981         Reviewed by Eric Seidel.
2982
2983         No new tests, no change in functionality.
2984
2985         * accessibility/AccessibilityObject.h:
2986         (WebCore::AccessibilityObject::pixelSnappedElementRect):
2987         Use pixel snapped values when computing screenRect.
2988         
2989         * platform/win/PopupMenuWin.cpp:
2990         (WebCore::PopupMenuWin::calculatePositionAndSize):
2991         (WebCore::PopupMenuWin::paint):
2992         Cast client padding to ints as they are guaranteed to align with device pixels.
2993
2994 2012-04-20  Dana Jansens  <danakj@chromium.org>
2995
2996         [chromium] Some filters require inflating damage rect in CCDamageTracker
2997         https://bugs.webkit.org/show_bug.cgi?id=84373
2998
2999         Reviewed by James Robinson.
3000
3001         When a layer is blurred, damaged pixels are blurred out into a radius
3002         and their damage should be expanded to include total blurred region.
3003
3004         Unit test: CCDamageTrackerTest.verifyDamageForBlurredSurface
3005
3006         * platform/graphics/chromium/cc/CCDamageTracker.cpp:
3007         (WebCore::CCDamageTracker::updateDamageTrackingState):
3008         (WebCore::CCDamageTracker::expandDamageRectWithForegroundFilters):
3009         (WebCore):
3010         * platform/graphics/chromium/cc/CCDamageTracker.h:
3011         (WebCore):
3012         (CCDamageTracker):
3013         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3014         (WebCore::CCLayerTreeHostImpl::trackDamageForAllSurfaces):
3015
3016 2012-04-20  Sami Kyostila  <skyostil@chromium.org>
3017
3018         [chromium] Don't crash when scrolling empty layer tree
3019         https://bugs.webkit.org/show_bug.cgi?id=84455
3020
3021         Reviewed by James Robinson.
3022
3023         Do not try to calculate render passes when there are no layers in the
3024         layer tree.
3025
3026         Added new unit test.
3027
3028         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3029         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
3030
3031 2012-04-20  Victor Carbune  <vcarbune@adobe.com>
3032
3033         Ensure text is centered for default captions
3034         https://bugs.webkit.org/show_bug.cgi?id=84450
3035
3036         Reviewed by Eric Carlson.
3037
3038         Updated existing test.
3039
3040         * html/track/TextTrackCue.cpp:
3041         (WebCore::TextTrackCue::getDisplayTree): Added default width.
3042
3043 2012-04-20  Pavel Feldman  <pfeldman@chromium.org>
3044
3045         Web Inspector: open file dialog is not centered.
3046         https://bugs.webkit.org/show_bug.cgi?id=84464
3047
3048         Reviewed by Yury Semikhatsky.
3049
3050         There was an error in the positioning logic.
3051
3052         * inspector/front-end/FilteredItemSelectionDialog.js:
3053         (WebInspector.FilteredItemSelectionDialog.prototype.position):
3054
3055 2012-04-20  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
3056
3057         [Qt] PlatformMouseEventQt.cpp should be deleted.
3058         https://bugs.webkit.org/show_bug.cgi?id=84437
3059
3060         Reviewed by Kenneth Rohde Christiansen.
3061
3062         * platform/qt/PlatformMouseEventQt.cpp: Removed.
3063
3064 2012-04-20  Pavel Feldman  <pfeldman@chromium.org>
3065
3066         Web Inspector: follow up to r114729: more @return annotations added.
3067         https://bugs.webkit.org/show_bug.cgi?id=84447
3068
3069         Reviewed by Yury Semikhatsky.
3070
3071         * inspector/front-end/Resource.js:
3072         (WebInspector.Resource):
3073         (WebInspector.ResourceRevision.prototype.get content):
3074         * inspector/front-end/ResourceTreeModel.js:
3075         (WebInspector.ResourceTreeFrame.prototype._addRequest):
3076         * inspector/front-end/ResourceUtils.js:
3077         (String.prototype.asParsedURL):
3078
3079 2012-04-20  Pavel Feldman  <pfeldman@chromium.org>
3080
3081         Web Inspector: migrate from ScriptsNavigator to NavigatorView in the Styles panel
3082         https://bugs.webkit.org/show_bug.cgi?id=84459
3083
3084         Reviewed by Yury Semikhatsky.
3085
3086         Now that NavigatorView has all the functionality we need, we can use it.
3087
3088         * inspector/front-end/NavigatorView.js:
3089         (WebInspector.NavigatorScriptTreeElement.prototype.ondblclick):
3090         * inspector/front-end/ScriptsNavigator.js:
3091         (WebInspector.ScriptsNavigator):
3092         * inspector/front-end/StylesPanel.js:
3093         (WebInspector.StylesPanel):
3094         (WebInspector.StylesPanel.prototype._resourceAdded):
3095         (WebInspector.StylesPanel.prototype._reset):
3096         (WebInspector.StylesPanel.prototype._itemSelected):
3097         (WebInspector.StylesPanel.prototype._showFile):
3098         * inspector/front-end/navigatorView.css:
3099         (.navigator-tabbed-pane .tabbed-pane-content):
3100         (.navigator-tabbed-pane .navigator-container):
3101         (.navigator-tabbed-pane .navigator):
3102         (.navigator-tabbed-pane .tabbed-pane-header):
3103         (.navigator-tabbed-pane .tabbed-pane-header-contents):
3104         * inspector/front-end/scriptsPanel.css:
3105
3106 2012-04-20  Sam D  <dsam2912@gmail.com>
3107
3108         Web Inspector: Does not have search navigation button for going through matches in either direction (prev, next)
3109         https://bugs.webkit.org/show_bug.cgi?id=84235
3110
3111         Added buttons for navigating on seiarch matches in inspector panel
3112         through button clicks as well. 
3113
3114         Reviewed by Pavel Feldman.
3115
3116         No new tests / ux enhanced for search functionality
3117
3118         * English.lproj/localizedStrings.js:
3119         * WebCore.gypi:
3120         * inspector/front-end/Images/searchNext.png: Added.
3121         * inspector/front-end/Images/searchPrev.png: Added.
3122         * inspector/front-end/SearchController.js:
3123         (WebInspector.SearchController):
3124         (WebInspector.SearchController.prototype._updateSearchNavigationButtonState):
3125         (WebInspector.SearchController.prototype._updateSearchMatchesCountAndCurrentMatchIndex):
3126         (WebInspector.SearchController.prototype._onNextButtonSearch):
3127         (WebInspector.SearchController.prototype._onPrevButtonSearch):
3128         (WebInspector.SearchController.prototype._performSearch):
3129         (WebInspector.SearchController.prototype._createSearchNavigationButton):
3130         (WebInspector.SearchController.prototype._populateSearchNavigationButtons):
3131         * inspector/front-end/WebKit.qrc:
3132         * inspector/front-end/inspector.css:
3133         (.toolbar-search-item):
3134         (#search):
3135         (#toolbar-search-navigation-control):
3136         (.toolbar-search-navigation-label):
3137         (.toolbar-search-navigation-label:hover):
3138         (.toolbar-search-navigation-icon-prev , .toolbar-search-navigation-icon-next):
3139         (.toolbar-search-navigation-icon-prev):
3140         (.toolbar-search-navigation-icon-next):
3141         * inspector/front-end/inspector.html:
3142
3143 2012-04-20  Pavel Feldman  <pfeldman@chromium.org>
3144
3145         Web Inspector: extract NavigatorView and NavigatorOverlayController from ScriptsNavigator.
3146         https://bugs.webkit.org/show_bug.cgi?id=84441
3147
3148         Reviewed by Yury Semikhatsky.
3149
3150         - Moves NavigatorOverlayController out of ScriptsNavigator
3151         - Extracts NavigatorView from ScriptsNavigator and makes ScriptsNavigator contain 3 NavigatorView instances (one per tab)
3152         - Subclasses SnippetsNavigatorView and leaves it within ScriptsNavigator.
3153
3154         * WebCore.gypi:
3155         * WebCore.vcproj/WebCore.vcproj:
3156         * inspector/compile-front-end.py:
3157         * inspector/front-end/NavigatorOverlayController.js: Added.
3158         (WebInspector.NavigatorOverlayController.prototype.wasShown):
3159         (WebInspector.NavigatorOverlayController.prototype._createNavigatorControlButton):
3160         (WebInspector.NavigatorOverlayController.prototype._escDownWhileNavigatorOverlayOpen):
3161         (WebInspector.NavigatorOverlayController.prototype._toggleNavigator):
3162         (WebInspector.NavigatorOverlayController.prototype._hidePinnedNavigator):
3163         (WebInspector.NavigatorOverlayController.prototype.set _pinNavigator):
3164         (WebInspector.NavigatorOverlayController.prototype.set showNavigatorOverlay):
3165         (WebInspector.NavigatorOverlayController.prototype.hideNavigatorOverlay):
3166         (WebInspector.NavigatorOverlayController.prototype._navigatorOverlayWasShown):
3167         * inspector/front-end/NavigatorView.js: Added.
3168         (WebInspector.NavigatorView):
3169         (WebInspector.NavigatorView.prototype._updateScriptTitle.get if):
3170         (WebInspector.NavigatorView.prototype._updateScriptTitle):
3171         (WebInspector.NavigatorView.prototype._scriptSelected):
3172         (WebInspector.NavigatorView.prototype._removeUISourceCode.get while):
3173         (WebInspector.NavigatorView.prototype._removeUISourceCode):
3174         (WebInspector.NavigatorView.prototype._showScriptFoldersSettingChanged):
3175         (WebInspector.NavigatorView.prototype._fileRenamed):
3176         (WebInspector.NavigatorView.prototype.rename.commitHandler):
3177         (WebInspector.NavigatorView.prototype.rename.cancelHandler):
3178         (WebInspector.NavigatorView.prototype.rename.afterEditing):
3179         (WebInspector.NavigatorView.prototype.reset):
3180         (WebInspector.NavigatorView.prototype.createFolderTreeElement):
3181         (WebInspector.NavigatorView.prototype.getOrCreateFolderTreeElement):
3182         (WebInspector.NavigatorView.prototype.handleContextMenu):
3183         (WebInspector.NavigatorTreeOutline):
3184         (WebInspector.NavigatorTreeOutline._treeElementsCompare.compare.typeWeight):
3185         (WebInspector.NavigatorTreeOutline._treeElementsCompare):
3186         (WebInspector.NavigatorTreeOutline.prototype.scriptTreeElements):
3187         (WebInspector.NavigatorTreeOutline.prototype.searchStarted):
3188         (WebInspector.NavigatorTreeOutline.prototype.searchFinished):
3189         (WebInspector.BaseNavigatorTreeElement):
3190         (WebInspector.BaseNavigatorTreeElement.prototype.onattach):
3191         (WebInspector.BaseNavigatorTreeElement.prototype.onreveal):
3192         (WebInspector.BaseNavigatorTreeElement.prototype.get titleText):
3193         (WebInspector.BaseNavigatorTreeElement.prototype.set titleText):
3194         (WebInspector.BaseNavigatorTreeElement.prototype.matchesSearchText):
3195         (WebInspector.NavigatorFolderTreeElement):
3196         (WebInspector.NavigatorFolderTreeElement.prototype.get folderIdentifier):
3197         (WebInspector.NavigatorFolderTreeElement.prototype.get isDomain):
3198         (WebInspector.NavigatorFolderTreeElement.prototype.onattach):
3199         (WebInspector.NavigatorScriptTreeElement):
3200         (WebInspector.NavigatorScriptTreeElement.prototype.get uiSourceCode):
3201         (WebInspector.NavigatorScriptTreeElement.prototype.onattach):
3202         (WebInspector.NavigatorScriptTreeElement.prototype.onspace):
3203         (WebInspector.NavigatorScriptTreeElement.prototype._onclick):
3204         (WebInspector.NavigatorScriptTreeElement.prototype.onenter):
3205         (WebInspector.NavigatorScriptTreeElement.prototype._handleContextMenuEvent):
3206         * inspector/front-end/ScriptsNavigator.js:
3207         (WebInspector.ScriptsNavigator):
3208         (WebInspector.ScriptsNavigator.prototype.addUISourceCode):
3209         (WebInspector.ScriptsNavigator.prototype.isScriptSourceAdded):
3210         (WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
3211         (WebInspector.ScriptsNavigator.prototype.replaceUISourceCodes):
3212         (WebInspector.ScriptsNavigator.prototype._scriptSelected):
3213         (WebInspector.ScriptsNavigator.prototype.reset):
3214         (WebInspector.SnippetsNavigatorView):
3215         (WebInspector.SnippetsNavigatorView.prototype.getOrCreateFolderTreeElement):
3216         (WebInspector.SnippetsNavigatorView.prototype._getOrCreateSnippetEvaluationsFolderTreeElement):
3217         (WebInspector.SnippetsNavigatorView.prototype.handleContextMenu):
3218         (WebInspector.SnippetsNavigatorView.prototype._fileRenamed):
3219         * inspector/front-end/WebKit.qrc:
3220         * inspector/front-end/inspector.html:
3221         * inspector/front-end/navigatorView.css: Added.
3222         (.navigator-domain-tree-item .icon):
3223         (.navigator-folder-tree-item .icon):
3224         (.navigator-script-tree-item .icon):
3225         (.navigator li):
3226         (.navigator :focus li.selected):
3227         (.navigator li.selected .selection):
3228         (.navigator :focus li.selected .selection):
3229         (.navigator .search-match-found li.selected .selection):
3230         (.navigator .search-match-not-found li.selected .selection):
3231         (.navigator .searching li.selected .selection):
3232         (.navigator .icon):
3233         (.navigator .base-navigator-tree-element-title):
3234         (.navigator .base-navigator-tree-element-title.editing):
3235         (.navigator-tree-search-box):
3236         (.navigator-tree-search-box.visible):
3237         (.navigator-tree-search-box > input):
3238         * inspector/front-end/scriptsPanel.css:
3239
3240 2012-04-19  Pavel Feldman  <pfeldman@chromium.org>
3241
3242         Web Inspector: make ScriptNavigatorController use views only, rename to NavigatorOverlayController.
3243         https://bugs.webkit.org/show_bug.cgi?id=84352
3244
3245         Reviewed by Vsevolod Vlasov.
3246
3247         This change makes navigator controller use view interfaces only. Focus machinery has been refactored in order
3248         to make it possible: now all view ancestors can either override "focus" or "defaultFocusedElement" method
3249         with latter method being preferred.
3250
3251         * inspector/front-end/ElementsPanel.js:
3252         (WebInspector.ElementsPanel.prototype.defaultFocusedElement):
3253         * inspector/front-end/ExtensionPanel.js:
3254         (WebInspector.ExtensionPanel.prototype.defaultFocusedElement):
3255         * inspector/front-end/Panel.js:
3256         (WebInspector.Panel.prototype.wasShown):
3257         (WebInspector.Panel.prototype.defaultFocusedElement):
3258         * inspector/front-end/ScriptsNavigator.js:
3259         (WebInspector.ScriptsNavigator):
3260         (WebInspector.NavigatorOverlayController.prototype._hidePinnedNavigator):
3261         (WebInspector.NavigatorOverlayController.prototype.set _pinNavigator):
3262         (WebInspector.NavigatorOverlayController.prototype.set showNavigatorOverlay):
3263         (WebInspector.NavigatorOverlayController.prototype.hideNavigatorOverlay):
3264         (WebInspector.NavigatorOverlayController.prototype._navigatorOverlayWasShown):
3265         * inspector/front-end/ScriptsPanel.js:
3266         (WebInspector.ScriptsPanel.prototype.defaultFocusedElement):
3267         * inspector/front-end/SidebarOverlay.js:
3268         (WebInspector.SidebarOverlay.prototype.show):
3269         (WebInspector.SidebarOverlay.prototype.hide):
3270         * inspector/front-end/SourceFrame.js:
3271         (WebInspector.SourceFrame.prototype.defaultFocusedElement):
3272         * inspector/front-end/StylesPanel.js:
3273         (WebInspector.StylesPanel):
3274         * inspector/front-end/TabbedEditorContainer.js:
3275         (WebInspector.TabbedEditorContainer.prototype.get view):
3276         (WebInspector.TabbedEditorContainer.prototype.get visibleView):
3277         * inspector/front-end/TabbedPane.js:
3278         (WebInspector.TabbedPane):
3279         (WebInspector.TabbedPane.prototype.defaultFocusedElement):
3280         * inspector/front-end/TextViewer.js:
3281         (WebInspector.TextViewer.prototype.defaultFocusedElement):
3282         (WebInspector.TextEditorMainPanel.prototype.defaultFocusedElement):
3283         * inspector/front-end/TimelinePanel.js:
3284         (WebInspector.TimelinePanel.prototype.defaultFocusedElement):
3285         * inspector/front-end/View.js:
3286         (WebInspector.View.prototype._collectViewHierarchy):
3287         (WebInspector.View.prototype.defaultFocusedElement):
3288         (WebInspector.View.prototype.setDefaultFocusedElement):
3289         (WebInspector.View.prototype.focus):
3290
3291 2012-04-20  Sergio Villar Senin  <svillar@igalia.com>
3292
3293         [GTK] Enable Web Timing
3294         https://bugs.webkit.org/show_bug.cgi?id=42432
3295
3296         Reviewed by Gustavo Noronha Silva.
3297
3298         Added WebTiming support to the GTK+ port. WebTiming allows
3299         developers to collect detailed network timing information per
3300         resource. It requires the new SoupMessage's "network-event"
3301         signal.
3302
3303         * GNUmakefile.am:
3304         * bindings/gobject/GNUmakefile.am:
3305         * platform/network/soup/ResourceHandleSoup.cpp:
3306         (WebCore):
3307         (WebCore::restartedCallback):
3308         (WebCore::sendRequestCallback):
3309         (WebCore::milisecondsSinceRequest):
3310         (WebCore::wroteBodyCallback):
3311         (WebCore::requestStartedCallback):
3312         (WebCore::networkEventCallback):
3313         (WebCore::startHTTPRequest):
3314         (WebCore::ResourceHandle::platformSetDefersLoading):
3315         (WebCore::ResourceHandle::defaultSession):
3316
3317 2012-04-20  'Pavel Feldman'  <pfeldman@chromium.org>
3318
3319         Not reviewed: fixed chromium sanity tests for inspector via assigning last path component
3320         to entire url for parsed urls with invalid specs.
3321
3322         * inspector/front-end/ResourceUtils.js:
3323         (WebInspector.ParsedURL):
3324
3325 2012-04-20  Kentaro Hara  <haraken@chromium.org>
3326
3327         Unreviewed, rolling out r114401.
3328         http://trac.webkit.org/changeset/114401
3329         https://bugs.webkit.org/show_bug.cgi?id=84161
3330
3331         Chromium crash
3332
3333         * bindings/scripts/CodeGeneratorV8.pm:
3334         (GenerateHeader):
3335         (NativeToJSValue):
3336         * bindings/scripts/test/V8/V8Float64Array.h:
3337         (WebCore):
3338         (WebCore::toV8):
3339         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
3340         (WebCore::toV8):
3341         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
3342         (WebCore::toV8):
3343         * bindings/scripts/test/V8/V8TestEventConstructor.h:
3344         (WebCore::toV8):
3345         * bindings/scripts/test/V8/V8TestEventTarget.h:
3346         (WebCore::toV8):
3347         * bindings/scripts/test/V8/V8TestInterface.h:
3348         (WebCore::toV8):
3349         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
3350         (WebCore::toV8):
3351         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
3352         (WebCore::toV8):
3353         * bindings/scripts/test/V8/V8TestNode.h:
3354         (WebCore::toV8):
3355         * bindings/scripts/test/V8/V8TestObj.h:
3356         (WebCore::toV8):
3357         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
3358         (WebCore::toV8):
3359         * bindings/v8/custom/V8BlobCustom.cpp:
3360         (WebCore::toV8):
3361         * bindings/v8/custom/V8CSSRuleCustom.cpp:
3362         (WebCore::toV8):
3363         * bindings/v8/custom/V8CSSStyleSheetCustom.cpp:
3364         (WebCore::toV8):
3365         * bindings/v8/custom/V8CSSValueCustom.cpp:
3366         (WebCore::toV8):
3367         * bindings/v8/custom/V8CanvasPixelArrayCustom.cpp:
3368         (WebCore::toV8):
3369         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
3370         (WebCore::toV8):
3371         * bindings/v8/custom/V8DOMTokenListCustom.cpp:
3372         (WebCore::toV8):
3373         * bindings/v8/custom/V8DOMWindowCustom.cpp:
3374         (WebCore::toV8):
3375         * bindings/v8/custom/V8DataViewCustom.cpp:
3376         (WebCore::toV8):
3377         * bindings/v8/custom/V8DocumentCustom.cpp:
3378         (WebCore::toV8):
3379         * bindings/v8/custom/V8EntryCustom.cpp:
3380         (WebCore::toV8):
3381         * bindings/v8/custom/V8EntrySyncCustom.cpp:
3382         (WebCore::toV8):
3383         * bindings/v8/custom/V8EventCustom.cpp:
3384         (WebCore::toV8):
3385         * bindings/v8/custom/V8Float32ArrayCustom.cpp:
3386         (WebCore::toV8):
3387         * bindings/v8/custom/V8Float64ArrayCustom.cpp:
3388         (WebCore::toV8):
3389         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
3390         (WebCore::toV8):
3391         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
3392         (WebCore::toV8):
3393         * bindings/v8/custom/V8HTMLElementCustom.cpp:
3394         (WebCore::toV8):
3395         * bindings/v8/custom/V8IDBAnyCustom.cpp:
3396         (WebCore::toV8):
3397         * bindings/v8/custom/V8IDBKeyCustom.cpp:
3398         (WebCore::toV8):
3399         * bindings/v8/custom/V8ImageDataCustom.cpp:
3400         (WebCore::toV8):
3401         * bindings/v8/custom/V8Int16ArrayCustom.cpp:
3402         (WebCore::toV8):
3403         * bindings/v8/custom/V8Int32ArrayCustom.cpp:
3404         (WebCore::toV8):
3405         * bindings/v8/custom/V8Int8ArrayCustom.cpp:
3406         (WebCore::toV8):
3407         * bindings/v8/custom/V8LocationCustom.cpp:
3408         (WebCore::toV8):
3409         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
3410         (WebCore::toV8):
3411         * bindings/v8/custom/V8NodeCustom.cpp:
3412         (WebCore::toV8Slow):
3413         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
3414         (WebCore::toV8):
3415         * bindings/v8/custom/V8SVGElementCustom.cpp:
3416         (WebCore::toV8):
3417         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
3418         (WebCore::toV8):
3419         * bindings/v8/custom/V8ScriptProfileCustom.cpp:
3420         (WebCore::toV8):
3421         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
3422         (WebCore::toV8):
3423         * bindings/v8/custom/V8StyleSheetCustom.cpp:
3424         (WebCore::toV8):
3425         * bindings/v8/custom/V8Uint16ArrayCustom.cpp:
3426         (WebCore::toV8):
3427         * bindings/v8/custom/V8Uint32ArrayCustom.cpp:
3428         (WebCore::toV8):
3429         * bindings/v8/custom/V8Uint8ArrayCustom.cpp:
3430         (WebCore::toV8):
3431         * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp:
3432         (WebCore::toV8):
3433         * bindings/v8/custom/V8WorkerContextCustom.cpp:
3434         (WebCore::toV8):
3435
3436 2012-04-20  Kentaro Hara  <haraken@chromium.org>
3437
3438         Unreviewed, rolling out r114440.
3439         http://trac.webkit.org/changeset/114440
3440         https://bugs.webkit.org/show_bug.cgi?id=84173
3441
3442         Chromium crash
3443
3444         * bindings/scripts/CodeGeneratorV8.pm:
3445         (GenerateHeader):
3446         * bindings/v8/custom/V8NodeCustom.cpp:
3447         (WebCore::toV8Slow):
3448
3449 2012-04-20  Kentaro Hara  <haraken@chromium.org>
3450
3451         Unreviewed, rolling out r114519.
3452         http://trac.webkit.org/changeset/114519
3453         https://bugs.webkit.org/show_bug.cgi?id=84202
3454
3455         Chromium crash
3456
3457         * bindings/scripts/CodeGeneratorV8.pm:
3458         (GenerateHeader):
3459         * bindings/scripts/test/V8/V8Float64Array.h:
3460         (V8Float64Array):
3461         (WebCore::V8Float64Array::wrap):
3462         (WebCore):
3463         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
3464         (V8TestActiveDOMObject):
3465         (WebCore::V8TestActiveDOMObject::wrap):
3466         (WebCore::toV8):
3467         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
3468         (V8TestCustomNamedGetter):
3469         (WebCore::V8TestCustomNamedGetter::wrap):
3470         (WebCore::toV8):
3471         * bindings/scripts/test/V8/V8TestEventConstructor.h:
3472         (V8TestEventConstructor):
3473         (WebCore::V8TestEventConstructor::wrap):
3474         (WebCore::toV8):
3475         * bindings/scripts/test/V8/V8TestEventTarget.h:
3476         (V8TestEventTarget):
3477         (WebCore::V8TestEventTarget::wrap):
3478         (WebCore::toV8):
3479         * bindings/scripts/test/V8/V8TestInterface.h:
3480         (V8TestInterface):
3481         (WebCore::V8TestInterface::wrap):
3482         (WebCore::toV8):
3483         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
3484         (V8TestMediaQueryListListener):
3485         (WebCore::V8TestMediaQueryListListener::wrap):
3486         (WebCore::toV8):
3487         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
3488         (V8TestNamedConstructor):
3489         (WebCore::V8TestNamedConstructor::wrap):
3490         (WebCore::toV8):
3491         * bindings/scripts/test/V8/V8TestNode.h:
3492         (V8TestNode):
3493         (WebCore::V8TestNode::wrap):
3494         (WebCore::toV8):
3495         * bindings/scripts/test/V8/V8TestObj.h:
3496         (V8TestObj):
3497         (WebCore::V8TestObj::wrap):
3498         (WebCore::toV8):
3499         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
3500         (V8TestSerializedScriptValueInterface):
3501         (WebCore::V8TestSerializedScriptValueInterface::wrap):
3502         (WebCore::toV8):
3503         * bindings/v8/custom/V8DocumentCustom.cpp:
3504         (WebCore::toV8):
3505         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
3506         (WebCore::toV8):
3507         * bindings/v8/custom/V8NodeCustom.cpp:
3508         (WebCore::toV8Slow):
3509         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
3510         (WebCore::toV8):
3511         * dom/make_names.pl:
3512         (printWrapperFactoryCppFile):
3513
3514 2012-04-19  Pavel Feldman  <pfeldman@chromium.org>
3515
3516         Web Inspector: replace @type annotation with @return annotation for getters
3517         https://bugs.webkit.org/show_bug.cgi?id=84362
3518
3519         Reviewed by Yury Semikhatsky.
3520
3521         Otherwise, compiler does not check for errors.
3522
3523         * inspector/front-end/AdvancedSearchController.js:
3524         (WebInspector.SearchView.prototype.get searchConfig):
3525         * inspector/front-end/BreakpointManager.js:
3526         * inspector/front-end/NetworkRequest.js:
3527         (WebInspector.NetworkRequest.prototype.requestContent):
3528         * inspector/front-end/ResourceTreeModel.js:
3529         (WebInspector.ResourceTreeFrame):
3530         (WebInspector.ResourceTreeFrame.prototype._navigate):
3531         * inspector/front-end/ScriptsNavigator.js:
3532         * inspector/front-end/Settings.js:
3533         * inspector/front-end/SnippetsModel.js:
3534         * inspector/front-end/SplitView.js:
3535         * inspector/front-end/TabbedEditorContainer.js:
3536         * inspector/front-end/TabbedPane.js:
3537         (WebInspector.TabbedPaneTab):
3538         * inspector/front-end/TextEditorModel.js:
3539         * inspector/front-end/TimelinePresentationModel.js:
3540
3541 2012-04-20  Mark Pilgrim  <pilgrim@chromium.org>
3542
3543         [Chromium] Call cacheMetadata directly
3544         https://bugs.webkit.org/show_bug.cgi?id=84415
3545
3546         Reviewed by Kentaro Hara.
3547
3548         Part of a refactoring series. See tracking bug 82948.
3549
3550         * platform/chromium/PlatformSupport.h:
3551         (PlatformSupport):
3552         * platform/network/chromium/ResourceHandle.cpp:
3553         (WebCore::ResourceHandle::cacheMetadata):
3554
3555 2012-04-20  Mark Pilgrim  <pilgrim@chromium.org>
3556
3557         [Chromium] Call stopSharedTimer directly
3558         https://bugs.webkit.org/show_bug.cgi?id=84418
3559
3560         Reviewed by Kentaro Hara.
3561
3562         Part of a refactoring series. See tracking bug 82948.
3563
3564         * platform/chromium/PlatformSupport.h:
3565         (PlatformSupport):
3566         * platform/chromium/SharedTimerChromium.cpp:
3567         (WebCore::stopSharedTimer):
3568
3569 2012-04-20  Taiju Tsuiki  <tzik@chromium.org>
3570
3571         DOMFileSystem::scheduleCallback() crashes on file() call after reload.
3572         https://bugs.webkit.org/show_bug.cgi?id=76461
3573
3574         DOMFileSystem::scheduleCallback() is unavailable when the page in unloading, so we should
3575         avoid using it in callback.
3576
3577         Reviewed by David Levin.
3578
3579         Test: fast/filesystem/file-after-reload-crash.html
3580
3581         * Modules/filesystem/DOMFileSystem.cpp:
3582         (WebCore):
3583
3584 2012-04-19  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
3585
3586         [EFL] Missing keycode translation for space key
3587         https://bugs.webkit.org/show_bug.cgi?id=84153
3588
3589         Reviewed by Antonio Gomes.
3590
3591         Map space key to Unicode value in createKeyMap(), and also set
3592         correct keyname 'space' for space key in createWindowsKeyMap().
3593
3594         Tests: fast/html/details-keyboard-show-hide.html
3595                fast/forms/button-spacebar-click.html
3596
3597         * platform/efl/EflKeyboardUtilities.cpp:
3598         (WebCore::createKeyMap):
3599
3600 2012-04-19  Antaryami Pandia  <antaryami.pandia@motorola.com>
3601
3602         Inserting empty html moves caret.
3603         https://bugs.webkit.org/show_bug.cgi?id=71771
3604
3605         Reviewed by Ryosuke Niwa.
3606
3607         When we place the cursor in the middle of a text node and try to insert some text
3608         between, then we split text node. But in this case we have nothing to insert since
3609         the string to be inserted is empty. So the check for fragments should precedes the
3610         call to code block containing splitTextNode.
3611
3612         Test: editing/inserting/insert-empty-html.html
3613
3614         * editing/ReplaceSelectionCommand.cpp:
3615         (WebCore::ReplaceSelectionCommand::doApply):
3616
3617 2012-04-19  Tay Grigg  <tgrigg@rim.com>
3618
3619         [BlackBerry] Update HTTP connection per host limit in ResourceRequestBlackBerry
3620         https://bugs.webkit.org/show_bug.cgi?id=84380
3621
3622         Reviewed by George Staikos.
3623
3624         Reviewed Internally by: George Rizkalla, Lyon Chen
3625
3626         Set the limit on the http connection count per host to the default
3627         of 10000, queue the requests in the networking layer instead,
3628         this should increase parallelism at the WebKit layer to remove
3629         any potential bottlenecks.
3630
3631         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
3632         (WebCore::initializeMaximumHTTPConnectionCountPerHost):
3633
3634 2012-04-19  Sheriff Bot  <webkit.review.bot@gmail.com>
3635
3636         Unreviewed, rolling out r114711.
3637         http://trac.webkit.org/changeset/114711
3638         https://bugs.webkit.org/show_bug.cgi?id=84412
3639
3640         Many tests crash in RenderObject::container() (Requested by
3641         dimich on #webkit).
3642
3643         * page/scrolling/ScrollingCoordinator.cpp:
3644         (WebCore::computeNonFastScrollableRegion):
3645         (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
3646         (WebCore::ScrollingCoordinator::frameViewScrollableAreasDidChange):
3647
3648 2012-04-19  Anders Carlsson  <andersca@apple.com>
3649
3650         computeNonFastScrollableRegion needs to traverse the entire frame tree
3651         https://bugs.webkit.org/show_bug.cgi?id=84409
3652         <rdar://problem/11285741>
3653
3654         Reviewed by Dan Bernstein.
3655
3656         Now that scrollable areas won't be in the set of scrollable areas unless they are actually scrollable, we need to look for scrollable
3657         areas in the entire frame tree since there can be a scrollable frame that's a subframe of a non-scrollable frame for example.
3658
3659         * page/scrolling/ScrollingCoordinator.cpp:
3660         (WebCore::computeNonFastScrollableRegion):
3661         Traverse the entire frame tree looking for scrollable areas. Also, remove the scrollability checks because scrollable areas will only be
3662         in the set if they have scrollbars that are enabled.
3663
3664         (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
3665         (WebCore::ScrollingCoordinator::frameViewScrollableAreasDidChange):
3666         computeNonFastScrollableRegion now takes the main frame.
3667
3668 2012-04-19  Anders Carlsson  <andersca@apple.com>
3669
3670         Focus ring on wikipedia gets blobs when you type
3671         https://bugs.webkit.org/show_bug.cgi?id=84407
3672         <rdar://problem/11011847>
3673
3674         Reviewed by Dan Bernstein.
3675
3676         Make it possible to override the focus ring visible rect from layer drawing code.
3677
3678         * platform/graphics/mac/WebLayer.mm:
3679         (drawLayerContents):
3680         Call ThemeMac::setFocusRingClipRect to set the focus ring clip rect while drawing.
3681
3682         * platform/mac/ThemeMac.h:
3683         * platform/mac/ThemeMac.mm:
3684         (-[WebCoreFlippedView _focusRingVisibleRect]):
3685         If there's an active focus ring visible rect, use it. Otherwise, fall back to the previous behavior
3686         and just return the view's visible rect.
3687
3688         (WebCore::ThemeMac::setFocusRingClipRect):
3689         Update the focus clip rect.
3690
3691 2012-04-19  Sheriff Bot  <webkit.review.bot@gmail.com>
3692
3693         Unreviewed, rolling out r114690.
3694         http://trac.webkit.org/changeset/114690
3695         https://bugs.webkit.org/show_bug.cgi?id=84408
3696
3697         Broke GlueSerializeTest.BackwardsCompatibleTest in Chromium
3698         test_shell_tests (Requested by dimich on #webkit).
3699
3700         * history/HistoryItem.cpp:
3701         (WebCore::HistoryItem::HistoryItem):
3702         * loader/HistoryController.cpp:
3703         (WebCore::HistoryController::restoreScrollPositionAndViewState):
3704
3705 2012-04-19  Andreas Kling  <kling@webkit.org>
3706
3707         ElementAttributeData should be fast-malloc'd.
3708         <http://webkit.org/b/84405>
3709
3710         Reviewed by Antti Koivisto.
3711
3712         Sprinkle missing WTF_MAKE_FAST_ALLOCATED.
3713
3714         * dom/ElementAttributeData.h:
3715         (ElementAttributeData):
3716
3717 2012-04-19  David Barr  <davidbarr@chromium.org>
3718
3719         REGRESSION(r112177): Numbered list item rendered bulleted
3720         https://bugs.webkit.org/show_bug.cgi?id=84216
3721
3722         Reviewed by Ryosuke Niwa.
3723
3724         Shorthands that imply omitted values cannot be derived from
3725         an incomplete set of longhand rules.
3726
3727         No new tests; updated existing tests that should have caught this.
3728
3729         * css/CSSParser.cpp:
3730         (WebCore::CSSParser::parseTransformOriginShorthand):
3731         Set implicit initial for Z when omitted.
3732         * css/StylePropertySet.cpp:
3733         (WebCore::StylePropertySet::getShorthandValue):
3734
3735 2012-04-19  Peter Beverloo  <peter@chromium.org>
3736
3737         [Chromium] Don't compile FontCacheSkia for Android
3738         https://bugs.webkit.org/show_bug.cgi?id=84392
3739
3740         Reviewed by Kent Tamura.
3741
3742         Chromium for the Android platform uses its own FontCacheAndroid
3743         implementation. Compile errors show up when trying to build the
3744         content shell.
3745
3746         * WebCore.gyp/WebCore.gyp:
3747
3748 2012-04-19  Martin Robinson  <mrobinson@igalia.com>
3749
3750         [Cairo] Remove rgb24-hacks.txt and scale-removal.txt
3751         https://bugs.webkit.org/show_bug.cgi?id=83475
3752
3753         Reviewed by Daniel Bates.
3754
3755         No new tests. This does not change functionality.
3756
3757         Remove some obsolete patch files for Cairo that were used in some
3758         very old versions of Safari for Windows.
3759
3760         * platform/graphics/cairo/rgb24-hacks.txt: Removed.
3761         * platform/graphics/cairo/scale-removal.txt: Removed.
3762
3763 2012-04-19  Peter Beverloo  <peter@chromium.org>
3764
3765         Use sqrtf instead of sqrt in CanvasRenderingContext2D.cpp
3766         https://bugs.webkit.org/show_bug.cgi?id=84403
3767
3768         Reviewed by Andreas Kling.
3769
3770         r114679 broke Chromium Win and Android bots due to call
3771         ambiguity between a double and float argument.
3772
3773         * html/canvas/CanvasRenderingContext2D.cpp:
3774         (WebCore::CanvasRenderingContext2D::inflateStrokeRect):
3775
3776 2012-04-19  Alexandre Elias  <aelias@google.com>
3777
3778         Default to null value for HistoryItem::m_pageScaleFactor
3779         https://bugs.webkit.org/show_bug.cgi?id=84385
3780
3781         Reviewed by Nate Chapin.
3782
3783         Previously, HistoryItem::m_pageScaleFactor defaulted to a value
3784         of 1, making it impossible to determine whether this value was never
3785         set, or intentionally set to 1.  This patch introduces a default value
3786         of 0 and makes restoreScrollPositionAndViewState not touch the page
3787         scale factor if this value is still present at time of reload.
3788
3789         This is a no-op change for common navigation scenarios.  The
3790         motivation for this change is the corner case of syncing history items
3791         from a desktop browser to a mobile device.  In that case, we need a
3792         way to specify that the history item does not contain a
3793         pageScaleFactor so that the mobile device does not display the page
3794         overly zoomed in.
3795
3796         No new tests.
3797
3798         * history/HistoryItem.cpp:
3799         (WebCore::HistoryItem::HistoryItem):
3800         * loader/HistoryController.cpp:
3801         (WebCore::HistoryController::restoreScrollPositionAndViewState):
3802
3803 2012-04-19  Alexis Menard  <alexis.menard@openbossa.org>
3804
3805         Unreviewed Qt build warning fix.
3806
3807         The file editing/StringHelper.h does not exist.
3808
3809         * Target.pri:
3810
3811 2012-04-19  Daniel Bates  <dbates@webkit.org>
3812
3813         Remove empty directory Source/WebCore/webaudio
3814
3815         Changeset 111474 <http://trac.webkit.org/changeset/111474> moved all the files in
3816         Source/WebCore/webaudio to Source/WebCore/Modules/webaudio. We should remove the
3817         empty directory Source/WebCore/webaudio.
3818
3819         * webaudio: Removed.
3820
3821 2012-04-19  Pratik Solanki  <psolanki@apple.com>
3822
3823         Incorrect inter-caps in “ShouldSkipMetaData” etc.
3824         https://bugs.webkit.org/show_bug.cgi?id=72159
3825
3826         Reviewed by Dan Bernstein.
3827
3828         No new tests since no change in functionality.
3829
3830         * platform/graphics/ImageSource.h:
3831         * platform/graphics/cg/ImageSourceCG.cpp:
3832         (WebCore::imageSourceOptions):
3833         (WebCore::ImageSource::isSizeAvailable):
3834         (WebCore::ImageSource::frameSizeAtIndex):
3835         (WebCore::ImageSource::orientationAtIndex):
3836         (WebCore::ImageSource::getHotSpot):
3837         (WebCore::ImageSource::repetitionCount):
3838         (WebCore::ImageSource::createFrameAtIndex):
3839         (WebCore::ImageSource::frameDurationAtIndex):
3840
3841 2012-04-19  Huang Dongsung  <luxtella@company100.net>
3842
3843         Canvas more precisely makes the bounding rect for stroke rendering.
3844         https://bugs.webkit.org/show_bug.cgi?id=75792
3845
3846         Reviewed by Simon Fraser.
3847
3848         * html/canvas/CanvasRenderingContext2D.cpp:
3849         (WebCore::CanvasRenderingContext2D::stroke):
3850         (WebCore::CanvasRenderingContext2D::drawTextInternal):
3851         (WebCore::CanvasRenderingContext2D::inflateStrokeRect):
3852         (WebCore):
3853         * html/canvas/CanvasRenderingContext2D.h:
3854         (CanvasRenderingContext2D):
3855
3856 2012-04-19  Luke Macpherson  <macpherson@chromium.org>
3857
3858         Eliminate potential null pointer dereference in CSSStyleSelector::containsUncommonAttributeSelector().
3859         https://bugs.webkit.org/show_bug.cgi?id=84366
3860
3861         Reviewed by Kentaro Hara.
3862
3863         No new tests / code cleanup only.
3864
3865         * css/CSSStyleSelector.cpp:
3866         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
3867
3868 2012-04-19  Luke Macpherson  <macpherson@chromium.org>
3869
3870         Fix null-pointer dereference in ApplyPropertyZoom::applyValue().
3871         https://bugs.webkit.org/show_bug.cgi?id=84279
3872
3873         Reviewed by Simon Fraser.
3874
3875         Test: fast/css/zoom-on-unattached.html
3876
3877         * css/CSSStyleApplyProperty.cpp:
3878         (WebCore::ApplyPropertyZoom::applyValue):
3879
3880 2012-04-19  Luke Macpherson  <macpherson@chromium.org>
3881
3882         Clean up list iteration in MediaQueryExp constructor (avoid unnecessary calls to current()).
3883         https://bugs.webkit.org/show_bug.cgi?id=84369
3884
3885         Reviewed by Simon Fraser.
3886
3887         No new tests / code cleanup only.
3888
3889         * css/MediaQueryExp.cpp:
3890         (WebCore::MediaQueryExp::MediaQueryExp):
3891
3892 2012-04-19  Mark Pilgrim  <pilgrim@chromium.org>
3893
3894         [Chromium] Call signedPublicKeyAndChallengeString directly
3895         https://bugs.webkit.org/show_bug.cgi?id=84372
3896
3897         Reviewed by Kentaro Hara.
3898
3899         Part of a refactoring series. See tracking bug 82948.
3900
3901         * platform/chromium/PlatformSupport.h:
3902         (PlatformSupport):
3903         * platform/chromium/SSLKeyGeneratorChromium.cpp:
3904         (WebCore::signedPublicKeyAndChallengeString):
3905
3906 2012-04-19  Luke Macpherson  <macpherson@chromium.org>
3907
3908         Remove unnecessary assignment in CSSParser::parseCubicBezierTimingFunctionValue().
3909         https://bugs.webkit.org/show_bug.cgi?id=84368
3910
3911         Reviewed by Simon Fraser.
3912
3913         No new tests / code cleanup only.
3914
3915         * css/CSSParser.cpp:
3916         (WebCore::CSSParser::parseCubicBezierTimingFunctionValue):
3917
3918 2012-04-19  Luke Macpherson  <macpherson@chromium.org>
3919
3920         Initialize all member variables in CSSImageSetValue's copy constructor.
3921         https://bugs.webkit.org/show_bug.cgi?id=84379
3922
3923         Reviewed by Simon Fraser.
3924
3925         No new tests / code cleanup only.
3926
3927         * css/CSSImageSetValue.cpp:
3928         (WebCore::CSSImageSetValue::CSSImageSetValue):
3929
3930 2012-04-19  Ken Buchanan  <kenrb@chromium.org>
3931
3932         Positioned children of ruby runs not handled correctly during layout
3933         https://bugs.webkit.org/show_bug.cgi?id=84157
3934
3935         Reviewed by Julien Chaffraix.
3936
3937         A positioned ruby text causes a problem because it is excluded from
3938         normal layout by its parent and instead gets layout from
3939         RenderRubyRun::layoutSpecialExcludedChild; however this means it gets
3940         skipped over during the loop in RenderBlock::layoutBlockChildren,
3941         which is where positioned RenderBlocks get added to the appropriate
3942         positioned object lists. As a result, a dirty positioned ruby text
3943         will not get layout again unless the RenderRubyRun also needs layout
3944         which is not guaranteed.
3945
3946         This patch disqualifies ruby text elements from being positioned.
3947         If it is necessary to support this in future, ruby text layout will
3948         have to be modified to ensure the renderers are added to the
3949         appropriate block lists.
3950
3951         * css/CSSStyleSelector.cpp:
3952         (WebCore::CSSStyleSelector::adjustRenderStyle):
3953         * rendering/RenderRubyRun.cpp:
3954         (WebCore::RenderRubyRun::rubyText):
3955
3956 2012-04-19  vsevik@chromium.org  <vsevik@chromium.org>
3957
3958         Web Inspector: No response body available for cached resource requests with error status codes.
3959         https://bugs.webkit.org/show_bug.cgi?id=84265
3960
3961         Reviewed by Pavel Feldman.
3962
3963         InspectorResourceAgent now saves failed subresource request response body in its cache.
3964         Saved data is shown on front-end.
3965
3966         Test: http/tests/inspector/network/network-image-404.html
3967
3968         * inspector/InspectorResourceAgent.cpp:
3969         (WebCore::isErrorStatusCode):
3970         (WebCore):
3971         (WebCore::InspectorResourceAgent::didReceiveData):
3972         * inspector/NetworkResourcesData.cpp:
3973         (WebCore::NetworkResourcesData::ResourceData::removeContent):
3974         (WebCore::NetworkResourcesData::ResourceData::purgeContent):
3975         (WebCore):
3976         (WebCore::NetworkResourcesData::responseReceived):
3977         (WebCore::NetworkResourcesData::setResourceContent):
3978         * inspector/NetworkResourcesData.h:
3979         (ResourceData):
3980         (WebCore::NetworkResourcesData::ResourceData::httpStatusCode):
3981         (WebCore::NetworkResourcesData::ResourceData::setHTTPStatusCode):
3982         * inspector/front-end/RequestView.js:
3983         (WebInspector.RequestView.hasTextContent):
3984
3985 2012-04-19  Yury Semikhatsky  <yurys@chromium.org>
3986
3987         Web Inspector / Heap snapshots: "Object's retaining tree" view doesn't get cleared when navigating between objects
3988         https://bugs.webkit.org/show_bug.cgi?id=84337
3989
3990         When DataGrid root node is reset, make sure all existing rows are removed.
3991
3992         Reviewed by Vsevolod Vlasov.
3993
3994         * inspector/front-end/DataGrid.js:
3995         (WebInspector.DataGrid.prototype.setRootNode):
3996
3997 2012-04-19  Beth Dakin  <bdakin@apple.com>
3998
3999         https://bugs.webkit.org/show_bug.cgi?id=80536
4000         REGRESSION: When Safari is not frontmost, pages should not get mouse moves or 
4001         hover
4002
4003         Reviewed by Adele Peterson.
4004
4005         This patch just adds some code back that was removed by 
4006         http://trac.webkit.org/changeset/102632 This particular code was unrelated to that 
4007         bug and should not have been removed.
4008         * page/EventHandler.cpp:
4009         (WebCore::EventHandler::handleMouseMoveEvent):
4010
4011 2012-04-19  Xianzhu Wang  <wangxianzhu@chromium.org>
4012
4013         DevTools highlights elements in frames at un-scaled positions
4014         https://bugs.webkit.org/show_bug.cgi?id=84181
4015
4016         On mobile platforms (e.g. chromium-android), normally pages are scaled,
4017         thus the coordinations of highlight rect inside of a frame needs to
4018         consider not only the offset, but also the scale. The change uses
4019         FrameView::contentsToRootView() to map the coordinates of a node in
4020         a frame to the coordinates in the main frame, instead of calculating
4021         by only the offset.
4022
4023         Reviewed by Pavel Feldman.
4024
4025         Test: inspector/elements/highlight-node-scaled.html
4026
4027         * inspector/DOMNodeHighlighter.cpp:
4028
4029 2012-04-19  Yury Semikhatsky  <yurys@chromium.org>
4030
4031         Web Inspector / Heap snapshots: "Objects allocated ..." views are empty
4032         https://bugs.webkit.org/show_bug.cgi?id=84347
4033
4034         Pass parsed maxJSObjectId value to the profile header constructor.
4035
4036         Reviewed by Pavel Feldman.
4037
4038         * inspector/front-end/ProfilesPanel.js:
4039         (WebInspector.ProfileHeader):
4040         (WebInspector.ProfilesPanel.prototype.setRecordingProfile):
4041         (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot):
4042         (WebInspector.ProfilerDispatcher.prototype.addProfileHeader):
4043
4044 2012-04-19  Brady Eidson  <beidson@apple.com>
4045
4046         <rdar://problem/10664148> and https://bugs.webkit.org/show_bug.cgi?id=84360 
4047         StorageThread should have an autorelease pool in place for Cocoa clients
4048         
4049         Reviewed by Eric Carlson.
4050
4051         No new tests. (Not practical to test this with current tools)
4052
4053         * storage/StorageThread.cpp:
4054         (WebCore::StorageThread::threadEntryPoint): Include an AutodrainedPool and cycle it after each message.
4055
4056 2012-04-19  Luke Macpherson  <macpherson@chromium.org>
4057
4058         Fix potential null pointer dereference in RuleSet::addRulesFromSheet().
4059         https://bugs.webkit.org/show_bug.cgi?id=84258
4060
4061         Reviewed by Andreas Kling.
4062
4063         Fix variable that is dereferenced without null check here, but checked in code above and below.
4064
4065         No new test / code cleanup from coverity analysis.
4066
4067         * css/CSSStyleSelector.cpp:
4068         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
4069
4070 2012-04-19  Yury Semikhatsky  <yurys@chromium.org>
4071
4072         Web Inspector: exception when hovering object while paused
4073         https://bugs.webkit.org/show_bug.cgi?id=84358
4074
4075         Added missing boolean parameter to the call site of evaluate method
4076         on call frame.
4077
4078         Reviewed by Vsevolod Vlasov.
4079
4080         * inspector/front-end/AdvancedSearchController.js:
4081         * inspector/front-end/DebuggerPresentationModel.js: annotated slectedCallFrame
4082         method so that closure compiler catches errors like in the bug report.
4083         (WebInspector.DebuggerPresentationModel.prototype.evaluateInSelectedCallFrame):
4084         * inspector/front-end/JavaScriptSourceFrame.js:
4085         (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover):
4086
4087 2012-04-19  Yury Semikhatsky  <yurys@chromium.org>
4088
4089         Web Inspector: nodes are not removed from the summary view when switching between allocation ranges
4090         https://bugs.webkit.org/show_bug.cgi?id=84354
4091
4092         Clear all top level nodes not only those visible in the viewport when populating