Account for margin after when laying out <legend> element
[WebKit.git] / Source / WebCore / ChangeLog
1 2012-06-11  Julien Chaffraix  <jchaffraix@webkit.org>
2
3         Account for margin after when laying out <legend> element
4         https://bugs.webkit.org/show_bug.cgi?id=35981
5
6         Reviewed by Abhishek Arya.
7
8         Tests: fast/forms/legend-after-margin-horizontal-writing-mode.html
9                fast/forms/legend-after-margin-vertical-writing-mode.html
10                fast/forms/legend-after-margin-with-before-border-horizontal-mode.html
11                fast/forms/legend-small-after-margin-before-border-horizontal-mode.html
12
13         The existing code would ignore margin after when layouting out the <legend>. This
14         change only adds the code to handle the margin after, the margin before is still
15         ignored as it's not obvious how it should be working.
16
17         * rendering/RenderFieldset.cpp:
18         (WebCore::RenderFieldset::layoutSpecialExcludedChild):
19         Split the code in 2 code paths to reflect how we position and size. Those are covered by the
20         tests above.
21
22 2012-06-11  James Robinson  <jamesr@chromium.org>
23
24         [chromium] Use WebGraphicsContext3D in rate limiting logic inside compositor
25         https://bugs.webkit.org/show_bug.cgi?id=86259
26
27         Reviewed by Adrienne Walker.
28
29         This refactors the compositor's rate limiting implementation to use the Platform API's WebGraphicsContext3D
30         directly instead of WebCore::GraphicsContext3D to cut down on the number of spurious WebCore dependencies in the
31         compositor.  The one change in contract is that the caller to CCLayerTreeHost::startRateLimit() now has to call
32         CCLayerTreeHost::stopRateLimit() before allowing the referenced context to go away since CCLayerTreeHost no
33         longer retains a reference, but this was always happening already.
34
35         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
36         (WebCore::Canvas2DLayerChromium::~Canvas2DLayerChromium):
37         (WebCore::Canvas2DLayerChromium::setNeedsDisplayRect):
38         * platform/graphics/chromium/RateLimiter.cpp:
39         (WebCore::RateLimiter::create):
40         (WebCore::RateLimiter::RateLimiter):
41         (WebCore::RateLimiter::start):
42         (WebCore::RateLimiter::rateLimitContext):
43         * platform/graphics/chromium/RateLimiter.h:
44         (WebKit):
45         (RateLimiter):
46         * platform/graphics/chromium/TextureLayerChromium.cpp:
47         (WebCore::TextureLayerChromium::~TextureLayerChromium):
48         (WebCore::TextureLayerChromium::setRateLimitContext):
49         (WebCore::TextureLayerChromium::setNeedsDisplayRect):
50         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
51         (WebCore::CCLayerTreeHost::startRateLimiter):
52         (WebCore::CCLayerTreeHost::stopRateLimiter):
53         (WebCore::CCLayerTreeHost::rateLimit):
54         (WebCore):
55         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
56         (CCLayerTreeHost):
57
58 2012-06-11  Dana Jansens  <danakj@chromium.org>
59
60         [chromium] Separate CCVideoDrawQuad and from the layer tree and video provider by removing ManagedTexture and WebVideoFrame pointers from the quad
61         https://bugs.webkit.org/show_bug.cgi?id=88363
62
63         Reviewed by Adrienne Walker.
64
65         CCVideoDrawQuad should not contain any pointers to data in the layer
66         tree so we are able to serialize it across process boundaries. This
67         patch removes the ManagedTexture pointers from the quad class,
68         replacing them with texture ids. It removes the WebVideoFrame* from
69         the quad, replacing it with the frame provider's texture id included
70         in the WebVideoFrame structure. And it uses a WebTransformationMatrix
71         instead of a pointer to an array of floats.
72
73         Texture allocation is done in CCVideoLayerImpl via the
74         contentsTextureAllocator, so that the memory usage can be tracked.
75
76         We move the copyPlaneToTextures() method back from LayerRendererChromium
77         to CCVideoLayerImpl, as this method uses the texture data pointer in the
78         WebVideoFrame, and we do not want to give this pointer to the quad
79         class. Instead, this method makes use of the LayerTextureSubImage class
80         to copy the pixel data into the texture.
81
82         LayerTextureSubImage is updated to allow non-4byte texture formats.
83
84         * platform/graphics/chromium/LayerRendererChromium.cpp:
85         (WebCore::LayerRendererChromium::drawYUV):
86         (WebCore::LayerRendererChromium::drawRGBA):
87         (WebCore::LayerRendererChromium::drawNativeTexture2D):
88         (WebCore::LayerRendererChromium::drawStreamTexture):
89         (WebCore::LayerRendererChromium::drawVideoQuad):
90         * platform/graphics/chromium/LayerTextureSubImage.cpp:
91         (WebCore::LayerTextureSubImage::uploadWithTexSubImage):
92         (WebCore::LayerTextureSubImage::uploadWithMapTexSubImage):
93         * platform/graphics/chromium/TextureCopier.cpp:
94         * platform/graphics/chromium/cc/CCVideoDrawQuad.cpp:
95         (WebCore::CCVideoDrawQuad::create):
96         (WebCore::CCVideoDrawQuad::CCVideoDrawQuad):
97         * platform/graphics/chromium/cc/CCVideoDrawQuad.h:
98         (CCVideoDrawQuad):
99         (WebCore::CCVideoDrawQuad::planes):
100         (WebCore::CCVideoDrawQuad::frameProviderTextureId):
101         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
102         (WebCore::CCVideoLayerImpl::~CCVideoLayerImpl):
103         (WebCore::CCVideoLayerImpl::willDraw):
104         (WebCore::CCVideoLayerImpl::willDrawInternal):
105         (WebCore::CCVideoLayerImpl::appendQuads):
106         (WebCore::CCVideoLayerImpl::didDraw):
107         (WebCore::CCVideoLayerImpl::FramePlane::allocateData):
108         (WebCore):
109         (WebCore::CCVideoLayerImpl::FramePlane::freeData):
110         (WebCore::CCVideoLayerImpl::allocatePlaneData):
111         (WebCore::CCVideoLayerImpl::copyPlaneData):
112         (WebCore::CCVideoLayerImpl::freePlaneData):
113         (WebCore::CCVideoLayerImpl::freeUnusedPlaneData):
114         (WebCore::CCVideoLayerImpl::didLoseContext):
115         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
116         (FramePlane):
117         (WebCore::CCVideoLayerImpl::FramePlane::FramePlane):
118
119 2012-06-11  Joshua Bell  <jsbell@chromium.org>
120
121         IndexedDB: Object stores are not successfully deleted
122         https://bugs.webkit.org/show_bug.cgi?id=88788
123
124         Reviewed by Tony Chang.
125
126         Discovered while working on http://webkit.org/b/83074 - object stores are not
127         being deleted from the backing store. Deletion would succeed in the in-memory
128         data structures, but after closing/re-opening the backing store the object store
129         (but not its indexes/data) would reappear. Due to 83074, this isn't detectable
130         by DRT without a full restart.
131
132         Test: [chromium] webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.ComparisonTest'
133
134         * Modules/indexeddb/IDBLevelDBCoding.cpp:
135         (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::compare):
136
137 2012-06-05  Eric Uhrhane <ericu@chromium.org>
138
139         Crash in fast/files/read tests during Garbage Collection
140         https://bugs.webkit.org/show_bug.cgi?id=87165
141
142         Reviewed by Michael Saboff
143
144         Fix previous fix for hasPendingActivity, and fix a bug in a complex
145         abort case as well--abort during the final progress event of a write
146         would hang the writer.
147
148         * Modules/filesystem/FileWriter.cpp:
149         (WebCore::FileWriter::stop):
150         (WebCore::FileWriter::write):
151         (WebCore::FileWriter::truncate):
152         (WebCore::FileWriter::didWrite):
153         (WebCore::FileWriter::didTruncate):
154         (WebCore::FileWriter::didFail):
155         (WebCore::FileWriter::completeAbort):
156         (WebCore::FileWriter::doOperation):
157         (WebCore::FileWriter::signalCompletion):
158
159 2012-06-11  Shawn Singh  <shawnsingh@chromium.org>
160
161         [chromium] Implement position:fixed in compositor thread
162         https://bugs.webkit.org/show_bug.cgi?id=70103
163
164         Reviewed by Adrienne Walker.
165
166         Significant contributions to this patch by Alpha Lam and Sami Kyostila.
167
168         This patch is the compositor-side change that adds support for
169         fixed-position layers to be composited layers. Before this patch,
170         fixed-position elements were positioned only by WebCore (i.e. main
171         thread when painting), and the compositor did not have enough
172         knowledge on its own to position it properly. This patch adds the
173         necessary math and plumbs the necessary layer information so that
174         the impl thread can properly position fixed-position elements on
175         its own. This support is necessary for correctness of composited
176         fixed-position elements, which can greatly help to avoid
177         repainting container layers when scrolling with a fixed-position
178         layer.
179
180         There also needs to be WebCore-side support for this, which is
181         addressed in https://bugs.webkit.org/show_bug.cgi?id=78864
182
183         Unit tests added to CCLayerTreeHostCommonTest:
184           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithDirectContainer
185           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithTransformedDirectContainer
186           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithDistantContainer
187           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithDistantContainerAndTransforms
188           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithMultipleScrollDeltas
189           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithIntermediateSurfaceAndTransforms
190           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithMultipleIntermediateSurfaces
191           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithContainerLayerThatHasSurface
192           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerThatIsAlsoFixedPositionContainer
193           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerThatHasNoContainer
194
195         * platform/graphics/chromium/LayerChromium.cpp:
196         (WebCore::LayerChromium::LayerChromium):
197         (WebCore::LayerChromium::pushPropertiesTo):
198         * platform/graphics/chromium/LayerChromium.h:
199         (WebCore::LayerChromium::setIsContainerForFixedPositionLayers):
200         (WebCore::LayerChromium::isContainerForFixedPositionLayers):
201         (LayerChromium):
202         (WebCore::LayerChromium::setFixedToContainerLayerVisibleRect):
203         (WebCore::LayerChromium::fixedToContainerLayerVisibleRect):
204         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
205         (WebCore::CCLayerImpl::CCLayerImpl):
206         * platform/graphics/chromium/cc/CCLayerImpl.h:
207         (WebCore::CCLayerImpl::setIsContainerForFixedPositionLayers):
208         (WebCore::CCLayerImpl::isContainerForFixedPositionLayers):
209         (CCLayerImpl):
210         (WebCore::CCLayerImpl::setFixedToContainerLayerVisibleRect):
211         (WebCore::CCLayerImpl::fixedToContainerLayerVisibleRect):
212         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
213         (WebCore::computeScrollCompensationForThisLayer):
214         (WebCore):
215         (WebCore::computeScrollCompensationMatrixForChildren):
216         (WebCore::calculateDrawTransformsInternal):
217         (WebCore::CCLayerTreeHostCommon::calculateDrawTransforms):
218
219 2012-06-11  Sam Weinig  <sam@webkit.org>
220
221         Remove support for disconnected/excluded from search frames, they are not used by Safari anymore
222         https://bugs.webkit.org/show_bug.cgi?id=88723
223
224         Reviewed by Dan Bernstein.
225
226         * WebCore.exp.in:
227         Update export.
228         * editing/Editor.cpp:
229         (WebCore::Editor::rangeOfString):
230         (WebCore::Editor::countMatchesForText):
231         * editing/Editor.h:
232         (Editor):
233         * loader/FrameLoader.cpp:
234         (WebCore::FrameLoader::findFrameForNavigation):
235         * page/DOMWindow.cpp:
236         (WebCore::DOMWindow::parent):
237         (WebCore::DOMWindow::top):
238         * page/EventHandler.cpp:
239         (WebCore::EventHandler::hitTestResultAtPoint):
240         * page/Frame.cpp:
241         (WebCore::Frame::Frame):
242         * page/Frame.h:
243         (Frame):
244         * page/FrameTree.cpp:
245         (WebCore::FrameTree::parent):
246         (WebCore::FrameTree::top):
247         * page/FrameTree.h:
248         (FrameTree):
249         * page/Location.cpp:
250         (WebCore::Location::ancestorOrigins):
251         * xml/XMLTreeViewer.cpp:
252         (WebCore::XMLTreeViewer::hasNoStyleInformation):
253         Update for the removal of disconnected frames and text search exclusions concepts.
254
255 2012-06-11  Xianzhu Wang  <wangxianzhu@chromium.org>
256
257         SVGImageCache leaks image data
258         https://bugs.webkit.org/show_bug.cgi?id=87792
259
260         There are two functions to remove a client from a CachedImage:
261         - CachedResource::removeClient()
262         - CachedImage::removeClientForRenderer().
263         It's easy to make error to call the former which will leak the cached
264         image buffers in SVGImageCache.
265
266         This change combined the two by adding the virtual 
267         CachedResource::didRemoveClient(). CachedImage will do SVGImageCache
268         cleanup in the function.
269
270         Reviewed by Nikolas Zimmermann.
271
272         Test: svg/as-image/svg-image-leak-cached-data.html
273
274         * loader/cache/CachedFont.h:
275         (WebCore::CachedFontClient::resourceClientType): Added 'const'.
276         * loader/cache/CachedImage.cpp:
277         (WebCore):
278         (WebCore::CachedImage::didRemoveClient): Removes the client from SVGImageCache.
279         (WebCore::CachedImage::lookupOrCreateImageForRenderer):
280         * loader/cache/CachedImage.h:
281         (CachedImage):
282         (WebCore::CachedImageClient::resourceClientType): Added 'const'.
283         * loader/cache/CachedRawResource.h:
284         (WebCore::CachedRawResourceClient::resourceClientType): Added 'const'.
285         * loader/cache/CachedResource.cpp:
286         (WebCore::CachedResource::removeClient): Added invocation of didRemoveClient().
287         * loader/cache/CachedResource.h:
288         (WebCore::CachedResource::didRemoveClient): Added for subclasses to do additional works.
289         * loader/cache/CachedResourceClient.h:
290         (WebCore::CachedResourceClient::resourceClientType): Added 'const'.
291         * loader/cache/CachedSVGDocument.h:
292         (WebCore::CachedSVGDocumentClient::resourceClientType): Added 'const'.
293         * loader/cache/CachedStyleSheetClient.h:
294         (WebCore::CachedStyleSheetClient::resourceClientType): Added 'const'.
295         * rendering/style/StyleCachedImage.cpp:
296         (WebCore::StyleCachedImage::removeClient):
297         * rendering/style/StyleCachedImageSet.cpp:
298         (WebCore::StyleCachedImageSet::removeClient):
299         * svg/graphics/SVGImageCache.cpp:
300         (WebCore::SVGImageCache::~SVGImageCache): Added checking for leaks.
301         (WebCore::SVGImageCache::removeClientFromCache):
302         (WebCore::SVGImageCache::setRequestedSizeAndScales): 
303         (WebCore::SVGImageCache::requestedSizeAndScales):
304         (WebCore::SVGImageCache::lookupOrCreateBitmapImageForClient):
305         * svg/graphics/SVGImageCache.h:
306         (WebCore):
307         (SVGImageCache):
308
309 2012-06-11  Mark Pilgrim  <pilgrim@chromium.org>
310
311         [Chromium] Call shared timer functions directly
312         https://bugs.webkit.org/show_bug.cgi?id=88781
313
314         Reviewed by Adam Barth.
315
316         Part of a refactoring series. See tracking bug 82948.
317
318         * platform/chromium/PlatformSupport.h:
319         (PlatformSupport):
320         * platform/chromium/SharedTimerChromium.cpp:
321         (WebCore::setSharedTimerFiredFunction):
322         (WebCore::setSharedTimerFireInterval):
323
324 2012-06-11  Pravin D  <pravind.2k4@gmail.com>
325
326         Relative pos. input fields in columns vanish when you start typing in them
327         https://bugs.webkit.org/show_bug.cgi?id=76834
328
329         Reviewed by Julien Chaffraix.
330
331         Test: fast/multicol/multicol-with-child-renderLayer-for-input.html
332
333         * page/FrameView.cpp:
334         (WebCore::updateLayerPositionFlags):
335         Helper function to prepare the UpdateLayerPositionsFlags based on the input parameters.
336         If didFullRepaint flag is set, then CheckForRepaints flag is removed from the default flags.
337         Also during a relayout of a subtree, if the RenderLayer of the subtree root is paginated then updatePagination flag is
338         included in the flags. 
339
340         (WebCore):
341         (WebCore::FrameView::layout):
342         Now uses the helper function updateLayerPositionFlags() to get the final set of UpdateLayerPositionsFlags.
343
344         * rendering/RenderLayer.h:
345         (WebCore::RenderLayer::isPaginated):
346         (RenderLayer):
347         isPaginated function is made public so that FrameView class can use it prepare UpdateLayerPositionsFlags.
348
349 2012-06-11  Mark Pilgrim  <pilgrim@chromium.org>
350
351         [Chromium] Remove some dead code in PasteboardChromium
352         https://bugs.webkit.org/show_bug.cgi?id=88782
353
354         Reviewed by Adam Barth.
355
356         Part of a refactoring series. See tracking bug 82948.
357         Leftover detritus from bug 88038.
358
359         * platform/chromium/PasteboardChromium.cpp:
360         (WebCore::Pasteboard::documentFragment):
361
362 2012-06-11  Peter Beverloo  <peter@chromium.org>
363
364         [Chromium] Theme updates for Android in menu list rendering and selection backgrounds
365         https://bugs.webkit.org/show_bug.cgi?id=88775
366
367         Reviewed by Adam Barth.
368
369         For Chrome on Android, use the width of the scrollbar down arrow instead
370         of the scrollbar's width for determining the arrow padding to apply for
371         menu list rendering, as WebKit isn't drawing a scrollbar (thus width=0).
372
373         Furthermore, change the default active selection background color to be
374         equal to the tap highlighting color.
375
376         These changes should be covered by existing layout tests.
377
378         * rendering/RenderThemeChromiumAndroid.cpp:
379         (WebCore::RenderThemeChromiumAndroid::menuListArrowPadding):
380         (WebCore): Retrieve the scrollbar down arrow's size via PlatformSupport.
381         * rendering/RenderThemeChromiumAndroid.h: Override the menuListArrowPadding
382             and platformActiveSelectionBackgroundColor methods, and add a static
383             static RGBA32 color for the default active selection bg color.
384         * rendering/RenderThemeChromiumSkia.cpp:
385         (WebCore::RenderThemeChromiumSkia::menuListArrowPadding): Default to
386             the scrollbar thickness, not changing behavior for non-Android.
387         (WebCore::RenderThemeChromiumSkia::menuListInternalPadding): Instead
388             of polling the scrollbar thickness, call menuListArrowPadding().
389         * rendering/RenderThemeChromiumSkia.h: 
390         (RenderThemeChromiumSkia): Add the menuListArrowPadding() as a protected method.
391
392 2012-06-11  David Barr  <davidbarr@chromium.org>
393
394         Add css3-images image-resolution (dppx only)
395         https://bugs.webkit.org/show_bug.cgi?id=85332
396
397         Reviewed by Tony Chang.
398
399         The css3-images module is at candidate recommendation.
400         http://www.w3.org/TR/2012/CR-css3-images-20120417/#image-resolution
401
402         Test: fast/css/image-resolution.html
403
404         * css/CSSComputedStyleDeclaration.cpp:
405         (WebCore):
406         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
407         * css/CSSGrammar.y:
408         * css/CSSParser.cpp:
409         (WebCore::CSSParser::validUnit):
410         (WebCore::CSSParser::createPrimitiveNumericValue):
411         (WebCore::unitFromString):
412         (WebCore::CSSParser::parseValidPrimitive):
413         (WebCore::CSSParser::parseValue):
414         (WebCore):
415         (WebCore::CSSParser::parseImageResolution):
416         (WebCore::CSSParser::detectNumberToken):
417         * css/CSSParser.h:
418         * css/CSSPrimitiveValue.cpp:
419         (WebCore::isValidCSSUnitTypeForDoubleConversion):
420         (WebCore::unitCategory):
421         (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory):
422         (WebCore::CSSPrimitiveValue::customCssText):
423         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
424         * css/CSSPrimitiveValue.h:
425         * css/CSSProperty.cpp:
426         (WebCore::CSSProperty::isInheritedProperty):
427         * css/CSSPropertyNames.in:
428         * css/StyleBuilder.cpp:
429         (WebCore):
430         (ApplyPropertyImageResolution):
431         (WebCore::ApplyPropertyImageResolution::applyInheritValue):
432         (WebCore::ApplyPropertyImageResolution::applyInitialValue):
433         (WebCore::ApplyPropertyImageResolution::applyValue):
434         (WebCore::ApplyPropertyImageResolution::createHandler):
435         (WebCore::StyleBuilder::StyleBuilder):
436         * css/StyleResolver.cpp:
437         (WebCore::StyleResolver::collectMatchingRulesForList):
438         * rendering/RenderImage.cpp:
439         (WebCore::RenderImage::styleDidChange):
440         (WebCore::RenderImage::imageDimensionsChanged):
441         * rendering/style/RenderStyle.cpp:
442         (WebCore::RenderStyle::diff):
443         * rendering/style/RenderStyle.h:
444         * rendering/style/StyleRareInheritedData.cpp:
445         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
446         (WebCore::StyleRareInheritedData::operator==):
447         * rendering/style/StyleRareInheritedData.h:
448         (StyleRareInheritedData):
449
450 2012-06-05  Dana Jansens  <danakj@chromium.org>
451
452         [chromium] Free texture from CCIOSurfaceLayerImpl when it is destroyed
453         https://bugs.webkit.org/show_bug.cgi?id=88371
454
455         Reviewed by James Robinson.
456
457         Unit test: CCLayerTreeHostImplTest.layersFreeTextures
458
459         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
460         (WebCore::CCIOSurfaceLayerImpl::~CCIOSurfaceLayerImpl):
461         (WebCore::CCIOSurfaceLayerImpl::willDraw):
462
463 2012-06-11  Carlos Garcia Campos  <cgarcia@igalia.com>
464
465         Unreviewed. Fix make distcheck issues.
466
467         * GNUmakefile.am: Add idl files in editing dir to EXTRA_DIST.
468         * GNUmakefile.list.am: Add missing header file.
469
470 2012-06-11  Dan Bernstein  <mitz@apple.com>
471
472         Reverted r119940 because it caused multiple media tests to fail on Lion.
473
474         * html/HTMLMediaElement.cpp:
475         (WebCore::HTMLMediaElement::prepareForLoad):
476         (WebCore):
477         (WebCore::HTMLMediaElement::userCancelledLoad):
478         * html/HTMLMediaElement.h:
479         (HTMLMediaElement):
480         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
481         (WebCore::MediaPlayerPrivateQTKit::commonMovieAttributes):
482
483 2012-06-11  Zoltan Horvath  <zoltan@webkit.org>
484
485         [Qt] Add config tests for WEBP imagedecoder library, modify HAVE(decoderlibrary) to USE(...)$
486         https://bugs.webkit.org/show_bug.cgi?id=87841
487
488         Reviewed by Simon Hausmann.
489
490         No new tests were needed.
491
492         * Target.pri:
493         * WebCore.pri:
494         * platform/image-decoders/ImageDecoder.cpp:
495         (WebCore::ImageDecoder::create):
496
497 2012-06-11  Kenneth Rohde Christiansen  <kenneth@webkit.org>
498
499         Add QML api for setting device width and height
500         https://bugs.webkit.org/show_bug.cgi?id=88777
501
502         Reviewed by Simon Hausmann.
503
504         Change the default values for deviceWidth/Height to be 0 (unset). The
505         original values were introduced by Qt and 0 makes it possible to
506         detect if a value has never been set and therefore fall back.
507
508         Only Qt depended on the former values.
509
510         * page/Settings.cpp:
511         (WebCore::Settings::Settings):
512
513 2012-06-11  Csaba Osztrogonác  <ossy@webkit.org>
514
515         [Qt][Win] Fix UString related build problem in Source/WebCore/bridge/qt/qt_instance.cpp
516         https://bugs.webkit.org/show_bug.cgi?id=88310
517
518         Reviewed by Simon Hausmann.
519
520         * bridge/qt/qt_instance.cpp:
521         (JSC::Bindings::QtInstance::getPropertyNames):
522
523 2012-06-11  Michael Brüning  <michael.bruning@nokia.com>
524
525         [Qt][WK2] Compute and set cache capacities using the current CacheModel
526         https://bugs.webkit.org/show_bug.cgi?id=73918
527
528         Unreviewed build fix.
529
530         No new tests added as this is a build fix.
531
532         * platform/qt/FileSystemQt.cpp:
533
534 2012-06-11  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
535
536         Rect-based hittesting doesn't work in tables.
537         https://bugs.webkit.org/show_bug.cgi?id=86605
538
539         Reviewed by Julien Chaffraix.
540
541         The existing code only performed a single binary lookup for the central
542         hit-test point. This meant area-based hit-testing did not work across
543         table-cell borders. All cells spanned by a hit-test area must be hit
544         tested.
545
546         This patch introduces three auxilary functions to help calculate rows
547         and columns spanned by an rect. These are intended to also be used by
548         repaint logic in a later patch.
549
550         For point-based hit-testing we maintain unchanged behavior and still
551         only hit test a single column in a single row.
552
553         Test: fast/dom/nodesFromRect-table.html
554
555         * rendering/RenderTableSection.cpp:
556         (WebCore::RenderTableSection::logicalRectForWritingModeAndDirection):
557         (WebCore::RenderTableSection::spannedRows):
558         (WebCore::RenderTableSection::spannedColumns):
559         (WebCore::RenderTableSection::nodeAtPoint):
560         * rendering/RenderTableSection.h:
561         (RenderTableSection):
562
563 2012-06-11  Min Qin  <qinmin@google.com>
564
565         Adding a flag to show fullscreen media controls in chromium
566         https://bugs.webkit.org/show_bug.cgi?id=88266
567
568         Reviewed by Adam Barth.
569
570         The default chromium shadow DOM for media element does not contain fullscreen button.
571         This change adds a flag to display the fullscreen button.
572         It will be used by the android port.
573
574         No new tests needed. We will use the same layout tests as desktop chromium.
575         However, new test result expections will be added later.
576
577         * html/shadow/MediaControlRootElementChromium.cpp:
578         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
579         (WebCore::MediaControlRootElementChromium::create):
580         (WebCore::MediaControlRootElementChromium::setMediaController):
581         (WebCore::MediaControlRootElementChromium::reset):
582         (WebCore::MediaControlRootElementChromium::reportedError):
583         * html/shadow/MediaControlRootElementChromium.h:
584         (MediaControlRootElementChromium):
585
586 2012-06-11  Michael Brüning  <michael.bruning@nokia.com>
587
588         [Qt][WK2] Compute and set cache capacities using the current CacheModel
589         https://bugs.webkit.org/show_bug.cgi?id=73918
590
591         Reviewed by Kenneth Rohde Christiansen.
592
593         No new tests needed / applicable (using operating system functionality).
594
595         Added method to read free file system space for a path to support cache model
596         implementation in Qt WK 2.
597
598         * platform/FileSystem.h:
599         (WebCore):
600         * platform/qt/FileSystemQt.cpp:
601         (WebCore::getVolumeFreeSizeForPath): Added for Qt ports.
602         (WebCore):
603
604 2012-06-11  Peter Wang  <peter.wang@torchmobile.com.cn>
605
606         [JSC] Web Inspector: implement breaking from native callback
607         https://bugs.webkit.org/show_bug.cgi?id=43332
608
609         Reviewed by Pavel Feldman.
610
611         These test cases were enabled:
612         LayoutTests/inspector/debugger/dom-breakpoints.html
613         LayoutTests/inspector/debugger/event-listener-breakpoints.html
614         LayoutTests/inspector/debugger/step-through-event-listeners.html
615         LayoutTests/inspector/debugger/xhr-breakpoints.html
616
617         * bindings/js/ScriptDebugServer.cpp:
618         (WebCore::ScriptDebugServer::breakProgram):
619         * bindings/js/ScriptDebugServer.h:
620         (WebCore::supportsNativeBreakpoints):
621
622 2012-06-11  MORITA Hajime  <morrita@google.com>
623
624         Spellchecker crash in async scenario.
625         https://bugs.webkit.org/show_bug.cgi?id=88617
626
627         Reviewed by Tony Chang.
628
629         SpellCheckRequest::invokeRequest() can be reached after the frame is detached.
630         SpellCheckRequest should ignore such a request since TextCheckerClient is not available
631         for detached Frames.
632
633         No new tests. It's hard to reproduce this.
634
635         * editing/SpellChecker.cpp:
636         (WebCore::SpellChecker::invokeRequest):
637
638 2012-06-11  Ryuan Choi  <ryuan.choi@samsung.com>
639
640         [EFL] Extract CursorMap from WidgetEfl.cpp.
641         https://bugs.webkit.org/show_bug.cgi?id=88633
642
643         Reviewed by Ryosuke Niwa.
644
645         In order to share CursorMap in WebKit/efl and UIProcess of WebKit2/Efl,
646         extract it and expose getEcoreCursor.
647
648         No new tests, refactoring only.
649
650         * platform/efl/EflScreenUtilities.cpp:
651         (WebCore):
652         (CursorMap):
653         (WebCore::CursorMap::cursor):
654         (WebCore::CursorMap::CursorMap):
655         (WebCore::getEcoreCursor):
656         * platform/efl/EflScreenUtilities.h:
657         (WebCore):
658         * platform/efl/WidgetEfl.cpp:
659         (WebCore::Widget::applyFallbackCursor):
660
661 2012-06-10  Sheriff Bot  <webkit.review.bot@gmail.com>
662
663         Unreviewed, rolling out r119955.
664         http://trac.webkit.org/changeset/119955
665         https://bugs.webkit.org/show_bug.cgi?id=88758
666
667         Breaks Chromium compile - Chromium depends on removed API
668         (Requested by dominicc on #webkit).
669
670         * WebCore.exp.in:
671         * editing/Editor.cpp:
672         (WebCore::Editor::insideVisibleArea):
673         (WebCore):
674         (WebCore::Editor::firstVisibleRange):
675         (WebCore::Editor::lastVisibleRange):
676         (WebCore::Editor::nextVisibleRange):
677         (WebCore::Editor::rangeOfString):
678         (WebCore::Editor::countMatchesForText):
679         * editing/Editor.h:
680         (Editor):
681         * loader/FrameLoader.cpp:
682         (WebCore::FrameLoader::findFrameForNavigation):
683         * page/DOMWindow.cpp:
684         (WebCore::DOMWindow::parent):
685         (WebCore::DOMWindow::top):
686         * page/EventHandler.cpp:
687         (WebCore::EventHandler::hitTestResultAtPoint):
688         * page/Frame.cpp:
689         (WebCore::Frame::Frame):
690         * page/Frame.h:
691         (Frame):
692         (WebCore::Frame::isDisconnected):
693         (WebCore):
694         (WebCore::Frame::setIsDisconnected):
695         (WebCore::Frame::excludeFromTextSearch):
696         (WebCore::Frame::setExcludeFromTextSearch):
697         * page/FrameTree.cpp:
698         (WebCore::FrameTree::parent):
699         (WebCore::FrameTree::top):
700         * page/FrameTree.h:
701         (FrameTree):
702         * page/Location.cpp:
703         (WebCore::Location::ancestorOrigins):
704         * xml/XMLTreeViewer.cpp:
705         (WebCore::XMLTreeViewer::hasNoStyleInformation):
706
707 2012-06-08  Kinuko Yasuda  <kinuko@chromium.org>
708
709         Using BlobBuilder should show a deprecation warning message (if it is enabled)
710         https://bugs.webkit.org/show_bug.cgi?id=88644
711
712         Reviewed by Jian Li.
713
714         Mac has already disabled BlobBuilder, but Chromium still has it.
715         We should start showing a warning to let people migrate to using Blob constructor.
716
717         Tests: fast/files/blob-builder-crash.html
718
719         * fileapi/WebKitBlobBuilder.cpp:
720         (WebCore):
721         (WebCore::WebKitBlobBuilder::create):
722         * fileapi/WebKitBlobBuilder.h:
723         (WebCore):
724         (WebKitBlobBuilder):
725         * fileapi/WebKitBlobBuilder.idl:
726
727 2012-06-10  Sam Weinig  <sam@webkit.org>
728
729         Remove support for disconnected/excluded from search frames, they are not used by Safari anymore
730         https://bugs.webkit.org/show_bug.cgi?id=88723
731
732         Reviewed by Dan Bernstein.
733
734         * WebCore.exp.in:
735         Update export.
736         * editing/Editor.cpp:
737         (WebCore::Editor::rangeOfString):
738         (WebCore::Editor::countMatchesForText):
739         * editing/Editor.h:
740         (Editor):
741         * loader/FrameLoader.cpp:
742         (WebCore::FrameLoader::findFrameForNavigation):
743         * page/DOMWindow.cpp:
744         (WebCore::DOMWindow::parent):
745         (WebCore::DOMWindow::top):
746         * page/EventHandler.cpp:
747         (WebCore::EventHandler::hitTestResultAtPoint):
748         * page/Frame.cpp:
749         (WebCore::Frame::Frame):
750         * page/Frame.h:
751         (Frame):
752         * page/FrameTree.cpp:
753         (WebCore::FrameTree::parent):
754         (WebCore::FrameTree::top):
755         * page/FrameTree.h:
756         (FrameTree):
757         * page/Location.cpp:
758         (WebCore::Location::ancestorOrigins):
759         * xml/XMLTreeViewer.cpp:
760         (WebCore::XMLTreeViewer::hasNoStyleInformation):
761         Update for the removal of disconnected frames and text search exclusions concepts.
762
763 2012-06-07  Kinuko Yasuda  <kinuko@google.com>
764
765         Move Quota related code out of DOMWindow and into the quota/ folder
766         https://bugs.webkit.org/show_bug.cgi?id=88512
767
768         Reviewed by Adam Barth.
769
770         No new tests: no visible changes.
771
772         * CMakeLists.txt:
773         * DerivedSources.cpp:
774         * DerivedSources.make:
775         * DerivedSources.pri:
776         * Modules/quota/DOMWindowQuota.cpp: Added.
777         * Modules/quota/DOMWindowQuota.h: Added.
778         * Modules/quota/DOMWindowQuota.idl: Added.
779         * Modules/quota/StorageInfo.cpp: Renamed from Source/WebCore/storage/StorageInfo.cpp.
780         * Modules/quota/StorageInfo.h: Renamed from Source/WebCore/storage/StorageInfo.h.
781         * Modules/quota/StorageInfo.idl: Renamed from Source/WebCore/storage/StorageInfo.idl.
782         * Modules/quota/StorageInfoErrorCallback.h: Renamed from Source/WebCore/storage/StorageInfoErrorCallback.h.
783         * Modules/quota/StorageInfoErrorCallback.idl: Renamed from Source/WebCore/storage/StorageInfoErrorCallback.idl.
784         * Modules/quota/StorageInfoQuotaCallback.h: Renamed from Source/WebCore/storage/StorageInfoQuotaCallback.h.
785         * Modules/quota/StorageInfoQuotaCallback.idl: Renamed from Source/WebCore/storage/StorageInfoQuotaCallback.idl.
786         * Modules/quota/StorageInfoUsageCallback.h: Renamed from Source/WebCore/storage/StorageInfoUsageCallback.h.
787         * Modules/quota/StorageInfoUsageCallback.idl: Renamed from Source/WebCore/storage/StorageInfoUsageCallback.idl.
788         * Target.pri:
789         * WebCore.gyp/WebCore.gyp:
790         * WebCore.gypi:
791         * WebCore.pri:
792         * WebCore.vcproj/WebCore.vcproj:
793         * WebCore.vcproj/WebCoreCommon.vsprops:
794         * WebCore.vcproj/copyForwardingHeaders.cmd:
795         * WebCore.xcodeproj/project.pbxproj:
796         * page/DOMWindow.cpp:
797         * page/DOMWindow.h:
798         * page/DOMWindow.idl:
799
800 2012-06-10  Hayato Ito  <hayato@chromium.org>
801
802         An inheritance of '-webkit-user-modify' does not stop at shadow boundary.
803         https://bugs.webkit.org/show_bug.cgi?id=88514
804
805         Reviewed by Ryosuke Niwa.
806
807         In StyleResolver::styleForElement(), we reset '-webkit-user-modify'
808         CSS property after inheriting a parent style, but that is not
809         enough.  We also have to reset '-webkit-user-modify' when we use a
810         cached result in applying matched properties.
811
812         Test: fast/dom/shadow/user-modify-inheritance.html
813
814         * css/StyleResolver.cpp:
815         (WebCore::StyleResolver::applyMatchedProperties):
816         (WebCore::StyleResolver::styleForElement):
817         * css/StyleResolver.h:
818         (StyleResolver):
819         * rendering/style/RenderStyle.cpp:
820         (WebCore::RenderStyle::inheritFrom):
821         * rendering/style/RenderStyle.h:
822
823 2012-06-10  Yoshifumi Inoue  <yosin@chromium.org>
824
825         [Forms] Introduce Decimal behind the InputNumber type
826         https://bugs.webkit.org/show_bug.cgi?id=88383
827
828         Reviewed by Kent Tamura.
829
830         This patch introduces decimal arithmetic for steppable input types,
831         e.g. date, datetime, number, range, and so on, to avoid rounding error
832         caused by base 2 floating point representation, e.g. C/C++ double type.
833
834         Most of decimal arithmetic calculations are implemented in StepRange
835         class, replacing "double" with "Decimal", InputType::applyStep, and
836         InputType::stepFromRenderer.
837
838         Changes introduced by this patch are still intermediate state.
839         Following patch will replace InputNumber type to Decimal type for
840         completion of introducing decimal arithmetic.
841
842         Test: fast/forms/range/range-value-rounding.html
843
844         * html/BaseDateAndTimeInputType.cpp:
845         (WebCore::BaseDateAndTimeInputType::serialize): Changed for Decimal type.
846         (WebCore::BaseDateAndTimeInputType::serializeWithComponents): ditto.
847         * html/DateInputType.cpp:
848         (WebCore::DateInputType::createStepRange): Replaced NumberWithDecimalPlaces to InputNumber.
849         * html/DateTimeInputType.cpp:
850         (WebCore::DateTimeInputType::createStepRange): Replaced NumberWithDecimalPlaces to InputNumber.
851         * html/DateTimeLocalInputType.cpp:
852         (WebCore::DateTimeLocalInputType::createStepRange): Replaced NumberWithDecimalPlaces to InputNumber.
853         * html/InputType.cpp:
854         (WebCore::InputType::rangeUnderflow): Changed for Decimal type.
855         (WebCore::InputType::rangeOverflow): Changed for Decimal type.
856         (WebCore::InputType::minimum): Changed for Decimal type.
857         (WebCore::InputType::maximum): ditto.
858         (WebCore::InputType::isInRange): ditto.
859         (WebCore::InputType::isOutOfRange): ditto.
860         (WebCore::InputType::stepMismatch): ditto.
861         (WebCore::InputType::validationMessage): ditto.
862         (WebCore::InputType::parseToNumberOrNaN): ditto.
863         (WebCore::InputType::applyStep): ditto.
864         (WebCore::InputType::stepUpFromRenderer): ditto.
865         * html/InputType.h:
866         (InputType): Removed parseToNumberWIthDecimaplPlaces.
867         * html/MonthInputType.cpp:
868         (WebCore::MonthInputType::createStepRange): Changed for Decimal type.
869         * html/NumberInputType.cpp:
870         (WebCore::RealNumberRenderSize): Added for calculateRenderSize.
871         (WebCore::calculateRenderSize): Added. This function replacess lengthBeforeDecimalPoint.
872         (WebCore::NumberInputType::createStepRange): Changed for Decimal type.
873         (WebCore::NumberInputType::sizeShouldIncludeDecoration): Changed to use calculateRenderSize.
874         (WebCore::NumberInputType::parseToNumber): Changed for Decimal type.
875         (WebCore::NumberInputType::serialize): ditto.
876         * html/NumberInputType.h:
877         (NumberInputType): Removed parseToNumberWIthDecimaplPlaces.
878         * html/RangeInputType.cpp:
879         (WebCore::RangeInputType::createStepRange): Changed for Decimal type.
880         (WebCore::RangeInputType::handleKeydownEvent): ditto.
881         (WebCore::RangeInputType::parseToNumber): ditto.
882         (WebCore::RangeInputType::serialize): ditto.
883         * html/StepRange.cpp:
884         (WebCore::StepRange::StepRange): Removed decimal places and changed for Decimal type.
885         (WebCore::StepRange::acceptableError): Changed for Decimal type.
886         (WebCore::StepRange::alignValueForStep): ditto.
887         (WebCore::StepRange::clampValue): Changed for Decimal type and std::min/max.
888         (WebCore::StepRange::parseStep): Changed for Decimal type and removed NumberWithDecimalPlaces.
889         (WebCore::StepRange::stepMismatch): Changed for Decimal type.
890         (WebCore::convertDoubleToInputNumber): Changed to real implementation.
891         (WebCore::convertInputNumberToDouble):  Changed to real implementation.
892         * html/StepRange.h:
893         (InputNumber): Replacement of NumberWithDecimalPlaces.
894         (WebCore::StepRange::InputNumber::InputNumber):
895         * html/TimeInputType.cpp:
896         (WebCore::TimeInputType::createStepRange): Changed for Decimal type.
897         * html/WeekInputType.cpp:
898         (WebCore::WeekInputType::createStepRange): Changed for Decimal type.
899         * html/parser/HTMLParserIdioms.cpp:
900         (WebCore::serializeForNumberType): Added Decimal version.
901         (WebCore::parseToDecimalForNumberType): Added.
902         * html/parser/HTMLParserIdioms.h: Updated comments for parseToDoubleForNumberType.
903         * html/shadow/SliderThumbElement.cpp:
904         (WebCore::sliderPosition): Changed for Decimal type.
905
906 2012-06-10  Jason Liu  <jason.liu@torchmobile.com.cn>
907
908         [BlackBerry] Possible to clobber httponly cookie.
909         https://bugs.webkit.org/show_bug.cgi?id=86067
910
911         Reviewed by Rob Buis.
912
913         If a cookie is set by javaScript and there is already a same httpOnly cookie in cookieManager,
914         we should reject it. If it has a httpOnly property, we reject it, too.
915
916         Test: http/tests/cookies/js-get-and-set-http-only-cookie.html
917
918         * platform/blackberry/CookieJarBlackBerry.cpp:
919         (WebCore::setCookies):
920         * platform/blackberry/CookieManager.cpp:
921         (WebCore::CookieManager::setCookies):
922         (WebCore::CookieManager::checkAndTreatCookie):
923         (WebCore::CookieManager::addCookieToMap):
924         (WebCore::CookieManager::setPrivateMode):
925         * platform/blackberry/CookieManager.h:
926         * platform/blackberry/CookieMap.cpp:
927         (WebCore::CookieMap::addOrReplaceCookie):
928         (WebCore::CookieMap::removeCookie):
929         * platform/blackberry/CookieMap.h:
930         (CookieMap):
931
932 2012-06-10  Pablo Flouret  <pablof@motorola.com>
933
934         Access control allow lists starting with a comma are parsed incorrectly (CORS)
935         https://bugs.webkit.org/show_bug.cgi?id=88461
936
937         Reviewed by Adam Barth.
938
939         The parsing algorithm would stop parsing at the first comma (being an
940         empty entry, of sorts) and bail out, effectively ignoring the whole
941         header.
942
943         Test: http/tests/xmlhttprequest/access-control-allow-lists-starting-with-comma.html
944
945         * loader/CrossOriginPreflightResultCache.cpp:
946         (WebCore::parseAccessControlAllowList):
947
948 2012-06-10  Darin Adler  <darin@apple.com>
949
950         Some additional tweaks to keep TreeShared code simple/clean
951         https://bugs.webkit.org/show_bug.cgi?id=88738
952
953         Reviewed by Adam Barth.
954
955         * platform/TreeShared.h: Make constructor and destructor both protected.
956         It's slightly dangerous to have a public non-virtual destructor, and there
957         is no reason it needs to be public.
958         (WebCore::TreeShared::~TreeShared): Make debug-only destructor non-virtual;
959         we were getting no value from it being virtual. Now that it's non-virtual,
960         there is no need to use an #if on it since it's an empty inline destructor
961         in non-debug builds.
962
963 2012-06-06  Jer Noble  <jer.noble@apple.com>
964
965         REGRESSION: Setting invalid media "src" does not cause "error" event
966         https://bugs.webkit.org/show_bug.cgi?id=88423
967
968         Reviewed by Eric Carlson.
969
970         Test: http/tests/media/video-src-invalid-error.html
971
972         Two problems here.  When the loadTimer is scheduled, the m_pendingLoadFlags
973         variable is set to specify what type of load is scheduled.  It is cleared
974         when the loadTimer fires. But, when prepareForLoad() stops the loadTimer,
975         it does not clear the m_pendingLoadFlags variable, so the next time
976         scheduleLoad() is called (when the src is changed to an invalid URL)
977         prepareForLoad() is not called again.
978
979         Second problem: Due to a bug in QTKit (<rdar://problem/11606415>), the
980         QTMovieLoadStateChangedNotification is never fired for an invalid http
981         URL if QTMovieOpenAsyncRequiredAttribute:YES is not passed when creating
982         the QTMovie.
983
984         Add a new utility method which both stops the m_loadTimer and clears the 
985         m_pendingLoadFlags, and use it in all the places where m_loadTimer was 
986         stopped explicitly:
987
988         * html/HTMLMediaElement.cpp:
989         (WebCore::HTMLMediaElement::prepareForLoad):
990         (WebCore::HTMLMediaElement::stopLoadTimer): Added
991         (WebCore::HTMLMediaElement::userCancelledLoad):
992         * html/HTMLMediaElement.h:
993
994         And pass QTMovieOpenAsyncRequiredAttribute:YES when creating the QTMovie:
995
996         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
997         (WebCore::MediaPlayerPrivateQTKit::commonMovieAttributes):
998
999 2012-06-06  Jer Noble  <jer.noble@apple.com>
1000
1001         Add logging functions to MediaPlayerPrivateQTKit.
1002         https://bugs.webkit.org/show_bug.cgi?id=88425
1003
1004         Reviewed by Eric Carlson.
1005
1006         No new tests; adds logging functions to aide debugging.
1007
1008         MediaPlayerPrivateQTKit should emit the same kind of logging messages as 
1009         other MediaPlayerPrivate engines to aide in debugging.
1010
1011         Distinguish between loadedRangesChanged() and loadStateChanged() for logging
1012         purposes:
1013         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
1014         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1015         (WebCore::MediaPlayerPrivateQTKit::loadedRangesChanged):
1016         (-[WebCoreMovieObserver loadedRangesChanged:]):
1017
1018         Add LOG messages for each of the following functions:
1019         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1020         (WebCore::MediaPlayerPrivateQTKit::~MediaPlayerPrivateQTKit):
1021         (WebCore::MediaPlayerPrivateQTKit::createQTMovie):
1022         (WebCore::MediaPlayerPrivateQTKit::createQTMovieView):
1023         (WebCore::MediaPlayerPrivateQTKit::detachQTMovieView):
1024         (WebCore::MediaPlayerPrivateQTKit::createQTVideoRenderer):
1025         (WebCore::MediaPlayerPrivateQTKit::destroyQTVideoRenderer):
1026         (WebCore::MediaPlayerPrivateQTKit::createQTMovieLayer):
1027         (WebCore::MediaPlayerPrivateQTKit::destroyQTMovieLayer):
1028         (WebCore::MediaPlayerPrivateQTKit::setUpVideoRendering):
1029         (WebCore::MediaPlayerPrivateQTKit::tearDownVideoRendering):
1030         (WebCore::MediaPlayerPrivateQTKit::load):
1031         (WebCore::MediaPlayerPrivateQTKit::prepareToPlay):
1032         (WebCore::MediaPlayerPrivateQTKit::play):
1033         (WebCore::MediaPlayerPrivateQTKit::pause):
1034         (WebCore::MediaPlayerPrivateQTKit::seek):
1035         (WebCore::MediaPlayerPrivateQTKit::cancelSeek):
1036         (WebCore::MediaPlayerPrivateQTKit::setVolume):
1037         (WebCore::MediaPlayerPrivateQTKit::setRate):
1038         (WebCore::MediaPlayerPrivateQTKit::setPreservesPitch):
1039         (WebCore::MediaPlayerPrivateQTKit::cancelLoad):
1040         (WebCore::MediaPlayerPrivateQTKit::prepareForRendering):
1041         (WebCore::MediaPlayerPrivateQTKit::updateStates):
1042         (WebCore::MediaPlayerPrivateQTKit::loadStateChanged):
1043         (WebCore::MediaPlayerPrivateQTKit::rateChanged):
1044         (WebCore::MediaPlayerPrivateQTKit::sizeChanged):
1045         (WebCore::MediaPlayerPrivateQTKit::timeChanged):
1046         (WebCore::MediaPlayerPrivateQTKit::didEnd):
1047         (WebCore::MediaPlayerPrivateQTKit::clearMediaCache):
1048         (WebCore::MediaPlayerPrivateQTKit::clearMediaCacheForSite):
1049         (WebCore::MediaPlayerPrivateQTKit::disableUnsupportedTracks):
1050
1051 2012-06-07  Jer Noble  <jer.noble@apple.com>
1052
1053         WebCore should use a single definition of an invalid media time.
1054         https://bugs.webkit.org/show_bug.cgi?id=88572
1055
1056         Reviewed by Eric Carlson.
1057
1058         No new tests; no change in functionality, so covered by existing tests.
1059
1060         Add a new, universal definition for an invalid media time:
1061         * platform/graphics/MediaPlayer.h:
1062         (WebCore::MediaPlayer::invalidTime):
1063
1064         Use this new definition instead of the hodge podge of (identical) local
1065         definitions for an invalid media time:
1066         * html/HTMLMediaElement.cpp:
1067         (WebCore::HTMLMediaElement::HTMLMediaElement):
1068         (WebCore::HTMLMediaElement::invalidateCachedTime):
1069         (WebCore::HTMLMediaElement::currentTime):
1070         (WebCore::HTMLMediaElement::initialTime):
1071         (WebCore::HTMLMediaElement::playbackProgressTimerFired):
1072         (WebCore::HTMLMediaElement::prepareMediaFragmentURI):
1073         (WebCore::HTMLMediaElement::applyMediaFragmentURI):
1074         * html/MediaFragmentURIParser.cpp:
1075         (WebCore::MediaFragmentURIParser::invalidTimeValue):
1076         (WebCore::MediaFragmentURIParser::MediaFragmentURIParser):
1077         (WebCore::MediaFragmentURIParser::startTime):
1078         (WebCore::MediaFragmentURIParser::endTime):
1079         (WebCore::MediaFragmentURIParser::parseTimeFragment):
1080         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
1081         (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
1082         (WebCore::MediaPlayerPrivateAVFoundation::duration):
1083         (WebCore::MediaPlayerPrivateAVFoundation::seeking):
1084         (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted):
1085         (WebCore::MediaPlayerPrivateAVFoundation::invalidateCachedDuration):
1086         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
1087         (MediaPlayerPrivateAVFoundation):
1088         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1089         (WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration):
1090         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1091         (WebCore::MediaPlayerPrivateQTKit::duration):
1092         (WebCore::MediaPlayerPrivateQTKit::updateStates):
1093         (WebCore::MediaPlayerPrivateQTKit::timeChanged):
1094
1095 2012-06-10  Darin Adler  <darin@apple.com>
1096
1097         Remove unneeded callRemovedLastRef function from TreeShared refactoring
1098         https://bugs.webkit.org/show_bug.cgi?id=88653
1099
1100         Reviewed by Sam Weinig.
1101
1102         * WebCore.exp.in: Updated to remove callRemovedLastRef and add removedLastRef.
1103
1104         * dom/ContainerNode.cpp: Removed callRemovedLastRef, which is no longer
1105         needed and also had a bad cast in it.
1106
1107         * dom/Document.h: Made removedLastRef private and non-virtual and made Node
1108         a friend so it can call the private function.
1109
1110         * dom/Node.cpp:
1111         (WebCore::Node::removedLastRef): Moved here. This should not be an inline
1112         function. Added comments explaining why it should not be inlined. Also added
1113         explicit code to call to Document::removedLastRef, and added a comment why
1114         that's the right thing to do here.
1115         * dom/Node.h: Inherit from TreeShared<Node, ContainerNode>. Made the
1116         removedLastRef function non-virtual and removed it from the header file.
1117         Updated TreeShared using statements. Made the TreeShared template class a
1118         friend so it can call the private removedLastRef.
1119
1120         * html/HTMLFormControlElement.h: Updated TreeShared using statements to specify
1121         Node instead, which accomplishes the same thing.
1122         * html/HTMLObjectElement.h: Ditto.
1123
1124         * platform/TreeShared.h: Made TreeShared take two template arguments for the
1125         node type and the parent node type. Removed the callRemovedLastRef functions and
1126         the extra forward declarations it required. Removed the private unused
1127         removedLastRef function; not sure why it was left in here at all.
1128         (WebCore::TreeShared::deref): Call removedLastRef instead of callRemovedLastRef.
1129         (WebCore::TreeShared::setParent): Use ParentNodeType.
1130         (WebCore::TreeShared::parent): Ditto.
1131         (WebCore::adopted): Updated to have both template arguments.
1132
1133         * svg/SVGElementInstance.cpp:
1134         (WebCore::SVGElementInstance::removedLastRef): Replaced callRemovedLastRef with
1135         this. Moved the body out of the header and added a comment explaining why the
1136         function should not be inlined.
1137         * svg/SVGElementInstance.h: Made removedLastRef non-virtual, non-inline, and
1138         private. Made TreeShared a friend so it can call the private removedLastRef.
1139         Updated TreeShared using statements.
1140
1141 2012-06-10  Darin Adler  <darin@apple.com>
1142
1143         * WebCore.exp.in: Re-sorted and alphabetized the file.
1144
1145 2012-06-10  Balazs Kelemen  <kbalazs@webkit.org>
1146
1147         [Qt][Win] Fix building Source/WebCore/plugins/win/PluginViewWin.cpp
1148         https://bugs.webkit.org/show_bug.cgi?id=88308
1149
1150         Reviewed by Simon Hausmann.
1151
1152         No new tests, just a build fix.
1153
1154         Use ownerWindow() from page client. It has been
1155         introduced for x11 plugins to solve exactly the
1156         same problem.
1157
1158         * plugins/win/PluginViewWin.cpp:
1159         (windowHandleForPageClient):
1160
1161 2012-06-10  Balazs Kelemen  <kbalazs@webkit.org>
1162
1163         [Qt][Win] Fix building ImageQt.cpp
1164         https://bugs.webkit.org/show_bug.cgi?id=88306
1165
1166         Reviewed by Simon Hausmann.
1167
1168         No new tests, this is just a build fix.
1169
1170         * platform/graphics/qt/ImageQt.cpp:
1171         (WebCore):
1172         (WebCore::BitmapImage::create):
1173         Adapt to the "API" changes in Qt.
1174
1175 2012-06-09  Gregg Tavares  <gman@google.com>
1176
1177         Make WebGL mark draws for compositing even if the draw count is zero
1178         https://bugs.webkit.org/show_bug.cgi?id=88718
1179
1180         Reviewed by Kenneth Russell.
1181
1182         No new tests as no new functionality.
1183
1184         * html/canvas/WebGLRenderingContext.cpp:
1185         (WebCore):
1186         (WebCore::WebGLRenderingContext::drawArrays):
1187         (WebCore::WebGLRenderingContext::drawElements):
1188
1189 2012-06-09  Dominic Cooney  <dominicc@chromium.org>
1190
1191         [Chromium] Remove JavaScriptCore dependencies from gyp
1192         https://bugs.webkit.org/show_bug.cgi?id=88510
1193
1194         Reviewed by Adam Barth.
1195
1196         Chromium doesn't support JSC any more and there doesn't seem to be
1197         a strong interest in using GYP as the common build system in other
1198         ports.
1199
1200         No new functionality => No new tests.
1201
1202         * gyp/WebCore.gyp: Removed.
1203         * gyp/copy-forwarding-and-icu-headers.sh: Removed.
1204         * gyp/copy-inspector-resources.sh: Removed.
1205         * gyp/generate-derived-sources.sh: Removed.
1206         * gyp/generate-webcore-export-file-generator.sh: Removed.
1207         * gyp/gtk.gyp: Removed.
1208         * gyp/run-if-exists.sh: Removed.
1209         * gyp/streamline-inspector-source.sh: Removed.
1210         * gyp/update-info-plist.sh: Removed.
1211
1212 2012-06-07  Darin Adler  <darin@apple.com>
1213
1214         Refactor and improve code style in TextResourceDecoder to prepare for buffering improvement
1215         https://bugs.webkit.org/show_bug.cgi?id=88566
1216
1217         Reviewed by Alexey Proskuryakov.
1218
1219         * loader/TextResourceDecoder.cpp:
1220         (WebCore::bytesEqual): Added helper function to make comparing against sequences of bytes
1221         easier to read at the call site.
1222         (WebCore::KanjiCode::judge): Changed to use bytesEqual in a few places, merged multiple if
1223         statements, got rid of else after goto.
1224         (WebCore::TextResourceDecoder::checkForCSSCharset): Changed to use early return instead of
1225         nesting the whole function. Changed to use bytesEqual.
1226         (WebCore::skipComment): Changed to use early return for more cases. Changed to use bytesEqual.
1227         (WebCore::TextResourceDecoder::checkForHeadCharset): Changed to use bytesEqual.
1228         (WebCore::TextResourceDecoder::decode): Changed to use emptyString() instead of "", since
1229         the former is more efficient.
1230
1231 2012-06-09  Sheriff Bot  <webkit.review.bot@gmail.com>
1232
1233         Unreviewed, rolling out r118618 and r119353.
1234         http://trac.webkit.org/changeset/118618
1235         http://trac.webkit.org/changeset/119353
1236         https://bugs.webkit.org/show_bug.cgi?id=88720
1237
1238         Caused at least 30 different crashes on ClusterFuzz (Requested
1239         by inferno-sec on #webkit).
1240
1241         * loader/SubresourceLoader.cpp:
1242         (WebCore::SubresourceLoader::checkForHTTPStatusCodeError):
1243         * loader/cache/CachedCSSStyleSheet.cpp:
1244         (WebCore::CachedCSSStyleSheet::allClientsRemoved):
1245         * loader/cache/CachedFont.cpp:
1246         (WebCore::CachedFont::allClientsRemoved):
1247         * loader/cache/CachedFont.h:
1248         (WebCore::CachedFontClient::resourceClientType):
1249         * loader/cache/CachedImage.cpp:
1250         (WebCore::CachedImage::removeClientForRenderer):
1251         (WebCore):
1252         (WebCore::CachedImage::allClientsRemoved):
1253         (WebCore::CachedImage::lookupOrCreateImageForRenderer):
1254         * loader/cache/CachedImage.h:
1255         (CachedImage):
1256         (WebCore::CachedImageClient::resourceClientType):
1257         * loader/cache/CachedRawResource.cpp:
1258         (WebCore::CachedRawResource::allClientsRemoved):
1259         (WebCore):
1260         * loader/cache/CachedRawResource.h:
1261         (CachedRawResource):
1262         (WebCore::CachedRawResourceClient::resourceClientType):
1263         * loader/cache/CachedResource.cpp:
1264         (WebCore::CachedResource::removeClient):
1265         * loader/cache/CachedResource.h:
1266         (WebCore::CachedResource::allClientsRemoved):
1267         * loader/cache/CachedResourceClient.h:
1268         (WebCore::CachedResourceClient::resourceClientType):
1269         * loader/cache/CachedSVGDocument.h:
1270         (WebCore::CachedSVGDocumentClient::resourceClientType):
1271         * loader/cache/CachedScript.cpp:
1272         (WebCore::CachedScript::allClientsRemoved):
1273         * loader/cache/CachedStyleSheetClient.h:
1274         (WebCore::CachedStyleSheetClient::resourceClientType):
1275         * rendering/style/StyleCachedImage.cpp:
1276         (WebCore::StyleCachedImage::removeClient):
1277         * rendering/style/StyleCachedImageSet.cpp:
1278         (WebCore::StyleCachedImageSet::removeClient):
1279         * svg/graphics/SVGImageCache.cpp:
1280         (WebCore::SVGImageCache::~SVGImageCache):
1281         (WebCore::SVGImageCache::removeRendererFromCache):
1282         (WebCore::SVGImageCache::setRequestedSizeAndScales):
1283         (WebCore::SVGImageCache::requestedSizeAndScales):
1284         (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
1285         * svg/graphics/SVGImageCache.h:
1286         (WebCore):
1287         (SVGImageCache):
1288
1289 2012-06-09  Florin Malita  <fmalita@chromium.org>
1290
1291         Fixed-position foreignObject descendants should be relative to the foreignObject viewport
1292         https://bugs.webkit.org/show_bug.cgi?id=88547
1293
1294         Reviewed by Abhishek Arya.
1295
1296         Tests: svg/foreignObject/fO-fixed-position-crash.html
1297                svg/foreignObject/fixed-position-expected.svg
1298                svg/foreignObject/fixed-position.svg
1299
1300         Fixed position elements are currently registered with the top level
1301         RenderView even when embedded within an SVG foreignOject. This patch
1302         changes containingBlock() & container() to return the containing
1303         foreignObject renderer instead.
1304
1305         The new foreignObject fixed position behavior matches that of current
1306         FireFox and Opera versions and is consistent with the spec:
1307         http://www.w3.org/TR/CSS2/visuren.html#fixed-positioning
1308         http://www.w3.org/TR/SVG/coords.html#EstablishingANewViewport
1309
1310         * rendering/RenderObject.cpp:
1311         (WebCore::RenderObject::containingBlock):
1312         (WebCore::RenderObject::container):
1313
1314 2012-06-09  Adam Barth  <abarth@webkit.org>
1315
1316         Can't use eval in iframes sanbdoxed via CSP header
1317         https://bugs.webkit.org/show_bug.cgi?id=88450
1318
1319         Reviewed by Mihai Parparita.
1320
1321         The initial empty document in a frame inherits the security context of
1322         its parent (including the CSP policy).  When we load the real document,
1323         in some cases we'll do a "secure transition" to the new document.  That
1324         means that we leave the global object in place in case the parent
1325         document has created any properties that it expects will be visible to
1326         the new document.
1327
1328         If the parent document has a CSP policy that blocks eval, the "no eval"
1329         bit will be set on the global object of the initial document.  When we
1330         perform a "secure transition" to the new document, we'll keep the bit,
1331         which is wrong.  In this patch, we reset the bit by always enabling
1332         eval when clearing the context, regardless of whether we're performing
1333         a "secure transition".
1334
1335         Test: http/tests/security/contentSecurityPolicy/iframe-inside-csp.html
1336
1337         * bindings/js/ScriptController.cpp:
1338         (WebCore::ScriptController::enableEval):
1339         (WebCore):
1340         * bindings/js/ScriptController.h:
1341         (ScriptController):
1342         * bindings/v8/ScriptController.cpp:
1343         (WebCore::ScriptController::enableEval):
1344         (WebCore):
1345         (WebCore::ScriptController::disableEval):
1346         * bindings/v8/ScriptController.h:
1347         (ScriptController):
1348         * loader/FrameLoader.cpp:
1349         (WebCore::FrameLoader::clear):
1350
1351 2012-06-09  Pablo Flouret  <pablof@motorola.com>
1352
1353         The value in Access-Control-Allow-Origin is not being matched correctly for CORS-enabled requests
1354         https://bugs.webkit.org/show_bug.cgi?id=88139
1355
1356         Reviewed by Adam Barth.
1357
1358         Compare a request's origin with the value given in any
1359         Access-Control-Allow-Origin headers in an exact, case-sensitive manner,
1360         instead of using SecurityOrigin::isSameSchemeHostPort(). Per step 3 of
1361         the resource sharing check algorithm in
1362         http://dvcs.w3.org/hg/cors/raw-file/tip/Overview.html#resource-sharing-check
1363
1364         Test: http/tests/xmlhttprequest/origin-exact-matching.html
1365
1366         * loader/CrossOriginAccessControl.cpp:
1367         (WebCore::passesAccessControlCheck):
1368
1369 2012-06-09  Huang Dongsung  <luxtella@company100.net>
1370
1371         [Qt][Texmap] All layers with backingStore are opaque when using TextureMapperGL.
1372         https://bugs.webkit.org/show_bug.cgi?id=88703
1373
1374         The bug originated from StillImage that is not override
1375         Image::currentFrameHasAlpha(), so it always returns false.
1376         StillImage is used by ImageBuffer, and if Texmap draws contents on ImageBuffer,
1377         TextureMapperBackingStore thinks contents does not have alpha.
1378
1379         Covered by existing compositing tests.
1380
1381         Reviewed by Noam Rosenthal.
1382
1383         * platform/graphics/qt/StillImageQt.cpp:
1384         (WebCore::StillImage::currentFrameHasAlpha):
1385         (WebCore):
1386         * platform/graphics/qt/StillImageQt.h:
1387         (StillImage):
1388
1389 2012-06-09  Victor Carbune  <victor@rosedu.org>
1390
1391         Basic support for timestamps within a TextTrackCue
1392         https://bugs.webkit.org/show_bug.cgi?id=88187
1393
1394         Implemented support for timestamps within a TextTrackCue.
1395         This enables rendering functionality for Karaoke and Paint-on captions.
1396
1397         Reviewed by Eric Carlson.
1398
1399         Test: media/track/track-cue-rendering-inner-timestamps.html
1400
1401         * css/mediaControls.css: Remove the background shadow pseudo-id and
1402         added two others, which can be further used for styling past / future
1403         contents of the cue.
1404         (video::-webkit-media-text-track-past-nodes): Used to style elements
1405         within the cue that are before the current movie time.
1406         (video::-webkit-media-text-track-future-nodes): Used to style elements
1407         within the cue that are after the current movie time.
1408         * html/HTMLMediaElement.cpp:
1409         (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Regardless of whether
1410         the active set changed or not, the current cues need to be informed of the current
1411         movie time.
1412         * html/track/TextTrackCue.cpp:
1413         (WebCore::TextTrackCue::TextTrackCue): Initiliazed past and future containers.
1414         (WebCore::TextTrackCue::getCueAsHTML): Checked whether the current cue text has
1415         inner timestamps or not, in order to render faster if no timestamps are there.
1416         (WebCore::TextTrackCue::updateDisplayTree): Added method that keeps the past and future
1417         containers up to date, given a current movie time.
1418         (WebCore):
1419         (WebCore::TextTrackCue::getDisplayTree): Replaced the cue background container with the
1420         past cues container. The *internal* display tree of the cue now has two containers,
1421         representing past and future elements.
1422         * html/track/TextTrackCue.h: Added several variables to support the new functionality.
1423         (TextTrackCue):
1424         * html/track/WebVTTParser.cpp:
1425         (WebCore::WebVTTParser::constructTreeFromToken): Updated representation for this patch.
1426         * html/track/WebVTTParser.h:
1427         (WebVTTParser): Made public the collectTimeStamp method, as this is required for
1428         parsing timestamps within a cue as well.
1429
1430 2012-06-09  Vsevolod Vlasov  <vsevik@chromium.org>
1431
1432         Web Inspector: Open links in Sources panel by default and fallback to Resources and Network panel otherwise.
1433         https://bugs.webkit.org/show_bug.cgi?id=88710
1434
1435         Reviewed by Pavel Feldman.
1436
1437         * inspector/front-end/inspector.js:
1438         (WebInspector.documentClick.followLink):
1439         (WebInspector.documentClick):
1440         (WebInspector._showAnchorLocation):
1441
1442 2012-06-09  Vsevolod Vlasov  <vsevik@chromium.org>
1443
1444         Web Inspector: Only expand root domain in Sources/Scripts panel
1445         https://bugs.webkit.org/show_bug.cgi?id=88135
1446
1447         Reviewed by Pavel Feldman.
1448
1449         * inspector/front-end/NavigatorView.js:
1450         (WebInspector.NavigatorTreeOutline._treeElementsCompare.compare.typeWeight):
1451         (WebInspector.NavigatorTreeOutline._treeElementsCompare):
1452         (WebInspector.NavigatorFolderTreeElement.prototype.onattach):
1453
1454 2012-06-09  Vsevolod Vlasov  <vsevik@chromium.org>
1455
1456         Web Inspector: Pretty print should respect text editor indent setting.
1457         https://bugs.webkit.org/show_bug.cgi?id=88713
1458
1459         Reviewed by Pavel Feldman.
1460
1461         * inspector/front-end/ScriptFormatter.js:
1462
1463 2012-06-09  Dan Bernstein  <mitz@apple.com>
1464
1465         Fixed the build after r119895.
1466
1467         * WebCore.xcodeproj/project.pbxproj:
1468
1469 2012-06-09  Andrey Kosyakov  <caseq@chromium.org>
1470
1471         Web Inspector: [refactoring] rename TimelineVerticalOverview into TimelineFrameOverview
1472         https://bugs.webkit.org/show_bug.cgi?id=88708
1473
1474         Reviewed by Vsevolod Vlasov.
1475
1476         - rename TimelineVerticalOverview to TimelineFrameOverview;
1477         - rename associated fields, parameters, CSS classes etc;
1478         - rename overview mode designators to match the UI;
1479         - drop unused CSS rules for old-style mode selector;
1480
1481         * inspector/front-end/TimelineOverviewPane.js:
1482         (WebInspector.TimelineOverviewPane):
1483         (WebInspector.TimelineOverviewPane.prototype._showEvents):
1484         (WebInspector.TimelineOverviewPane.prototype._showFrames):
1485         (WebInspector.TimelineOverviewPane.prototype._showMemoryGraph):
1486         (WebInspector.TimelineOverviewPane.prototype._setFrameMode):
1487         (WebInspector.TimelineOverviewPane.prototype._onCategoryVisibilityChanged):
1488         (WebInspector.TimelineOverviewPane.prototype._update):
1489         (WebInspector.TimelineOverviewPane.prototype.addFrame):
1490         (WebInspector.TimelineOverviewPane.prototype.zoomToFrame):
1491         (WebInspector.TimelineOverviewPane.prototype._reset):
1492         (WebInspector.TimelineOverviewPane.prototype._onWindowChanged):
1493         (WebInspector.TimelineFrameOverview):
1494         * inspector/front-end/TimelinePanel.js:
1495         (WebInspector.TimelinePanel):
1496         (WebInspector.TimelinePanel.prototype._shouldShowFrames):
1497         (WebInspector.TimelinePanel.prototype.revealRecordAt):
1498         * inspector/front-end/timelinePanel.css:
1499         (.timeline-frame-overview #timeline-overview-grid):
1500         (.timeline-frame-overview .timeline-overview-window):
1501         (.timeline-frame-overview .timeline-overview-dividers-background):
1502         (.timeline-frame-overview #timeline-overview-memory):
1503         (.timeline-frame-overview-status-bar-item.toggled-on .glyph):
1504         (.timeline-frame-overview-bars):
1505         (.timeline.timeline-frame-overview .resources-divider):
1506         (.sidebar-tree-item .timeline-frame-overview-status-bar-item):
1507
1508 2012-06-08  Vsevolod Vlasov  <vsevik@chromium.org>
1509
1510         IndexedDB: Inspector should handle null, string, and array keyPaths
1511         https://bugs.webkit.org/show_bug.cgi?id=84303
1512
1513         Reviewed by Pavel Feldman.
1514
1515         Supported different key path types and updated tests to cover each case.
1516         Key path strings are now highlighted in the DataGrid column headers.
1517
1518         * inspector/Inspector.json:
1519         * inspector/InspectorIndexedDBAgent.cpp:
1520         (WebCore):
1521         * inspector/front-end/IndexedDBModel.js:
1522         (WebInspector.IndexedDBModel.idbKeyPathFromKeyPath):
1523         (WebInspector.IndexedDBModel.keyPathStringFromIDBKeyPath):
1524         (WebInspector.IndexedDBModel.prototype._loadDatabase.callback):
1525         (WebInspector.IndexedDBModel.prototype._loadDatabase):
1526         (WebInspector.IndexedDBModel.ObjectStore.prototype.get keyPathString):
1527         (WebInspector.IndexedDBModel.Index.prototype.get keyPathString):
1528         * inspector/front-end/IndexedDBViews.js:
1529         (WebInspector.IDBDataView.prototype._createDataGrid):
1530         (WebInspector.IDBDataView.prototype._keyColumnHeaderFragment):
1531         (WebInspector.IDBDataView.prototype._keyPathStringFragment):
1532         (WebInspector.IDBDataGridNode.prototype.createCell):
1533         * inspector/front-end/ResourcesPanel.js:
1534         (WebInspector.IDBObjectStoreTreeElement.prototype._updateTooltip):
1535         (WebInspector.IDBIndexTreeElement.prototype._updateTooltip):
1536
1537 2012-06-08  Vsevolod Vlasov  <vsevik@chromium.org>
1538
1539         Web Inspector: Increase size limits for resource content cached in InspectorResourceAgent.
1540         https://bugs.webkit.org/show_bug.cgi?id=88674
1541
1542         Reviewed by Pavel Feldman.
1543
1544         * inspector/NetworkResourcesData.cpp:
1545
1546 2012-05-25  Vsevolod Vlasov  <vsevik@chromium.org>
1547
1548         Web Inspector: Limit DebuggerAgent.Location use to DebuggerModel only, introduce WebInspector.RawLocation to be used elsewhere.
1549         https://bugs.webkit.org/show_bug.cgi?id=87270
1550
1551         Reviewed by Pavel Feldman.
1552
1553         Introduced WebInspector.RawLocation interface, a generic raw location independent from concrete domain (Styles, Debugger).
1554         Made WebInspector.DebuggerModel.Location implement it and switched all debugger related methods to it.
1555
1556         * inspector/front-end/BreakpointManager.js:
1557         (WebInspector.BreakpointManager.prototype._breakpointResolved):
1558         * inspector/front-end/CompilerScriptMapping.js:
1559         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
1560         * inspector/front-end/DebuggerModel.js:
1561         (WebInspector.DebuggerModel.Location):
1562         (WebInspector.DebuggerModel.prototype.continueToLocation):
1563         (WebInspector.DebuggerModel.prototype.setBreakpointByScriptLocation):
1564         (WebInspector.DebuggerModel.prototype.setBreakpoint.didSetBreakpoint):
1565         (WebInspector.DebuggerModel.prototype.setBreakpoint):
1566         (WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
1567         (WebInspector.DebuggerModel.prototype._breakpointResolved):
1568         (WebInspector.DebuggerModel.prototype.createRawLocation):
1569         (WebInspector.DebuggerModel.prototype.createRawLocationByURL):
1570         (WebInspector.DebuggerModel.prototype.setSelectedCallFrame):
1571         (WebInspector.DebuggerModel.prototype.createLiveLocation):
1572         (WebInspector.DebuggerModel.CallFrame.prototype.get location):
1573         (WebInspector.DebuggerModel.CallFrame.prototype.createLiveLocation):
1574         * inspector/front-end/DebuggerResourceBinding.js:
1575         (WebInspector.DebuggerResourceBinding.setScriptSource.didEditScriptSource):
1576         (WebInspector.DebuggerResourceBinding.setScriptSource):
1577         (WebInspector.DebuggerResourceBinding.prototype.setContent.get if):
1578         (WebInspector.DebuggerResourceBinding.prototype.setContent):
1579         (WebInspector.DebuggerResourceBinding.prototype._setContentWithInitialContent):
1580         * inspector/front-end/JavaScriptSource.js:
1581         (WebInspector.JavaScriptSource.prototype.uiLocationToRawLocation):
1582         * inspector/front-end/Linkifier.js:
1583         * inspector/front-end/ObjectPopoverHelper.js:
1584         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover.showObjectPopover.):
1585         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
1586         * inspector/front-end/PresentationConsoleMessageHelper.js:
1587         * inspector/front-end/RawSourceCode.js:
1588         * inspector/front-end/ResourceScriptMapping.js:
1589         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
1590         * inspector/front-end/Script.js:
1591         (WebInspector.Script.prototype.rawLocationToUILocation):
1592         * inspector/front-end/ScriptSnippetModel.js:
1593         (WebInspector.SnippetScriptMapping.prototype.rawLocationToUILocation):
1594         * inspector/front-end/SourceMapping.js:
1595         * inspector/front-end/UISourceCode.js:
1596         (WebInspector.RawLocation):
1597
1598 2012-06-09  Eugene Klyuchnikov  <eustas.bug@gmail.com>
1599
1600         Web Inspector: Add message loop instrumentation to public API and timeline agent
1601         https://bugs.webkit.org/show_bug.cgi?id=88639
1602
1603         Reviewed by Vsevolod Vlasov.
1604
1605         Message loop instrumentation will show when the render thread is busy.
1606         That way developer can discover if a render thread business causes low fps, or not.
1607
1608         * inspector/InspectorClient.h:
1609         (WebCore::InspectorClient::startMessageLoopMonitoring): Starts observer.
1610         (WebCore::InspectorClient::stopMessageLoopMonitoring): Stops observer.
1611         * inspector/InspectorController.cpp:
1612         (WebCore::InspectorController::InspectorController):
1613         Changed timeline agent constructor parameters.
1614         * inspector/InspectorInstrumentation.cpp:
1615         (WebCore::InspectorInstrumentation::willProcessTaskImpl):
1616         Forwards observer notification.
1617         (WebCore):
1618         (WebCore::InspectorInstrumentation::didProcessTaskImpl):
1619         Ditto.
1620         * inspector/InspectorInstrumentation.h:
1621         (InspectorInstrumentation):
1622         (WebCore::InspectorInstrumentation::willProcessTask):
1623         Ditto.
1624         (WebCore):
1625         (WebCore::InspectorInstrumentation::didProcessTask):
1626         Ditto.
1627         * inspector/InspectorTimelineAgent.cpp:
1628         (WebCore::InspectorTimelineAgent::start):
1629         Starts observer.
1630         (WebCore::InspectorTimelineAgent::stop):
1631         Stops observer.
1632         (WebCore::InspectorTimelineAgent::supportsFrameInstrumentation):
1633         Changed result origin.
1634         (WebCore::InspectorTimelineAgent::willProcessTask):
1635         Noop implementqation.
1636         (WebCore):
1637         (WebCore::InspectorTimelineAgent::didProcessTask):
1638         Noop implementqation.
1639         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
1640         Changed constructor parameters.
1641         * inspector/InspectorTimelineAgent.h:
1642         (WebCore::InspectorTimelineAgent::create):
1643         Ditto.
1644         (InspectorTimelineAgent):
1645         * inspector/WorkerInspectorController.cpp:
1646         (WebCore::WorkerInspectorController::WorkerInspectorController):
1647         Changed timeline agent constructor parameters.
1648
1649 2012-06-08  Andrey Kosyakov  <caseq@chromium.org>
1650
1651         Web Inspector: optimize timeline's frame mode overview appearance for 30fps
1652         https://bugs.webkit.org/show_bug.cgi?id=88556
1653
1654         Reviewed by Vsevolod Vlasov.
1655
1656         - adjust frame overview scale to 30fps == full height by default;
1657         - provide a fall-back auto-scale mode when median frame is longer than 1/30s;
1658         - add horizontal lines for 30 and 60fps;
1659         - drive-by fix: always use same order of categories in frame bars.
1660
1661         * inspector/front-end/TimelineOverviewPane.js:
1662         (WebInspector.TimelineVerticalOverview.prototype.update):
1663         (WebInspector.TimelineVerticalOverview.prototype._aggregateFrames):
1664         (WebInspector.TimelineVerticalOverview.prototype._renderBars):
1665         (WebInspector.TimelineVerticalOverview.prototype._drawFPSMarks):
1666         (WebInspector.TimelineVerticalOverview.prototype._renderBar):
1667
1668
1669 2012-06-09  Sukolsak Sakshuwong  <sukolsak@google.com>
1670
1671         Add UNDO_MANAGER flag
1672         https://bugs.webkit.org/show_bug.cgi?id=87908
1673
1674         Reviewed by Tony Chang.
1675
1676         Add undoManager property to document behind the UNDO_MANAGER flag and
1677         add placeholders for some methods of undoManager.
1678
1679         Test: editing/undomanager/document-has-undomanager.html
1680
1681         * CMakeLists.txt:
1682         * Configurations/FeatureDefines.xcconfig:
1683         * DerivedSources.cpp:
1684         * DerivedSources.make:
1685         * DerivedSources.pri:
1686         * GNUmakefile.am:
1687         * GNUmakefile.list.am:
1688         * WebCore.gypi:
1689         * WebCore.xcodeproj/project.pbxproj:
1690         * dom/Document.cpp:
1691         (WebCore::Document::Document):
1692         (WebCore):
1693         (WebCore::Document::undoManager):
1694         * dom/Document.h:
1695         (WebCore):
1696         (Document):
1697         * dom/Document.idl:
1698         * editing/UndoManager.cpp: Added.
1699         (WebCore):
1700         (WebCore::UndoManager::create):
1701         (WebCore::UndoManager::UndoManager):
1702         (WebCore::UndoManager::undo):
1703         (WebCore::UndoManager::redo):
1704         (WebCore::UndoManager::clearUndo):
1705         (WebCore::UndoManager::clearRedo):
1706         * editing/UndoManager.h: Added.
1707         (WebCore):
1708         (UndoManager):
1709         * editing/UndoManager.idl: Added.
1710
1711 2012-06-08  Levi Weintraub  <leviw@chromium.org>
1712
1713         RenderLayer::paintChildLayerIntoColumns doesn't properly pixel snap
1714         https://bugs.webkit.org/show_bug.cgi?id=88554
1715
1716         Reviewed by Darin Adler.
1717
1718         Column handling code in RenderLayer and RenderBlock was improperly clipping and translating
1719         using floats derived from FractionalLayoutUnits without pixel snapping. RenderLayer also
1720         improperly stored render tree offsets in ints instead of LayoutUnits. This corrects this
1721         issue.
1722
1723         Test: fast/sub-pixel/column-clipping.html
1724
1725         * rendering/RenderBlock.cpp:
1726         (WebCore::RenderBlock::paintColumnContents):
1727         * rendering/RenderLayer.cpp:
1728         (WebCore::RenderLayer::paintChildLayerIntoColumns):
1729
1730 2012-06-08  Rakesh KN  <rakesh.kn@motorola.com>
1731
1732         REGRESSION(r116487?): HTMLFormElement::elements['name'] is empty if the form is detached from the document tree
1733         https://bugs.webkit.org/show_bug.cgi?id=88632
1734
1735         Reviewed by Ryosuke Niwa.
1736
1737         Update root node of RadioNodeList when the form element is detached from dom tree.
1738
1739         Test: fast/forms/radionodelist-whose-form-element-detached-from-domtree.html
1740
1741         * dom/Node.cpp:
1742         (WebCore::Node::resetCachedRadioNodeListRootNode):
1743         New function to update the root node of RadioNodeLists to form element from document.
1744         * dom/Node.h: Ditto.
1745         * html/HTMLFormElement.cpp:
1746         (WebCore::HTMLFormElement::removedFrom):
1747         On detach, we update the root node of all RadioNodeLists of this form element.
1748         * html/RadioNodeList.cpp:
1749         (WebCore::RadioNodeList::setRootElement):
1750         Setter for updating root node.
1751         * html/RadioNodeList.h:
1752         (RadioNodeList): Ditto.
1753
1754 2012-06-08  David Reveman  <reveman@chromium.org>
1755
1756         [Chromium] Compositor doesn't support translucent root layers.
1757         https://bugs.webkit.org/show_bug.cgi?id=87821
1758
1759         Reviewed by James Robinson.
1760
1761         Forward the isTransparent WebView setting to WebLayerTreeView,
1762         CCLayerTreeHost and CCLayerTreeHostImpl as hasTransparentBackground.
1763         Use hasTransparentBackground setting to determine how to clear the
1764         root render pass and draw the background. Set opaque flag correctly
1765         on the NonCompositedContentHost's graphics layer to make sure
1766         sub-pixel rendering is not used with a transparent WebView.
1767
1768         Unit tests: CCLayerTreeHostImplTest.hasTransparentBackground
1769                     LayerRendererChromiumTest2.opaqueRenderPass
1770                     LayerRendererChromiumTest2.transparentRenderPass
1771
1772         * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
1773         (WebCore::BitmapCanvasLayerTextureUpdater::prepareToUpdate):
1774         * platform/graphics/chromium/LayerRendererChromium.cpp:
1775         (WebCore::LayerRendererChromium::clearRenderPass):
1776         (WebCore::LayerRendererChromium::drawRenderPass):
1777         (WebCore::LayerRendererChromium::drawBackgroundFilters):
1778         * platform/graphics/chromium/LayerRendererChromium.h:
1779         (LayerRendererChromium):
1780         * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp:
1781         (WebCore::SkPictureCanvasLayerTextureUpdater::prepareToUpdate):
1782         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1783         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
1784         (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
1785         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1786         (WebCore::CCLayerTreeHost::setHasTransparentBackground):
1787         (CCLayerTreeHost):
1788         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1789         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
1790         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
1791         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1792         (WebCore::CCLayerTreeHostImpl::hasTransparentBackground):
1793         (WebCore::CCLayerTreeHostImpl::setHasTransparentBackground):
1794         (CCLayerTreeHostImpl):
1795         * platform/graphics/chromium/cc/CCRenderPass.cpp:
1796         (WebCore::CCRenderPass::CCRenderPass):
1797         * platform/graphics/chromium/cc/CCRenderPass.h:
1798         (WebCore::CCRenderPass::hasTransparentBackground):
1799         (WebCore::CCRenderPass::setHasTransparentBackground):
1800         (CCRenderPass):
1801
1802 2012-06-08  Ian Vollick  <vollick@chromium.org>
1803
1804         [chromium] Single thread proxy's animation timer should short circuit if the layer renderer has not been initialized
1805         https://bugs.webkit.org/show_bug.cgi?id=88668
1806
1807         Reviewed by James Robinson.
1808
1809         Unit test: CCSingleThreadProxyTestDidAddAnimationBeforeInitializingLayerRenderer.runSingleThreaded
1810
1811         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1812         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
1813
1814 2012-06-08  Shezan Baig  <shezbaig.wk@gmail.com>
1815
1816         Caret is not rendered in empty inline contenteditable elements
1817         https://bugs.webkit.org/show_bug.cgi?id=85793
1818
1819         Reviewed by Ryosuke Niwa.
1820
1821         Override localCaretRect in RenderInline. The implementation was almost
1822         identical to localCaretRect in RenderBlock for empty block elements, so
1823         I refactored RenderBlock::localCaretRect and moved the logic to a new
1824         method 'localCaretRectForEmptyElement' in RenderBoxModelObject. The
1825         implementation of 'localCaretRect' in RenderBlock and RenderInline both
1826         use this helper method in RenderBoxModelObject.
1827
1828         Tests: editing/selection/caret-in-empty-inline-1.html
1829                editing/selection/caret-in-empty-inline-2.html
1830
1831         * rendering/RenderBlock.cpp:
1832         (WebCore::RenderBlock::localCaretRect):
1833         Modified to use RenderBoxModelObject::localCaretRectForEmptyElement.
1834         * rendering/RenderBoxModelObject.cpp:
1835         (WebCore::RenderBoxModelObject::localCaretRectForEmptyElement):
1836         (WebCore):
1837         * rendering/RenderBoxModelObject.h:
1838         (RenderBoxModelObject):
1839         Add localCaretRectForEmptyElement helper method.
1840         * rendering/RenderInline.cpp:
1841         (WebCore::RenderInline::localCaretRect):
1842         (WebCore):
1843         * rendering/RenderInline.h:
1844         (RenderInline):
1845         Override localCaretRect using localCaretRectForEmptyElement.
1846
1847 2012-06-08  Mike West  <mkwst@chromium.org>
1848
1849         Treat blob: and filesystem: URLs generated via secure origins as secure.
1850         https://bugs.webkit.org/show_bug.cgi?id=84054
1851
1852         Loading a blob: or filesystem: URL into an iframe or image that's
1853         contained on an HTTPS page shouldn't generate a mixed content warning.
1854         This change adds a SecurityOrigin::isSecure to check both against a
1855         URLs protocol, and the protocol of it's so-called "inner URL" if it's
1856         the type of URL that has such a thing. These sorts of URLs which are
1857         generated from secure sources will themselves be treated as secure.
1858
1859         Reviewed by Adam Barth.
1860
1861         Tests: http/tests/security/mixedContent/blob-url-in-iframe.html
1862                http/tests/security/mixedContent/filesystem-url-in-iframe.html
1863
1864         * loader/FrameLoader.cpp:
1865         (WebCore::FrameLoader::isMixedContent):
1866         * page/SecurityOrigin.cpp:
1867         (WebCore):
1868         (WebCore::SecurityOrigin::isSecure):
1869         * page/SecurityOrigin.h:
1870         (SecurityOrigin):
1871
1872 2012-06-08  Martin Robinson  <mrobinson@igalia.com>
1873
1874         [Cairo] [TextureMapperGL] Nvidia card does not update WebGL texture when interacting with canvas
1875         https://bugs.webkit.org/show_bug.cgi?id=87797
1876
1877         Reviewed by Philippe Normand.
1878
1879         No new tests. WebGL is already covered by WebGL tests and this
1880         bug is only present on certain hardware.
1881
1882         After resolving multisampling before drawing the texture via the
1883         TextureMapper, first rebind the multisampling framebuffer. This ensures
1884         that the texture isn't active in two framebuffers at a time.
1885
1886         * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
1887         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper): Rebind the multisampling
1888         framebuffer.
1889
1890 2012-06-08  Alexey Proskuryakov  <ap@apple.com>
1891
1892         <rdar://problem/11412294> Add appropriate iOS default font settings
1893
1894         Reviewed by Dan Bernstein.
1895
1896         * page/mac/SettingsMac.mm: (WebCore::Settings::initializeDefaultFontFamilies):
1897
1898 2012-06-08  Charles Wei  <charles.wei@torchmobile.com.cn>
1899
1900         IndexedDB: Transactions without any request scheduled should abort itself.
1901         https://bugs.webkit.org/show_bug.cgi?id=88052
1902
1903         Reviewed by Kentaro Hara.
1904
1905         This is needed for indexedDB to make it work for JSC. We need to clean up all the
1906         pending transactions(transactions without any request scheduled) when leaving Javascript context.
1907
1908         Manually tested using the existing test LayoutTests/storage/indexeddb/tutorial.html
1909
1910         * bindings/js/JSMainThreadExecState.cpp:
1911         (WebCore):
1912         (WebCore::JSMainThreadExecState::didLeaveScriptContext):
1913         * bindings/js/JSMainThreadExecState.h:
1914         (WebCore::JSMainThreadExecState::~JSMainThreadExecState):
1915         (JSMainThreadExecState):
1916
1917 2012-06-08  Ryosuke Niwa  <rniwa@webkit.org>
1918
1919         Crash in WebCore::CompositeEditCommand::breakOutOfEmptyListItem
1920         https://bugs.webkit.org/show_bug.cgi?id=88361
1921
1922         Reviewed by Levi Weintraub.
1923
1924         Use RefPtr instead of raw pointers across DOM mutations.
1925
1926         No tests are added for the lack of a reliable reduction.
1927
1928         * editing/CompositeEditCommand.cpp:
1929         (WebCore::CompositeEditCommand::breakOutOfEmptyListItem):
1930
1931 2012-06-08  Sheriff Bot  <webkit.review.bot@gmail.com>
1932
1933         Unreviewed, rolling out r119514.
1934         http://trac.webkit.org/changeset/119514
1935         https://bugs.webkit.org/show_bug.cgi?id=88664
1936
1937         Broke JSFiddle.net (Requested by arv on #webkit).
1938
1939         * bindings/v8/V8DOMWindowShell.cpp:
1940         (WebCore::V8DOMWindowShell::initContextIfNeeded):
1941         * bindings/v8/WorkerContextExecutionProxy.cpp:
1942         (WebCore::WorkerContextExecutionProxy::initIsolate):
1943
1944 2012-06-08  Ryosuke Niwa  <rniwa@webkit.org>
1945
1946         Crash in WebCore::InsertParagraphSeparatorCommand::doApply
1947         https://bugs.webkit.org/show_bug.cgi?id=88108
1948
1949         Reviewed by Levi Weintraub.
1950
1951         Use NodeVector instead of walking through siblings as we mutate the DOM.
1952
1953         No new tests are added since there is no reliable reduction.
1954
1955         * editing/BreakBlockquoteCommand.cpp:
1956         (WebCore::BreakBlockquoteCommand::doApply):
1957         * editing/CompositeEditCommand.cpp:
1958         (WebCore::CompositeEditCommand::moveRemainingSiblingsToNewParent):
1959         (WebCore):
1960         * editing/CompositeEditCommand.h:
1961         (CompositeEditCommand):
1962         * editing/InsertParagraphSeparatorCommand.cpp:
1963         (WebCore::InsertParagraphSeparatorCommand::doApply):
1964
1965 2012-06-08  David Grogan  <dgrogan@chromium.org>
1966
1967         IndexedDB: rename some instances of open to registerFrontendCallbacks
1968         https://bugs.webkit.org/show_bug.cgi?id=88611
1969
1970         We should still make the change in the WebKit API.
1971
1972         Reviewed by Tony Chang.
1973
1974         No new tests, just a method rename.
1975
1976         * Modules/indexeddb/IDBDatabase.cpp:
1977         (WebCore::IDBDatabase::registerFrontendCallbacks):
1978         * Modules/indexeddb/IDBDatabase.h:
1979         (IDBDatabase):
1980         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1981         (WebCore::IDBDatabaseBackendImpl::registerFrontendCallbacks):
1982         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
1983         (IDBDatabaseBackendImpl):
1984         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
1985         (IDBDatabaseBackendInterface):
1986         * Modules/indexeddb/IDBRequest.cpp:
1987         (WebCore::IDBRequest::onSuccess):
1988
1989 2012-06-08  Dana Jansens  <danakj@chromium.org>
1990
1991         [chromium] Skip willDraw() and didDraw() on fully occluded layers
1992         https://bugs.webkit.org/show_bug.cgi?id=88435
1993
1994         Reviewed by Adrienne Walker.
1995
1996         Current willDraw() is called on all layers with non-empty
1997         visibleLayerRect and non-empty scissorRect. This excludes
1998         layers outside the viewport, but does not exclude occluded
1999         layers. We add a check for occlusion to calculateRenderPasses
2000         in order to avoid willDraw() when it will be culled anyway.
2001
2002         We prevent didDraw() from being called for occluded layers, for
2003         which we did not call didDraw() by holding a vector of layers
2004         for which we did call willDraw(). This lets us avoid storing a
2005         flag on the layers, or computing occlusion again in
2006         didDrawAllLayers.
2007
2008         Unit test: CCLayerTreeHostImplTest.willDrawNotCalledOnOccludedLayer
2009
2010         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2011         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
2012         (WebCore::CCLayerTreeHostImpl::prepareToDraw):
2013         (WebCore::CCLayerTreeHostImpl::didDrawAllLayers):
2014         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2015         (FrameData):
2016         (CCLayerTreeHostImpl):
2017
2018 2012-06-08  Antonio Gomes  <agomes@rim.com>
2019
2020         EventHandler shouldn't schedule the fake mousemove event timer when scrolling on devices that don't have a mouse
2021         https://bugs.webkit.org/show_bug.cgi?id=88379
2022
2023         Reviewed by James Robinson.
2024
2025         Paraphrasing Andy Estes:
2026         "In <http://trac.webkit.org/changeset/119465> we stopped dispatching fake
2027         mousemove events when scrolling on devices that don't support mice. This event
2028         is dispatched on a timer, so one better would be to not even schedule the
2029         timer (rather than scheduling the timer but making it a no-op).
2030
2031         No new tests, as no functionality has changed. We basically do not
2032         start a timer under a given circumstance instead of fire it, it times out,
2033         and we make the callback no-op when under the given circumstance.
2034
2035         It is still possible though that we have the following scenario:
2036         - Setting::deviceSupportsMouse set as true;
2037         - we fire the timer;
2038         - before its callback gets executed (timed out) the setting gets toggled.
2039         So for sakeness, lets keep the check in both places.
2040
2041         * page/EventHandler.cpp:
2042         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
2043         (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
2044
2045 2012-06-08  James Robinson  <jamesr@chromium.org>
2046
2047         [chromium] Clean up some unnecessary LayerChromium.h includes
2048         https://bugs.webkit.org/show_bug.cgi?id=88599
2049
2050         Reviewed by Adam Barth.
2051
2052         Reworks test code slightly to use WebCore interfaces.
2053
2054         * testing/Internals.cpp:
2055         (WebCore::Internals::setBackgroundBlurOnNode):
2056
2057 2012-06-08  Erik Arvidsson  <arv@chromium.org>
2058
2059         [V8] Keep TextTrackList alive as long as its owner is alive
2060         https://bugs.webkit.org/show_bug.cgi?id=88541
2061
2062         Reviewed by Adam Barth.
2063
2064         Add a hidden reference from the owner to the text track list.
2065
2066         Covered by existing tests.
2067
2068         * Target.pri: Add V8TextTrackListCustom.cpp.
2069         * UseV8.cmake: Ditto.
2070         * WebCore.gypi: Ditto.
2071         * bindings/v8/V8HiddenPropertyName.h:
2072         (WebCore):
2073         * bindings/v8/custom/V8TextTrackListCustom.cpp: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
2074         (WebCore):
2075         (WebCore::toV8): When the wrapper is created add a reference to the owner of the TextTrackList to the TextTrackList.
2076         * html/track/TextTrackList.idl:
2077
2078 2012-06-08  Ian Vollick  <vollick@chromium.org>
2079
2080         [chromium] Accelerated animations should use WebTransformOperations
2081         https://bugs.webkit.org/show_bug.cgi?id=87686
2082
2083         Reviewed by James Robinson.
2084
2085         CCTransformKeyframe new owns a WebTransformOperations rather than a
2086         TransformOperations. LayerChromium's API has been changed so that
2087         LayerChromium::addAnimation should take only a CCActiveAnimation.
2088         GraphicsLayerChromium is new responsible for translating to
2089         WebTransformOperations and creating CCActiveAnimations. Tests that use
2090         the public API (that is, they call addAnimation with KeyframeValueList
2091         and Animation arguments) have been moved to GraphicsLayerChromiumTest.
2092
2093          Unit tests:
2094             GraphicsLayerChromiumTest.createOpacityAnimation
2095             GraphicsLayerChromiumTest.createTransformAnimation
2096             GraphicsLayerChromiumTest.createTransformAnimationWithBigRotation
2097             GraphicsLayerChromiumTest.createTransformAnimationWithSingularMatrix
2098             GraphicsLayerChromiumTest.createReversedAnimation
2099             GraphicsLayerChromiumTest.createAlternatingAnimation
2100             GraphicsLayerChromiumTest.createReversedAlternatingAnimation
2101
2102         * WebCore.gypi:
2103         * platform/graphics/chromium/AnimationTranslationUtil.cpp: Added.
2104         (WebCore):
2105         (WebCore::toWebTransformOperations):
2106         (WebCore::appendKeyframe):
2107         (WebCore::CCKeyframedTransformAnimationCurve):
2108         (WebCore::createActiveAnimation):
2109         * platform/graphics/chromium/AnimationTranslationUtil.h: Added.
2110         (WebCore):
2111         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2112         (WebCore::GraphicsLayerChromium::addAnimation):
2113         * platform/graphics/chromium/LayerChromium.cpp:
2114         (WebCore::LayerChromium::addAnimation):
2115         * platform/graphics/chromium/LayerChromium.h:
2116         (WebCore):
2117         (WebCore::LayerChromium::bounds):
2118         (LayerChromium):
2119         * platform/graphics/chromium/LinkHighlight.cpp:
2120         (WebCore::LinkHighlight::LinkHighlight):
2121         * platform/graphics/chromium/cc/CCAnimationCurve.h:
2122         (CCTransformAnimationCurve):
2123         * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.cpp:
2124         (WebCore::CCTransformKeyframe::create):
2125         (WebCore::CCTransformKeyframe::CCTransformKeyframe):
2126         (WebCore::CCTransformKeyframe::value):
2127         (WebCore::CCTransformKeyframe::clone):
2128         (WebCore::CCKeyframedTransformAnimationCurve::getValue):
2129         * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.h:
2130         (CCTransformKeyframe):
2131         (CCKeyframedTransformAnimationCurve):
2132         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
2133         (WebCore::CCLayerAnimationController::removeAnimation):
2134         (WebCore):
2135         (WebCore::CCLayerAnimationController::addAnimation):
2136         (WebCore::CCLayerAnimationController::getActiveAnimation):
2137         (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
2138         (WebCore::CCLayerAnimationController::replaceImplThreadAnimations):
2139         (WebCore::CCLayerAnimationController::tickAnimations):
2140         * platform/graphics/chromium/cc/CCLayerAnimationController.h:
2141         (CCLayerAnimationControllerClient):
2142         (CCLayerAnimationController):
2143         * platform/graphics/chromium/cc/CCLayerImpl.h:
2144         (WebCore::CCLayerImpl::bounds):
2145
2146 2012-06-08  No'am Rosenthal  <noam.rosenthal@nokia.com>
2147
2148         [Texmap] Accelerated versions of drop-shadow and blur filters
2149         https://bugs.webkit.org/show_bug.cgi?id=87695
2150
2151         Reviewed by Kenneth Rohde Christiansen.
2152
2153         Added shaders for blur and drop-shadow effects.
2154         The shaders use sampling of multiple coordinates and averaging them with normal-
2155         distribution to create a fast gaussian blur effect.
2156
2157         Covered by existing tests in css3/filters.
2158
2159         * platform/graphics/texmap/TextureMapperGL.cpp:
2160         (WebCore::TextureMapperGL::drawFiltered):
2161             Call the prepare function explicitly, with a size argument that's used to calculate
2162             some of the uniform values.
2163
2164         * platform/graphics/texmap/TextureMapperLayer.cpp:
2165         (WebCore::TextureMapperLayer::intermediateSurfaceRect):
2166             The outsets of the effect have to be considered when calculating the intermediate rect.
2167             Otherwise the resulting image is scaled instead of outsetted.
2168
2169         (WebCore::applyFilters):
2170         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
2171         (WebCore::StandardFilterProgram::StandardFilterProgram):
2172             Added the new shaders.
2173
2174         (WebCore::StandardFilterProgram::prepare):
2175         (WebCore::TextureMapperShaderManager::getShaderForFilter):
2176         * platform/graphics/texmap/TextureMapperShaderManager.h:
2177         (StandardFilterProgram):
2178
2179 2012-06-08  Dan Bernstein  <mitz@apple.com>
2180
2181         Tried to fix the build after r119844.
2182
2183         * bindings/js/GCController.cpp:
2184         (WebCore::GCController::discardAllCompiledCode):
2185
2186 2012-06-08  Mike West  <mkwst@chromium.org>
2187
2188         Add COMPILE_ASSERT to StyledElement to ensure it doesn't accidentally grow larger.
2189         https://bugs.webkit.org/show_bug.cgi?id=88627
2190
2191         Reviewed by Adam Barth.
2192
2193         No change in user-facing behavior.
2194
2195         * dom/StyledElement.cpp:
2196         (WebCore):
2197
2198 2012-06-08  Vsevolod Vlasov  <vsevik@chromium.org>
2199
2200         Web Inspector: Fix several compiler warnings and errors.
2201         https://bugs.webkit.org/show_bug.cgi?id=88660
2202
2203         Reviewed by Pavel Feldman.
2204
2205         Fixed several compiler warnings and errors.
2206         Removed isEmpty method from Object.prototype and made it static method on Object.
2207
2208         * inspector/InjectedScriptExterns.js:
2209         * inspector/front-end/FileSystemModel.js:
2210         (WebInspector.FileSystemModel.prototype._detachFrame):
2211         * inspector/front-end/HeapSnapshot.js:
2212         (WebInspector.HeapSnapshot.prototype._buildDominatorTree):
2213         * inspector/front-end/utilities.js:
2214         (Object.isEmpty):
2215
2216 2012-06-08  Max Feil  <mfeil@rim.com>
2217
2218         [BlackBerry] Fix assertion failure introduced by bug 87551
2219         https://bugs.webkit.org/show_bug.cgi?id=88659
2220
2221         Reviewed by Antonio Gomes.
2222
2223         The determineRenderSlider() convenience function added in bug
2224         87551 made an assumption that wasn't always true. This didn't
2225         cause a functional error but it caused an assertion failure,
2226         which indicates a problem with the code. PR164142.
2227
2228         No new tests because this case is already covered by ASSERT's.
2229
2230         * platform/blackberry/RenderThemeBlackBerry.cpp:
2231         (WebCore::determineRenderSlider):
2232
2233 2012-06-08  Ion Rosca  <rosca@adobe.com>
2234
2235         Some overlay scrollbar API calls in ScrollAnimatorMac can lead to an assertion in RenderBox::mapAbsoluteToLocalPoint
2236         https://bugs.webkit.org/show_bug.cgi?id=74111
2237
2238         Reviewed by Simon Fraser.
2239
2240         Added zero-delay timer for AppKit scroll notification that can be called during layout.
2241         Manual test: ManualTests/scrollbar-crash-on-hide-scrolled-area.html
2242         This assertion does not fire when running layout tests. It can be easly reproduced using a debug build by loading the manual test page.
2243
2244         * platform/mac/ScrollAnimatorMac.h:
2245         (ScrollAnimatorMac):
2246         * platform/mac/ScrollAnimatorMac.mm:
2247         (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
2248         (WebCore::ScrollAnimatorMac::notifyContentAreaScrolled):
2249         (WebCore::ScrollAnimatorMac::sendContentAreaScrolledSoon):
2250         (WebCore):
2251         (WebCore::ScrollAnimatorMac::sendContentAreaScrolledTimerFired):
2252
2253 2012-06-08  Renata Hodovan  <reni@webkit.org>
2254
2255         Adding few already supported features to the FeatureSet in DOMImplementation
2256         https://bugs.webkit.org/show_bug.cgi?id=86482
2257
2258         Text, Filter and View features are already implemented but they
2259         are not added to the SVG11 feature set. This is corrected in this patch.
2260
2261         Reviewed by Nikolas Zimmermann.
2262
2263         No new testcase is needed because we already have one what checks the svg features via
2264         DOMImplementation (svg/custom/svg-features.html).
2265
2266         * dom/DOMImplementation.cpp:
2267         (WebCore::isSVG11Feature):
2268
2269 2012-06-08  Stephen Chenney  <schenney@chromium.org>
2270
2271         WebCore::ImageBuffer.cpp has broken color table code
2272         https://bugs.webkit.org/show_bug.cgi?id=80321
2273
2274         Reviewed by Dirk Schulze.
2275
2276         The code in ImageBuffer::transformColorSpace had two problems that are
2277         fixed by this patch.
2278
2279         First, it was using member variables for data
2280         that is static constant. This is incredibly wasteful, as every
2281         ImageBuffer that is created (and we make a lot of them) gets its own
2282         copy of the LUT and the table is initialized again and again. The
2283         patch replaces this with a static local, with lazy evaluation, in
2284         the method that uses the tables.
2285
2286         Second, the code for filling the table was mapping 255 to 254, thus
2287         reducing the intensity and alpha of every image it pushed through a
2288         color transform.
2289
2290         Test: svg/filters/color-space-conversion.svg
2291
2292         * platform/graphics/ImageBuffer.cpp:
2293         (WebCore::ImageBuffer::transformColorSpace):
2294         * platform/graphics/ImageBuffer.h:
2295         (ImageBuffer):
2296
2297 2012-06-08  Alexei Filippov  <alexeif@chromium.org>
2298
2299         Web Inspector: Better labels positioning on the memory pie chart
2300         https://bugs.webkit.org/show_bug.cgi?id=88652
2301
2302         Reviewed by Vsevolod Vlasov.
2303
2304         * inspector/front-end/NativeMemorySnapshotView.js:
2305         (WebInspector.NativeMemoryPieChart.prototype._paint.paintPercentAndLabel):
2306         (WebInspector.NativeMemoryPieChart.prototype._paint):
2307
2308 2012-06-08  Bryan McQuade  <bmcquade@google.com>
2309
2310         Web Inspector: Annotate timeline records with a frame identifier
2311         https://bugs.webkit.org/show_bug.cgi?id=86406
2312
2313         Reviewed by Vsevolod Vlasov.
2314
2315         Tests: Updated existing layout tests.
2316
2317         * inspector/InspectorController.cpp:
2318         (WebCore::InspectorController::InspectorController):
2319         * inspector/InspectorInstrumentation.cpp:
2320         (WebCore::frameForScriptExecutionContext):
2321         (WebCore):
2322         (WebCore::InspectorInstrumentation::didScheduleResourceRequestImpl):
2323         (WebCore::InspectorInstrumentation::didInstallTimerImpl):
2324         (WebCore::InspectorInstrumentation::didRemoveTimerImpl):
2325         (WebCore::InspectorInstrumentation::willCallFunctionImpl):
2326         (WebCore::InspectorInstrumentation::willChangeXHRReadyStateImpl):
2327         (WebCore::InspectorInstrumentation::willDispatchEventImpl):
2328         (WebCore::InspectorInstrumentation::willDispatchEventOnWindowImpl):
2329         (WebCore::InspectorInstrumentation::willEvaluateScriptImpl):
2330         (WebCore::InspectorInstrumentation::willFireTimerImpl):
2331         (WebCore::InspectorInstrumentation::willLayoutImpl):
2332         (WebCore::InspectorInstrumentation::willLoadXHRImpl):
2333         (WebCore::InspectorInstrumentation::willPaintImpl):
2334         (WebCore::InspectorInstrumentation::willRecalculateStyleImpl):
2335         (WebCore::InspectorInstrumentation::willSendRequestImpl):
2336         (WebCore::InspectorInstrumentation::willReceiveResourceDataImpl):
2337         (WebCore::InspectorInstrumentation::willReceiveResourceResponseImpl):
2338         (WebCore::InspectorInstrumentation::didFinishLoadingImpl):
2339         (WebCore::InspectorInstrumentation::didFailLoadingImpl):
2340         (WebCore::InspectorInstrumentation::domContentLoadedEventFiredImpl):
2341         (WebCore::InspectorInstrumentation::loadEventFiredImpl):
2342         (WebCore::InspectorInstrumentation::willWriteHTMLImpl):
2343         (WebCore::InspectorInstrumentation::didRequestAnimationFrameImpl):
2344         (WebCore::InspectorInstrumentation::didCancelAnimationFrameImpl):
2345         (WebCore::InspectorInstrumentation::willFireAnimationFrameImpl):
2346         * inspector/InspectorInstrumentation.h:
2347         (InspectorInstrumentation):
2348         (WebCore::InspectorInstrumentation::didScheduleResourceRequest):
2349         (WebCore::InspectorInstrumentation::didInstallTimer):
2350         (WebCore::InspectorInstrumentation::didRemoveTimer):
2351         (WebCore::InspectorInstrumentation::willCallFunction):
2352         (WebCore::InspectorInstrumentation::willChangeXHRReadyState):
2353         (WebCore::InspectorInstrumentation::willDispatchEvent):
2354         (WebCore::InspectorInstrumentation::willEvaluateScript):
2355         (WebCore::InspectorInstrumentation::willFireTimer):
2356         (WebCore::InspectorInstrumentation::willLayout):
2357         (WebCore::InspectorInstrumentation::willLoadXHR):
2358         (WebCore::InspectorInstrumentation::willPaint):
2359         (WebCore::InspectorInstrumentation::willRecalculateStyle):
2360         (WebCore::InspectorInstrumentation::willReceiveResourceData):
2361         (WebCore::InspectorInstrumentation::willReceiveResourceResponse):
2362         (WebCore::InspectorInstrumentation::willWriteHTML):
2363         (WebCore::InspectorInstrumentation::didRequestAnimationFrame):
2364         (WebCore::InspectorInstrumentation::didCancelAnimationFrame):
2365         (WebCore::InspectorInstrumentation::willFireAnimationFrame):
2366         * inspector/InspectorTimelineAgent.cpp:
2367         (WebCore::InspectorTimelineAgent::pushGCEventRecords):
2368         (WebCore::InspectorTimelineAgent::didBeginFrame):
2369         (WebCore::InspectorTimelineAgent::willCallFunction):
2370         (WebCore::InspectorTimelineAgent::willDispatchEvent):
2371         (WebCore::InspectorTimelineAgent::willLayout):
2372         (WebCore::InspectorTimelineAgent::willRecalculateStyle):
2373         (WebCore::InspectorTimelineAgent::willPaint):
2374         (WebCore::InspectorTimelineAgent::willComposite):
2375         (WebCore::InspectorTimelineAgent::willWriteHTML):
2376         (WebCore::InspectorTimelineAgent::didInstallTimer):
2377         (WebCore::InspectorTimelineAgent::didRemoveTimer):
2378         (WebCore::InspectorTimelineAgent::willFireTimer):
2379         (WebCore::InspectorTimelineAgent::willChangeXHRReadyState):
2380         (WebCore::InspectorTimelineAgent::willLoadXHR):
2381         (WebCore::InspectorTimelineAgent::willEvaluateScript):
2382         (WebCore::InspectorTimelineAgent::didScheduleResourceRequest):
2383         (WebCore::InspectorTimelineAgent::willSendResourceRequest):
2384         (WebCore::InspectorTimelineAgent::willReceiveResourceData):
2385         (WebCore::InspectorTimelineAgent::willReceiveResourceResponse):
2386         (WebCore::InspectorTimelineAgent::didFinishLoadingResource):
2387         (WebCore::InspectorTimelineAgent::didTimeStamp):
2388         (WebCore::InspectorTimelineAgent::didMarkDOMContentEvent):
2389         (WebCore::InspectorTimelineAgent::didMarkLoadEvent):
2390         (WebCore::InspectorTimelineAgent::didRequestAnimationFrame):
2391         (WebCore::InspectorTimelineAgent::didCancelAnimationFrame):
2392         (WebCore::InspectorTimelineAgent::willFireAnimationFrame):
2393         (WebCore::InspectorTimelineAgent::addRecordToTimeline):
2394         (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
2395         (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
2396         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
2397         (WebCore::InspectorTimelineAgent::appendRecord):
2398         (WebCore::InspectorTimelineAgent::pushCurrentRecord):
2399         (WebCore::InspectorTimelineAgent::pushCancelableRecord):
2400         (WebCore::InspectorTimelineAgent::commitCancelableRecords):
2401         * inspector/InspectorTimelineAgent.h:
2402         (WebCore):
2403         (WebCore::InspectorTimelineAgent::create):
2404         (InspectorTimelineAgent):
2405         (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
2406         (TimelineRecordEntry):
2407         * inspector/WorkerInspectorController.cpp:
2408         (WebCore::WorkerInspectorController::WorkerInspectorController):
2409         * inspector/front-end/TimelinePresentationModel.js:
2410         (WebInspector.TimelinePresentationModel.isEventDivider):
2411         (WebInspector.TimelinePresentationModel.Record):
2412
2413 2012-06-08  Sheriff Bot  <webkit.review.bot@gmail.com>
2414
2415         Unreviewed, rolling out r119821.
2416         http://trac.webkit.org/changeset/119821
2417         https://bugs.webkit.org/show_bug.cgi?id=88648
2418
2419         Seems to have regression on Mac (Requested by kinuko on
2420         #webkit).
2421
2422         * fileapi/File.cpp:
2423         (WebCore::File::File):
2424         (WebCore::File::lastModifiedDate):
2425         (WebCore::File::lastModifiedDateForBinding):
2426         (WebCore):
2427         (WebCore::File::captureSnapshot):
2428         * fileapi/File.h:
2429         (File):
2430         * fileapi/File.idl:
2431         * platform/FileMetadata.h:
2432         (WebCore::FileMetadata::FileMetadata):
2433         * platform/FileSystem.h:
2434         * platform/chromium/support/WebHTTPBody.cpp:
2435         (WebKit::WebHTTPBody::elementAt):
2436         * platform/network/BlobData.cpp:
2437         (WebCore):
2438         * platform/network/BlobData.h:
2439         (BlobDataItem):
2440         (WebCore::BlobDataItem::BlobDataItem):
2441         * platform/network/FormData.cpp:
2442         (WebCore::FormData::appendFile):
2443         * platform/network/cf/FormDataStreamCFNet.cpp:
2444         (WebCore::advanceCurrentStream):
2445         * platform/network/soup/ResourceHandleSoup.cpp:
2446         (WebCore::blobIsOutOfDate):
2447
2448 2012-06-08  Kinuko Yasuda  <kinuko@chromium.org>
2449
2450         Unreviewed, removing duplicated entries in gyp.
2451
2452         * WebCore.gypi:
2453
2454 2012-06-08  Arko Saha  <arko@motorola.com>
2455
2456         Microdata: An element with an empty itemprop='' should not get listed in the .properties list.
2457         https://bugs.webkit.org/show_bug.cgi?id=88235
2458
2459         Reviewed by Ryosuke Niwa.
2460
2461         As per the specification change http://html5.org/r/6854, an element should be listed in .properties
2462         if the elelement has an attribute itemprop specified and the element has one or more property names.
2463
2464         Test: fast/dom/MicroData/element-with-empty-itemprop.html
2465
2466         * html/HTMLPropertiesCollection.cpp:
2467         (WebCore::HTMLPropertiesCollection::itemAfter):
2468
2469 2012-06-07  Kinuko Yasuda  <kinuko@chromium.org>
2470
2471         File::lastModifiedDate should use NaN or separate boolean flag for null Date value
2472         https://bugs.webkit.org/show_bug.cgi?id=87826
2473
2474         Reviewed by Kent Tamura.
2475
2476         Test: http/tests/local/fileapi/file-last-modified-after-delete.html
2477
2478         * fileapi/File.cpp:
2479         (WebCore::File::File):
2480         (WebCore::File::captureSnapshot):
2481         (WebCore::File::lastModifiedDate):
2482         (WebCore::File::lastModifiedDateForBinding): Removed.
2483         * fileapi/File.h:
2484         (File):
2485         * fileapi/File.idl:
2486         * platform/FileMetadata.h:
2487         (WebCore::FileMetadata::FileMetadata):
2488         * platform/FileSystem.h:
2489         * platform/chromium/support/WebHTTPBody.cpp:
2490         (WebKit::WebHTTPBody::elementAt):
2491         * platform/network/BlobData.h:
2492         (WebCore::BlobDataItem::doNotCheckFileChange): Removed.
2493         * platform/network/BlobData.cpp:
2494         * platform/network/cf/FormDataStreamCFNet.cpp:
2495         (WebCore::advanceCurrentStream):
2496         * platform/network/soup/ResourceHandleSoup.cpp:
2497         (WebCore::blobIsOutOfDate):
2498
2499 2012-06-08  Kent Tamura  <tkent@chromium.org>
2500
2501         Move form-related functions of Document to FormController
2502         https://bugs.webkit.org/show_bug.cgi?id=88497
2503
2504         Reviewed by Hajime Morita.
2505
2506         A lot of files depend on Document.h. We had to build many files when we
2507         touched form-related features in Document.h or
2508         CheckedRadioButtons.h. This patch reduces such pain.
2509
2510         No new tests. Just a refactoring.
2511
2512         * CMakeLists.txt: Add FormController.cpp and/or FormController.h.
2513         * GNUmakefile.list.am: ditto.
2514         * Target.pri: ditto.
2515         * WebCore.gypi: ditto.
2516         * WebCore.vcproj/WebCore.vcproj: ditto.
2517         * WebCore.xcodeproj/project.pbxproj: ditto.
2518
2519         * dom/Document.cpp: Removed form-releated features except the followings.
2520         (WebCore::Document::formController): Accessor for a FormController.
2521         (WebCore::Document::formElementsState):
2522         Just returns FormController::formElementsState().
2523         We don't create new FormController.
2524         (WebCore::Document::setStateForNewFormElements):
2525         Just returns FormController::setStateForNewFormElements().
2526         We don't create new FormController if the specified vector is empty.
2527         * dom/Document.h:
2528         Moved form-related functions to FormController.
2529
2530         * html/FormController.cpp: Added. Moved from Document.cpp.
2531         * html/FormController.h: Added. Moved from Document.h
2532
2533         * html/FormAssociatedElement.cpp: Use Document::formController().
2534         (WebCore::FormAssociatedElement::didMoveToNewDocument):
2535         (WebCore::FormAssociatedElement::insertedInto):
2536         (WebCore::FormAssociatedElement::removedFrom):
2537         (WebCore::FormAssociatedElement::formAttributeChanged):
2538         * html/HTMLFormControlElementWithState.cpp: Use Document::formController().
2539         (WebCore::HTMLFormControlElementWithState::HTMLFormControlElementWithState):
2540         (WebCore::HTMLFormControlElementWithState::~HTMLFormControlElementWithState):
2541         (WebCore::HTMLFormControlElementWithState::didMoveToNewDocument):
2542         (WebCore::HTMLFormControlElementWithState::finishParsingChildren):
2543         * html/HTMLFormElement.cpp: Use Document::formController().
2544         (WebCore::HTMLFormElement::didNotifyDescendantInsertions):
2545         (WebCore::HTMLFormElement::removedFrom):
2546         * html/HTMLInputElement.cpp: Use Document::formController().
2547         (WebCore::HTMLInputElement::~HTMLInputElement):
2548         (WebCore::HTMLInputElement::didMoveToNewDocument):
2549         (WebCore::HTMLInputElement::checkedRadioButtons):
2550         * html/HTMLInputElement.h:
2551         Declare CheckedRadioButtons. It was provided by Document.h.
2552         * html/parser/HTMLConstructionSite.h:
2553         Declare HTMLFormElement. It was provided by Document.h
2554
2555 2012-06-08  Taiju Tsuiki  <tzik@chromium.org>
2556
2557         Add FileSystem item to storage tree.
2558         https://bugs.webkit.org/show_bug.cgi?id=72691
2559
2560         Reviewed by Vsevolod Vlasov.
2561
2562         * WebCore.gypi:
2563         * WebCore.vcproj/WebCore.vcproj:
2564         * inspector/compile-front-end.py:
2565         * inspector/front-end/FileSystemModel.js: Added.
2566         * inspector/front-end/Images/fileSystem.png: Added.
2567         * inspector/front-end/ResourcesPanel.js:
2568         (WebInspector.FileSystemListTreeElement):
2569         (WebInspector.FileSystemListTreeElement.prototype.onexpand):
2570         (WebInspector.FileSystemListTreeElement.prototype.onattach):
2571         (WebInspector.FileSystemListTreeElement.prototype._handleContextMenuEvent):
2572         (WebInspector.FileSystemListTreeElement.prototype._fileSystemAdded):
2573         (WebInspector.FileSystemListTreeElement.prototype._fileSystemRemoved):
2574         (WebInspector.FileSystemListTreeElement.prototype._fileSystemTreeElementByName):
2575         (WebInspector.FileSystemListTreeElement.prototype._refreshFileSystem):
2576         (WebInspector.FileSystemTreeElement):
2577         (WebInspector.FileSystemTreeElement.prototype.get fileSystemName):
2578         (WebInspector.FileSystemTreeElement.prototype.get itemURL):
2579         * inspector/front-end/Settings.js:
2580         (WebInspector.ExperimentsSettings):
2581         * inspector/front-end/WebKit.qrc:
2582         * inspector/front-end/inspector.html:
2583         * inspector/front-end/resourcesPanel.css:
2584         (.file-system-storage-tree-item .icon):
2585         * inspector/front-end/utilities.js:
2586
2587 2012-06-08  Kentaro Hara  <haraken@chromium.org>
2588
2589         REGRESSION r119802: Remove unnecessary ASSERT(!m_deletionHasBegun) from Document.h
2590         https://bugs.webkit.org/show_bug.cgi?id=88528
2591
2592         Reviewed by Ryosuke Niwa.
2593
2594         m_deletionHasBegun should become true just before 'delete this'.
2595
2596         No tests. No change in behavior.
2597
2598         * dom/Document.h:
2599         (WebCore::Document::guardRef):
2600         (WebCore::Document::guardDeref):
2601
2602 2012-06-08  Adam Barth  <abarth@webkit.org>
2603
2604         HTTP 204 No Content responses shouldn't trigger MIME type warnings in the web inspector
2605         https://bugs.webkit.org/show_bug.cgi?id=88603
2606
2607         Reviewed by Pavel Feldman.
2608
2609         A 204 response doesn't have an entity body, so its MIME type is kind of
2610         meaningless.  We shouldn't spam the console with a warning about MIME
2611         types.
2612
2613         * inspector/front-end/NetworkManager.js:
2614         (WebInspector.NetworkDispatcher.prototype._mimeTypeIsConsistentWithType):
2615
2616 2012-06-08  Yoshifumi Inoue  <yosin@chromium.org>
2617
2618         [Forms] Drop StepRange::NumberWithDecimalPlacesOrMissing
2619         https://bugs.webkit.org/show_bug.cgi?id=88621
2620
2621         Reviewed by Kent Tamura.
2622
2623         This patch changes NumberWithDecimalPlacesOrMissing to NumberWithDecimalPlaces.
2624         We use NaN as indication of having value or not.
2625
2626         No new tests, because this patch doesn't change behavior.
2627
2628         * html/DateInputType.cpp:
2629         (WebCore::DateInputType::createStepRange): Replace NumberWithDecimalPlacesOrMissing to NumberWithDecimalPlaces.
2630         * html/DateTimeInputType.cpp:
2631         (WebCore::DateTimeInputType::createStepRange): ditto.
2632         * html/DateTimeLocalInputType.cpp:
2633         (WebCore::DateTimeLocalInputType::createStepRange): ditto.
2634         * html/MonthInputType.cpp:
2635         (WebCore::MonthInputType::createStepRange): ditto.
2636         * html/NumberInputType.cpp:
2637         (WebCore::NumberInputType::createStepRange): ditto.
2638         * html/RangeInputType.cpp:
2639         (WebCore::RangeInputType::createStepRange): ditto.
2640         * html/StepRange.cpp:
2641         (WebCore::StepRange::StepRange): Checks value is finite or not.
2642         (WebCore::StepRange::parseStep): Replace NumberWithDecimalPlacesOrMissing to NumberWithDecimalPlaces.
2643         * html/StepRange.h:
2644         (StepRange): Removed NumberWithDecimalPlacesOrMissing.
2645         * html/TimeInputType.cpp:
2646         (WebCore::TimeInputType::createStepRange):  NumberWithDecimalPlacesOrMissing to NumberWithDecimalPlaces.
2647         * html/WeekInputType.cpp:
2648         (WebCore::WeekInputType::createStepRange): ditto.
2649
2650 2012-06-08  Kentaro Hara  <haraken@chromium.org>
2651
2652         Unreviewed. Fixed a comment, pointed out by ap@.
2653
2654         * platform/TreeShared.h:
2655         (WebCore):
2656
2657 2012-06-08  Noel Gordon  <noel.gordon@gmail.com>
2658
2659         [chromium] WEBP image blue and red color channels reversed on Android
2660         https://bugs.webkit.org/show_bug.cgi?id=88613
2661
2662         Reviewed by Kent Tamura.
2663
2664         No new tests. Covered by test fast/images/webp-image-decoding.html though I'm
2665         not sure where/how the Androids run their layout tests.
2666
2667         * platform/image-decoders/webp/WEBPImageDecoder.cpp:
2668         (outputMode): Detect little-endian Skia with a blue pixel shift (aka Android)
2669         which seems to be the way for them per bug 75861.
2670
2671 2012-06-08  Ryosuke Niwa  <rniwa@webkit.org>
2672
2673         Remove the assertion that has been moved to TreeScope after r119802.
2674
2675         * dom/Document.cpp:
2676         (WebCore::Document::removedLastRef):
2677
2678 2012-06-07  Kentaro Hara  <haraken@chromium.org>
2679
2680         Reduce Node object size from 72 byte to 64 byte
2681         https://bugs.webkit.org/show_bug.cgi?id=88528
2682
2683         Reviewed by Ryosuke Niwa.
2684
2685         This patch removes all virtual methods from TreeShared.h,
2686         by which we can remove a virtual method table pointer (8 byte
2687         in a 64bit architechture) from each Node object. Consequently,
2688         this patch reduces the Node object size from 72 byte to 64 byte.
2689
2690         e.g. The HTML spec (http://www.whatwg.org/specs/web-apps/current-work/)
2691         contains 325640 Node objects. Thus this patch saves 325640 * 8 byte = 2.6 MB.
2692
2693         e.g. sizeof(Element) is reduced from 104 byte to 96 byte.
2694
2695         - In multiple inheritance, a virtual method table pointer is allocated
2696         for each base class that has virtual methods. For example, for
2697         'class A : public B, C {};' where B and C have virtual methods,
2698         two virtual method table pointers are allocated for each A object.
2699         In this patch, A = Node, B = EventTarget, and C = TreeShared.
2700         By removing the virtual methods from TreeShared, we can save the virtual
2701         method table pointer for TreeShared. 8 byte saving.
2702
2703         - Node and SVGElementInstance are the only classes that inherit TreeShared.
2704
2705         - This patch removes virtual TreeShared::removeLastRef() and implements
2706         virtual Node::removeLastRef() and virtual SVGElementInstance::removeLastRef().
2707         Node::removeLastRef() calls 'delete this' for 'this' of type Node*,
2708         and SVGElementInstance::removeLastRef() calls 'delete this' for 'this' of type
2709         SVGElementInstance*.
2710
2711         - This patch removes the virtual destructor of TreeShared. This removal is safe
2712         because (1) no one calls 'delete this' for 'this' of type TreeShared*,
2713         and (2) both Node and SVGElementInstance have virtual destructor.
2714
2715         No change in behavior. Confirm no regression in existing tests.
2716
2717         * dom/ContainerNode.cpp:
2718         (WebCore::callRemovedLastRef):
2719         (WebCore):
2720         * dom/Node.h:
2721         (WebCore::Node::removedLastRef):
2722         * platform/TreeShared.h:
2723         (WebCore):
2724         (TreeShared):
2725         (WebCore::TreeShared::deref):
2726         * svg/SVGElementInstance.cpp:
2727         (WebCore::callRemovedLastRef):
2728         (WebCore):
2729         * svg/SVGElementInstance.h:
2730         (WebCore::SVGElementInstance::removedLastRef):
2731
2732         * WebCore.order: Added a symbol for callRemovedLastRef().
2733         * WebCore.exp.in: Ditto.
2734
2735 2012-06-07  Takashi Sakamoto  <tasak@google.com>
2736
2737         ShadowRoot needs resetStyleInheritance
2738         https://bugs.webkit.org/show_bug.cgi?id=84048
2739
2740         Added resetStyleInheritance API to ShadowRoot. The spec URL is
2741         http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#shadow-root-attributes
2742         To implement the API, modified StyleResolver to use empty style
2743         instead of parent style if resetStyleInheritance is true,
2744         and a node and its parent node are placed in different shadow trees.
2745
2746         Reviewed by Hajime Morita.
2747
2748         Test: fast/dom/shadow/shadow-root-resetStyleInheritance.html
2749               fast/dom/shadow/shadow-root-resetStyleInheritance-expected.html
2750
2751         * css/StyleResolver.cpp:
2752         (WebCore::StyleResolver::initForStyleResolve):
2753         Set m_parentStyle to NULL when resetStyleInheritance.
2754         (WebCore::StyleResolver::documentSettings):
2755         Added a new method to obtain current document's settings.
2756         (WebCore::StyleResolver::initializeFontStyle):
2757         Initialize m_style by using document settings. Its code was move
2758         from the code initializing font style in applyProperty.
2759         (WebCore::StyleResolver::styleForElement):
2760         Initialize font style if m_parentStyle is NULL. The old code just
2761         used style() and don't touch font style. The new code uses the above
2762         initializeFontStyle.
2763         (WebCore::StyleResolver::applyProperty):
2764         Moved a code for initializing font style as "initial" to
2765         a new method: initializeFontStyle and modified to use the method.
2766         Modified to use documentSettings().
2767         (WebCore::StyleResolver::checkForGenericFamilyChange):
2768         Modified to use documentSettings().
2769         * css/StyleResolver.h:
2770         (WebCore::StyleResolver::documentSettings):
2771         (WebCore::StyleResolver::initializeFontStyle):
2772         Added two new methods to class StyleResolver.
2773         * dom/NodeRenderingContext.cpp:
2774         (WebCore::NodeRenderingContext::NodeRenderingContext):
2775         Modified to calculate m_resetStyleInheritance in its constructor.
2776         * dom/NodeRenderingContext.h:
2777         (WebCore::NodeRenderingContext::resetStyleInheritance):
2778         Implemented a new method, just returning m_resetStyleInheritance.
2779         * dom/ShadowRoot.cpp:
2780         (WebCore::ShadowRoot::setResetStyleInheritance):
2781         Modified to force to recalculate children's styles if
2782         resetStyleInheritance is changed.
2783         * dom/ShadowRoot.h:
2784         (ShadowRoot):
2785         Added resetStyleInheritance getter and setter.
2786         * dom/ShadowRoot.idl:
2787         Added an attribute, resetStyleInheritance.
2788         * dom/TreeScope.cpp:
2789         (WebCore::TreeScope::resetStyleInheritance):
2790         * dom/TreeScope.h:
2791         (TreeScope):
2792         Added resetStyleInheritance's default getter.
2793         The getter will be overrided by class ShadowRoot's getter.
2794
2795 2012-06-07  Victor Carbune  <victor@rosedu.org>
2796
2797         addTextTrack should set track mode to HIDDEN
2798         https://bugs.webkit.org/show_bug.cgi?id=88317
2799
2800         Reviewed by Eric Carlson.
2801
2802         Updated existing test.
2803
2804         * html/HTMLMediaElement.cpp:
2805         (WebCore::HTMLMediaElement::addTextTrack): Set the default parameters
2806         for the newly created TextTrack.
2807         * html/track/TextTrack.cpp:
2808         (WebCore::TextTrack::TextTrack):
2809
2810 2012-06-07  Li Yin  <li.yin@intel.com>
2811
2812         FileAPI: Blob should support ArrayBufferView instead of ArrayBuffer for Constructor Parameters
2813         https://bugs.webkit.org/show_bug.cgi?id=88294
2814
2815         Reviewed by Jian Li.
2816
2817         From Spec: http://dev.w3.org/2006/webapi/FileAPI/#dfn-Blob
2818         Currently we add the support for ArrayBufferView, while still keeping ArrayBuffer for
2819         backward compatibility. We will remove it in the near future.
2820
2821         Test: fast/files/blob-constructor.html
2822
2823         * bindings/js/JSBlobCustom.cpp:
2824         (WebCore::JSBlobConstructor::constructJSBlob):
2825         * bindings/v8/custom/V8BlobCustom.cpp:
2826         (WebCore::V8Blob::constructorCallback):
2827         * fileapi/WebKitBlobBuilder.cpp:
2828         (WebCore::WebKitBlobBuilder::append):
2829         (WebCore):
2830         * fileapi/WebKitBlobBuilder.h:
2831         (WebCore):
2832         (WebKitBlobBuilder):
2833         * fileapi/WebKitBlobBuilder.idl: Add support for ArrayBufferView in append method
2834
2835 2012-06-07  MORITA Hajime  <morrita@google.com>
2836
2837         A style in an older shadow subtree causes assert when composing with <shadow>
2838         https://bugs.webkit.org/show_bug.cgi?id=88299
2839
2840         Reviewed by Dimitri Glazkov.
2841
2842         InsertionPoint::attach() assumes its distributed content not being attach()-ed.
2843         But this assumption can break. This change added a guard for that.
2844         This can happen for shadow boundaries in general. But ShadowRoot already handles that case.
2845
2846         Test: fast/dom/shadow/insertion-point-shadow-crash.html
2847
2848         * html/shadow/InsertionPoint.cpp:
2849         (WebCore::InsertionPoint::attach):
2850
2851 2012-06-07  Max Feil  <mfeil@rim.com>
2852
2853         [BlackBerry] Show correct fullscreen button image (media controls)
2854         https://bugs.webkit.org/show_bug.cgi?id=88563
2855
2856         Reviewed by Antonio Gomes.
2857
2858         PR159306: Show "exit" fullscreen button image instead of "enter"
2859         fullscreen button image when in fullscreen mode (HTML5 media
2860         controls).
2861
2862         I am not providing a test due to the simplicity of this patch
2863         and the relative difficulty and maintainability issues associated
2864         with testing how an image is rendered.
2865
2866         * platform/blackberry/RenderThemeBlackBerry.cpp:
2867         (WebCore::RenderThemeBlackBerry::paintMediaFullscreenButton):
2868
2869 2012-06-07  Noel Gordon  <noel.gordon@gmail.com>
2870
2871         [chromium] Use WEBPImportPictureRGBX|BGRX to import picture data
2872         https://bugs.webkit.org/show_bug.cgi?id=88218
2873
2874         Reviewed by Kent Tamura.
2875
2876         Stop using the RGBA and RGBA variants of the picture import routines (since
2877         these will import alpha channel data in a future libwebp). Use the RGBX and
2878         BGRX variants to import picture data for encoding to make it clear that the
2879         alpha channel is (and must be) ignored.
2880
2881         Test: fast/canvas/canvas-toDataURL-webp.html
2882
2883         * platform/image-encoders/skia/WEBPImageEncoder.cpp:
2884         (WebCore::rgbPictureImport):
2885         (WebCore::importPictureBGRX): Use WEBPImportPictureBGRX for picture imports
2886         that must ignore the alpha channel. Change the template parameter to be the
2887         premultiplied alpha state of the input image data.
2888         (WebCore::importPictureRGBX): Use WEBPImportPictureRGBX, ditto.
2889         (WebCore::encodePixels): Invert the sense of the template parameter to make
2890         it now indicate the premultiplied alpha state of the input image data.
2891
2892 2012-06-07  Takashi Sakamoto  <tasak@google.com>
2893
2894         Improve the performance of pushScope in StyleResolver
2895         https://bugs.webkit.org/show_bug.cgi?id=88222
2896
2897         Reviewed by Hajime Morita.
2898
2899         As setupScopeStack always sets m_scopeStackParent to be NULL,
2900         m_scopeStack is never reused. m_scopeStackParent should be the last
2901         element of m_scopeStack.
2902
2903         No new tests, because fast/css/style-scoped/ uses pushScope,
2904         popScope and setupScopeStack and checks whether there exists
2905         any crash bug or not. And this patch doesn't change any behavior
2906         of scoped author syltes.
2907
2908         * css/StyleResolver.cpp:
2909         (WebCore::StyleResolver::setupScopeStack):
2910         Modified to set m_scopeSackParent to be the last element of
2911         m_scopeStack.
2912         (WebCore::StyleResolver::popScope):
2913         Modified to remove the last element if m_scopeStack is not empty and
2914         the last element of m_scopeStack has the same scope as the scoping
2915         element given by the argument.
2916
2917 2012-06-07  Mark Pilgrim  <pilgrim@chromium.org>
2918
2919         [Chromium] Move didStartWorkerRunLoop to Platform.h
2920         https://bugs.webkit.org/show_bug.cgi?id=88562
2921
2922         Reviewed by Adam Barth.
2923
2924         Part of a refactoring series. See tracking bug 82948.
2925
2926         * WebCore.gyp/WebCore.gyp:
2927         * bindings/v8/WorkerScriptController.cpp:
2928         (WebCore::WorkerScriptController::~WorkerScriptController):
2929         * platform/chromium/PlatformSupport.h:
2930         (WebCore):
2931         * workers/WorkerThread.cpp:
2932         (WebCore::WorkerThread::workerThread):
2933
2934 2012-06-07  Mike West  <mkwst@chromium.org>
2935
2936         Dropping m_startingLineNumber property from StyledElement.
2937         https://bugs.webkit.org/show_bug.cgi?id=86848
2938
2939         Reviewed by Adam Barth.
2940
2941         We can have the same effect by moving the line-number calculation
2942         directly into StyledElement::styleAttributeChanged. This means that
2943         subsequent changes to the style attribute (via script) won't generate
2944         error messages with line numbers, but that's an acceptable tradeoff.
2945
2946         Behavior is covered by existing CSP tests.
2947
2948         * dom/StyledElement.cpp:
2949         (WebCore::StyledElement::StyledElement):
2950         (WebCore::StyledElement::styleAttributeChanged):
2951         * dom/StyledElement.h:
2952         (WebCore::StyledElement::destroyInlineStyle):
2953
2954 2012-06-07  Peter Beverloo  <peter@chromium.org>
2955
2956         Initialize m_document in AXObjectCache's constructor for !HAVE(ACCESSIBILITY) builds
2957         https://bugs.webkit.org/show_bug.cgi?id=88527
2958
2959         Reviewed by Adam Barth.
2960
2961         Initialize the m_document member with the passed on document in the stubbed
2962         AXObjectCache constructor. No behavioral changes.
2963
2964         * accessibility/AXObjectCache.h:
2965         (WebCore::AXObjectCache::AXObjectCache):
2966
2967 2012-06-05  James Robinson  <jamesr@chromium.org>
2968
2969         [chromium] Move deferral-related logic out of Canvas2DLayerChromium
2970         https://bugs.webkit.org/show_bug.cgi?id=86050
2971
2972         Reviewed by Stephen White.
2973
2974         This removes Canvas2DLayerChromium and puts the deferral and double-buffering related logic in a new class,
2975         Canvas2DLayerBridge, that uses TextureLayerChromium for compositing.  The bridge is responsible for managing the
2976         front texture when double buffering is active, inserting the correct makeContextCurrent() and flush() calls on
2977         the GraphicsContext3D and SkCanvas when appropriate, and owning the lifetime of the layer.
2978
2979         * WebCore.gypi:
2980         * platform/graphics/chromium/Canvas2DLayerBridge.cpp: Added.
2981         (WebCore):
2982         (AcceleratedDeviceContext):
2983         (WebCore::AcceleratedDeviceContext::AcceleratedDeviceContext):
2984         (WebCore::AcceleratedDeviceContext::prepareForDraw):
2985         (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
2986         (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
2987         (WebCore::Canvas2DLayerBridge::skCanvas):
2988         (WebCore::Canvas2DLayerBridge::prepareTexture):
2989         (WebCore::Canvas2DLayerBridge::context):
2990         (WebCore::Canvas2DLayerBridge::layer):
2991         (WebCore::Canvas2DLayerBridge::contextAcquired):
2992         * platform/graphics/chromium/Canvas2DLayerBridge.h: Added.
2993         (WebCore):
2994         (Canvas2DLayerBridge):
2995         (WebCore::Canvas2DLayerBridge::create):
2996         * platform/graphics/chromium/Canvas2DLayerChromium.cpp: Removed.
2997         * platform/graphics/chromium/Canvas2DLayerChromium.h: Removed.
2998         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2999         * platform/graphics/chromium/ImageBufferDataSkia.h:
3000         (WebCore):
3001         (ImageBufferData):
3002         * platform/graphics/chromium/TextureLayerChromium.cpp:
3003         (WebCore::TextureLayerChromium::willModifyTexture):
3004             willModifyTexture() is called whenever the texture currently owned by the TextureLayerChromium will be
3005             modified by a system out of the compositor's control. It makes sure that the compositor does not attempt to
3006             draw with the potentially-modified texture until the next commit. For canvas, this is used when threading is
3007             enabled and a non-deferrable drawing command is invoked from JS.
3008         (WebCore):
3009         * platform/graphics/chromium/TextureLayerChromium.h:
3010         (TextureLayerChromium):
3011         * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
3012         (WebCore::CCTextureUpdater::hasMoreUpdates):
3013         (WebCore::CCTextureUpdater::update):
3014         (WebCore::CCTextureUpdater::clear):
3015         * platform/graphics/chromium/cc/CCTextureUpdater.h:
3016         (CCTextureUpdater):
3017         * platform/graphics/skia/ImageBufferSkia.cpp:
3018         (WebCore::createAcceleratedCanvas):
3019         (WebCore::ImageBuffer::~ImageBuffer):
3020         (WebCore::ImageBuffer::context):
3021         (WebCore::ImageBuffer::platformLayer):
3022
3023 2012-06-07  Patrick Gansterer  <paroga@webkit.org>
3024
3025         Remove HAVE(PATH_BASED_BORDER_RADIUS_DRAWING)
3026         https://bugs.webkit.org/show_bug.cgi?id=87931
3027
3028         Reviewed by Beth Dakin.
3029
3030         r62035 added HAVE(PATH_BASED_BORDER_RADIUS_DRAWING) until all ports implement
3031         GraphicsContext::clipConvexPolygon(). All major ports define HAVE_PATH_BASED_BORDER_RADIUS_DRAWING in the
3032         meantime and the alternative path has unnecessary maintainace costs and even don't compile at the moment.
3033
3034         * rendering/RenderBoxModelObject.cpp:
3035         (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
3036         * rendering/RenderObject.cpp:
3037         (WebCore::RenderObject::paintFocusRing):
3038         * rendering/RenderObject.h:
3039         (RenderObject):
3040
3041 2012-06-06  Vincent Scheib  <scheib@chromium.org>
3042
3043         Add new Pointer Lock spec events webkitpointerlockchange and webkitpointerlockerror
3044         https://bugs.webkit.org/show_bug.cgi?id=88377
3045
3046         Reviewed by Dimitri Glazkov.
3047
3048         Part of a series of refactoring changes to update pointer lock API to
3049         the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402
3050
3051         New change and error events added. Follow up patches will remove
3052         the previous callbacks and pointerlocklost event. Tests updated
3053         to include the new events, and a new test added specifically for
3054         the new events, pointerlockchange-pointerlockerror-events.html.
3055
3056         Test: pointer-lock/pointerlockchange-pointerlockerror-events.html
3057
3058         * dom/Document.h:
3059         (Document):
3060         * dom/Document.idl:
3061         * dom/EventNames.h:
3062         (WebCore):
3063         * page/PointerLockController.cpp:
3064         (WebCore::PointerLockController::requestPointerLock):
3065         (WebCore::PointerLockController::didAcquirePointerLock):
3066         (WebCore::PointerLockController::didNotAcquirePointerLock):
3067         (WebCore::PointerLockController::didLosePointerLock):
3068         (WebCore::PointerLockController::enqueueEvent):
3069         (WebCore):
3070         * page/PointerLockController.h:
3071         (PointerLockController):
3072
3073 2012-06-07  Sheriff Bot  <webkit.review.bot@gmail.com>
3074
3075         Unreviewed, rolling out r119744.
3076         http://trac.webkit.org/changeset/119744
3077         https://bugs.webkit.org/show_bug.cgi?id=88584
3078
3079         Fails assertions in debug builds (Requested by jamesr_ on
3080         #webkit).
3081
3082         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
3083         (WebCore::CCIOSurfaceLayerImpl::~CCIOSurfaceLayerImpl):
3084         (WebCore::CCIOSurfaceLayerImpl::willDraw):
3085
3086 2012-06-07  Julien Chaffraix  <jchaffraix@webkit.org>
3087
3088         Cache RenderLayer::isRootLayer for better performance
3089         https://bugs.webkit.org/show_bug.cgi?id=88570
3090
3091         Reviewed by Ojan Vafai.
3092
3093         Caching covered by existing tests.
3094
3095         RenderLayer::isRootLayer()'s answer will be the same during the RenderLayer's
3096         lifetime as a RenderLayer is tied to a RenderBoxModelObject. This change caches
3097         isRootLayer value in the constructor.
3098
3099         On http://dglazkov.github.com/performance-tests/biggrid.html with a 100,000 rows
3100         by 100 columns table, it saves about 10% on the paint time during scrolling on
3101         my machine (going from 50ms to 45ms). It would expect all code paths to see some
3102         improvement as checking renderer()->isRenderView() was pretty common.
3103
3104         * rendering/RenderLayer.cpp:
3105         (WebCore::RenderLayer::RenderLayer):
3106         Added code to cache the result of renderer()->isRenderView() here.
3107
3108         (WebCore::RenderLayer::stackingContext):
3109         (WebCore::isPositionedContainer):
3110         (WebCore::isFixedPositionedContainer):
3111         (WebCore::RenderLayer::enclosingTransformedAncestor):
3112         (WebCore::RenderLayer::clippingRootForPainting):
3113         (WebCore::shouldSuppressPaintingLayer):
3114         (WebCore::RenderLayer::hitTest):
3115         (WebCore::RenderLayer::intersectsDamageRect):
3116         * rendering/RenderLayer.h:
3117         (WebCore::RenderLayer::isStackingContext):
3118         Updated all the call sites to use isRootLayer() instead of renderer()->isRenderView()
3119         as it is faster.
3120
3121         (WebCore::RenderLayer::isRootLayer):
3122         Added our caching here. Also made m_canSkipRepaintRectsUpdateOnScroll to follow
3123         m_isRootLayer example.
3124
3125 2012-06-07  Takashi Sakamoto  <tasak@google.com>
3126
3127         Incorrect border rendering when border radius is above 2px.
3128         https://bugs.webkit.org/show_bug.cgi?id=88046
3129
3130         Fixing findInnerVertex's logic to decide which is the better line
3131         to find an inner vertex, x=center point's x of a rendering box or
3132         y=center point's y of a rendering box.
3133
3134         Reviewed by Simon Fraser.
3135
3136         Test: fast/borders/border-radius-valid-border-clipping.html
3137
3138         * rendering/RenderBoxModelObject.cpp:
3139         (WebCore::findInnerVertex):
3140
3141 2012-06-07  Edaena Salinas Jasso  <edaena@apple.com>
3142
3143         Should fire error event for empty 404 script
3144         https://bugs.webkit.org/show_bug.cgi?id=50589
3145         
3146         Reviewed by Brady Eidson.
3147
3148         Tests: 
3149         http/tests/loading/fire-error-event-empty-404-script.html
3150         http/tests/loading/fire-error-script-no-content-type.html
3151
3152         * loader/SubresourceLoader.cpp:
3153         (WebCore::SubresourceLoader::didReceiveResponse): We should check for http status 
3154         codes here to stop depending on the response being non-empty.
3155         (WebCore::SubresourceLoader::didReceiveData): Moved the http status check but
3156         avoid messing with multipart responses.
3157         (WebCore::SubresourceLoader::checkForHTTPStatusCodeError): Renamed from 
3158         errorLoadingResource for clarity.
3159
3160         * loader/SubresourceLoader.h:
3161         * loader/cf/SubresourceLoaderCF.cpp:
3162         (WebCore::SubresourceLoader::didReceiveDataArray):
3163         Updated for errorLoadingResource renaming.
3164
3165 2012-06-07  Konrad Piascik  <kpiascik@rim.com>
3166
3167         [BlackBerry] Update PlayBook's User Agent String for Web Inspector
3168         https://bugs.webkit.org/show_bug.cgi?id=88543
3169
3170         Reviewed by Antonio Gomes.
3171
3172         We expect users to upgrade their devices so developers only need the latest UA String.
3173
3174         No tests needed.
3175
3176         * inspector/front-end/SettingsScreen.js:
3177         (WebInspector.SettingsScreen.prototype._createUserAgentSelectRowElement.get const):
3178
3179 2012-06-07  Shawn Singh  <shawnsingh@chromium.org>
3180
3181         [chromium] Remove obsolete FIXME comment about a layer sorting bug.
3182         https://bugs.webkit.org/show_bug.cgi?id=88546
3183
3184         Reviewed by James Robinson.
3185
3186         No tests needed, only comment changed. The comment referred to a
3187         potential bug that actually will not occur. The W3C spec on CSS 3d
3188         transforms indicates that layers that do not share the same "3d
3189         rendering context" do not sort together, and our existing code
3190         sorts this way already.
3191
3192         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
3193         (WebCore::subtreeShouldRenderToSeparateSurface):
3194
3195 2012-06-07  Adam Barth  <abarth@webkit.org>
3196
3197         Settings::defaultDeviceScaleFactor is redundant with Page::deviceScaleFactor
3198         https://bugs.webkit.org/show_bug.cgi?id=88375
3199
3200         Reviewed by James Robinson.
3201
3202         This patch removes Settings::defaultDeviceScaleFactor because it is
3203         redundant with Page::deviceScaleFactor now that we no longer support
3204         target-densitydpi.  Page::deviceScaleFactor is the canonical place to
3205         store the device scale factor.
3206
3207         * WebCore.exp.in:
3208         * page/Settings.cpp:
3209         (WebCore::Settings::Settings):
3210         (WebCore):
3211         * page/Settings.h:
3212         (Settings):
3213         * testing/InternalSettings.cpp:
3214         (WebCore::InternalSettings::setDeviceScaleFactor):
3215
3216 2012-06-07  Alec Flett  <alecflett@chromium.org>
3217
3218         IndexedDB: Error codes, phase one
3219         https://bugs.webkit.org/show_bug.cgi?id=88459
3220
3221         Reviewed by Tony Chang.
3222
3223         This phase gets rid of the now-deprecated NOT_ALLOWED_ERR and
3224         NON_TRANSIENT_ERR from earlier versions of the spec, and
3225         normalizes the place where TypeError should be thrown so that it's
3226         easier to update when the bindings change.
3227
3228         No new tests: existing tests cover these changes and have been updated.
3229
3230         * Modules/indexeddb/IDBCursor.cpp:
3231         (WebCore::IDBCursor::advance):
3232         (WebCore::IDBCursor::continueFunction):
3233         (WebCore::IDBCursor::stringToDirection):
3234         (WebCore::IDBCursor::directionToString):
3235         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
3236         (WebCore::IDBCursorBackendImpl::update):
3237         (WebCore::IDBCursorBackendImpl::deleteFunction):
3238         * Modules/indexeddb/IDBDatabase.cpp:
3239         (WebCore::IDBDatabase::createObjectStore):
3240         (WebCore::IDBDatabase::deleteObjectStore):
3241         (WebCore::IDBDatabase::setVersion):
3242         (WebCore::IDBDatabase::transaction):
3243         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
3244         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
3245         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
3246         (WebCore::IDBDatabaseBackendImpl::setVersion):
3247         * Modules/indexeddb/IDBDatabaseException.cpp:
3248         (WebCore):
3249         * Modules/indexeddb/IDBDatabaseException.h:
3250         * Modules/indexeddb/IDBDatabaseException.idl:
3251         * Modules/indexeddb/IDBFactory.cpp:
3252         (WebCore::IDBFactory::open):
3253         (WebCore::IDBFactory::deleteDatabase):
3254         * Modules/indexeddb/IDBObjectStore.cpp:
3255         (WebCore::IDBObjectStore::index):
3256         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
3257         (WebCore::IDBObjectStoreBackendImpl::createIndex):
3258         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
3259         * Modules/indexeddb/IDBRequest.cpp:
3260         (WebCore::IDBRequest::result):
3261         (WebCore::IDBRequest::errorCode):
3262         (WebCore::IDBRequest::webkitErrorMessage):
3263         * Modules/indexeddb/IDBTransaction.cpp:
3264         (WebCore::IDBTransaction::objectStore):
3265         (WebCore::IDBTransaction::stringToMode):
3266         (WebCore::IDBTransaction::modeToString):
3267         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
3268         (WebCore::IDBTransactionBackendImpl::objectStore):
3269
3270 2012-06-07  Dana Jansens  <danakj@chromium.org>
3271
3272         [chromium] Free texture from CCIOSurfaceLayerImpl when it is destroyed
3273         https://bugs.webkit.org/show_bug.cgi?id=88371
3274
3275         Reviewed by James Robinson.
3276
3277         Unit test: CCLayerTreeHostImplTest.layersFreeTextures
3278
3279         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
3280         (WebCore::CCIOSurfaceLayerImpl::~CCIOSurfaceLayerImpl):
3281         (WebCore::CCIOSurfaceLayerImpl::willDraw):
3282
3283 2012-06-07  Peter Beverloo  <peter@chromium.org>
3284
3285         Buildfix for ENABLE_OVERFLOW_SCROLLING=0 (though defined)
3286         https://bugs.webkit.org/show_bug.cgi?id=88564
3287
3288         Reviewed by Adam Barth.
3289
3290         Where ENABLE(X) mandates that X both has to be defined and evaluates to
3291         true as a lone preprocessor statement, there were two places in the CSS
3292         property and value input files where only was checked whether is has
3293         been defined. This also goes against other #ifdefs in those files.
3294
3295         * css/CSSPropertyNames.in:
3296         * css/CSSValueKeywords.in:
3297
3298 2012-06-07  Ami Fischman  <fischman@chromium.org>
3299
3300         Plumb CORS attribute information from HTMLMediaElement to media players so it can be used
3301         https://bugs.webkit.org/show_bug.cgi?id=88349
3302
3303         Reviewed by Adam Barth.
3304
3305         Test: http/tests/security/video-cross-origin-readback.html
3306
3307         * html/HTMLMediaElement.cpp:
3308         (WebCore::HTMLMediaElement::mediaPlayerCORSMode):
3309         (WebCore):
3310         * html/HTMLMediaElement.h:
3311         (HTMLMediaElement):
3312         * html/canvas/CanvasRenderingContext.cpp:
3313         (WebCore::CanvasRenderingContext::wouldTaintOrigin):
3314         * platform/graphics/MediaPlayer.cpp:
3315         (WebCore::MediaPlayer::didPassCORSAccessCheck):
3316         (WebCore):
3317         * platform/graphics/MediaPlayer.h:
3318         (WebCore::MediaPlayerClient::mediaPlayerCORSMode):
3319         (MediaPlayer):
3320         * platform/graphics/MediaPlayerPrivate.h:
3321         (WebCore::MediaPlayerPrivateInterface::didPassCORSAccessCheck):
3322         (MediaPlayerPrivateInterface):
3323
3324 2012-06-07  Mark Hahnenberg  <mhahnenberg@apple.com>
3325
3326         Worker tear-down can re-enter JSC during GC finalization
3327         https://bugs.webkit.org/show_bug.cgi?id=88449
3328
3329         Reviewed by Geoffrey Garen.
3330
3331         No new tests. 
3332
3333         This is the first of two patches to fix this issue with Workers.
3334
3335         * workers/AbstractWorker.cpp:
3336         (WebCore::AbstractWorker::~AbstractWorker): We don't need to call onDestroyWorker() here, it 
3337         will be called elsewhere in contextDestroyed().
3338
3339 2012-06-07  Jer Noble  <jer.noble@apple.com>
3340
3341         sometimes all slaved videos don't start playing
3342         https://bugs.webkit.org/show_bug.cgi?id=88553
3343
3344         Reviewed by Darin Adler.
3345
3346         Test: media/media-controller-time-clamp.html
3347
3348         Some PlatformClock classes will occasionally return times < 0 and will
3349         always return times slightly > duration() when playback has ended.  Clamp
3350         the value of currentTime() to the specified [0..duration] range.
3351
3352         * html/MediaController.cpp:
3353         (MediaController::currentTime):
3354
3355 2012-06-07  Simon Fraser  <simon.fraser@apple.com>
3356
3357         Optimize FrameView::scrollXForFixedPosition() / scrollYForFixedPosition()
3358         https://bugs.webkit.org/show_bug.cgi?id=88475
3359
3360         Reviewed by Sam Weinig.
3361         
3362         FrameView's scrollXForFixedPosition() and scrollYForFixedPosition()
3363         methods were often called together, but they do duplicate work,
3364         including calling into platform widget code which might be slow.
3365         
3366         Fix by converting scrollOffsetForFixedPosition() from being a wrapper
3367         that just calls scrollXForFixedPosition() and scrollYForFixedPosition()
3368         to the method that does all the work, calling just once into platform
3369         widget code.
3370         
3371         Changed callers to use scrollOffsetForFixedPosition() rather than make
3372         two separate method calls.
3373         
3374         Added ScrollView::layoutSize() and visibleSize() methods for
3375         convenience.
3376         
3377         Removed FrameView::scrollXForFixedPosition and FrameView::scrollYForFixedPosition
3378         to avoid inefficient callers in future.
3379
3380         No new tests; refactoring only.
3381
3382         * page/FrameView.cpp:
3383         (WebCore::fixedPositionScrollOffset):
3384         (WebCore::FrameView::scrollOffsetForFixedPosition):
3385         * page/FrameView.h: Removed scrollXForFixedPosition and scrollYForFixedPosition.
3386         * platform/ScrollView.cpp:
3387         (WebCore::ScrollView::layoutSize):
3388         * platform/ScrollView.h:
3389         (WebCore::ScrollView::visibleSize):
3390         * rendering/RenderLayer.cpp:
3391         (WebCore::RenderLayer::backgroundClipRect):
3392         * rendering/RenderLayer.h:
3393         (WebCore::ClipRect::move):
3394         * rendering/RenderLayerCompositor.cpp:
3395         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
3396         * rendering/RenderView.cpp:
3397         (WebCore::RenderView::computeRectForRepaint):
3398
3399 2012-06-07  Raymes Khoury  <raymes@chromium.org>
3400
3401         Incorrect rect-based hit-test result for culled-inline elements
3402         https://bugs.webkit.org/show_bug.cgi?id=85849
3403
3404         Reviewed by Levi Weintraub.
3405
3406         Modified code which blindly adds culled inlines to rect-based hit-test
3407         results so that it only does so if the child node does not fully cover
3408         the hit-test region.
3409
3410         Test: fast/dom/nodesFromRect-culled-inline.html
3411
3412         * rendering/HitTestResult.cpp:
3413         (WebCore::HitTestResult::addNodeToRectBasedTestResult):
3414
3415 2012-06-07  Daniel Erat  <derat@chromium.org>
3416
3417         Make Skia backend honor requests for subpixel-positioned text.
3418         https://bugs.webkit.org/show_bug.cgi?id=88263
3419
3420         Reviewed by Tony Chang.
3421
3422         Add subpixel positioning field to FontRenderStyle and rename
3423         subpixel rendering field.
3424
3425         Pass setting to SkPaint in FontPlatformDataHarfBuzz and remove
3426         round() call when computing glyph widths in SimpleFontDataSkia.
3427
3428         Test: platform/chromium-linux/fast/text/chromium-linux-text-subpixel-positioning.html
3429
3430         * platform/graphics/blackberry/skia/PlatformSupport.cpp:
3431         (WebCore::setFontRenderStyleDefaults):
3432         (WebCore::PlatformSupport::getRenderStyleForStrike):
3433         * platform/graphics/chromium/FontRenderStyle.h:
3434         (WebCore::FontRenderStyle::FontRenderStyle):
3435         (WebCore::FontRenderStyle::operator==):
3436         (FontRenderStyle):
3437         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
3438         (WebCore):
3439         (WebCore::FontPlatformData::setSubpixelRendering):
3440         (WebCore::FontPlatformData::setSubpixelPositioning):
3441         (WebCore::FontPlatformData::setupPaint):
3442         (WebCore::FontPlatformData::querySystemForRenderStyle):
3443         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
3444         (FontPlatformData):
3445         * platform/graphics/skia/SimpleFontDataSkia.cpp:
3446         (WebCore::SimpleFontData::platformWidthForGlyph):
3447
3448 2012-06-06  Dana Jansens  <danakj@chromium.org>
3449
3450         [chromium] In each composited frame, didDraw() should only be called on layers for which willDraw() was called
3451         https://bugs.webkit.org/show_bug.cgi?id=88469
3452
3453         Reviewed by James Robinson.
3454
3455         Unit test: CCLayerTreeHostImplTest.didDrawNotCalledOnScissoredLayer
3456
3457         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3458         (WebCore::shouldDrawLayer):
3459         (WebCore):
3460         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
3461         (WebCore::CCLayerTreeHostImpl::didDrawAllLayers):
3462
3463 2012-06-07  Alexei Filippov  <alexeif@chromium.org>
3464
3465         Web Inspector: sorting of object fields is broken in heap profiler
3466         https://bugs.webkit.org/show_bug.cgi?id=88532
3467
3468         A recent change to heap profiler has replaced getters with functions.
3469         Function calls were missing in couple places after that change.
3470
3471         Reviewed by Vsevolod Vlasov.
3472
3473         Tests: inspector/profiler/heap-snapshot-summary-sorting-fields.html
3474                inspector/profiler/heap-snapshot-summary-sorting-instances.html
3475
3476         * inspector/front-end/HeapSnapshot.js:
3477         (WebInspector.HeapSnapshotEdgesProvider.prototype.sort.compareNodeField):
3478
3479 2012-06-07  Alexander Pavlov  <apavlov@chromium.org>
3480
3481         Web Inspector: Consider Ctrl+Shift+key as valid zoom change combinations
3482         https://bugs.webkit.org/show_bug.cgi?id=88520
3483
3484         Reviewed by Vsevolod Vlasov.
3485
3486         * inspector/front-end/inspector.js:
3487         (WebInspector.documentKeyDown):
3488
3489 2012-06-07  Arvid Nilsson  <anilsson@rim.com>
3490
3491         [BlackBerry] Allow WebPageCompositor to blend a transparent web page
3492         https://bugs.webkit.org/show_bug.cgi?id=88233
3493
3494         Reviewed by Rob Buis.
3495
3496         RIM PR #159998
3497
3498         Add a parameter to LayerRenderer::compositeBuffer() indicating whether
3499         the buffer contents are opaque, and set the GL blend mode accordingly.
3500
3501         This is not currently testable using BlackBerry testing infrastructure.
3502
3503         Reviewed internally by Jakob Petsovits.
3504
3505         * platform/graphics/blackberry/LayerRenderer.cpp:
3506         (WebCore::LayerRenderer::compositeBuffer):
3507         * platform/graphics/blackberry/LayerRenderer.h:
3508         (LayerRenderer):
3509
3510 2012-06-07  Alexei Filippov  <alexeif@chromium.org>
3511
3512         Web Inspector: reuse edge_count field of heap snapshot to store retained size
3513         https://bugs.webkit.org/show_bug.cgi?id=88416
3514
3515         The edge_count field is unused after node first edge indexes have been built.
3516         Store node retained size in there instead of allocating an extra array for it.
3517
3518         Reviewed by Vsevolod Vlasov.
3519
3520         * inspector/front-end/HeapSnapshot.js:
3521         (WebInspector.HeapSnapshotNode.prototype.retainedSize):
3522         (WebInspector.HeapSnapshot.prototype._calculateRetainedSizes):
3523
3524 2012-06-07  Sheriff Bot  <webkit.review.bot@gmail.com>
3525
3526         Unreviewed, rolling out r119694.
3527         http://trac.webkit.org/changeset/119694
3528         https://bugs.webkit.org/show_bug.cgi?id=88529
3529
3530         it broke PrerenderBrowserTest.PrerenderHTML5VideoNetwork
3531         (Requested by loislo on #webkit).
3532
3533         * html/HTMLMediaElement.cpp:
3534         * html/HTMLMediaElement.h:
3535         (HTMLMediaElement):
3536         * html/canvas/CanvasRenderingContext.cpp:
3537         (WebCore::CanvasRenderingContext::wouldTaintOrigin):
3538         * platform/graphics/MediaPlayer.cpp:
3539         * platform/graphics/MediaPlayer.h:
3540         (MediaPlayer):
3541         * platform/graphics/MediaPlayerPrivate.h:
3542
3543 2012-06-07  Shinya Kawanaka  <shinyak@chromium.org>
3544