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