[Qt] Set WebCore imagedecoders as default and add fallback to QImageDecoder
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-05-04  Zoltan Horvath  <zoltan@webkit.org>
2
3         [Qt] Set WebCore imagedecoders as default and add fallback to QImageDecoder
4         https://bugs.webkit.org/show_bug.cgi?id=80400
5
6         This change modifies the default ImageDecoder for Qt-port from QImageDecoder to WebCore ImageDecoder.
7         The new behavior is to use QImageDecoder only if WebCoreImageDecoder doesn't support the requested
8         image type.
9         The WTF_USE_QT_IMAGE_DECODER macro has been removed, since it is no longer needed.
10
11         This change adds build depedency for libpng-dev and libjpeg-dev packages, becuase PNG and JPEG imagedecoders
12         need not only these libraries, but their headers also. Qmake-config tests for these libraries were
13         introduced in r110045.
14
15         Reviewed by Simon Hausmann.
16
17         No new tests needed.
18
19         * Target.pri: Move WebCore ImageDecoder files out of guards. Remove ImageFrameQt.cpp from sources.
20         * WebCore.pri: Move WebCore ImageDecoder include paths out of guards.
21         * platform/MIMETypeRegistry.cpp:
22         (WebCore::initializeSupportedImageMIMETypes): Add WebCore supported and Qt supported MIME types.
23         (WebCore::initializeSupportedImageMIMETypesForEncoding): Use Qt supported MIME types.
24         * platform/graphics/ImageSource.cpp: Remove unnecessary includes.
25         * platform/graphics/ImageSource.h: Remove unnecessary typedefs.
26         (WebCore):
27         * platform/graphics/qt/ImageDecoderQt.cpp:
28         (WebCore::ImageDecoderQt::filenameExtension): Remove unnecessary semicolon.
29         (WebCore::ImageDecoderQt::internalHandleCurrentImage): Use QImage and ImageFrame instead of QPixmap.
30         (WebCore):
31         (WebCore::ImageFrame::asNewNativeImage): Moved here from removed ImageFrameQt.cpp.
32         * platform/image-decoders/ImageDecoder.cpp: Reorganize the includes of the header.
33         (WebCore::ImageDecoder::create): Add platform macro guarded fallback case for QImageDecoder.
34         * platform/image-decoders/ImageDecoder.h: Remove Qt-specific codes.
35         (WebCore::ImageFrame::getAddr): Remove Qt-specific case, since it is no longer needed.
36         (ImageFrame):
37         * platform/image-decoders/qt/ImageFrameQt.cpp: Removed. Dead code, other code has been moved to
38         ImageDecoderQt.cpp.
39
40 2012-05-03  Ilya Tikhonovsky  <loislo@chromium.org>
41
42         Web Inspector: createRawLocationByURL is too slow if a big number of evals happen.
43         https://bugs.webkit.org/show_bug.cgi?id=85477
44
45         It iterates through all the _scripts even they have no url.
46         We can keep a separate map of scripts with url.
47
48         Reviewed by Yury Semikhatsky.
49
50         * inspector/front-end/DebuggerModel.js:
51         (WebInspector.DebuggerModel):
52         (WebInspector.DebuggerModel.prototype._globalObjectCleared):
53         (WebInspector.DebuggerModel.prototype._resetScriptsMap):
54         (WebInspector.DebuggerModel.prototype._parsedScriptSource):
55         (WebInspector.DebuggerModel.prototype.createRawLocationByURL):
56
57 2012-05-03  David Barr  <davidbarr@chromium.org>
58
59         Antialias single-edge solid borders
60         https://bugs.webkit.org/show_bug.cgi?id=85031
61
62         Reviewed by Simon Fraser.
63
64         Antialiasing is avoided for adjacent edges due to artifacts at the seam.
65         There are no such artifacts for single-edge borders so enable antialiasing.
66
67         Test: fast/css/border-solid-single-edge-antialias.html
68
69         * rendering/RenderBoxModelObject.cpp:
70         (WebCore::RenderBoxModelObject::paintBorder):
71
72 2012-05-03  Adam Barth  <abarth@webkit.org>
73
74         CSP: Eval isn't blocked in about:blank subframes
75         https://bugs.webkit.org/show_bug.cgi?id=85553
76
77         Reviewed by Eric Seidel.
78
79         ContentSecurityPolicy has a back pointer to ScriptExecutionContext.
80         That means we shouldn't share a single ContentSecurityPolicy object
81         between multiple ScriptExecutionContexts.  This patch copies the state
82         from one ScriptExecutionContext to another rather than sharing the
83         ContentSecurityPolicy object itself.
84
85         This resulted in a subtle but w.r.t. blocking eval.  Because we block
86         eval by setting a bit in the JavaScript engine when enforcing the
87         policy, that bit wasn't copied along with the rest of the state when we
88         were sharing the ContentSecurityPolicy object.  Now that we use the
89         more robust ContentSecurityPolicy::copyStateFrom function, we don't
90         have that bug.
91
92         Test: http/tests/security/contentSecurityPolicy/eval-blocked-in-about-blank-iframe.html
93
94         * dom/Document.cpp:
95         (WebCore::Document::initSecurityContext):
96         (WebCore):
97         (WebCore::Document::initContentSecurityPolicy):
98         * dom/Document.h:
99         (Document):
100         * dom/SecurityContext.cpp:
101         (WebCore::SecurityContext::setContentSecurityPolicy):
102         * dom/SecurityContext.h:
103         (SecurityContext):
104         * loader/FrameLoader.cpp:
105         (WebCore::FrameLoader::didBeginDocument):
106         * page/ContentSecurityPolicy.h:
107         (WebCore::ContentSecurityPolicy::create):
108
109 2012-05-03  Abhishek Arya  <inferno@chromium.org>
110
111         Regression(r113769): Crash in AudioNodeOutput::disconnectAllParams.
112         https://bugs.webkit.org/show_bug.cgi?id=85196
113
114         Reviewed by Chris Rogers.
115
116         RefPtr the AudioParam hashset in AudioNodeOutput to prevent accessing
117         destroyed entries.
118
119         No new tests. Unable to reproduce it in DRT.
120
121         * Modules/webaudio/AudioNodeOutput.cpp:
122         (WebCore::AudioNodeOutput::disconnectAllParams):
123         * Modules/webaudio/AudioNodeOutput.h:
124         (AudioNodeOutput):
125
126 2012-05-03  Noel Gordon  <noel.gordon@gmail.com>
127
128         PNGImageDecoder: Clean up rowAvailable() some more
129         https://bugs.webkit.org/show_bug.cgi?id=85464
130
131         Reviewed by Eric Seidel.
132
133         No new tests. Covered by existing tests: fast/images/png-extra-row-crash.html in
134         particular.
135
136         * platform/image-decoders/png/PNGImageDecoder.cpp:
137         (WebCore::PNGImageDecoder::rowAvailable): Use colorChannels consistently. Split
138         the useful libpng comments in two, then place the early-out code and conditions
139         inbetween. The png variable is only used in one place so move it there.
140
141 2012-05-03  Ojan Vafai  <ojan@chromium.org>
142
143         Histogram total allocated bytes in the arena in addition to the render tree size
144         https://bugs.webkit.org/show_bug.cgi?id=85537
145
146         Reviewed by Eric Seidel.
147
148         We only free bytes allocated to a RenderArena when destroying the Document.
149         Histogram both the render tree size and the total bytes allocated. This
150         gives a better sense of the overhead of RenderArena as well as giving a more
151         accurate number for the amount of actual memory used by the render tree.
152
153         No new tests. This is not webfacing, so this can't be tested without adding
154         API to layout test controller, which doesn't seem worth it for this code.
155
156         * page/Page.cpp:
157         (WebCore::Page::renderTreeSize):
158         (WebCore::Page::setVisibilityState):
159         * page/Page.h:
160         (Page):
161         * platform/Arena.cpp:
162         (WebCore::ArenaAllocate):
163         * platform/Arena.h:
164         (WebCore):
165         * rendering/RenderArena.cpp:
166         (WebCore::RenderArena::allocate):
167         * rendering/RenderArena.h:
168         (WebCore::RenderArena::totalRenderArenaAllocatedBytes):
169         (RenderArena):
170
171 2012-05-03  Mary Wu  <mary.wu@torchmobile.com.cn>
172
173         [BlackBerry] Add missed member in CrossThreadResourceRequestData
174         https://bugs.webkit.org/show_bug.cgi?id=85448
175
176         Reviewed by Antonio Gomes.
177
178         * platform/network/blackberry/ResourceRequest.h:
179         (CrossThreadResourceRequestData):
180         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
181         (WebCore::ResourceRequest::doPlatformCopyData):
182         (WebCore::ResourceRequest::doPlatformAdopt):
183
184 2012-05-03  Adam Barth  <abarth@webkit.org>
185
186         CSP shouldn't block about:blank for iframes
187         https://bugs.webkit.org/show_bug.cgi?id=85233
188
189         Reviewed by Eric Seidel.
190
191         As discussed at the W3C WebAppSec face-to-face meeting, there's no
192         point in blocking about:blank iframes or objects because blocking a
193         frame or object just results in displaying about:blank anyway.  This
194         patch just removes the spurious console message and violation report.
195
196         Test: http/tests/security/contentSecurityPolicy/frame-src-about-blank-allowed-by-default.html
197
198         * page/ContentSecurityPolicy.cpp:
199         (WebCore::ContentSecurityPolicy::allowObjectFromSource):
200         (WebCore::ContentSecurityPolicy::allowChildFrameFromSource):
201
202 2012-05-03  Sheriff Bot  <webkit.review.bot@gmail.com>
203
204         Unreviewed, rolling out r116040.
205         http://trac.webkit.org/changeset/116040
206         https://bugs.webkit.org/show_bug.cgi?id=85559
207
208         Broke a few IndexedDB browsertests (Requested by zhenyao on
209         #webkit).
210
211         * Modules/indexeddb/IDBCursor.cpp:
212         (WebCore::IDBCursor::direction):
213         * Modules/indexeddb/IDBCursor.h:
214         (IDBCursor):
215         * Modules/indexeddb/IDBCursor.idl:
216         * Modules/indexeddb/IDBDatabase.cpp:
217         (WebCore::IDBDatabase::transaction):
218         (WebCore):
219         * Modules/indexeddb/IDBDatabase.h:
220         * Modules/indexeddb/IDBDatabase.idl:
221         * Modules/indexeddb/IDBIndex.cpp:
222         (WebCore::IDBIndex::openCursor):
223         (WebCore::IDBIndex::openKeyCursor):
224         * Modules/indexeddb/IDBIndex.h:
225         (WebCore::IDBIndex::openCursor):
226         (WebCore::IDBIndex::openKeyCursor):
227         * Modules/indexeddb/IDBIndex.idl:
228         * Modules/indexeddb/IDBObjectStore.cpp:
229         (WebCore::IDBObjectStore::openCursor):
230         * Modules/indexeddb/IDBObjectStore.h:
231         (WebCore::IDBObjectStore::openCursor):
232         (IDBObjectStore):
233         * Modules/indexeddb/IDBObjectStore.idl:
234         * Modules/indexeddb/IDBRequest.cpp:
235         (WebCore::IDBRequest::IDBRequest):
236         (WebCore::IDBRequest::readyState):
237         (WebCore::IDBRequest::markEarlyDeath):
238         (WebCore::IDBRequest::resetReadyState):
239         (WebCore::IDBRequest::abort):
240         (WebCore::IDBRequest::finishCursor):
241         (WebCore::IDBRequest::onSuccess):
242         (WebCore::IDBRequest::stop):
243         * Modules/indexeddb/IDBRequest.h:
244         * Modules/indexeddb/IDBRequest.idl:
245         * Modules/indexeddb/IDBTransaction.cpp:
246         (WebCore::IDBTransaction::mode):
247         * Modules/indexeddb/IDBTransaction.h:
248         (IDBTransaction):
249         * Modules/indexeddb/IDBTransaction.idl:
250
251 2012-05-03  Raphael Kubo da Costa  <rakuco@webkit.org>
252
253         [CMake] Rewrite FindCairo.cmake.
254         https://bugs.webkit.org/show_bug.cgi?id=84895
255
256         Reviewed by Daniel Bates.
257
258         The old approach relied on pkg-config for finding Cairo (which
259         introduced a dependency on pkg-config that could be avoided), used
260         the LibFindMacros code that we should probably remove in the
261         future and did not use the FindPackageHandleStandardArguments
262         module.
263
264         Change all that by rewriting the module.
265         - Use the pkg-config output optionally instead of requiring it
266         like LibFindMacros did.
267         - Remove the implicit dependency on FreeType which often found it
268         the wrong way via pkg-config and without considering
269         CMAKE_PREFIX_PATH.
270         - Retrieve the Cairo version by looking at cairo-version.h instead
271         of relying on pkg-config. It requires some additional code for
272         checking if the desired version has been found, but that will not
273         be needed once we start depending on CMake 2.8.3 or later.
274
275         The only downside is that FPHSA sets <UPPERCASED_NAME>_FOUND
276         instead of <Name>_FOUND, and to keep things consistent
277         Cairo_LIBRARIES and Cairo_INCLUDE_DIRS have become CAIRO_LIBRARIES
278         and CAIRO_INCLUDE_DIRS.
279
280         No new tests, build system change.
281
282         * PlatformEfl.cmake: Use CAIRO_FOO instead of Cairo_FOO.
283
284 2012-05-03  Anders Carlsson  <andersca@apple.com>
285
286         Focus ring only appears in top-left tile
287         https://bugs.webkit.org/show_bug.cgi?id=85556
288         <rdar://problem/11359656>
289
290         Reviewed by Simon Fraser.
291
292         It is sufficient to just apply the current CTM to the clip rect and set that as the focus ring clip rect.
293
294         * platform/graphics/mac/WebLayer.mm:
295         (drawLayerContents):
296
297 2012-05-03  Alec Flett  <alecflett@chromium.org>
298
299         IndexedDB: Replace numeric constants with strings
300         https://bugs.webkit.org/show_bug.cgi?id=84894
301
302         Reviewed by Tony Chang.
303
304         Test: storage/indexeddb/legacy-constants.html
305
306         Update IDBObjectStore.openCursor, IDBIndex.openCursor,
307         IDBIndex.openKeyCursor, IDBDatabase.transaction,
308         IDBCursor.direction, IDBTransaction.mode, and
309         IDBRequest.readyState to meet the latest spec. All of these APIs
310         now support string-based values in addition to the
311         legacy/deprecated enum-based values.
312
313         * Modules/indexeddb/IDBCursor.cpp:
314         (WebCore):
315         (WebCore::IDBCursor::direction):
316         (WebCore::IDBCursor::stringToDirection):
317         (WebCore::IDBCursor::directionToString):
318         * Modules/indexeddb/IDBCursor.h:
319         (IDBCursor):
320         * Modules/indexeddb/IDBCursor.idl:
321         * Modules/indexeddb/IDBDatabase.cpp:
322         (WebCore::IDBDatabase::transaction):
323         (WebCore):
324         * Modules/indexeddb/IDBDatabase.h:
325         (IDBDatabase):
326         * Modules/indexeddb/IDBDatabase.idl:
327         * Modules/indexeddb/IDBIndex.cpp:
328         (WebCore::IDBIndex::openCursor):
329         (WebCore):
330         (WebCore::IDBIndex::openKeyCursor):
331         * Modules/indexeddb/IDBIndex.h:
332         (WebCore::IDBIndex::openCursor):
333         (IDBIndex):
334         (WebCore::IDBIndex::openKeyCursor):
335         * Modules/indexeddb/IDBIndex.idl:
336         * Modules/indexeddb/IDBObjectStore.cpp:
337         (WebCore::IDBObjectStore::openCursor):
338         (WebCore):
339         * Modules/indexeddb/IDBObjectStore.h:
340         (WebCore::IDBObjectStore::openCursor):
341         (IDBObjectStore):
342         * Modules/indexeddb/IDBObjectStore.idl:
343         * Modules/indexeddb/IDBRequest.cpp:
344         (WebCore::IDBRequest::IDBRequest):
345         (WebCore::IDBRequest::readyState):
346         (WebCore::IDBRequest::markEarlyDeath):
347         (WebCore::IDBRequest::resetReadyState):
348         (WebCore::IDBRequest::abort):
349         (WebCore::IDBRequest::finishCursor):
350         (WebCore::IDBRequest::onSuccess):
351         (WebCore::IDBRequest::stop):
352         * Modules/indexeddb/IDBRequest.h:
353         * Modules/indexeddb/IDBRequest.idl:
354         * Modules/indexeddb/IDBTransaction.cpp:
355         (WebCore):
356         (WebCore::IDBTransaction::mode):
357         (WebCore::IDBTransaction::stringToMode):
358         (WebCore::IDBTransaction::modeToString):
359         * Modules/indexeddb/IDBTransaction.h:
360         (IDBTransaction):
361         * Modules/indexeddb/IDBTransaction.idl:
362
363 2012-05-03  Sam Weinig  <sam@webkit.org>
364
365         Add an eventPhase NONE constant
366         https://bugs.webkit.org/show_bug.cgi?id=85397
367
368         Reviewed by Anders Carlsson.
369
370         Updates existing tests.
371
372         * dom/Event.h:
373         * dom/Event.idl:
374         Add NONE constant.
375
376 2012-05-03  Tony Chang  <tony@chromium.org>
377
378         Height overflow when nesting multiple new Flexbox'es.
379         https://bugs.webkit.org/show_bug.cgi?id=83572
380
381         Reviewed by Ojan Vafai.
382
383         Test: css3/flexbox/nested-stretch.html
384
385         * rendering/RenderFlexibleBox.cpp:
386         (WebCore::RenderFlexibleBox::computeAvailableFreeSpace):
387
388 2012-05-03  Julien Chaffraix  <jchaffraix@webkit.org>
389
390         ASSERT(!m_zOrderListsDirty) is triggering in Safari
391         https://bugs.webkit.org/show_bug.cgi?id=85512
392
393         Reviewed by Simon Fraser.
394
395         Unfortunately no test as I don't think the 2 cases are testable reliably.
396
397         A better fix would be to introduce some iterator that handle updating the
398         lists for you. For now, just adding the missing updateLayerListsIfNeeded()
399         calls.
400
401         * rendering/RenderLayerBacking.cpp:
402         (WebCore::RenderLayerBacking::hasVisibleNonCompositingDescendantLayers):
403         * rendering/RenderLayerCompositor.cpp:
404         (WebCore::RenderLayerCompositor::layerHas3DContent):
405
406 2012-05-03  Philip Rogers  <pdr@google.com>
407
408         Fix numeric precision issue in SVG animations
409         https://bugs.webkit.org/show_bug.cgi?id=85502
410
411         Reviewed by Dirk Schulze.
412
413         r93938 had a bug where floating point numbers where compared exactly,
414         exposing a bug when floating point precision was not sufficient. This
415         change compares against an epsilon value to get around these precision
416         issues.
417
418         Test: svg/animations/animate-end-attribute-numeric-precision.html
419
420         * svg/animation/SVGSMILElement.cpp:
421         (WebCore::SVGSMILElement::calculateAnimationPercentAndRepeat):
422
423 2012-05-03  Joshua Bell  <jsbell@chromium.org>
424
425         Fix coding style issues in IDBLevelDBCoding.cpp
426         https://bugs.webkit.org/show_bug.cgi?id=85536
427
428         Reviewed by Tony Chang.
429
430         No tests - just code formatting changes.
431
432         * Modules/indexeddb/IDBLevelDBCoding.cpp:
433         (WebCore::IDBLevelDBCoding::encodeIDBKey):
434         (WebCore::IDBLevelDBCoding::decodeIDBKey):
435         (WebCore::IDBLevelDBCoding::extractEncodedIDBKey):
436         (WebCore::IDBLevelDBCoding::compareEncodedIDBKeys):
437
438 2012-04-30  Filip Pizlo  <fpizlo@apple.com>
439
440         PageCache autorelease should not wait until 3 seconds and 42 pages
441         https://bugs.webkit.org/show_bug.cgi?id=85254
442         <rdar://problem/11349613>
443
444         Reviewed by Geoffrey Garen.
445
446         No new tests, since there is no change in behavior.
447
448         * history/PageCache.cpp:
449         (WebCore):
450         (WebCore::PageCache::PageCache):
451         (WebCore::PageCache::releaseAutoreleasedPagesNowDueToTimer):
452         * history/PageCache.h:
453         (PageCache):
454
455 2012-05-03  Levi Weintraub  <leviw@chromium.org>
456
457         Unreviewed build fix for Mac WK2. Adding a mistakenly removed symbol back to WebCore.exp.in.
458
459         * WebCore.exp.in:
460
461 2012-05-03  Levi Weintraub  <leviw@chromium.org>
462
463         Unreviewed build fix for Qt after 116009. No changes in behavior.
464
465         * rendering/RenderTreeAsText.cpp:
466         (WebCore::RenderTreeAsText::writeRenderObject):
467
468 2012-05-03  W. James MacLean  <wjmaclean@chromium.org>
469
470         [chromium] Revise touchpad fling curve to use exponential curve, to improve feel and small fling performance.
471         https://bugs.webkit.org/show_bug.cgi?id=85530
472
473         Reviewed by Kenneth Russell.
474
475         Existing unit tests updated for new curve.
476
477         Modifies TouchpadFLingGestureCurve to use an exponential, rather than polynomial, curve.
478         This change appears to improve the overall feel of touchpad fling, and substantially
479         improves small-fling performance.
480
481         * platform/TouchpadFlingPlatformGestureCurve.cpp:
482         (WebCore::TouchpadFlingPlatformGestureCurve::create):
483         (WebCore):
484         (WebCore::position):
485         (WebCore::velocity):
486         (WebCore::TouchpadFlingPlatformGestureCurve::TouchpadFlingPlatformGestureCurve):
487
488 2012-04-23  Levi Weintraub  <leviw@chromium.org> and Emil A Eklund <eae@chromium.org>
489
490         [meta] Switch away from integers representing pixels for layout/event handling/rendering
491         https://bugs.webkit.org/show_bug.cgi?id=60318
492
493         Reviewed by Eric Seidel.
494
495         Swapping the LayoutUnit backend to FractionalLayoutUnit from int.
496         
497         FractionalLayoutUnit is a new type that uses an integer to represent a fraction of a pixel.
498         We're also adding a feature flag -- ENABLE_SUBPIXEL_LAYOUT -- that toggles this fraction
499         between 1/1 and 1/60. Initially, all platforms will default to subpixel layout being off,
500         so FractionalLayoutUnits will effectively continue to act as integers.
501         
502         With ENABLE_SUBPIXEL_LAYOUT turned on, FractionalLayoutUnits accumulate error from sub-pixel
503         CSS values and applied zooming, and painting uses pixel-snapping to align these values
504         to pixels. See http://trac.webkit.org/wiki/LayoutUnit for details.
505
506         In a number of previous patches, LayoutUnits were plumbed throughout the rendering tree
507         to prepare for this change. This included a number of functions in LayoutTypes.h and
508         the IntRect/Point/Size classes that were effectively no-ops while LayoutUnits were
509         integers. Subsequent patches will remove unnecessary versions of these functions; see
510         http://webkit.org/b/84616 for tracking these changes.
511
512         Tests: fast/sub-pixel/client-width-height-snapping.html
513                fast/sub-pixel/layout-boxes-with-zoom.html
514                fast/sub-pixel/size-of-box-with-zoom.html
515
516         * WebCore.exp.in: Updating function signatures that expose FractionalLayoutUnits.
517         * WebCore.xcodeproj/project.pbxproj: Adding missing FractionalLayoutPoint.h header.
518         * css/CSSComputedStyleDeclaration.cpp:
519         (WebCore::zoomAdjustedPixelValue): Using adjustFloatForAbsoluteZoom instead of int
520         to make use of extra precision before returning the pixel value.
521         * css/CSSPrimitiveValue.cpp:
522         (WebCore::CSSPrimitiveValue::computeLength): No longer rounds for imprecise conversion
523         when sub-pixel layout is enabled.
524         (WebCore::CSSPrimitiveValue::customCssText): Returning integer values for pixels.
525         * dom/Element.cpp:
526         (WebCore::adjustForLocalZoom): Using rounding instead of incrementing the value before
527         adjusting to account for truncation when sub-pixel layout is enabled.
528         * page/SpatialNavigation.cpp:
529         (WebCore::distanceDataForNode): Using FractionalLayoutUnit::abs instead of std::abs.
530         * platform/FractionalLayoutUnit.h: Adding some missing operators and a flag around the
531         constant denominator to switch it between 1/1 and 1/60 depending on the feature flag.
532         * platform/Length.h: Changing the default type for value to float, and adding intValue
533         since this more closely matches usage in a sub-pixel layout world.
534         * platform/win/PopupMenuWin.cpp:
535         (WebCore::PopupMenuWin::paint): Using minimumIntValueForLength in this platform code
536         instead of LayoutUnits.
537         * rendering/InlineFlowBox.cpp:
538         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
539         * rendering/LayoutTypes.h: This file contains the actual switch for changing LayoutUnits
540         to be FractionalLayoutUnits. Also updating stub methods with their proper implementations.
541         * rendering/PaintInfo.h:
542         (WebCore::PaintInfo::infiniteRect): Ensuring the infiniteRect doesn't overflow the
543         FractionalLayoutUnit bounds.
544         * rendering/RenderBlockLineLayout.cpp:
545         (WebCore::RenderBlock::checkPaginationAndFloatsAtEndLine): Switch to
546         FractionalLayoutUnit's abs function instead of std::abs.
547         * rendering/RenderBoxModelObject.cpp:
548         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry): Add rounding for
549         setting the phase of the background geometry before applying modulo from the tile size.
550         * rendering/RenderDeprecatedFlexibleBox.cpp:
551         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox): Stop applying flex when
552         we have less than a pixel to distribute.
553         * rendering/RenderLayer.cpp:
554         (WebCore::RenderLayer::backgroundClipRect): Replace PaintInfo::infiniteRect with the
555         LayoutRect equivalent.
556         * rendering/RenderLineBoxList.cpp:
557         (WebCore::RenderLineBoxList::rangeIntersectsRect): Using FractionalLayoutUnit::abs
558         instead of std::abs.
559         * rendering/RenderObject.cpp:
560         (WebCore::RenderObject::repaintAfterLayoutIfNeeded): Ditto.
561         * rendering/RenderObject.h:
562         (WebCore): Removing unnecessary adjustForAbsoluteZoom function.
563         (WebCore::RenderObject::outlineSize): Outlines remain ints.
564         * rendering/RenderTableCell.cpp:
565         (WebCore::RenderTableCell::styleOrColLogicalWidth): Build fix. Using floats because
566         colWidthSum is a Length which uses floats.
567         * rendering/RenderThemeChromiumSkia.cpp:
568         (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton): Explicit templatization
569         for max.
570         * rendering/RenderTreeAsText.cpp: Adding code to minimize test expectation churn. It
571         may be worth outputting float values in test expectations, but this isn't done with
572         the inline box tree yet, either.
573         * rendering/RenderTreeAsText.h:
574         (WebCore): Adding a FractionalLayoutPoint operator.
575         * rendering/RenderWidget.cpp:
576         (WebCore::RenderWidget::updateWidgetGeometry): Adding missing pixel snapping, and switching
577         absoluteContentBox to an IntRect, as this is what boundingBox returns.
578         * rendering/svg/SVGRenderTreeAsText.cpp:
579         (WebCore::writePositionAndStyle): Adding an enclosingIntRect for consistency with old results.
580
581 <<<<<<< .mine
582 2012-05-03  Levi Weintraub  <leviw@chromium.org> and Emil A Eklund <eae@chromium.org>
583
584         [meta] Switch away from integers representing pixels for layout/event handling/rendering
585         https://bugs.webkit.org/show_bug.cgi?id=60318
586
587         Reviewed by Eric Seidel.
588
589         Swapping the LayoutUnit backend to FractionalLayoutUnit from int.
590         
591         FractionalLayoutUnit is a new type that uses an integer that can represent a fraction of a
592         pixel. The ENABLE_SUBPIXEL_LAYOUT feature flags toggles this fraction between 1/1 and 1/60.
593         Initially, all platforms will default to subpixel layout being off, so FractionalLayoutUnits
594         will effectively continue to act as integers.
595         
596         With ENABLE_SUBPIXEL_LAYOUT turned on, FractionalLayoutUnits accumulate error from sub-pixel
597         CSS values and applied zooming, and painting uses pixel-snapping to align these values
598         to pixels and prevent unwanted anti-aliasing. See http://trac.webkit.org/wiki/LayoutUnit for
599         details.
600
601         In a number of previous patches, LayoutUnits were plumbed throughout the rendering tree to
602         prepare for this change. This included a number of functions in LayoutTypes.h and the
603         IntRect/Point/Size classes that were effectively no-ops while LayoutUnits were integers. See
604         http://webkit.org/b/60318 for the exhaustive list of changes that were done in preparation
605         for this. Subsequent patches will remove unnecessary versions of these functions.
606         http://webkit.org/b/84616 tracks these changes.
607
608         Tests: fast/sub-pixel/client-width-height-snapping.html
609                fast/sub-pixel/layout-boxes-with-zoom.html
610                fast/sub-pixel/size-of-box-with-zoom.html
611
612         * WebCore.exp.in: Updating function signatures that expose FractionalLayoutUnits.
613         * WebCore.order: Ditto.
614         * WebCore.xcodeproj/project.pbxproj: Adding missing FractionalLayoutPoint.h header.
615         * css/CSSPrimitiveValue.cpp:
616         (WebCore::CSSPrimitiveValue::computeLength): No longer rounds for imprecise conversion
617         when sub-pixel layout is enabled.
618         * dom/Element.cpp:
619         (WebCore::adjustForLocalZoom): Using rounding instead of incrementing the value before
620         adjusting to account for truncation when sub-pixel layout is enabled.
621         * rendering/mathml/RenderMathMLBlock.cpp:
622         (WebCore): Fixing a static initializer build error by moving an integer constant to be
623         an int.
624         * rendering/LayoutTypes.h: This file contains the actual switch for changing LayoutUnits
625         to be FractionalLayoutUnits. Also updating stub methods with their proper implementations.
626         * rendering/PaintInfo.h:
627         (WebCore::PaintInfo::infiniteRect): Ensuring the infiniteRect doesn't overflow the
628         FractionalLayoutUnit bounds. LayoutRect::infiniteRect() is the largest rectangle that can
629         be represented using LayoutUnits.
630         * rendering/RenderLayer.h:
631         (WebCore::ClipRect::operator!=): Add overload of != to fix complaining compilers when
632         * rendering/RenderTreeAsText.cpp: Adding code to minimize test expectation churn. It
633         may be worth outputting float values in test expectations, but this isn't done with
634         the inline box tree yet, either.
635         * rendering/RenderTreeAsText.h:
636         (WebCore): Adding a FractionalLayoutPoint operator.
637         * rendering/svg/SVGRenderTreeAsText.cpp:
638         (WebCore::writePositionAndStyle):
639         (WebCore): Adding a FractionalLayoutPoint operator.
640
641 =======
642 2012-05-03  Anders Carlsson  <andersca@apple.com>
643
644         Move repaint counter drawing code out into a separate function
645         https://bugs.webkit.org/show_bug.cgi?id=85539
646
647         Reviewed by Simon Fraser.
648
649         The majority of code in TileCache::drawLayer deals with drawing the repaint counter. Move this code out
650         into a separate function to make it more clear what drawLayer does.
651
652         * platform/graphics/ca/mac/TileCache.h:
653         (TileCache):
654         * platform/graphics/ca/mac/TileCache.mm:
655         (WebCore::TileCache::drawLayer):
656         (WebCore::TileCache::drawRepaintCounter):
657         (WebCore):
658
659 2012-05-03  Simon Fraser  <simon.fraser@apple.com>
660
661         Compositing 'requiresOwnBackingStore' logic caused new clip rect assertions
662         https://bugs.webkit.org/show_bug.cgi?id=85455
663
664         Reviewed by Dean Jackson.
665         
666         r114283 added logic that allows compositing layers to avoid allocating their own
667         backing store and to paint into an ancestor instead. However, that caused
668         assertions in RenderLayer::updateClipRects() about m_clipRectsRoot being
669         incorrect, because clip rect code assumed that compositing layers
670         always painted themselves.
671         
672         Fixed by calling paintsIntoCompositedAncestor() in RenderLayer::clippingRoot(),
673         so that clip rect computation matches painting.
674
675         I wasn't able to easily make a test that reproduces the assertion in DRT.
676
677         * rendering/RenderLayer.cpp:
678         (WebCore::RenderLayer::clippingRoot):
679
680 2012-05-03  Tim Horton  <timothy_horton@apple.com>
681
682         REGRESSION(99539): SVG <img> disregards page scale and device scale
683         https://bugs.webkit.org/show_bug.cgi?id=77237
684         <rdar://problem/10767413>
685
686         Reviewed by Simon Fraser.
687
688         Rename SVGImageCache::SizeAndZoom to SVGImageCache::SizeAndScales, as it carries more than just zoom now.
689
690         Pass the product of the device and page scales through everything that takes a SVGImageCache::SizeAndScales,
691         using it to inflate the size of the buffer created in lookupOrCreateBitmapImageForRenderer,
692         and to inflate the destination rectangle passed to SVGImage::draw, which will cause a transformation
693         on the context being drawn into.
694
695         Invalidate the SVGImageCache entry on device/page scale changes in addition to zoom changes.
696
697         This patch does not cause SVGImageCache to take into account scale caused by CSS transforms; that is tracked
698         separately by https://bugs.webkit.org/show_bug.cgi?id=85335.
699
700         Tests: svg/as-image/image-respects-deviceScaleFactor.html
701                svg/as-image/image-respects-pageScaleFactor.html
702
703         * loader/cache/CachedImage.cpp:
704         (WebCore::CachedImage::setContainerSizeForRenderer):
705         (WebCore::CachedImage::imageSizeForRenderer):
706         * svg/graphics/SVGImage.cpp:
707         (WebCore::SVGImage::drawSVGToImageBuffer):
708         * svg/graphics/SVGImage.h:
709         * svg/graphics/SVGImageCache.cpp:
710         (WebCore::SVGImageCache::~SVGImageCache):
711         (WebCore::SVGImageCache::removeRendererFromCache):
712         (WebCore::SVGImageCache::setRequestedSizeAndScales):
713         (WebCore::SVGImageCache::requestedSizeAndScales):
714         (WebCore::SVGImageCache::redraw):
715         (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
716         * svg/graphics/SVGImageCache.h:
717         (WebCore::SVGImageCache::SizeAndScales::SizeAndScales):
718         (SizeAndScales):
719         (SVGImageCache):
720         (WebCore::SVGImageCache::ImageData::ImageData):
721         (ImageData):
722
723 2012-05-03  Fady Samuel  <fsamuel@chromium.org>
724
725         Removing line in computeViewportAttributes that enforces a minimum scale factor to never allow zooming out more than viewport
726         https://bugs.webkit.org/show_bug.cgi?id=70609
727
728         Reviewed by Kenneth Rohde Christiansen.
729
730         Make Viewport Attributes' layoutSize be a FloatRect to avoid rounding
731         too early, and the occasional off by one fixed layout dimensions.
732
733         * dom/ViewportArguments.cpp:
734         (WebCore::computeViewportAttributes):
735         * dom/ViewportArguments.h:
736         (ViewportAttributes):
737
738 2012-05-03  Joshua Bell  <jsbell@chromium.org>
739
740         IndexedDB: Handle generated keys up to 2^53
741         https://bugs.webkit.org/show_bug.cgi?id=85114
742
743         The spec defines the behavior for generated keys up to 2^53
744         (the maximum integer storable as an ECMAScript number) and
745         the error case when going beyond that. Ensure that we can
746         handle values up to that point and generate errors beyond.
747
748         Reviewed by Tony Chang.
749
750         Test: storage/indexeddb/key-generator.html
751
752         * Modules/indexeddb/IDBBackingStore.h:
753         (IDBBackingStore):
754         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
755         (WebCore::IDBLevelDBBackingStore::nextAutoIncrementNumber):
756         * Modules/indexeddb/IDBLevelDBBackingStore.h:
757         (IDBLevelDBBackingStore):
758         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
759         (WebCore::IDBObjectStoreBackendImpl::putInternal):
760         (WebCore::IDBObjectStoreBackendImpl::genAutoIncrementKey):
761         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
762         (IDBObjectStoreBackendImpl):
763
764 2012-05-03  Simon Fraser  <simon.fraser@apple.com>
765
766         Remove RenderLayerCompositor::didStartAcceleratedAnimation()
767         https://bugs.webkit.org/show_bug.cgi?id=85514
768
769         Reviewed by Antti Koivisto.
770         
771         Remove RenderLayerCompositor::didStartAcceleratedAnimation(), which is no longer
772         needed.
773
774         Code removal, no new tests.
775
776         * rendering/RenderLayerBacking.cpp:
777         (WebCore::RenderLayerBacking::startAnimation):
778         (WebCore::RenderLayerBacking::startTransition):
779         * rendering/RenderLayerCompositor.cpp:
780         * rendering/RenderLayerCompositor.h:
781
782 2012-05-03  Andreas Kling  <kling@webkit.org>
783
784         REGRESSION(r111387): CSSOM representation of 'background-image' values should be CSSPrimitiveValue.
785         <http://webkit.org/b/85500>
786
787         Reviewed by Antti Koivisto.
788
789         Use the cloneForCSSOM() mechanism in CSSValue to expose CSSImageValue to bindings as a URI
790         primitive value. This matches the specced behavior of computed image values, and restores our
791         previous behavior without having CSSImageValue subclass CSSPrimitiveValue.
792
793         Also added a failsafe return after the isCSSOMSafe() assertion in the JSC bindings, since it's
794         better to expose an incorrect return value than an insecurely shared one, should we have or add
795         bugs in this code.
796
797         * bindings/js/JSCSSValueCustom.cpp:
798         (WebCore::toJS):
799         * css/CSSImageValue.cpp:
800         (WebCore::CSSImageValue::cloneForCSSOM):
801         * css/CSSImageValue.h:
802         * css/CSSValue.cpp:
803         (WebCore::CSSValue::cloneForCSSOM):
804
805 2012-05-03  Keishi Hattori  <keishi@webkit.org>
806
807         Crash in HTMLFormControlElement::m_fieldSetAncestor
808         https://bugs.webkit.org/show_bug.cgi?id=85453
809
810         Reviewed by Kent Tamura.
811
812         Modified tests: fast/forms/datalist/datalist-child-validation.html
813                         fast/forms/form-control-element-crash.html
814
815         * html/HTMLFormControlElement.cpp:
816         (WebCore::HTMLFormControlElement::removedFrom): Only set the invalid ancestor flag.
817         The element will be detached from the document so there is no need to update the style.
818         And the validation message will be hidden by the blur event.
819         (WebCore::HTMLFormControlElement::willValidate): Because of the change to removedFrom,
820         m_ancestorsValid may be false.
821
822 2012-05-03  Simon Fraser  <simon.fraser@apple.com>
823
824         Keep overlap testing for compositing on pages with 3d transforms when possible
825         https://bugs.webkit.org/show_bug.cgi?id=62487
826
827         Reviewed by Antti Koivisto.
828         
829         Change RenderLayerCompositor to always use overlap testing when possible.
830
831         Rather than turn off overlap testing wholesale when encountering a non-affine
832         transform, or starting an accelerated transform animation, we constrain
833         the disabling of overlap testing to within overflow:hidden areas when possible.
834
835         Tests: compositing/layer-creation/overlap-animation.html
836                compositing/layer-creation/overlap-transforms.html
837
838         * rendering/RenderLayerBacking.cpp:
839         (WebCore::RenderLayerBacking::setCompositedBounds): Whitespace fix.
840         * rendering/RenderLayerCompositor.cpp:
841         (WebCore::CompositingState::CompositingState):
842         (CompositingState): Add a member boolean to track whether we're testing overlap. Add a copy
843         constructor.
844         (WebCore::RenderLayerCompositor::updateCompositingLayers): Initialize the 'testing overlap'
845         setting based on m_compositingConsultsOverlap (though this will always be true until removed
846         in a future commit).
847         (WebCore::RenderLayerCompositor::updateBacking): No longer turn off overlap testing
848         when we see a non-affine transform.
849         (WebCore::RenderLayerCompositor::computeCompositingRequirements): No need for the 'struct'
850         in the arguments.
851         Consult compositingState.m_testingOverlap to see if we want to test overlap.
852         Use the new CompositingState copy ctor for childState, but set m_subtreeIsCompositing to false
853         as before.
854         If this layer is composited, look to see if need to disable over lap testing based on
855         the transform or an animation.
856         Just as we propagate m_subtreeIsCompositing, we have to propagate m_testingOverlap=false
857         for the rest of the traverse.
858         If we've just processed a layer which clips compositing descendants, we can go back
859         to testing for overlap.
860         (WebCore::RenderLayerCompositor::didStartAcceleratedAnimation): No need to do anything
861         here now. It will be removed in future.
862         (WebCore::RenderLayerCompositor::hasNonAffineTransform): No longer check
863         perspective here, since that doesn't affect whether _this_ layer should disable
864         overlap testing. Checking for a non-affine transform is sufficient.
865         (WebCore::RenderLayerCompositor::isRunningAcceleratedTransformAnimation):
866         New method to check if AnimationController is running a transform animation.
867         * rendering/RenderLayerCompositor.h:
868         (RenderLayerCompositor):
869
870 2012-05-03  Chris Fleizach  <cfleizach@apple.com>
871
872         accessibility/misspelled-attributed-string.html test sometimes throws exceptions
873         https://bugs.webkit.org/show_bug.cgi?id=85081
874
875         Reviewed by Darin Adler.
876
877         Add in more range checking in case we get back ranges from spell checking that are wrong.
878
879         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
880         (AXAttributeStringSetFont):
881         (AXAttributeStringSetColor):
882         (AXAttributeStringSetNumber):
883         (AXAttributeStringSetBlockquoteLevel):
884         (AXAttributeStringSetHeadingLevel):
885         (AXAttributeStringSetElement):
886
887 2012-05-03  Pavel Feldman  <pfeldman@chromium.org>
888
889         Web Inspector: move canonical mime type calculation to Resource
890         https://bugs.webkit.org/show_bug.cgi?id=85507
891
892         Reviewed by Yury Semikhatsky.
893
894         Drive-by: small refactoring that prepares code for formatter extraction.
895
896         * inspector/front-end/BreakpointsSidebarPane.js:
897         * inspector/front-end/DebuggerModel.js:
898         (WebInspector.DebuggerModel.prototype.createLiveLocation):
899         (WebInspector.DebuggerModel.prototype.rawLocationToUILocation):
900         * inspector/front-end/DebuggerPresentationModel.js:
901         (WebInspector.DebuggerPresentationModelResourceBinding.prototype._uiSourceCodeForResource):
902         * inspector/front-end/NetworkManager.js:
903         (WebInspector.NetworkDispatcher.prototype._createNetworkRequest):
904         (get WebInspector):
905         * inspector/front-end/Resource.js:
906         (WebInspector.Resource.prototype.requestContent):
907         (WebInspector.Resource.prototype.canonicalMimeType):
908         (WebInspector.Resource.prototype._innerRequestContent.callback):
909         (WebInspector.Resource.prototype._innerRequestContent):
910         * inspector/front-end/ResourceView.js:
911         (WebInspector.ResourceSourceFrame.prototype.requestContent):
912         (WebInspector.ResourceSourceFrame.prototype._contentChanged):
913
914 2012-05-03  Yury Semikhatsky  <yurys@chromium.org>
915
916         Web Inspector: 'expires' value is incorrect for cookies
917         https://bugs.webkit.org/show_bug.cgi?id=85489
918
919         Reviewed by Pavel Feldman.
920
921         Fixed cookie 'expires' property type from integer to number so that
922         we don't lose precision when assembling Cookie parameter in InspectorResourceAgent.
923
924         * inspector/Inspector.json:
925
926 2012-05-03  Dan Bernstein  <mitz@apple.com>
927
928         highlight for Ruby text is mispositioned in the Web Inspector
929         https://bugs.webkit.org/show_bug.cgi?id=82684
930
931         Reviewed by Simon Fraser.
932
933         Tests: fast/writing-mode/flipped-blocks-inline-map-local-to-container-expected.html
934                fast/writing-mode/flipped-blocks-inline-map-local-to-container.html
935
936         In flipped blocks writing modes, flipping was being applied twice to box descendants of
937         inline children of the flipped block, once during RenderBox::mapLocalToContainer, and then
938         again by RenderInline::mapLocalToContainer. The fix is to make the latter only apply the
939         flip to local coordinates originating in the inline or a descendant inline. This is done
940         by adding a parameter of type ApplyContainerFlipOrNot, which defaults to ApplyContainerFlip
941         but is reset to DoNotApplyContainerFlip in recursive calls into mapLocalToContainer().
942
943         * rendering/RenderBox.cpp:
944         (WebCore::RenderBox::mapLocalToContainer): Added ApplyContainerFlipOrNot parameter, passing
945         DoNotApplyContainerFlip when recursing into the container.
946         * rendering/RenderBox.h:
947
948         * rendering/RenderInline.cpp:
949         (WebCore::RenderInline::mapLocalToContainer): Added ApplyContainerFlipOrNot paramerer, and
950         made the flipping conditional on its value.
951
952         * rendering/RenderInline.h:
953
954         * rendering/RenderObject.cpp:
955         (WebCore::RenderObject::mapLocalToContainer): Added ApplyContainerFlipOrNot parameter,
956         passing DoNotApplyContainerFlip when recursing into the container.
957         (WebCore::RenderObject::localToContainerQuad): Pass ApplyContainerFlip.
958         (WebCore::RenderObject::localToContainerPoint): Ditto.
959         * rendering/RenderObject.h:
960
961         * rendering/RenderView.cpp:
962         (WebCore::RenderView::mapLocalToContainer): Added ApplyContainerFlipOrNot parameter.
963         * rendering/RenderView.h:
964
965         * rendering/svg/RenderSVGForeignObject.cpp:
966         (WebCore::RenderSVGForeignObject::mapLocalToContainer): Ditto.
967         * rendering/svg/RenderSVGForeignObject.h:
968
969         * rendering/svg/RenderSVGInline.cpp:
970         (WebCore::RenderSVGInline::mapLocalToContainer): Ditto.
971         * rendering/svg/RenderSVGInline.h:
972
973         * rendering/svg/RenderSVGModelObject.cpp:
974         (WebCore::RenderSVGModelObject::mapLocalToContainer): Ditto.
975         * rendering/svg/RenderSVGModelObject.h:
976
977         * rendering/svg/RenderSVGRoot.cpp:
978         (WebCore::RenderSVGRoot::mapLocalToContainer): Ditto.
979         * rendering/svg/RenderSVGRoot.h:
980
981         * rendering/svg/RenderSVGText.cpp:
982         (WebCore::RenderSVGText::mapLocalToContainer): Ditto.
983         * rendering/svg/RenderSVGText.h:
984
985         * rendering/svg/SVGRenderSupport.cpp:
986         (WebCore::SVGRenderSupport::mapLocalToContainer): Pass DoNotApplyContainerFlip when
987         recursing into the parent.
988
989 2012-05-03  Pavel Feldman  <pfeldman@chromium.org>
990
991         Web Inspector: make Script a ContentProvider.
992         https://bugs.webkit.org/show_bug.cgi?id=85486
993
994         Reviewed by Yury Semikhatsky.
995
996         This allows us to get rid of the corresponding content provider wrapper.
997
998         * inspector/front-end/ContentProviders.js:
999         * inspector/front-end/RawSourceCode.js:
1000         (WebInspector.RawSourceCode.prototype._createContentProvider):
1001         * inspector/front-end/Script.js:
1002         (WebInspector.Script.prototype.contentURL):
1003         (WebInspector.Script.prototype.requestContent.didGetScriptSource):
1004         (WebInspector.Script.prototype.requestContent):
1005         * inspector/front-end/SnippetsModel.js:
1006         (WebInspector.SnippetsScriptMapping.prototype._createUISourceCodeForScript):
1007
1008 2012-05-03  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
1009
1010         Remove extra checks for empty string when parsing CSS value
1011         https://bugs.webkit.org/show_bug.cgi?id=85480
1012
1013         Reviewed by Alexis Menard.
1014
1015         Each parse value helper function was checking whether the value string was empty. For the
1016         common case this check is already done by StylePropertySet::setProperty(). So this patch
1017         make CSSParser::parseValue() assume the value string is not empty, and fix the other two
1018         clients.
1019
1020         Test: fast/html/font-face-empty-should-not-crash.html
1021
1022         * css/CSSParser.cpp:
1023         (WebCore::parseColorValue): Replace the string empty check by an ASSERT() to document
1024         function's expectations.
1025         (WebCore::parseSimpleLengthValue): Ditto.
1026         (WebCore::parseKeywordValue): Ditto.
1027         (WebCore::CSSParser::parseFontFaceValue): This will be covered by the added test.
1028         (WebCore::CSSParser::parseValue):
1029         * css/WebKitCSSMatrix.cpp:
1030         (WebCore::WebKitCSSMatrix::setMatrixValue): This is already covered by
1031         transforms/cssmatrix-2d-interface.xhtml.
1032
1033 2012-05-03  Arpita Bahuguna  <arpitabahuguna@gmail.com>
1034
1035         Broken handling of pseudo-elements in selectors API
1036         https://bugs.webkit.org/show_bug.cgi?id=83446
1037
1038         Reviewed by Antti Koivisto.
1039
1040         Test: fast/dom/Window/querySelectorAll-with-pseudo-elements.html
1041
1042         * css/SelectorChecker.cpp:
1043         (WebCore::SelectorChecker::SelectorChecker):
1044         Setting the default value for the enum member m_mode to ResolvingStyle.
1045
1046         (WebCore::SelectorChecker::checkSelector):
1047         Instead of verifying against the bool m_isCollectingRulesOnly, we now check whether or not
1048         m_mode is set to ResolvingStyle.
1049
1050         (WebCore::SelectorChecker::checkOneSelector):
1051         Instead of verifying against the bool m_isCollectingRulesOnly, we now check whether or not
1052         m_mode is set to ResolvingStyle. Also, for the pseudo-elements case we check if its
1053         value is set to QueryingRules in which case we return false.
1054
1055         * css/SelectorChecker.h:
1056         (WebCore::SelectorChecker::mode):
1057         Returns the mode (m_mode) value.
1058
1059         (WebCore::SelectorChecker::setMode):
1060         Sets the mode (m_mode) to the passed enum value.
1061
1062         * css/StyleResolver.cpp:
1063         (WebCore::StyleResolver::sortAndTransferMatchedRules):
1064         (WebCore::StyleResolver::collectMatchingRulesForList):
1065         Retrieves SelectorChecker's mode value.
1066
1067         * dom/SelectorQuery.cpp:
1068         (WebCore::SelectorQuery::SelectorQuery):
1069         Sets SelectorChecker's mode to QueryingRules.
1070
1071         * html/shadow/ContentSelectorQuery.cpp:
1072         (WebCore::ContentSelectorQuery::ContentSelectorQuery):
1073         Sets SelectorChecker's mode to CollectingRules.
1074
1075 2012-05-03  Pavel Feldman  <pfeldman@chromium.org>
1076
1077         Web Inspector: EXC_BAD_ACCESS in DOM breakpoint processing code.
1078         https://bugs.webkit.org/show_bug.cgi?id=85482
1079
1080         Reviewed by Yury Semikhatsky.
1081
1082         0 check added since we are guaranteed to get immediate parent, but not the whole ancestor tree.
1083
1084         * inspector/InspectorDOMDebuggerAgent.cpp:
1085         (WebCore::InspectorDOMDebuggerAgent::descriptionForDOMEvent):
1086
1087 2012-05-03  Ilya Tikhonovsky  <loislo@chromium.org>
1088
1089         Web Inspector: compile time ambiguity happens when I try to assign a TypeBuilder object to an out argument.
1090         https://bugs.webkit.org/show_bug.cgi?id=85462
1091
1092         It happens because we have type casting operators for both types RefPtr<*Type*> and PassRefPtr<*Type*>.
1093         I think we can drop PassRefPtr type casting operator and use a named function 'release'.
1094
1095         Reviewed by Yury Semikhatsky.
1096
1097         * inspector/CodeGeneratorInspector.py:
1098         * inspector/ContentSearchUtils.cpp:
1099         (WebCore::ContentSearchUtils::buildObjectForSearchMatch):
1100         * inspector/InspectorApplicationCacheAgent.cpp:
1101         (WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCache):
1102         * inspector/InspectorPageAgent.cpp:
1103         (WebCore::buildObjectForCookie):
1104         (WebCore::buildObjectForSearchResult):
1105         * inspector/InspectorResourceAgent.cpp:
1106         (WebCore::buildObjectForTiming):
1107         (WebCore::InspectorResourceAgent::buildInitiatorObject):
1108         * inspector/ScriptCallFrame.cpp:
1109         (WebCore::ScriptCallFrame::buildInspectorObject):
1110
1111 2012-05-03  Yury Semikhatsky  <yurys@chromium.org>
1112
1113         Web Inspector: crash in InspectorResourceAgent::didReceiveWebSocketFrame
1114         https://bugs.webkit.org/show_bug.cgi?id=85394
1115
1116         Reviewed by Pavel Feldman.
1117
1118         Pass string length explicitely when creating String object from non-null-terminated
1119         char* strings.
1120
1121         * inspector/InspectorResourceAgent.cpp:
1122         (WebCore):
1123         (WebCore::InspectorResourceAgent::didReceiveWebSocketFrame):
1124         (WebCore::InspectorResourceAgent::didSendWebSocketFrame):
1125
1126 2012-05-03  'Pavel Feldman'  <pfeldman@chromium.org>
1127
1128         Not reviewed: never surround InspectorInstrumentation:: with ENABLED(INSPECTOR)
1129
1130         * dom/ContainerNode.cpp:
1131         (WebCore::ContainerNode::insertBefore):
1132         (WebCore::ContainerNode::replaceChild):
1133         (WebCore::ContainerNode::appendChild):
1134         (WebCore::dispatchChildRemovalEvents):
1135
1136 2012-04-30  Pavel Feldman  <pfeldman@chromium.org>
1137
1138         Web Inspector: migrate breakpoint manager to live locations.
1139         https://bugs.webkit.org/show_bug.cgi?id=85136
1140
1141         Reviewed by Yury Semikhatsky.
1142
1143         - Merges Breakpoint and UIBreakpoint to have single instance
1144         - Extracts storage from the breakpoint manager
1145         - Makes breakpoint manager use source mapping from the script, not the presentation model
1146         - Removes breakpoints collection from the UISourceCode
1147         Unfortunately, there are too many inter-dependencies that require that these changes are done simultaneously.
1148
1149         * inspector/front-end/BreakpointManager.js:
1150         (WebInspector.BreakpointManager):
1151         (WebInspector.BreakpointManager.prototype.setBreakpoint):
1152         (WebInspector.BreakpointManager.prototype.breakpoint):
1153         (WebInspector.BreakpointManager.prototype.breakpointLocationsForUISourceCode):
1154         (WebInspector.BreakpointManager.prototype.removeAllBreakpoints):
1155         (WebInspector.BreakpointManager.prototype.reset):
1156         (WebInspector.BreakpointManager.prototype.debuggerReset):
1157         (WebInspector.BreakpointManager.prototype._breakpointResolved):
1158         (WebInspector.BreakpointManager.prototype._removeBreakpoint):
1159         (WebInspector.BreakpointManager.prototype._uiLocationAdded):
1160         (WebInspector.BreakpointManager.prototype._uiLocationRemoved):
1161         (WebInspector.BreakpointManager.prototype.storage):
1162         (WebInspector.BreakpointManager.Breakpoint):
1163         (WebInspector.BreakpointManager.Breakpoint.prototype.primaryUILocation):
1164         (WebInspector.BreakpointManager.Breakpoint.prototype._addResolvedLocation):
1165         (WebInspector.BreakpointManager.Breakpoint.prototype.enabled):
1166         (WebInspector.BreakpointManager.Breakpoint.prototype.setEnabled):
1167         (WebInspector.BreakpointManager.Breakpoint.prototype.condition):
1168         (WebInspector.BreakpointManager.Breakpoint.prototype.setCondition):
1169         (WebInspector.BreakpointManager.Breakpoint.prototype._updateBreakpoint):
1170         (WebInspector.BreakpointManager.Breakpoint.prototype.remove):
1171         (WebInspector.BreakpointManager.Breakpoint.prototype._setInDebugger.didSetBreakpoint):
1172         (WebInspector.BreakpointManager.Breakpoint.prototype._setInDebugger):
1173         (WebInspector.BreakpointManager.Breakpoint.prototype._removeFromDebugger):
1174         (WebInspector.BreakpointManager.Breakpoint.prototype._resetLocations):
1175         (WebInspector.BreakpointManager.Breakpoint.prototype._breakpointStorageId):
1176         (WebInspector.BreakpointManager.Breakpoint.prototype._fakeBreakpointAtPrimaryLocation):
1177         (WebInspector.BreakpointManager.Storage.get this):
1178         (WebInspector.BreakpointManager.Storage):
1179         (WebInspector.BreakpointManager.Storage.prototype.restoreBreakpoints):
1180         (WebInspector.BreakpointManager.Storage.prototype._updateBreakpoint):
1181         (WebInspector.BreakpointManager.Storage.prototype._removeBreakpoint):
1182         (WebInspector.BreakpointManager.Storage.prototype._save):
1183         (set WebInspector.BreakpointManager.Storage.Item):
1184         * inspector/front-end/BreakpointsSidebarPane.js:
1185         (WebInspector.JavaScriptBreakpointsSidebarPane):
1186         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointAdded.didRequestContent):
1187         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointAdded):
1188         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointRemoved):
1189         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype.highlightBreakpoint):
1190         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._createBreakpointItemId):
1191         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointClicked):
1192         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointCheckboxClicked):
1193         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointContextMenu):
1194         * inspector/front-end/DebuggerModel.js:
1195         (WebInspector.DebuggerModel):
1196         (WebInspector.DebuggerModel.prototype.breakpointsActive):
1197         (WebInspector.DebuggerModel.prototype.createLiveLocation):
1198         * inspector/front-end/DebuggerPresentationModel.js:
1199         (WebInspector.DebuggerPresentationModel.prototype._handleUISourceCodeListChanged):
1200         (WebInspector.DebuggerPresentationModelResourceBinding.prototype._setContentWithInitialContent):
1201         * inspector/front-end/JavaScriptSource.js:
1202         (WebInspector.JavaScriptSource):
1203         (WebInspector.JavaScriptSource.prototype.consoleMessagesCleared):
1204         * inspector/front-end/JavaScriptSourceFrame.js:
1205         (WebInspector.JavaScriptSourceFrame):
1206         (WebInspector.JavaScriptSourceFrame.prototype.canEditSource):
1207         (WebInspector.JavaScriptSourceFrame.prototype.editContent):
1208         (WebInspector.JavaScriptSourceFrame.prototype._onContentChanged):
1209         (WebInspector.JavaScriptSourceFrame.prototype.populateLineGutterContextMenu):
1210         (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
1211         (WebInspector.JavaScriptSourceFrame.prototype.didEditContent):
1212         (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
1213         (WebInspector.JavaScriptSourceFrame.prototype._onMouseDown):
1214         (WebInspector.JavaScriptSourceFrame.prototype._editBreakpointCondition.finishEditing):
1215         (WebInspector.JavaScriptSourceFrame.prototype._editBreakpointCondition):
1216         (WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
1217         (WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
1218         (WebInspector.JavaScriptSourceFrame.prototype.onTextViewerContentLoaded):
1219         (WebInspector.JavaScriptSourceFrame.prototype._setBreakpoint):
1220         (WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
1221         (WebInspector.JavaScriptSourceFrame.prototype._updateBreakpointsAfterLiveEdit):
1222         * inspector/front-end/Script.js:
1223         (WebInspector.Script.prototype.rawLocationToUILocation):
1224         * inspector/front-end/ScriptsPanel.js:
1225         (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
1226         (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
1227         (WebInspector.ScriptsPanel.prototype._debuggerPaused.else.didGetUILocation):
1228         (WebInspector.ScriptsPanel.prototype._debuggerPaused):
1229         (WebInspector.ScriptsPanel.prototype._uiSourceCodeReplaced):
1230         * inspector/front-end/UISourceCode.js:
1231         (WebInspector.UISourceCode.prototype.contentChanged):
1232
1233 2012-05-03  Andrey Kosyakov  <caseq@chromium.org>
1234
1235         Unreviewed attemp to fix chromium win build broken at r115943.
1236
1237         * notifications/NotificationClient.h:
1238         (WebCore):
1239
1240 2012-05-03  Vivek Galatage  <vivekgalatage@gmail.com>
1241
1242         Linker warnings due to duplicate symbols for SimplifyMarkupCommand.cpp on Windows
1243         https://bugs.webkit.org/show_bug.cgi?id=85467
1244
1245         Reviewed by Ryosuke Niwa.
1246
1247         Removed the multiple inclusion of the file SimplifyMarkupCommand.cpp 
1248
1249         No new tests required.
1250
1251         * WebCore.vcproj/WebCore.vcproj:
1252
1253 2012-05-03  Uday Kiran  <udaykiran@motorola.com>
1254
1255         CSS clip: auto clips to box borders instead of removing clipping
1256         https://bugs.webkit.org/show_bug.cgi?id=36772
1257
1258         Reviewed by Andreas Kling.
1259
1260         According to CSS 2.1 spec, http://www.w3.org/TR/CSS2/visufx.html#propdef-clip,
1261         clip property with value 'auto' the element does not clip.
1262         Also getPropertyValue for clip when auto is specified should return "auto"
1263         and not "rect(0px 0px 0px 0px)".
1264
1265         Tests: css2.1/20110323/clip-001-expected.html
1266                css2.1/20110323/clip-001.html
1267
1268         * css/StyleBuilder.cpp:
1269         (WebCore::ApplyPropertyClip::applyValue):
1270
1271 2012-05-02  Antti Koivisto  <antti@apple.com>
1272
1273         Add temporary feature define for parsed stylesheet caching
1274         https://bugs.webkit.org/show_bug.cgi?id=85413
1275
1276         Rubber-stamped by Nikolas Zimmermann.
1277
1278         While not an externally visible feature this is still a significant internal change.
1279         It is good to have define in case someone has an urgent need to turn it off.
1280         
1281         Caching is enabled by default on all platforms. The define should be removed after some bake time.
1282
1283         * html/HTMLLinkElement.cpp:
1284         (WebCore::HTMLLinkElement::setCSSStyleSheet):
1285
1286 2012-05-03  Nikolas Zimmermann  <nzimmermann@rim.com>
1287
1288         Accumulation for values-animation is broken
1289         https://bugs.webkit.org/show_bug.cgi?id=85158
1290
1291         Reviewed by Zoltan Herczeg.
1292
1293         Follow-up patch: Add const Foo& foo() const accessors to SVGAnimatedType,
1294         to avoid the "Foo& foo = animated->foo()" idiom in all cases where we
1295         don't need to mutate 'foo'. Use "const Foo& foo = animated->foo()" instead.
1296         Inline all of these methods to avoid the function call overhead.
1297
1298         For to-animations we actually mutated the from value before, but it wasn't a
1299         problem in practive, as we did that on every animation step. Fully avoid these
1300         inconsitencies by never mutating the from/to types stored in SVGAnimateElement.
1301
1302         Cache toAtEndOfDurationType just like m_toType/m_fromType in SVGAnimateElement,
1303         to avoid reconstructing it on every animation step.
1304
1305         No new tests, only design/performance fixes.
1306
1307         * svg/SVGAnimateElement.cpp:
1308         (WebCore::SVGAnimateElement::calculateAnimatedValue):
1309         (WebCore::SVGAnimateElement::calculateToAtEndOfDurationValue):
1310         (WebCore::SVGAnimateElement::targetElementWillChange):
1311         * svg/SVGAnimateElement.h:
1312         (SVGAnimateElement):
1313         * svg/SVGAnimateMotionElement.cpp:
1314         (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
1315         (WebCore::SVGAnimateMotionElement::calculateToAtEndOfDurationValue):
1316         (WebCore::SVGAnimateMotionElement::calculateFromAndToValues):
1317         (WebCore::SVGAnimateMotionElement::calculateFromAndByValues):
1318         (WebCore::SVGAnimateMotionElement::calculateAnimatedValue):
1319         * svg/SVGAnimateMotionElement.h:
1320         (SVGAnimateMotionElement):
1321         * svg/SVGAnimatedAngle.cpp:
1322         (WebCore::SVGAnimatedAngleAnimator::addAnimatedTypes):
1323         (WebCore::SVGAnimatedAngleAnimator::calculateAnimatedValue):
1324         * svg/SVGAnimatedBoolean.cpp:
1325         (WebCore::SVGAnimatedBooleanAnimator::calculateAnimatedValue):
1326         * svg/SVGAnimatedColor.cpp:
1327         (WebCore::SVGAnimatedColorAnimator::calculateAnimatedValue):
1328         * svg/SVGAnimatedEnumeration.cpp:
1329         (WebCore::SVGAnimatedEnumerationAnimator::calculateAnimatedValue):
1330         * svg/SVGAnimatedInteger.cpp:
1331         (WebCore::SVGAnimatedIntegerAnimator::calculateAnimatedValue):
1332         * svg/SVGAnimatedIntegerOptionalInteger.cpp:
1333         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::addAnimatedTypes):
1334         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateAnimatedValue):
1335         * svg/SVGAnimatedLength.cpp:
1336         (WebCore::SVGAnimatedLengthAnimator::addAnimatedTypes):
1337         (WebCore::SVGAnimatedLengthAnimator::calculateAnimatedValue):
1338         * svg/SVGAnimatedLengthList.cpp:
1339         (WebCore::SVGAnimatedLengthListAnimator::addAnimatedTypes):
1340         (WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
1341         * svg/SVGAnimatedNumber.cpp:
1342         (WebCore::SVGAnimatedNumberAnimator::calculateAnimatedValue):
1343         * svg/SVGAnimatedNumberList.cpp:
1344         (WebCore::SVGAnimatedNumberListAnimator::addAnimatedTypes):
1345         (WebCore::SVGAnimatedNumberListAnimator::calculateAnimatedValue):
1346         * svg/SVGAnimatedNumberOptionalNumber.cpp:
1347         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::addAnimatedTypes):
1348         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::calculateAnimatedValue):
1349         * svg/SVGAnimatedPath.cpp:
1350         (WebCore::SVGAnimatedPathAnimator::calculateAnimatedValue):
1351         * svg/SVGAnimatedPointList.cpp:
1352         (WebCore::SVGAnimatedPointListAnimator::addAnimatedTypes):
1353         (WebCore::SVGAnimatedPointListAnimator::calculateAnimatedValue):
1354         * svg/SVGAnimatedPreserveAspectRatio.cpp:
1355         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::calculateAnimatedValue):
1356         * svg/SVGAnimatedRect.cpp:
1357         (WebCore::SVGAnimatedRectAnimator::calculateAnimatedValue):
1358         * svg/SVGAnimatedString.cpp:
1359         (WebCore::SVGAnimatedStringAnimator::calculateAnimatedValue):
1360         * svg/SVGAnimatedTransformList.cpp:
1361         (WebCore::SVGAnimatedTransformListAnimator::addAnimatedTypes):
1362         (WebCore::SVGAnimatedTransformListAnimator::calculateAnimatedValue):
1363         * svg/SVGAnimatedType.cpp:
1364         * svg/SVGAnimatedType.h:
1365         (WebCore::SVGAnimatedType::angleAndEnumeration):
1366         (SVGAnimatedType):
1367         (WebCore::SVGAnimatedType::boolean):
1368         (WebCore::SVGAnimatedType::color):
1369         (WebCore::SVGAnimatedType::enumeration):
1370         (WebCore::SVGAnimatedType::integer):
1371         (WebCore::SVGAnimatedType::integerOptionalInteger):
1372         (WebCore::SVGAnimatedType::length):
1373         (WebCore::SVGAnimatedType::lengthList):
1374         (WebCore::SVGAnimatedType::number):
1375         (WebCore::SVGAnimatedType::numberList):
1376         (WebCore::SVGAnimatedType::numberOptionalNumber):
1377         (WebCore::SVGAnimatedType::path):
1378         (WebCore::SVGAnimatedType::pointList):
1379         (WebCore::SVGAnimatedType::preserveAspectRatio):
1380         (WebCore::SVGAnimatedType::rect):
1381         (WebCore::SVGAnimatedType::string):
1382         (WebCore::SVGAnimatedType::transformList):
1383         * svg/SVGAnimationElement.cpp:
1384         (WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
1385         (WebCore::SVGAnimationElement::startedActiveInterval):
1386         (WebCore::SVGAnimationElement::updateAnimation):
1387         * svg/SVGAnimationElement.h:
1388         (WebCore::SVGAnimationElement::adjustFromToListValues):
1389         (WebCore::SVGAnimationElement::animateDiscreteType):
1390         (SVGAnimationElement):
1391
1392 2012-05-02  Alexander Færøy  <ahf@0x90.dk>
1393
1394         Rename deviceDPI to devicePixelRatio
1395         https://bugs.webkit.org/show_bug.cgi?id=85049
1396
1397         Reviewed by Kenneth Rohde Christiansen.
1398
1399         No new tests added since this is a minor refactoring with no changes
1400         that should affect tests.
1401
1402         * page/Settings.cpp:
1403         (WebCore::Settings::Settings):
1404         * page/Settings.h:
1405         (WebCore::Settings::setDevicePixelRatio):
1406         (WebCore::Settings::devicePixelRatio):
1407         (Settings):
1408
1409 2012-05-03  Nikolas Zimmermann  <nzimmermann@rim.com>
1410
1411         Fix multiple begin values support - especially with seeking through setCurrentTime
1412         https://bugs.webkit.org/show_bug.cgi?id=85372
1413
1414         Reviewed by Zoltan Herczeg.
1415
1416         Multiple begin values aka. begin="0s; 2s" aren't correctly handled - resulting in broken & unexpected behavior.
1417         Supporting seeking properly on documents containing such animations is very important, otherwise we can't reliable
1418         test animations using either reftests or the SVG JS animation test framework.
1419
1420         Testcase:
1421         <rect height="100" fill="green">
1422             <animate attributeName="width" begin="0s; 2s" dur="8s" from="0" to="100" fill="freeze"/>
1423         </rect>
1424
1425         What's expected?
1426         Two times should be contained in the 'begin' times list in SVGSMILElement: m_beginTimes = { 0s, 2s }.
1427         The initial first resolved interval is: m_intervalBegin=0.0s, m_intervalEnd=8.0s.
1428
1429         During t=0s..1.9999s the m_intervalBegin/m_intervalEnd are correct.
1430         At t=2s, a new interval can be started. m_intervalEnd should be set to nextBeginTime, where nextBeginTime=2s.
1431         The current interval should get cropped to: m_intervalBegin=0s, m_intervalEnd=2s. The following call to
1432         resolveNextInterval() sees that elapsed >= m_intervalEnd, and thus moves on to the next interval.
1433         m_intervalBegin should be 2s and m_intervalEnd=10s after that.
1434
1435         In trunk this behavior is only partly implemented and broken. Especially broken together with seeking via SVGSVGElement.setCurrentTime.
1436         That's because we don't correctly seek to the right interval in case of multiple begin values, eg. if we sample an animation with
1437         begin="0s; 3s" dur="6s" we always remain in the first interval and don't move on.
1438
1439         Fix all of these issues, making lots more tests work in Dr. Olaf Hofmanns SVG Animation test suite.
1440
1441         Tests: svg/animations/multiple-begin-additive-animation.html
1442                svg/animations/multiple-begin-animation-discrete-expected.svg
1443                svg/animations/multiple-begin-animation-discrete.svg
1444                svg/animations/multiple-begin-animation-expected.svg
1445                svg/animations/multiple-begin-animation.svg
1446
1447         * svg/animation/SMILTimeContainer.cpp:
1448         (WebCore::SMILTimeContainer::begin):
1449         (WebCore::SMILTimeContainer::setElapsed):
1450         (WebCore::SMILTimeContainer::updateAnimations):
1451         * svg/animation/SMILTimeContainer.h:
1452         (SMILTimeContainer):
1453         * svg/animation/SVGSMILElement.cpp:
1454         (WebCore::SVGSMILElement::findInstanceTime):
1455         (WebCore::SVGSMILElement::resolveInterval):
1456         (WebCore::SVGSMILElement::resolveNextInterval):
1457         (WebCore):
1458         (WebCore::SVGSMILElement::checkRestart):
1459         (WebCore::SVGSMILElement::seekToIntervalCorrespondingToTime):
1460         (WebCore::SVGSMILElement::progress):
1461         * svg/animation/SVGSMILElement.h:
1462         (SVGSMILElement):
1463
1464 2012-05-03  Dana Jansens  <danakj@chromium.org>
1465
1466         [chromium] Don't add small opaque areas to the occlusion tracker's Region
1467         https://bugs.webkit.org/show_bug.cgi?id=85297
1468
1469         Reviewed by Adrienne Walker.
1470
1471         Don't add small opaque areas (smaller than 160x160) to the occlusion
1472         tracker's Region objects to avoid high Region::unite() costs.
1473
1474         We would like Region to just be fast enough that this isn't a concern,
1475         and there are patches in flight to do this, but at the moment, small
1476         opaque areas add significant cost if there is many of them, for
1477         potentially small gains since they do not cover entire tiles.
1478
1479         Comments in http://code.google.com/p/chromium/issues/detail?id=124687
1480         motivate this approach for now, and point to around 160x160 being
1481         a reasonable threshold.
1482
1483         Removes the opaque paint tracking flag while we're here. The flag is
1484         no longer used, and was broken when we moved the "paint vs opaque
1485         flag" distinction out to the layers.
1486
1487         Unit test: CCOcclusionTrackerTestMinimumTrackingSize
1488
1489         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1490         (WebCore::CCLayerTreeHost::paintLayerContents):
1491         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1492         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
1493         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
1494         (WebCore::::CCOcclusionTrackerBase):
1495         (WebCore::addOcclusionBehindLayer):
1496         (WebCore::::markOccludedBehindLayer):
1497         * platform/graphics/chromium/cc/CCOcclusionTracker.h:
1498         (WebCore::CCOcclusionTrackerBase::setMinimumTrackingSize):
1499         (CCOcclusionTrackerBase):
1500         (WebCore::CCOcclusionTrackerBase::preferredMinimumTrackingSize):
1501
1502 2012-05-02  Jon Lee  <jonlee@apple.com>
1503
1504         Migrate permission functions to Notification from NotificationCenter
1505         https://bugs.webkit.org/show_bug.cgi?id=80485
1506         <rdar://problem/10965458>
1507
1508         Reviewed by Jian Li.
1509
1510         * notifications/Notification.idl: Add permission functions.
1511         * notifications/DOMWindowNotifications.idl: Wrap webkitNotifications as part of legacy API.
1512
1513         * notifications/Notification.cpp: New permission functions are wrapped with ENABLE(NOTIFICATIONS)
1514         (WebCore::Notification::taskTimerFired): Use the new permission functions to determine whether we can show the
1515         notification.
1516         (WebCore::Notification::permissionLevel):
1517         (WebCore::Notification::permissionString): Declare three static locals for each of the values, and return
1518         based on the permission enum.
1519         (WebCore::Notification::requestPermission): Forward request to client.
1520         * notifications/Notification.h:
1521
1522         * notifications/NotificationPermissionCallback.h: Added.
1523         (NotificationPermissionCallback):
1524         (WebCore::NotificationPermissionCallback::~NotificationPermissionCallback):
1525         * notifications/NotificationPermissionCallback.idl: Added.
1526
1527         * notifications/NotificationCenter.cpp: Wrap permission functions in ENABLE(LEGACY_NOTIFICATIONS)
1528         * notifications/NotificationCenter.h: Wrap permission functions in ENABLE(LEGACY_NOTIFICATIONS)
1529         * notifications/NotificationCenter.idl: Refactor conditionals to make the center available only when
1530         ENABLE(LEGACY_NOTIFICATIONS) is on.
1531         * notifications/NotificationPresenter.h:
1532         (WebCore::NotificationPresenter::requestPermission): Add new requestPermission() function for new
1533         NotificationPermissionCallback type. Make it a stub implementation until all ports have adopted.
1534
1535         * notifications/NotificationClient.h: Add another requestPermission() client call, wrapped in
1536         ENABLE(NOTIFICATIONS) that accepts the NotificationPermissionCallback. Wrap the original one in
1537         ENABLE(LEGACY_NOTIFICATIONS).
1538
1539         * bindings/js/JSDesktopNotificationsCustom.cpp: Change to include the implementation only in
1540         ENABLE(LEGACY_NOTIFICATIONS).
1541         * bindings/js/JSNotificationsCustom.cpp: Custom implementation of requestPermission().
1542         * bindings/v8/custom/V8NotificationCustom.cpp: Custom implementation of requestPermission().
1543
1544         * notifications/WorkerContextNotifications.idl: Make webktNotifications available only in legacy API.
1545         * CMakeLists.txt: Add new callback idl.
1546         * DerivedSources.make: Add new callback idl.
1547         * DerivedSources.pri: Add new callback idl.
1548         * GNUmakefile.list.am: Add NotificationPermissionCallback files.
1549         * Target.pri: Include JSNotificationCustom.cpp, V8NotificationCustom.cpp
1550         * UseJSC.cmake: Include JSNotificationCustom.cpp
1551         * UseV8.cmake: Include V8NotificationCustom.cpp
1552         * WebCore.gypi: Include JSNotificationCustom.cpp, V8NotificationCustom.cpp, JSNotificationPermissionCallback.{h,cpp}
1553         * WebCore.vcproj/WebCore.vcproj: Include JSNotificationCustom.cpp, JSNotificationPermissionCallback.{h,cpp}
1554         * WebCore.exp.in: Export permissionString().
1555         * WebCore.xcodeproj/project.pbxproj: Add callback idl, h, and cpp files.
1556
1557 2012-05-02  Sheriff Bot  <webkit.review.bot@gmail.com>
1558
1559         Unreviewed, rolling out r115907.
1560         http://trac.webkit.org/changeset/115907
1561         https://bugs.webkit.org/show_bug.cgi?id=85458
1562
1563         It broke all viewport tests on Qt and on GTK (Requested by
1564         Ossy on #webkit).
1565
1566         * dom/ViewportArguments.cpp:
1567         (WebCore::computeViewportAttributes):
1568         * dom/ViewportArguments.h:
1569         (ViewportAttributes):
1570
1571 2012-05-02  Gustavo Noronha Silva  <gns@gnome.org>
1572
1573         [GTK] Finish moving modules into libWebCoreModules.la
1574         https://bugs.webkit.org/show_bug.cgi?id=85449
1575
1576         Unreviewed build fix.
1577
1578         * GNUmakefile.list.am: move remaining modules source files into the
1579         libWebCoreModules library, this should fix the problems people had
1580         building the 1.9.1 tarball with unpatched make.
1581
1582 2012-05-02  Dongwoo Im  <dw.im@samsung.com>
1583
1584         [EFL] Unreviewed, Fix build break when WEB_AUDIO is enabled.
1585         https://bugs.webkit.org/show_bug.cgi?id=85443
1586
1587         Unreviewed build fix.
1588
1589         Three new files were added in the Modules/webaudio directory.
1590         These files should be included into the CMakeLists.txt file.
1591
1592         * CMakeLists.txt: Add the newly created files into the CMakeLists.txt
1593
1594 2012-05-02  Eric Seidel  <eric@webkit.org>
1595
1596         Sort ENABLE_ defines in FeatureDefines.xcconfig files to make them easier to compare with one another (and easier to autogenerate)
1597         https://bugs.webkit.org/show_bug.cgi?id=85433
1598
1599         Reviewed by Adam Barth.
1600
1601         I have a script which can autogenerate these xcconfig files as well as the
1602         vsprops files (and soon the Chromium, cmake, gnumake and qmake) feature lists
1603         from a central feature list file.
1604         In preparation for posting such a tool, I'm re-sorting these xcconfig files to be
1605         alphabetically ordered (currently they're close, but not quite).
1606         There is also at least one inconsistency between these files (CSS_LEGACY_PREFIXES) which
1607         I will fix in a second pass.  I will also sort the FEATURE_DEFINES = line in a follow-up patch.
1608
1609         * Configurations/FeatureDefines.xcconfig:
1610
1611 2012-05-02  Dana Jansens  <danakj@chromium.org>
1612
1613         [chromium] Don't occlude pixels in a surface that are needed for a background filter blur
1614         https://bugs.webkit.org/show_bug.cgi?id=84317
1615
1616         Reviewed by Adrienne Walker.
1617
1618         Blur filters move pixels around, so a pixel can influence the value of
1619         pixels at some distance away. If a pixel is not occluded, then all
1620         pixels within the radius of the blur may influence the value of that
1621         pixel, so they should also stay unoccluded.
1622
1623         For background filters, the pixels are read from the filter's target
1624         surface, so we remove occlusion from that target surface from pixels
1625         that will blur into visible pixels.
1626
1627         Unit test: CCOcclusionTrackerTestDontOccludePixelsNeededForBackgroundFilter
1628                    CCOcclusionTrackerTestTwoBackgroundFiltersReduceOcclusionTwice
1629                    CCOcclusionTrackerTestDontOccludePixelsNeededForBackgroundFilterWithClip
1630                    CCOcclusionTrackerTestDontReduceOcclusionBelowBackgroundFilter
1631                    CCOcclusionTrackerTestDontReduceOcclusionIfBackgroundFilterIsOccluded
1632                    CCOcclusionTrackerTestReduceOcclusionWhenBackgroundFilterIsPartiallyOccluded
1633
1634         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
1635         (WebCore::reduceOcclusion):
1636         (WebCore):
1637         (WebCore::reduceOcclusionBelowSurface):
1638         (WebCore::::leaveToTargetRenderSurface):
1639         (WebCore::::unoccludedContributingSurfaceContentRect):
1640         * platform/graphics/chromium/cc/CCOcclusionTracker.h:
1641         (CCOcclusionTrackerBase):
1642         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
1643         (WebCore::CCQuadCuller::appendSurface):
1644         (WebCore::CCQuadCuller::appendReplica):
1645
1646 2012-05-02  Levi Weintraub  <leviw@chromium.org>
1647
1648         Convert FractionalLayoutUnit overflow assertions to stderr warnings
1649         https://bugs.webkit.org/show_bug.cgi?id=85393
1650
1651         Reviewed by Eric Seidel.
1652
1653         Writing warnings to stderr when FractionalLayoutUnits overflow on debug builds instead of asserting
1654         and crashing. It can be very useful to WebKit developers know when overflow is occurring, but it's
1655         not always a programming error, so assert wasn't the right action.
1656
1657         No new tests. No change in behavior.
1658
1659         * platform/FractionalLayoutUnit.h:
1660         (WebCore):
1661         (WebCore::FractionalLayoutUnit::FractionalLayoutUnit):
1662         (WebCore::FractionalLayoutUnit::toUnsigned):
1663         (WebCore::FractionalLayoutUnit::setRawValue):
1664
1665 2012-04-18  Jon Honeycutt  <jhoneycutt@apple.com>
1666
1667         FrameLoaderClient::dispatchWillSendSubmitEvent() should be given more
1668         information about the form being submitted
1669         https://bugs.webkit.org/show_bug.cgi?id=84297
1670
1671         Reviewed by Andy Estes.
1672
1673         * html/HTMLFormElement.cpp:
1674         (WebCore::HTMLFormElement::prepareForSubmission):
1675         Get the form field names and values, and use them to create a FormState
1676         object. Pass this object when calling dispatchWillSendSubmitEvent().
1677         (WebCore::HTMLFormElement::getTextFieldValues):
1678         Loop over the associated elements, looking for <input> elements.
1679         Collect their names and values.
1680
1681         * html/HTMLFormElement.h:
1682         Declare getTextFieldData().
1683
1684         * loader/EmptyClients.h:
1685         (WebCore::EmptyFrameLoaderClient::dispatchWillSendSubmitEvent):
1686         Updated declaration for new parameter type.
1687
1688         * loader/FrameLoaderClient.h:
1689         Updated declaration of dispatchWillSendSubmitEvent() for new param
1690         type.
1691
1692 2012-04-13  Jon Honeycutt  <jhoneycutt@apple.com>
1693
1694         Make Page::setDefersLoading() have a call count so that each time
1695         loading is deferred, it must be balanced with a call to resume.
1696         https://bugs.webkit.org/show_bug.cgi?id=84522
1697
1698         Reviewed by Andy Estes.
1699
1700         * page/Page.cpp:
1701         (WebCore::Page::Page):
1702         Initialize new call count member.
1703         (WebCore::Page::setDefersLoading):
1704         Check whether the callers wants balanced defer/resume loading behavior.
1705         If the call count is not changing from 0 to 1 or 1 to 0, return early.
1706         Otherwise, defer or resume loading for frames in this page.
1707
1708         * page/Page.h:
1709         (WebCore::Page::defersLoading):
1710         Added a member to hold the call count.
1711
1712         * page/Settings.cpp:
1713         (WebCore::Settings::Settings):
1714         Initialized new member m_wantsBalancedSetDefersLoadingBehavior.
1715
1716         * page/Settings.h:
1717         (Settings):
1718         Added new member m_wantsBalancedSetDefersLoadingBehavior.
1719         (WebCore::Settings::setWantsBalancedSetDefersLoadingBehavior):
1720         Setter.
1721         (WebCore::Settings::wantsBalancedSetDefersLoadingBehavior):
1722         Getter.
1723
1724 2012-05-02  Ojan Vafai  <ojan@chromium.org>
1725
1726         Add a histogram for rendertree size
1727         https://bugs.webkit.org/show_bug.cgi?id=85226
1728
1729         Reviewed by Eric Seidel.
1730
1731         We record it when the page gets hidden, since this is a point
1732         at which, in theory, we could kill the rendertree.
1733
1734         No new tests. This isn't web visible, so there's no way to test it.
1735
1736         * loader/FrameLoader.cpp:
1737         (WebCore::FrameLoader::clear):
1738         * page/Page.cpp:
1739         (WebCore::Page::renderTreeSize):
1740         (WebCore):
1741         (WebCore::Page::setVisibilityState):
1742         * page/Page.h:
1743         (Page):
1744         * platform/HistogramSupport.cpp:
1745         (WebCore::HistogramSupport::histogramCustomCounts):
1746         (WebCore):
1747         * platform/HistogramSupport.h:
1748         (HistogramSupport):
1749         * platform/chromium/HistogramSupportChromium.cpp:
1750         (WebCore::HistogramSupport::histogramCustomCounts):
1751         (WebCore):
1752
1753 2012-05-02  Sheriff Bot  <webkit.review.bot@gmail.com>
1754
1755         Unreviewed, rolling out r115902.
1756         http://trac.webkit.org/changeset/115902
1757         https://bugs.webkit.org/show_bug.cgi?id=85441
1758
1759         Compile failure on linux 32 (Requested by zhenyao on #webkit).
1760
1761         * Modules/indexeddb/IDBBackingStore.h:
1762         (IDBBackingStore):
1763         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
1764         (WebCore::IDBLevelDBBackingStore::nextAutoIncrementNumber):
1765         * Modules/indexeddb/IDBLevelDBBackingStore.h:
1766         (IDBLevelDBBackingStore):
1767         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
1768         (WebCore::IDBObjectStoreBackendImpl::putInternal):
1769         (WebCore::IDBObjectStoreBackendImpl::genAutoIncrementKey):
1770         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
1771         (IDBObjectStoreBackendImpl):
1772
1773 2012-05-02  Julien Chaffraix  <jchaffraix@webkit.org>
1774
1775         Add ASSERTs to avoid querying dirtied z-index or normal flow lists on RenderLayer
1776         https://bugs.webkit.org/show_bug.cgi?id=84920
1777
1778         Reviewed by Simon Fraser.
1779
1780         Covered by existing tests in Debug (at least several time!).
1781
1782         This change adds some ASSERTs on RenderLayer that prevent any use of its lists if they
1783         are dirtied.
1784
1785         On top of this change, we added an invariant that non-stacking contexts should have their
1786         z-index lists NULL (instead of empty or NULL previously). This is enforced at
1787         updateZOrderLists time as we now ensure that it is called in a timely manner.
1788
1789         * rendering/RenderLayer.cpp:
1790         (WebCore::RenderLayer::calculateLayerBounds):
1791         Added call to updateLayersIfNeeded as we will query them later and there is no guarantee
1792         that they are not dirty (we recurse in our children as part of calculateLayerBounds).
1793         This was causing the new ASSERTs to trigger on css3/filter/ tests.
1794
1795         (WebCore::RenderLayer::dirtyZOrderLists):
1796         Added a comment as to why we can't ASSERT that we are in a stacking context here.
1797
1798         (WebCore::RenderLayer::rebuildZOrderLists):
1799         Added an ASSERT that we only rebuild z-index lists for dirtied stacking context.
1800
1801         (WebCore::RenderLayer::updateLayerListsIfNeeded):
1802         Updated to ensure that the reflection layer has its layers updated too. This was triggering
1803         the new ASSERTs on fast/runins/run-in-layer-not-removed-crash.html.
1804
1805         (WebCore::RenderLayer::updateCompositingAndLayerListsIfNeeded):
1806         Updated to use the new isDirtyStackingContext function.
1807
1808         * rendering/RenderLayer.h:
1809         (WebCore::RenderLayer::isDirtyStackingContext):
1810         New helper function. Also made updateLayerListsIfNeeded() the only way
1811         to update layer. That should prevent any misuse.
1812
1813         (WebCore::RenderLayer::posZOrderList):
1814         (WebCore::RenderLayer::negZOrderList):
1815         (WebCore::RenderLayer::normalFlowList):
1816         ASSERT that we don't query any of the previous lists if they are dirty. Also
1817         enforce the invariant that non-stacking contexts should have NULL z-index lists.
1818
1819         (WebCore::RenderLayer::clearZOrderLists):
1820         New function to clearZOrderLists so that we can enfore the previous invariant.
1821
1822         (WebCore::RenderLayer::updateZOrderLists):
1823         Updated to clear the dirty flag and the z-index lists for non-stacking context.
1824
1825         * rendering/RenderLayerCompositor.cpp:
1826         (WebCore::RenderLayerCompositor::addToOverlapMapRecursive):
1827         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
1828         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
1829         Removed the explicit ASSERTs.
1830
1831         (WebCore::RenderLayerCompositor::updateLayerTreeGeometry):
1832         (WebCore::RenderLayerCompositor::canBeComposited):
1833         Disabled compositing on RenderLayer in flow thread. Because flow thread's
1834         RenderLayer are not collected as part of RenderLayer's lists and could be composited,
1835         this was causing the new ASSERTs to trigger (e.g. on fast/regions/webkit-flow-renderer-layer.html).
1836
1837         * rendering/RenderTreeAsText.cpp:
1838         (WebCore::writeLayers):
1839         Updated to use updateLayerListsIfNeeded().
1840
1841 2012-05-02  Levi Weintraub  <leviw@chromium.org>
1842
1843         Remove unused adjustForAbsoluteZoom method in RenderObject.h
1844         https://bugs.webkit.org/show_bug.cgi?id=85396
1845
1846         Reviewed by Eric Seidel.
1847
1848         We only want to use the integer adjustForAbsoluteZoom method, so this remnant is both unused
1849         and potentially confusing.
1850
1851         No new tests. Removing unused code.
1852
1853         * rendering/RenderObject.h:
1854         (WebCore):
1855
1856 2012-05-02  Fady Samuel  <fsamuel@chromium.org>
1857
1858         Removing line in computeViewportAttributes that enforces a minimum scale factor to never allow zooming out more than viewport
1859         https://bugs.webkit.org/show_bug.cgi?id=70609
1860
1861         Reviewed by Kenneth Rohde Christiansen.
1862
1863         Make ViewportAttributes' layoutSize be a FloatRect to avoid rounding
1864         too early, and the occasional off by one fixed layout dimensions.
1865
1866         * dom/ViewportArguments.cpp:
1867         (WebCore::computeViewportAttributes):
1868         * dom/ViewportArguments.h:
1869         (ViewportAttributes):
1870
1871 2012-05-02  Joshua Bell  <jsbell@chromium.org>
1872
1873         IndexedDB: Handle generated keys up to 2^53
1874         https://bugs.webkit.org/show_bug.cgi?id=85114
1875
1876         The spec defines the behavior for generated keys up to 2^53
1877         (the maximum integer storable as an ECMAScript number) and
1878         the error case when going beyond that. Ensure that we can
1879         handle values up to that point and generate errors beyond.
1880
1881         Reviewed by Tony Chang.
1882
1883         Test: storage/indexeddb/key-generator.html
1884
1885         * Modules/indexeddb/IDBBackingStore.h:
1886         (IDBBackingStore):
1887         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
1888         (WebCore::IDBLevelDBBackingStore::nextAutoIncrementNumber):
1889         * Modules/indexeddb/IDBLevelDBBackingStore.h:
1890         (IDBLevelDBBackingStore):
1891         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
1892         (WebCore::IDBObjectStoreBackendImpl::putInternal):
1893         (WebCore::IDBObjectStoreBackendImpl::genAutoIncrementKey):
1894         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
1895         (IDBObjectStoreBackendImpl):
1896
1897 2012-05-02  Adam Klein  <adamk@chromium.org>
1898
1899         Childlist mutations in shadow DOM should be observable with MutationObservers
1900         https://bugs.webkit.org/show_bug.cgi?id=85402
1901
1902         Reviewed by Ojan Vafai.
1903
1904         Though Mutation Events are not supported in Shadow DOM,
1905         MutationObservers are supposed to be. Due to a misplacement of the
1906         ChildListMutationScope, they were erroneously getting skipped.
1907
1908         This patch moves code around to properly notify when childlist are
1909         mutated in shadow DOM and covers that change with a new test.
1910
1911         Test: fast/mutation/shadow-dom.html
1912
1913         * dom/ContainerNode.cpp:
1914         (WebCore::willRemoveChild): Handle notification of removal directly.
1915         (WebCore::willRemoveChildren): ditto.
1916         (WebCore::dispatchChildInsertionEvents): Remove notification of insertion.
1917         (WebCore::dispatchChildRemovalEvents): Remove notification of removal.
1918         (WebCore::updateTreeAfterInsertion): Handle notification of insertion directly.
1919
1920 2012-05-02  Eric Carlson  <eric.carlson@apple.com>
1921
1922         Crash in WebCore::TextTrackList::remove
1923         https://bugs.webkit.org/show_bug.cgi?id=85095
1924
1925         Reviewed by Maciej Stachowiak.
1926
1927         Test: media/track/track-remove-quickly.html
1928
1929         * html/HTMLMediaElement.cpp:
1930         (WebCore::HTMLMediaElement::willRemoveTrack): Return immediately if the tracks collection
1931             has not been allocated yet.
1932
1933 2012-05-02  David Barton  <dbarton@mathscribe.com>
1934
1935         After appending MathML with jquery the table renders with overlaps
1936         https://bugs.webkit.org/show_bug.cgi?id=52444
1937
1938         Reviewed by Julien Chaffraix.
1939
1940         This patch also fixes bugs 72834 and 47781. The main problem is that correct preferred
1941         logical widths are affected by operator stretching. Thus we add a call to
1942         setNeedsLayoutAndPrefWidthsRecalc() after the stretching code in
1943         RenderMathMLOperator.cpp, and change RenderMathMLBlock and RenderMathMLRow to make sure
1944         that stretching of children is done before an <mrow>'s preferred logical widths are
1945         computed.
1946         
1947         Test: Added a test to mathml/presentation/mo-stretch.html
1948
1949         * rendering/mathml/RenderMathMLBlock.cpp:
1950         (WebCore::RenderMathMLBlock::RenderMathMLBlock):
1951         (WebCore::RenderMathMLBlock::computePreferredLogicalWidths):
1952         (WebCore::RenderMathMLBlock::computeChildrenPreferredLogicalHeights):
1953         (WebCore::RenderMathMLBlock::preferredLogicalHeightAfterSizing):
1954         * rendering/mathml/RenderMathMLBlock.h:
1955         (WebCore::RenderMathMLBlock::unembellishedOperator):
1956         (WebCore::RenderMathMLBlock::isPreferredLogicalHeightDirty):
1957         (WebCore::RenderMathMLBlock::preferredLogicalHeight):
1958         (WebCore::RenderMathMLBlock::setPreferredLogicalHeight):
1959             - Add m_preferredLogicalHeight and methods to compute and return it.
1960             - Remove stretchToHeight() from most classes as it no longer needs to be done
1961               recursively. We just call it on the base of an embellished operator, and that
1962               calls setNeedsLayoutAndPrefWidthsRecalc() to mark itself and its container
1963               chain.
1964         
1965         * rendering/mathml/RenderMathMLOperator.cpp:
1966         (WebCore::RenderMathMLOperator::stretchToHeight):
1967             - Don't compare an unexpanded height to an expanded one.
1968         (WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
1969         (WebCore::RenderMathMLOperator::updateFromElement):
1970             - After stretching, call setNeedsLayoutAndPrefWidthsRecalc().
1971         * rendering/mathml/RenderMathMLOperator.h:
1972         (RenderMathMLOperator):
1973         
1974         * rendering/mathml/RenderMathMLRow.cpp:
1975         (WebCore::RenderMathMLRow::computePreferredLogicalWidths):
1976         (WebCore::RenderMathMLRow::layout):
1977         * rendering/mathml/RenderMathMLRow.h:
1978         (RenderMathMLRow):
1979             - Add computePreferredLogicalWidths(), using computeChildrenPreferredLogicalHeights()
1980               to compute our children's preferred logical heights if necessary, followed by
1981               operator stretching.
1982         
1983         * rendering/mathml/RenderMathMLSubSup.cpp:
1984         * rendering/mathml/RenderMathMLSubSup.h:
1985         (RenderMathMLSubSup):
1986         * rendering/mathml/RenderMathMLUnderOver.cpp:
1987         * rendering/mathml/RenderMathMLUnderOver.h:
1988         (RenderMathMLUnderOver):
1989
1990 2012-05-02  Dana Jansens  <danakj@chromium.org>
1991
1992         [chromium] Avoid extra Region copies in CCOcclusionTracker
1993         https://bugs.webkit.org/show_bug.cgi?id=85257
1994
1995         Reviewed by Adrienne Walker.
1996
1997         Instead of making a Region for each layer and then uniting the region
1998         with the current occlusion, directly add the rects for the given layer
1999         to the current occlusion.
2000
2001         When subtracting a region from a rect, just subtract the region
2002         directly instead of computing the intersecting region.
2003
2004         Covered by existing tests.
2005
2006         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
2007         (WebCore::addOcclusionBehindLayer):
2008         (WebCore::::markOccludedBehindLayer):
2009         (WebCore::rectSubtractRegion):
2010
2011 2012-05-02  Keith Rosenblatt  <keith.rosenblatt@nokia.com>
2012
2013         [Qt] ASSERT in FontCustomPlatformDataQt.cpp with invalid font in data URI
2014         https://bugs.webkit.org/show_bug.cgi?id=85089
2015
2016         Reviewed by Simon Hausmann.
2017
2018         Do not return data referencing an invalid QRawFont from createFontCustomPlatformData().  Instead
2019         return null.
2020
2021         Test: fast/css/font-face-data-uri-invalid.html
2022
2023         * platform/graphics/qt/FontCustomPlatformDataQt.cpp:
2024         (WebCore::createFontCustomPlatformData):
2025
2026 2012-05-02  Michal Mocny  <mmocny@google.com>
2027
2028         [chromium] Set contents texture manager preferred memory limit based on GpuMemoryManager suggestion.
2029         https://bugs.webkit.org/show_bug.cgi?id=84270
2030
2031         Reviewed by Kenneth Russell.
2032
2033         Updates the content texture manager memory limits based on GpuMemoryManager memory allocation suggestions.
2034
2035         The memory allocation size (in bytes) is fed from LayerRendererChromium memory allocation changed callback
2036         handler to CCLayerTreeHost.  At that point we adjust the limits, using the existing notions of preferred and
2037         max limits.
2038
2039         On android, the preferred limit is half the maximum (as it has always been), but on all other platforms the
2040         preferred limit is now equal to max, in order to allow more agressive prepainting.
2041
2042         Finally, android has memory constraints dependant on viewportSize, but that logic has been pushed into
2043         the GpuMemoryManager.
2044
2045         * platform/graphics/chromium/LayerRendererChromium.cpp:
2046         (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::onGpuMemoryAllocationChanged):
2047         (WebCore::LayerRendererChromium::beginDrawingFrame):
2048         * platform/graphics/chromium/LayerRendererChromium.h:
2049         (LayerRendererChromiumClient):
2050         * platform/graphics/chromium/TextureManager.cpp:
2051         (WebCore::TextureManager::setMemoryAllocationLimitBytes):
2052         (WebCore):
2053         * platform/graphics/chromium/TextureManager.h:
2054         (TextureManager):
2055         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2056         (WebCore::CCLayerTreeHost::setViewportSize):
2057         (WebCore::CCLayerTreeHost::setContentsMemoryAllocationLimitBytes):
2058         (WebCore):
2059         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2060         (CCLayerTreeHost):
2061         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2062         (WebCore::CCLayerTreeHostImpl::setContentsMemoryAllocationLimitBytes):
2063         (WebCore):
2064         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2065         (CCLayerTreeHostImplClient):
2066         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2067         (WebCore::CCSingleThreadProxy::postSetContentsMemoryAllocationLimitBytesToMainThreadOnImplThread):
2068         (WebCore):
2069         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
2070         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2071         (WebCore::CCThreadProxy::postSetContentsMemoryAllocationLimitBytesToMainThreadOnImplThread):
2072         (WebCore):
2073         (WebCore::CCThreadProxy::setContentsMemoryAllocationLimitBytes):
2074         * platform/graphics/chromium/cc/CCThreadProxy.h:
2075         (CCThreadProxy):
2076
2077 2012-05-02  Emil A Eklund  <eae@chromium.org>
2078
2079         Fix usage of layout types in platform code
2080         https://bugs.webkit.org/show_bug.cgi?id=85392
2081
2082         Reviewed by Eric Seidel.
2083
2084         No new tests, no change in functionality.
2085
2086         * page/EventHandler.cpp:
2087         (WebCore::EventHandler::handleGestureTap):
2088         Use rounded point for gestures as event handling is still mostly int based.
2089
2090 2012-05-02  Kenneth Russell  <kbr@google.com>
2091
2092         Don't allocate stencil buffer if stencil flag is false in context creation attributes
2093         https://bugs.webkit.org/show_bug.cgi?id=85317
2094
2095         Reviewed by Dimitri Glazkov.
2096
2097         Make it appear to WebGL application that there is no stencil
2098         buffer even if the underlying GraphicsContext3D allocated one.
2099         Verified intended behavior with test case from Mozilla's bug report.
2100
2101         Updated context-attributes-alpha-depth-stencil-antialias.html test
2102         from Khronos repository. Ran WebGL layout tests on Linux in
2103         Chrome's DRT and on Mac OS in Safari's.
2104
2105         * html/canvas/WebGLFramebuffer.cpp:
2106         (WebCore::WebGLFramebuffer::hasStencilBuffer): Added query method.
2107         (WebCore): Changed desired semantics of isValidRenderbuffer.
2108         * html/canvas/WebGLFramebuffer.h:
2109         (WebGLFramebuffer): Added hasStencilBuffer.
2110         * html/canvas/WebGLRenderingContext.cpp:
2111         (WebCore):
2112         (WebCore::WebGLRenderingContext::initializeNewContext):
2113             Clear new flag.
2114         (WebCore::WebGLRenderingContext::bindFramebuffer):
2115             Reset stencil test upon framebuffer change.
2116         (WebCore::WebGLRenderingContext::disable):
2117             Cache flag; reset stencil test.
2118         (WebCore::WebGLRenderingContext::enable):
2119             Cache flag; reset stencil test.
2120         (WebCore::WebGLRenderingContext::framebufferRenderbuffer):
2121             Reset stencil test upon renderbuffer change.
2122         (WebCore::WebGLRenderingContext::getContextAttributes):
2123             Force depth and stencil to false if false was requested.
2124         (WebCore::WebGLRenderingContext::isEnabled):
2125             Return cached flag.
2126         (WebCore::WebGLRenderingContext::renderbufferStorage):
2127             Reset stencil test upon renderbuffer reallocation.
2128         (WebCore::WebGLRenderingContext::applyStencilTest):
2129             Enable or disable stencil test based on request and availability.
2130         (WebCore::WebGLRenderingContext::enableOrDisable):
2131             Helper function.
2132         * html/canvas/WebGLRenderingContext.h:
2133         (WebGLRenderingContext):
2134             Added cache of STENCIL_TEST flag. Deleted unused m_stencilBits.
2135
2136 2012-05-02  Ryosuke Niwa  <rniwa@webkit.org>
2137
2138         Drag and drop text into table is pasting the text in the next <td> element
2139         https://bugs.webkit.org/show_bug.cgi?id=75004
2140
2141         Reviewed by Darin Adler.
2142
2143         The bug was caused by ReplaceSelectionCommand adjusting the insertion position to be before
2144         of the block element containing the insertion position even when the block element is a table cell.
2145
2146         Fixed the bug by not moving the insertion position before the table cell in this case.
2147
2148         Test: editing/pasteboard/paste-into-table-cell.html
2149
2150         * editing/ReplaceSelectionCommand.cpp:
2151         (WebCore::ReplaceSelectionCommand::doApply):
2152
2153 2012-05-02  Beth Dakin  <bdakin@apple.com>
2154
2155         https://bugs.webkit.org/show_bug.cgi?id=85309
2156         supportsExpandedScrollbars() should check for the method we actually call rather 
2157         than a related method
2158
2159         Reviewed by Anders Carlsson.
2160
2161         Missing colon.
2162         * platform/mac/ScrollbarThemeMac.mm:
2163         (WebCore::supportsExpandedScrollbars):
2164
2165 2012-05-02  Antti Koivisto  <antti@apple.com>
2166
2167         Move title and media queries from StyleSheetInternal to CSSStyleSheet
2168         https://bugs.webkit.org/show_bug.cgi?id=85387
2169
2170         Reviewed by Anders Carlsson.
2171
2172         Stylesheet title and media queries are determined by the owner, not by the stylesheet itself.
2173         The fields belong to CSSStyleSheet.
2174         
2175         This will make it easier to share StyleSheetInternal instances between documents.
2176
2177         * css/CSSStyleSheet.cpp:
2178         (WebCore::StyleSheetInternal::StyleSheetInternal):
2179         (WebCore::StyleSheetInternal::isCacheable):
2180         (WebCore):
2181         (WebCore::CSSStyleSheet::setDisabled):
2182         
2183             Invalidate the document style directly instead of ping-ponging through StyleSheetInternal.
2184
2185         (WebCore::CSSStyleSheet::setMediaQueries):
2186         (WebCore::CSSStyleSheet::media):
2187         * css/CSSStyleSheet.h:
2188         (StyleSheetInternal):
2189         (WebCore::StyleSheetInternal::originalURL):
2190         (WebCore::StyleSheetInternal::hasCharsetRule):
2191         (WebCore::CSSStyleSheet::mediaQueries):
2192         (CSSStyleSheet):
2193         (WebCore::CSSStyleSheet::setTitle):
2194         * css/StyleResolver.cpp:
2195         (WebCore::StyleResolver::appendAuthorStylesheets):
2196         (WebCore::StyleResolver::collectMatchingRulesForList):
2197         * dom/DOMImplementation.cpp:
2198         (WebCore::DOMImplementation::createCSSStyleSheet):
2199         * dom/ProcessingInstruction.cpp:
2200         (WebCore::ProcessingInstruction::setCSSStyleSheet):
2201         * dom/StyleElement.cpp:
2202         (WebCore::StyleElement::createSheet):
2203         * html/HTMLLinkElement.cpp:
2204         (WebCore::HTMLLinkElement::parseAttribute):
2205         (WebCore::HTMLLinkElement::setCSSStyleSheet):
2206         * html/HTMLStyleElement.cpp:
2207         (WebCore::HTMLStyleElement::parseAttribute):
2208         * svg/SVGStyleElement.cpp:
2209         (WebCore::SVGStyleElement::parseAttribute):
2210
2211 2012-05-02  Alexis Menard  <alexis.menard@openbossa.org>
2212
2213         Unreviewed Qt build fix with GCC 4.7.0.
2214
2215         * platform/qt/DeviceMotionProviderQt.h:
2216         (DeviceMotionProviderQt):
2217         * platform/qt/DeviceOrientationProviderQt.cpp:
2218         (WebCore::DeviceOrientationProviderQt::~DeviceOrientationProviderQt):
2219         (WebCore):
2220         * platform/qt/DeviceOrientationProviderQt.h:
2221         (DeviceOrientationProviderQt):
2222
2223 2012-05-02  No'am Rosenthal  <noam.rosenthal@nokia.com>
2224
2225         [Texmap] Enable css filters in TextureMapperGL
2226         https://bugs.webkit.org/show_bug.cgi?id=75778
2227
2228         Unreviewed build fix to greenify the Qt Minimal bot.
2229
2230         * platform/graphics/texmap/TextureMapperShaderManager.h:
2231
2232 2012-05-02  Philippe Normand  <pnormand@igalia.com>
2233
2234         [GTK] Compilation warnings in RenderTheme
2235         https://bugs.webkit.org/show_bug.cgi?id=85286
2236
2237         Reviewed by Martin Robinson.
2238
2239         Removed un-needed code and refactored fileListNameForWidth
2240         accordingly to avoid un-used variable warnings during compilation.
2241
2242         * platform/gtk/RenderThemeGtk.cpp:
2243         (WebCore):
2244         (WebCore::RenderThemeGtk::fileListNameForWidth):
2245
2246 2012-05-02  Ryosuke Niwa  <rniwa@webkit.org>
2247
2248         NULL ptr in WebCore::AppendNodeCommand::AppendNodeCommand
2249         https://bugs.webkit.org/show_bug.cgi?id=75843
2250
2251         Reviewed by Tony Chang.
2252
2253         The crash was caused by indentIntoBlockquote's passing a bad outerBlock to moveParagraphsWithClone.
2254
2255         When the position is created after blockquote in the following DOM:
2256         BODY
2257         * BLOCKQUOTE style=margin: 0 0 0 40px; border: none; padding: 0px;
2258             E
2259                 #text "\nx\n"
2260         VisiblePosition's constructor (of startOfContents) turns the position into a legacy position (blockquote, 0).
2261         The crash occurs because this position doesn't belong in the same paragraph as E, which is the paragraph
2262         we're trying to move into the blockquote.
2263
2264         Fixed bug by calling positionInParentAfterNode instead of positionAfterNode for now. We should eventually be
2265         able to use positionAfterNode here once VisiblePosition's constructor starts handling before/after positions
2266         properly.
2267
2268         Test: editing/execCommand/indent-with-after-content-crash.html
2269
2270         * editing/IndentOutdentCommand.cpp:
2271         (WebCore::IndentOutdentCommand::indentIntoBlockquote):
2272
2273 2012-05-02  Jer Noble  <jer.noble@apple.com>
2274
2275         WebWindowFadeAnimation ignores "duration" parameter.
2276         https://bugs.webkit.org/show_bug.cgi?id=85386
2277
2278         Reviewed by Brady Eidson.
2279
2280         Ignoring the "duration" parameter causes the full screen fade and scale animations
2281         to get out of sync.
2282
2283         * platform/mac/WebWindowAnimation.mm:
2284         (-[WebWindowFadeAnimation initWithDuration:window:initialAlpha:finalAlpha:]):
2285
2286 2012-05-02  Julien Chaffraix  <jchaffraix@webkit.org>
2287
2288         REGRESSION(110072): Clipping is not applied on layers that are animated using platform code
2289         https://bugs.webkit.org/show_bug.cgi?id=83954
2290
2291         Reviewed by Simon Fraser.
2292
2293         Tests: fast/layers/no-clipping-overflow-hidden-added-after-transform-expected.html
2294                fast/layers/no-clipping-overflow-hidden-added-after-transform.html
2295                fast/layers/no-clipping-overflow-hidden-added-after-transition-expected.html
2296                fast/layers/no-clipping-overflow-hidden-added-after-transition.html
2297                fast/layers/no-clipping-overflow-hidden-hardware-acceleration-expected.html
2298                fast/layers/no-clipping-overflow-hidden-hardware-acceleration.html
2299                (and all the tests that will need to be rebaselined)
2300
2301         r110072 changed the way we create layers to lazily allocate overflow: hidden ones
2302         based on layout overflow. However with hardware acceleration, certain operations
2303         do cause overflow without actually calling layout (the test cases added as part
2304         of this change are using transition / animation). This means that those cases
2305         wouldn't properly clip.
2306
2307         Due to the above issue and the other regressions from r110072, the easiest fix is
2308         to just to roll it out.
2309
2310         * rendering/RenderBox.h:
2311         Changed to allocate a layer whenever we have an overflow clip.
2312
2313         * rendering/RenderBox.cpp:
2314         (WebCore::RenderBox::scrolledContentOffset):
2315         (WebCore::RenderBox::cachedSizeForOverflowClip):
2316         Reverted those 2 to avoid using the cached size logic.
2317
2318         * rendering/RenderBlock.cpp:
2319         (WebCore::RenderBlock::updateScrollInfoAfterLayout):
2320         (WebCore::RenderBlock::layoutBlock):
2321         (WebCore::RenderBlock::paint):
2322         (WebCore::RenderBlock::isPointInOverflowControl):
2323         * rendering/RenderBlock.h:
2324         * rendering/RenderBox.cpp:
2325         (WebCore::RenderBox::willBeDestroyed):
2326         (WebCore::RenderBox::styleDidChange):
2327         (WebCore::RenderBox::layout):
2328         (WebCore::RenderBox::scrollWidth):
2329         (WebCore::RenderBox::scrollHeight):
2330         (WebCore::RenderBox::scrollLeft):
2331         (WebCore::RenderBox::scrollTop):
2332         (WebCore::RenderBox::setScrollLeft):
2333         (WebCore::RenderBox::setScrollTop):
2334         (WebCore::RenderBox::includeVerticalScrollbarSize):
2335         (WebCore::RenderBox::includeHorizontalScrollbarSize):
2336         (WebCore::RenderBox::pushContentsClip):
2337         (WebCore::RenderBox::popContentsClip):
2338         (WebCore::RenderBox::addLayoutOverflow):
2339         * rendering/RenderBoxModelObject.cpp:
2340         (WebCore::RenderBoxModelObject::styleDidChange):
2341         * rendering/RenderBoxModelObject.h:
2342         (RenderBoxModelObject):
2343         * rendering/RenderDeprecatedFlexibleBox.cpp:
2344         (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
2345         * rendering/RenderFlexibleBox.cpp:
2346         (WebCore::RenderFlexibleBox::layoutBlock):
2347         * rendering/RenderTable.cpp:
2348         (WebCore::RenderTable::layout):
2349         * rendering/RenderTableRow.h:
2350         (RenderTableRow):
2351         * rendering/RenderTableSection.cpp:
2352         (WebCore::RenderTableSection::layout):
2353         Removed the previous scaffolding code and reverted some functions to
2354         being private (as they were prior to r110072).
2355
2356 2012-05-02  No'am Rosenthal  <noam.rosenthal@nokia.com>
2357
2358         [Texmap] Enable css filters in TextureMapperGL
2359         https://bugs.webkit.org/show_bug.cgi?id=75778
2360
2361         Reviewed by Jocelyn Turcotte.
2362
2363         Added support for color filters in TextureMapperGL. Blur and shadow would be done in a
2364         different patch.
2365
2366         Modified BitmapTexture::applyFilters to return a texture, since GL cannot paint a texture
2367         into itself.
2368         Created a shader map for standard filters, since all of them work more or less the same way
2369         with a single uniform. Added the colorization shaders based on the W3C filter spec, as
2370         already implemented in FEFilterRenderer.cpp and FEColorMatrix.cpp.
2371         We use two swapping textures to render the filters.
2372
2373         Covered by tests in css3/filters.
2374
2375         * platform/graphics/texmap/TextureMapper.cpp:
2376         (WebCore::TextureMapper::acquireTextureFromPool):
2377         * platform/graphics/texmap/TextureMapper.h:
2378         (WebCore::BitmapTexture::applyFilters):
2379         * platform/graphics/texmap/TextureMapperGL.cpp:
2380         (WebCore::BitmapTextureGL::updateContents):
2381         (WebCore):
2382         (WebCore::TextureMapperGL::drawFiltered):
2383         (WebCore::BitmapTextureGL::applyFilters):
2384         (WebCore::BitmapTextureGL::bind):
2385         * platform/graphics/texmap/TextureMapperGL.h:
2386         (TextureMapperGL):
2387         (BitmapTextureGL):
2388         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
2389         (WebCore::BitmapTextureImageBuffer::applyFilters):
2390         * platform/graphics/texmap/TextureMapperImageBuffer.h:
2391         (BitmapTextureImageBuffer):
2392         * platform/graphics/texmap/TextureMapperLayer.cpp:
2393         (WebCore::applyFilters):
2394         (WebCore::TextureMapperLayer::syncCompositingStateSelf):
2395         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
2396         (WebCore::TextureMapperShaderManager::~TextureMapperShaderManager):
2397         (WebCore):
2398         (WebCore::StandardFilterProgram::~StandardFilterProgram):
2399         (WebCore::StandardFilterProgram::StandardFilterProgram):
2400         (WebCore::StandardFilterProgram::create):
2401         (WebCore::StandardFilterProgram::prepare):
2402         (WebCore::TextureMapperShaderManager::getShaderForFilter):
2403         * platform/graphics/texmap/TextureMapperShaderManager.h:
2404         (WebCore):
2405         (StandardFilterProgram):
2406         (WebCore::StandardFilterProgram::vertexAttrib):
2407         (WebCore::StandardFilterProgram::texCoordAttrib):
2408         (WebCore::StandardFilterProgram::textureUniform):
2409         (TextureMapperShaderManager):
2410
2411 2012-05-02  Philippe Normand  <pnormand@igalia.com>
2412
2413         [GTK] media/track/track-cue-rendering-snap-to-lines-not-set.html fails
2414         https://bugs.webkit.org/show_bug.cgi?id=84378
2415
2416         Reviewed by Eric Carlson.
2417
2418         Fix positioning of the controls panel back to relative, as it is
2419         in the parent CSS. Also remove some duplicate CSS attributes.
2420
2421         * css/mediaControlsGtk.css:
2422         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
2423
2424 2012-05-02  Beth Dakin  <bdakin@apple.com>
2425
2426         https://bugs.webkit.org/show_bug.cgi?id=85309
2427         supportsExpandedScrollbars() should check for the method we actually call rather 
2428         than a related method
2429         -and corresponding-
2430         <rdar://problem/11065691>
2431
2432         Reviewed by Anders Carlsson.
2433
2434         * platform/mac/ScrollbarThemeMac.mm:
2435         (WebCore::supportsExpandedScrollbars):
2436
2437 2012-05-02  Zalan Bujtas  <zbujtas@gmail.com>
2438
2439         [Qt] Remove redundant updateViewportArguments() call from HTMLBodyElement::didNotifyDescendantInseretions()
2440         https://bugs.webkit.org/show_bug.cgi?id=84241
2441
2442         Reviewed by Kenneth Rohde Christiansen.
2443
2444         No need to update viewport arguments when the body element is inserted into the Document.
2445         Viewport arguments are updated first when the Document is set on the Frame, and later
2446         on any subsequent occurence of the viewport meta tag in the document.
2447         It is sufficient to dispatch viewport update once per main frame, if no viewport meta tag is present.
2448
2449         Also add a flag to be able to track viewport argument update dispatch.
2450
2451         No tests. Currrent viewport tests cover this behaviour.
2452
2453         * dom/Document.cpp:
2454         (WebCore::Document::Document):
2455         (WebCore::Document::updateViewportArguments):
2456         (WebCore::Document::documentWillSuspendForPageCache):
2457         * dom/Document.h:
2458         (Document):
2459         (WebCore::Document::didDispatchViewportPropertiesChanged):
2460         * html/HTMLBodyElement.cpp:
2461         (WebCore::HTMLBodyElement::didNotifyDescendantInseretions):
2462
2463 2012-05-02  Pavel Feldman  <pfeldman@chromium.org>
2464
2465         Web Inspector: Cannot read property 'length' of undefined TextEditorModel.js:467
2466         https://bugs.webkit.org/show_bug.cgi?id=85360
2467
2468         Reviewed by Yury Semikhatsky.
2469
2470         Added the undo/redo stack length checks.
2471
2472         * inspector/front-end/TextEditorModel.js:
2473         (WebInspector.TextEditorModel.endsWithBracketRegex.):
2474
2475 2012-05-02  Pavel Feldman  <pfeldman@chromium.org>
2476
2477         WebInspector: Scripts panel editor dirty state is cleared when the tab with editor is closed.
2478         https://bugs.webkit.org/show_bug.cgi?id=85361
2479
2480         Reviewed by Yury Semikhatsky.
2481
2482         Added content validation upon script show.
2483
2484         * inspector/front-end/JavaScriptSourceFrame.js:
2485         (WebInspector.JavaScriptSourceFrame.prototype.wasShown):
2486
2487 2012-05-02  Pavel Feldman  <pfeldman@chromium.org>
2488
2489         Web Inspector: breakpoints are de-activated only upon the second click.
2490         https://bugs.webkit.org/show_bug.cgi?id=85359
2491
2492         Reviewed by Yury Semikhatsky.
2493
2494         Initial value for activated state is set.
2495
2496         * inspector/front-end/DebuggerModel.js:
2497         (WebInspector.DebuggerModel):
2498
2499 2012-05-02  Pavel Feldman  <pfeldman@chromium.org>
2500
2501         Web Inspector: live edit fails to report error
2502         https://bugs.webkit.org/show_bug.cgi?id=85357
2503
2504         Reviewed by Yury Semikhatsky.
2505
2506         ProtocolError is now a string, not an error object.
2507
2508         * inspector/front-end/DatabaseQueryView.js:
2509         (WebInspector.DatabaseQueryView.prototype._queryError):
2510         * inspector/front-end/SourceFrame.js:
2511         (WebInspector.SourceFrame.prototype.didEditContent):
2512
2513 2012-05-02  Lars Knudsen  <lars.knudsen@nokia.com>
2514
2515         [Qt] Make DeviceMotion and DeviceOrientation work with WebKit2
2516         https://bugs.webkit.org/show_bug.cgi?id=64595
2517
2518         Reviewed by Kenneth Rohde Christiansen.
2519
2520         No new tests added.  This change adds support for WK2
2521         what was in WK1.
2522
2523         Also moving DeviceMotion and DeviceOrientation clients and
2524         providers to WebCore.  This is done to allow clean dependencies
2525         when statically linking WK2.
2526
2527         * Target.pri:
2528         * WebCore.pri:
2529         * platform/qt/DeviceMotionClientQt.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/DeviceMotionClientQt.cpp.
2530         (WebCore):
2531         (WebCore::DeviceMotionClientQt::~DeviceMotionClientQt):
2532         (WebCore::DeviceMotionClientQt::deviceMotionControllerDestroyed):
2533         (WebCore::DeviceMotionClientQt::setController):
2534         (WebCore::DeviceMotionClientQt::startUpdating):
2535         (WebCore::DeviceMotionClientQt::stopUpdating):
2536         (WebCore::DeviceMotionClientQt::currentDeviceMotion):
2537         * platform/qt/DeviceMotionClientQt.h: Renamed from Source/WebKit/qt/WebCoreSupport/DeviceMotionClientQt.h.
2538         (WebCore):
2539         (DeviceMotionClientQt):
2540         (WebCore::DeviceMotionClientQt::DeviceMotionClientQt):
2541         * platform/qt/DeviceMotionProviderQt.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/DeviceMotionProviderQt.cpp.
2542         (WebCore):
2543         (WebCore::DeviceMotionProviderQt::DeviceMotionProviderQt):
2544         (WebCore::DeviceMotionProviderQt::~DeviceMotionProviderQt):
2545         (WebCore::DeviceMotionProviderQt::setController):
2546         (WebCore::DeviceMotionProviderQt::start):
2547         (WebCore::DeviceMotionProviderQt::stop):
2548         (WebCore::DeviceMotionProviderQt::filter):
2549         * platform/qt/DeviceMotionProviderQt.h: Renamed from Source/WebKit/qt/WebCoreSupport/DeviceMotionProviderQt.h.
2550         (WebCore):
2551         (DeviceMotionProviderQt):
2552         (WebCore::DeviceMotionProviderQt::currentDeviceMotion):
2553         * platform/qt/DeviceOrientationClientQt.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/DeviceOrientationClientQt.cpp.
2554         (WebCore):
2555         (WebCore::DeviceOrientationClientQt::deviceOrientationControllerDestroyed):
2556         (WebCore::DeviceOrientationClientQt::setController):
2557         (WebCore::DeviceOrientationClientQt::startUpdating):
2558         (WebCore::DeviceOrientationClientQt::stopUpdating):
2559         (WebCore::DeviceOrientationClientQt::lastOrientation):
2560         * platform/qt/DeviceOrientationClientQt.h: Renamed from Source/WebKit/qt/WebCoreSupport/DeviceOrientationClientQt.h.
2561         (WebCore):
2562         (DeviceOrientationClientQt):
2563         * platform/qt/DeviceOrientationProviderQt.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/DeviceOrientationProviderQt.cpp.
2564         (WebCore):
2565         (WebCore::DeviceOrientationProviderQt::DeviceOrientationProviderQt):
2566         (WebCore::DeviceOrientationProviderQt::~DeviceOrientationProviderQt):
2567         (WebCore::DeviceOrientationProviderQt::setController):
2568         (WebCore::DeviceOrientationProviderQt::start):
2569         (WebCore::DeviceOrientationProviderQt::stop):
2570         (WebCore::DeviceOrientationProviderQt::filter):
2571         * platform/qt/DeviceOrientationProviderQt.h: Renamed from Source/WebKit/qt/WebCoreSupport/DeviceOrientationProviderQt.h.
2572         (WebCore):
2573         (DeviceOrientationProviderQt):
2574         (WebCore::DeviceOrientationProviderQt::isActive):
2575         (WebCore::DeviceOrientationProviderQt::lastOrientation):
2576         (WebCore::DeviceOrientationProviderQt::hasAlpha):
2577
2578 2012-05-02  Yury Semikhatsky  <yurys@chromium.org>
2579
2580         Web Inspector: exception in console when there are watch expressions
2581         https://bugs.webkit.org/show_bug.cgi?id=85351
2582
2583         Check if script execution is still paused before trying to resolve an
2584         object for script popover because execution may be resumed after popover
2585         showing is scheduled but before we start resolving the object under
2586         the cursor in which case there is no selected call frame any more and
2587         we should hide the popover.
2588
2589         Reviewed by Pavel Feldman.
2590
2591         * inspector/front-end/JavaScriptSourceFrame.js:
2592         (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover):
2593
2594 2012-05-02  Tommy Widenflycht  <tommyw@google.com>
2595
2596         MediaStream API: Changing webkitGetUserMedia to take an object instead of a string
2597         https://bugs.webkit.org/show_bug.cgi?id=84850
2598
2599         Reviewed by Dimitri Glazkov.
2600
2601         The standard changed a while back to use an object as a dictionary but since JSC
2602         didn't support the Dictionary class until just recently we have not updated the API until now.
2603
2604         Change covered by existing, and edited, tests.
2605
2606         * Modules/mediastream/NavigatorMediaStream.cpp:
2607         (WebCore::NavigatorMediaStream::webkitGetUserMedia):
2608         * Modules/mediastream/NavigatorMediaStream.h:
2609         (WebCore):
2610         (NavigatorMediaStream):
2611         * Modules/mediastream/NavigatorMediaStream.idl:
2612         * Modules/mediastream/UserMediaRequest.cpp:
2613         (WebCore::UserMediaRequest::create):
2614         (WebCore::UserMediaRequest::UserMediaRequest):
2615         * Modules/mediastream/UserMediaRequest.h:
2616         (WebCore):
2617         (UserMediaRequest):
2618         * platform/mediastream/MediaStreamSourcesQueryClient.h:
2619         (MediaStreamSourcesQueryClient):
2620
2621 2012-05-02  Antti Koivisto  <antti@apple.com>
2622
2623         StyleSheetInternal::parseUserStyleSheet() should be called parseAuthorStyleSheet().
2624
2625         Rubber-stamped by Nikolas Zimmermann.
2626
2627         * css/CSSImportRule.cpp:
2628         (WebCore::StyleRuleImport::setCSSStyleSheet):
2629         * css/CSSStyleSheet.cpp:
2630         (WebCore::StyleSheetInternal::parseAuthorStyleSheet):
2631         * css/CSSStyleSheet.h:
2632         (StyleSheetInternal):
2633         * html/HTMLLinkElement.cpp:
2634         (WebCore::HTMLLinkElement::setCSSStyleSheet):
2635
2636 2012-05-02  Yury Semikhatsky  <yurys@chromium.org>
2637
2638         REGRESSION: Web Inspector doesn't show cookies anymore
2639         https://bugs.webkit.org/show_bug.cgi?id=85349
2640
2641         Pass root node instead of DataGrid object to the "populateNode" method.
2642         Added compiler annotations so that closure compiler catches such errors.
2643
2644         Reviewed by Pavel Feldman.
2645
2646         * inspector/front-end/CookiesTable.js:
2647         (WebInspector.CookiesTable.prototype._rebuildTable):
2648         * inspector/front-end/NetworkRequest.js:
2649         (WebInspector.NetworkRequest.prototype.addFrameError):
2650
2651 2012-05-02  Dongwoo Im  <dw.im@samsung.com>
2652
2653         [EFL] Implement the Web Audio API feature.
2654         https://bugs.webkit.org/show_bug.cgi?id=78688
2655
2656         Reviewed by Philippe Normand.
2657
2658         Implement the Web Audio API feature on the EFL port.
2659         https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
2660
2661         * CMakeLists.txt: Add the list of the files which are needed for the Web Audio APi.
2662         * PlatformEfl.cmake: Add the list of the files which are needed for the Web Audio APi.
2663         * UseJSC.cmake: Add the list of the files which are needed for the Web Audio APi.
2664         * platform/audio/HRTFElevation.cpp: Enable the USE_CONCATENATED_IMPULSE_RESPONSES macro.
2665         (WebCore):
2666         * platform/audio/efl/AudioBusEfl.cpp: Added.
2667         (WebCore):
2668         (WebCore::AudioBus::loadPlatformResource): Create the absolute path of the audio resource.
2669
2670 2012-05-01  Kentaro Hara  <haraken@chromium.org>
2671
2672         [V8] Add an Isolate parameter to setJSWrapperForXXX()
2673         https://bugs.webkit.org/show_bug.cgi?id=85329
2674
2675         Reviewed by Adam Barth.
2676
2677         The objective is to pass Isolate around in V8 bindings.
2678         This patch adds an Isolate parameter to setJSWrapperForXXX()
2679         and passes Isolate to setJSWrapperForXXX() in CodeGeneratorV8.pm.
2680         I'll pass Isolate to setJSWrapperForXXX() in custom bindings
2681         in a follow-up patch.
2682
2683         No tests. No change in behavior.
2684
2685         * bindings/scripts/CodeGeneratorV8.pm: Modified as described above.
2686         (GenerateConstructorCallback):
2687         (GenerateEventConstructorCallback):
2688         (GenerateNamedConstructorCallback):
2689         (GenerateToV8Converters):
2690         * bindings/v8/V8DOMWrapper.cpp:
2691         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
2692         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMNode):
2693         * bindings/v8/V8DOMWrapper.h:
2694         (V8DOMWrapper):
2695         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
2696         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject):
2697
2698         * bindings/scripts/test/V8/V8Float64Array.cpp: Updated run-bindings-tests results.
2699         (WebCore::V8Float64Array::wrapSlow):
2700         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2701         (WebCore::V8TestActiveDOMObject::wrapSlow):
2702         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2703         (WebCore::V8TestCustomNamedGetter::wrapSlow):
2704         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2705         (WebCore::V8TestEventConstructor::constructorCallback):
2706         (WebCore::V8TestEventConstructor::wrapSlow):
2707         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2708         (WebCore::V8TestEventTarget::wrapSlow):
2709         * bindings/scripts/test/V8/V8TestInterface.cpp:
2710         (WebCore::V8TestInterface::constructorCallback):
2711         (WebCore::V8TestInterface::wrapSlow):
2712         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2713         (WebCore::V8TestMediaQueryListListener::wrapSlow):
2714         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2715         (WebCore::V8TestNamedConstructorConstructorCallback):
2716         (WebCore::V8TestNamedConstructor::wrapSlow):
2717         * bindings/scripts/test/V8/V8TestNode.cpp:
2718         (WebCore::V8TestNode::constructorCallback):
2719         (WebCore::V8TestNode::wrapSlow):
2720         * bindings/scripts/test/V8/V8TestObj.cpp:
2721         (WebCore::V8TestObj::constructorCallback):
2722         (WebCore::V8TestObj::wrapSlow):
2723         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2724         (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
2725         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
2726
2727 2012-05-01  Eric Seidel  <eric@webkit.org>
2728
2729         Add <iframe seamless> navigation code (and pass all the navigation tests)
2730         https://bugs.webkit.org/show_bug.cgi?id=85340
2731
2732         Reviewed by Adam Barth.
2733
2734         This code was primarily written by Adam Barth and then submitted to my
2735         GitHub branch via a pull request:
2736         https://github.com/eseidel/webkit/compare/master...seamless
2737         https://github.com/eseidel/webkit/pull/2
2738         https://github.com/eseidel/webkit/pull/3
2739
2740         I rewrote parts of it to use Docment::shouldDisplaySeamlesslyWithParent.
2741
2742         Other parts of the original change have already been committed to WebKit by Adam
2743         as part of prep-work for making the loader seamless-ready.
2744
2745         * loader/FrameLoader.cpp:
2746         (WebCore::FrameLoader::findFrameForNavigation):
2747
2748 2012-05-01  Vincent Scheib  <scheib@chromium.org>
2749
2750         Fullscreen pop-up logic restored to using processingUserGesture.
2751         https://bugs.webkit.org/show_bug.cgi?id=85105
2752
2753         WebKit was recently updated to the new Fullscreen API:
2754         http://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html#api
2755         http://trac.webkit.org/changeset/111028
2756
2757         This change reverts back to using processingUserGesture() instead
2758         of DOMWindow::allowPopUp(). This fixes incorrect behavior in
2759         at least the Chromium port and is consistent with the cited
2760         definition of "allowed to show a pop-up":
2761           An algorithm is allowed to show a pop-up if, in the task in which the algorithm is running, either:
2762           - an activation behavior is currently being processed whose click event was trusted, or
2763           - the event listener for a trusted click event is being handled.
2764
2765         Reviewed by Dimitri Glazkov.
2766
2767         No new tests.
2768
2769         * dom/Document.cpp:
2770         (WebCore::Document::requestFullScreenForElement):
2771
2772 2012-05-01  Xiaomei Ji  <xji@chromium.org>
2773
2774         enable ctrl-arrow move by word visually in non-Windows platforms.
2775         https://bugs.webkit.org/show_bug.cgi?id=85017
2776
2777         Reviewed by Ryosuke Niwa.
2778
2779         Enable ctrl-arrow moves caret by word in visual order in non-Windows platforms that use ICU word
2780         break iterator (it is not enabled for WinCE and Qt where ICU is not used). For those platforms, ctrl-arrow
2781         moves caret to word break position before spaces. For example, given a logical text "abc def hij", the word
2782         break positions using ctrl-left-arrow from rightmost position are "|abc |def |hij".
2783         The word break positions using ctrl-right-arrow from leftmost position are "abc| def| hij|".
2784
2785         Test: editing/selection/move-by-word-visually-mac.html
2786
2787         * editing/EditingBehavior.h:
2788         (EditingBehavior):
2789         (WebCore::EditingBehavior::shouldEatSpaceToNextWord): To control different word break positions
2790         (regards to space) for different platforms.
2791         * editing/FrameSelection.cpp:
2792         (WebCore::FrameSelection::modifyMovingRight): Enable visual word movement for all platforms that use ICU.
2793         (WebCore::FrameSelection::modifyMovingLeft):
2794         * editing/visible_units.cpp:
2795         (WebCore::visualWordPosition): Determine the right word break position (regards to space) based on EditingBehavior.
2796         (WebCore::leftWordPosition):
2797         (WebCore::rightWordPosition):
2798         * editing/visible_units.h:
2799
2800 2012-05-01  Raymond Liu  <raymond.liu@intel.com>
2801
2802         Modify RealtimeAnalyserNode pull mechanism
2803         https://bugs.webkit.org/show_bug.cgi?id=77515
2804
2805         Reviewed by Chris Rogers.
2806
2807         Test: webaudio/automatic-pull-node.html
2808
2809         * GNUmakefile.list.am:
2810         * Modules/webaudio/AudioBasicInspectorNode.cpp: Added.
2811         (WebCore):
2812         (WebCore::AudioBasicInspectorNode::AudioBasicInspectorNode):
2813         (WebCore::AudioBasicInspectorNode::pullInputs):
2814         (WebCore::AudioBasicInspectorNode::connect):
2815         (WebCore::AudioBasicInspectorNode::disconnect):
2816         (WebCore::AudioBasicInspectorNode::checkNumberOfChannelsForInput):
2817         (WebCore::AudioBasicInspectorNode::updatePullStatus):
2818         * Modules/webaudio/AudioBasicInspectorNode.h: Added.
2819         (WebCore):
2820         (AudioBasicInspectorNode):
2821         * Modules/webaudio/AudioContext.cpp:
2822         (WebCore::AudioContext::AudioContext):
2823         (WebCore::AudioContext::~AudioContext):
2824         (WebCore::AudioContext::handlePreRenderTasks):
2825         (WebCore::AudioContext::handlePostRenderTasks):
2826         (WebCore::AudioContext::markForDeletion):
2827         (WebCore):
2828         (WebCore::AudioContext::addAutomaticPullNode):
2829         (WebCore::AudioContext::removeAutomaticPullNode):
2830         (WebCore::AudioContext::updateAutomaticPullNodes):
2831         (WebCore::AudioContext::processAutomaticPullNodes):
2832         * Modules/webaudio/AudioContext.h:
2833         (AudioContext):
2834         * Modules/webaudio/AudioDestinationNode.cpp:
2835         (WebCore::AudioDestinationNode::provideInput):
2836         * Modules/webaudio/AudioNode.h:
2837         (AudioNode):
2838         * Modules/webaudio/AudioNodeOutput.h:
2839         (WebCore::AudioNodeOutput::isConnected):
2840         (AudioNodeOutput):
2841         * Modules/webaudio/RealtimeAnalyserNode.cpp:
2842         (WebCore::RealtimeAnalyserNode::RealtimeAnalyserNode):
2843         * Modules/webaudio/RealtimeAnalyserNode.h:
2844         (RealtimeAnalyserNode):
2845         * WebCore.gypi:
2846         * WebCore.xcodeproj/project.pbxproj:
2847
2848 2012-05-01  Keishi Hattori  <keishi@webkit.org>
2849
2850         datalist: Form control in a <datalist> should be barred from constraint validation
2851         https://bugs.webkit.org/show_bug.cgi?id=84359
2852
2853         Reviewed by Kent Tamura.
2854
2855         Tests: fast/forms/datalist/datalist-child-validation.html
2856                fast/forms/form-control-element-crash.html
2857
2858         * html/HTMLFormControlElement.cpp:
2859         (WebCore::HTMLFormControlElement::HTMLFormControlElement):
2860         (WebCore::HTMLFormControlElement::updateAncestors): Updates the ancestor information.
2861         (WebCore::HTMLFormControlElement::insertedInto): Invalidate the ancestor information and call setNeedsWillValidateCheck because willValidate might have changed.
2862         (WebCore::HTMLFormControlElement::removedFrom): Ditto.
2863         (WebCore::HTMLFormControlElement::disabled):
2864         (WebCore::HTMLFormControlElement::recalcWillValidate): Returns false if element has a datalist ancestor.
2865         (WebCore::HTMLFormControlElement::willValidate): Check if ancestor information is valid too.
2866         (WebCore::HTMLFormControlElement::setNeedsWillValidateCheck):
2867         * html/HTMLFormControlElement.h:
2868         (HTMLFormControlElement):
2869
2870 2012-05-01  Kent Tamura  <tkent@chromium.org>
2871
2872         Calendar Picker: Close the picker by ESC key
2873         https://bugs.webkit.org/show_bug.cgi?id=85337
2874
2875         Reviewed by Kentaro Hara.
2876
2877         No new tests. Calendar picker is not testable in DRT yet.
2878
2879         * Resources/calendarPicker.js:
2880         (handleGlobalKey): Close the popup by ESC key.
2881
2882 2012-05-01  Noel Gordon  <noel.gordon@gmail.com>
2883
2884         PNGImageDecoder: Handle interlace buffer allocation failure
2885         https://bugs.webkit.org/show_bug.cgi?id=85276
2886
2887         Reviewed by Eric Seidel.
2888
2889         No new tests. Not something we can easily test (malloc failure).
2890
2891         * platform/image-decoders/png/PNGImageDecoder.cpp:
2892         (WebCore::PNGImageDecoder::rowAvailable): Check interlace buffer allocations
2893         and bail via longjmp on failure. Note PNG_INTERLACE_ADAM7 is the only libpng
2894         supported interlace type so test for it explicitly.
2895
2896 2012-05-01  Kent Tamura  <tkent@chromium.org>
2897
2898         Calendar Picker: Too wide in Japanese locale
2899         https://bugs.webkit.org/show_bug.cgi?id=85331
2900
2901         Reviewed by Kentaro Hara.
2902
2903         No new tests. This is a locale-specific behavior.
2904
2905         * Resources/calendarPicker.js:
2906         (formatJapaneseImperialEra):
2907         Do not show an imperial era later than 平成99年 to avoid very long
2908         year string like "275760年(平成273772年)."
2909         (YearMonthController.prototype.attachTo):
2910         - Respect the maximum year specfied by <input max=...>
2911           If <input max="9999-12-31"> is specified, we don't need to
2912           secure space for the year 275,760.
2913         - Check the width for 平成99年 as well as the maximum year because
2914           "2087年(平成99年)" is usually wider than "275760年".
2915
2916 2012-05-01  Noel Gordon  <noel.gordon@gmail.com>
2917
2918         PNGImageDecoder: Add ENABLE(IMAGE_DECODER_DOWN_SAMPLING) guards to rowAvailable
2919         https://bugs.webkit.org/show_bug.cgi?id=85268
2920
2921         Reviewed by Eric Seidel.
2922
2923         PNGImageDecoder supports image downsampling. Add ENABLE guards to show where
2924         downsampling is applied when outputting decoded rows to the frame buffer. Most
2925         ports don't enable the flag: don't penalize them in terms speed in this tight
2926         row pixel write loop. s/y/destY/ to match setRGBA() and amend some comments.
2927
2928         No new tests. No change in behavior.
2929
2930         * platform/image-decoders/png/PNGImageDecoder.cpp:
2931         (WebCore::PNGImageDecoder::rowAvailable):
2932
2933 2012-05-01  Eric Seidel  <eric@webkit.org>
2934
2935         Remove uneeded min/max pref width assignment from RenderView
2936         https://bugs.webkit.org/show_bug.cgi?id=85325
2937
2938         Reviewed by Julien Chaffraix.
2939
2940         This code has been with us since the original import from KDE:
2941         http://trac.webkit.org/browser/trunk/WebCore/khtml/rendering/render_root.cpp?annotate=blame&rev=4#L93
2942         It's never been documented, or explained.  Removing it showed no
2943         effect on my local layout tests run.
2944         However this code blocks proper implementation of <iframe seamless>
2945         as we have to do proper min/max width negotiation across the iframe boundary.
2946
2947         I would remove the whole function, but doing so opens a whole can of worms
2948         as this override is public, yet normally this function is *private* (well protected on RenderBox).
2949         It seems plausible that frame flattening code needs this override since it doesn't always
2950         call the min/maxPreferredWidth() calls which normally automatically call this compute*
2951         function if the pref-widths are dirty.
2952         Instead of trying to track that all down, I'm just removing this line, and we'll go
2953         back and remove the whole function at a later date if possible.
2954
2955         * rendering/RenderView.cpp:
2956         (WebCore::RenderView::computePreferredLogicalWidths):
2957
2958 2012-05-01  Nate Chapin  <japhet@chromium.org>
2959
2960         REGRESSION(r115654): PDFs come up blank
2961         https://bugs.webkit.org/show_bug.cgi?id=85275
2962
2963         Reviewed by Alexey Proskuryakov.
2964
2965         Test: http/tests/loading/pdf-commit-load-callbacks.html
2966
2967         * loader/DocumentLoader.cpp:
2968         (WebCore::DocumentLoader::finishedLoading): The load needs to be
2969             committed before we call finishedLoading on the
2970             FrameLoaderClient.
2971         * loader/FrameLoader.cpp:
2972         (WebCore::FrameLoader::transitionToCommitted): We're guaranteeing
2973             that receivedFirstData() will be called other ways (namely,
2974             DocumentLoader won't finish without doing so). This call now
2975             causes custom representations to double-commit, which is bad.
2976
2977 2012-05-01  Eric Seidel  <eric@webkit.org>
2978
2979         Add support for seamless attribute as well as seamless sandbox flag and default CSS styling
2980         https://bugs.webkit.org/show_bug.cgi?id=85302
2981
2982         Reviewed by Ojan Vafai.
2983
2984         This also adds support for the seamless sandbox flag from HTML 5.
2985         The sandbox flag is not speficially overridable in the current HTML5,
2986         but it is set (like all sandbox flags) by default when sandbox is specified.
2987         Unfortunately this support is not yet observable in this patch, as
2988         this patch adds not observable features of seamless.
2989
2990         This patch also adds the html.css additions for seamless, as specified:
2991         http://www.whatwg.org/specs/web-apps/current-work/multipage/rendering.html#replaced-elements
2992
2993         I noticed that my previous testing did not confirm that iframes marked
2994         for seamless (but not possible to display as seamless due to sandbox, etc.)
2995         were still to have this seamless styling.  I've added additional testing for this case.
2996
2997         I also added another test for the about:blank FIXME added as part of this change.
2998
2999         In order to support srcdoc w/ seamless, we needed to move the srcdoc determination
3000         sooner in the initSecurityContext function (before the should-inherit early return).
3001
3002         The next patch will make seamless actually observable from JS/DOM, this one
3003         just lays down all the plumbing, and separates the security aspects for
3004         easy review.
3005
3006         Test: fast/frames/seamless/seamless-inherited-origin.html
3007
3008         * css/html.css:
3009         (iframe:not([seamless])):
3010         (iframe[seamless]):
3011         * dom/Document.cpp:
3012         (WebCore::isEligibleForSeamless):
3013         (WebCore):
3014         (WebCore::Document::initSecurityContext):
3015         (WebCore::Document::seamlessParentIFrame):
3016         (WebCore::Document::shouldDisplaySeamlesslyWithParent):
3017         * dom/Document.h:
3018         (WebCore):
3019         (Document):
3020         * dom/SecurityContext.cpp:
3021         (WebCore::SecurityContext::SecurityContext):
3022         * dom/SecurityContext.h:
3023         (WebCore::SecurityContext::mayDisplaySeamlessWithParent):
3024         (SecurityContext):
3025         * html/HTMLAttributeNames.in:
3026         * html/HTMLIFrameElement.cpp:
3027         (WebCore::HTMLIFrameElement::shouldDisplaySeamlessly):
3028         (WebCore):
3029         * html/HTMLIFrameElement.h:
3030         (HTMLIFrameElement):
3031         * html/HTMLIFrameElement.idl:
3032
3033 2012-05-01  Min Qin  <qinmin@google.com>
3034
3035         use USE(NATIVE_FULLSCREEN_VIDEO) instead of ENABLE(NATIVE_FULLSCREEN_VIDEO)
3036         https://bugs.webkit.org/show_bug.cgi?id=85316
3037
3038         Reviewed by Kent Tamura.
3039
3040         NATIVE_FULLSCREEN_VIDEO means the fullscreen video is implemented by native
3041         system view instead of webkit.
3042         So it is more appropriate to use USE(NATIVE_FULLSCREEN_VIDEO).
3043         This chagne also disabled the rendering of the fullscreen video element in webkit
3044         when that flag is set.
3045         Just renaming the variable, no new tests.
3046
3047         * dom/Document.cpp:
3048         (WebCore::Document::webkitWillEnterFullScreenForElement):
3049         (WebCore):
3050         * platform/graphics/MediaPlayer.cpp:
3051         (WebCore):
3052         * platform/graphics/MediaPlayer.h:
3053         (MediaPlayer):
3054         * platform/graphics/MediaPlayerPrivate.h:
3055         (MediaPlayerPrivateInterface):
3056
3057 2012-05-01  Jeffrey Pfau  <jpfau@apple.com>
3058
3059         <rdar://problem/10422318> Support for web content filter delegate for filtering https content
3060         https://bugs.webkit.org/show_bug.cgi?id=85300
3061
3062         Reviewed by Alexey Proskuryakov.
3063
3064         No new tests.
3065
3066         * WebCore.exp.in:
3067         * loader/MainResourceLoader.cpp:
3068         (WebCore::MainResourceLoader::MainResourceLoader):
3069         (WebCore::MainResourceLoader::~MainResourceLoader):
3070         (WebCore::MainResourceLoader::didCancel):
3071         (WebCore::MainResourceLoader::didReceiveResponse):
3072         (WebCore::MainResourceLoader::didReceiveData):
3073         (WebCore::MainResourceLoader::didFinishLoading):
3074         (WebCore::MainResourceLoader::didFail):
3075         * loader/MainResourceLoader.h:
3076         (MainResourceLoader):
3077         * platform/mac/WebCoreSystemInterface.h:
3078         * platform/mac/WebCoreSystemInterface.mm:
3079
3080 2012-05-01  Kent Tamura  <tkent@chromium.org>
3081
3082         Calendar Picker: Add capability to add platform-specific style sheet
3083         https://bugs.webkit.org/show_bug.cgi?id=85272
3084
3085         Reviewed by Kentaro Hara.
3086
3087         Add RenderTheme::extraCalendarPickerStyleSheet(). The resultant string
3088         of the function is inserted into the calendar picker page.
3089
3090         No new tests. Calendar picker apperance is not testable yet.
3091
3092         * Resources/calendarPicker.css: Removed styles for year-month buttons.
3093         * Resources/calendarPickerMac.css:
3094         Moved from calendarPicker.css, and adjust styles so that they look
3095         standard Lion buttons.
3096         (.year-month-button):
3097         (.year-month-button:active):
3098         (.year-month-button:disabled):
3099         * WebCore.gyp/WebCore.gyp: Add a rule to produce CalendarPickerMac.{cpp,h}.
3100         * html/shadow/CalendarPickerElement.cpp:
3101         (WebCore::CalendarPickerElement::writeDocument):
3102         Add extraCalendarPickerStyleSheet() result to the document.
3103         * rendering/RenderTheme.cpp:
3104         (WebCore::RenderTheme::extraCalendarPickerStyleSheet):
3105         Added. Returns an empty CString by default.
3106         * rendering/RenderTheme.h:
3107         (RenderTheme): Added extraCalendarPickerStyleSheet().
3108         * rendering/RenderThemeChromiumMac.h: Added extraCalendarPickerStyleSheet().
3109         * rendering/RenderThemeChromiumMac.mm:
3110         (WebCore::RenderThemeChromiumMac::extraCalendarPickerStyleSheet):
3111         Added. Returns the content of Resources/calendarPickerMac.css.
3112
3113 2012-05-01  James Simonsen  <simonjam@chromium.org>
3114
3115         Ensure HTMLElementStack fails gracefully if it has a non-Element.
3116         https://bugs.webkit.org/show_bug.cgi?id=85167
3117
3118         Reviewed by Adam Barth.
3119
3120         Test: Added to html5lib/resources/webkit02.dat
3121
3122         * html/parser/HTMLElementStack.cpp:
3123         (WebCore::HTMLElementStack::oneBelowTop):
3124         * html/parser/HTMLTreeBuilder.cpp:
3125         (WebCore::HTMLTreeBuilder::processEndTag):
3126
3127 2012-05-01  Ryosuke Niwa  <rniwa@webkit.org>
3128
3129         *Command.h files shouldn't be exported to WebKit layer
3130         https://bugs.webkit.org/show_bug.cgi?id=74778
3131
3132         Reviewed by Eric Seidel.
3133
3134         Remove the dependency on *Command.h files from Mac port's WebKit layer.
3135         Also wrapped the call to TypingCommand::insertParagraphSeparatorInQuotedContent in the Editor class
3136         so that we can just expose Editor's method instead of directly exposing the said static method.
3137
3138         * WebCore.exp.in:
3139         * WebCore.xcodeproj/project.pbxproj:
3140         * editing/Editor.h:
3141         (Editor):
3142         * editing/mac/EditorMac.mm:
3143         (WebCore::Editor::insertParagraphSeparatorInQuotedContent):
3144         (WebCore):
3145
3146 2012-05-01  Julien Chaffraix  <jchaffraix@webkit.org>
3147
3148         Remove one bit from m_column to pack RenderTableCell bits more
3149         https://bugs.webkit.org/show_bug.cgi?id=85291
3150
3151         Reviewed by Ojan Vafai.
3152
3153         Memory improvement, covered by the existing unit tests.
3154
3155         * rendering/RenderTableCell.cpp:
3156         * rendering/RenderTableCell.h:
3157         Remove one bit from m_column (which should be fine as I wouldn't expect tables above 1 millions
3158         columns to render at all anyway) to pack the bitfields in 32 bits. Re-arranged the bits to have the bigger
3159         bitfield first.
3160
3161 2012-05-01  Anders Carlsson  <andersca@apple.com>
3162
3163         Slow scrolling on www.sholby.net
3164         https://bugs.webkit.org/show_bug.cgi?id=85304
3165         <rdar://problem/11138952>
3166
3167         Reviewed by Beth Dakin.
3168
3169         Fix two performance issues that showed up on the profiles.
3170
3171         * loader/FrameLoader.cpp:
3172         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
3173         Reset the relevant painted object counter; it's only interesting when loading.
3174
3175         * page/Page.cpp:
3176         (WebCore::Page::startCountingRelevantRepaintedObjects):
3177         Set m_isCountingRelevantRepaintedObjects to true after calling reset, since reset now sets it to false.
3178
3179         (WebCore::Page::resetRelevantPaintedObjectCounter):
3180         Set m_isCountingRelevantRepaintedObjects to false.
3181
3182         (WebCore::Page::addRelevantRepaintedObject):
3183         Use HashSet::find to avoid an extra hash lookup.
3184
3185         * page/scrolling/ScrollingCoordinator.cpp:
3186         (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionAndScrollLayerPosition):
3187         Remove the call to FrameView::updateCompositingLayersAfterLayout now, since FrameView::notifyScrollPositionChanged
3188         already calls this and was making us to a lot of work twice.
3189
3190 2012-05-01  Silvia Pfeiffer  <silviapf@chromium.org>
3191
3192         Audio controls have a 1px surplus outline coming from RenderImage::paintReplaced base class,
3193         which needs overwriting.
3194         https://bugs.webkit.org/show_bug.cgi?id=84570
3195
3196         Reviewed by Eric Carlson.
3197
3198         No new tests - covered by existing audio rendering tests.
3199
3200         * rendering/RenderMedia.cpp:
3201         (WebCore::RenderMedia::paintReplaced): Overwrite inherited function.
3202         (WebCore):
3203         * rendering/RenderMedia.h:
3204         (RenderMedia):
3205
3206 2012-05-01  Terry Anderson  <tdanderson@chromium.org>
3207
3208         Allow a pre-targeted node to be specified when dispatching a GestureTap event
3209         https://bugs.webkit.org/show_bug.cgi?id=85296
3210
3211         Reviewed by Adam Barth.
3212
3213         https://bugs.webkit.org/show_bug.cgi?id=85101
3214             The new parameter will be used and tested in this patch.
3215
3216         * page/EventHandler.cpp:
3217         (WebCore::EventHandler::handleGestureTap):
3218             The new preTargetedNode parameter can be used to pass in the Node that is
3219             the target of the GestureTap event. If this parameter is used, adjustedPoint
3220             is changed to be the center of the Node's bounding rectangle.
3221         * page/EventHandler.h:
3222         (EventHandler):
3223
3224 2012-05-01  Jessie Berlin  <jberlin@apple.com>
3225
3226         Crash calling disconnectFrame on a DOMWindowExtension a second time.
3227         https://bugs.webkit.org/show_bug.cgi?id=85301
3228
3229         Reviewed by Darin Adler.
3230
3231         DOMWindowExtension::disconnectFrame assumed it would only be called when there was a frame
3232         to disconnect. However, DOMWindow's destructor invokes disconnectFrame on all its
3233         DOMWindowProperties, even if it already did so when it entered the page cache.
3234
3235         * page/DOMWindowExtension.cpp:
3236         (WebCore::DOMWindowExtension::disconnectFrame):
3237         Don't do anything if the frame has already been disconnected.
3238
3239 2012-05-01  Aaron Colwell  <acolwell@chromium.org>
3240
3241         Temporarily remove webkitSourceAddId() & webkitSourceRemoveId() from DOM
3242         until the rest of the Media Source v0.5 methods are implemented. This is
3243         to prevent ambiguity about whether v0.5 is fully supported or not.
3244         https://bugs.webkit.org/show_bug.cgi?id=85295
3245
3246         Reviewed by Eric Carlson.
3247
3248         No new tests. Removing methods from DOM so relevant tests are removed.
3249
3250         * html/HTMLMediaElement.idl:
3251
3252 2012-05-01  Douglas Stockwell  <dstockwell@chromium.org>
3253
3254         IndexedDB: stale index entries may not be removed in some cases
3255         https://bugs.webkit.org/show_bug.cgi?id=85224
3256
3257         Reviewed by Ojan Vafai.
3258
3259         Ensure that stale index entries are removed when the corresponding
3260         object store entry no longer exists.
3261
3262         No new tests. Addresses a performance / storage leak that is
3263         not amenable to verification in a layout test.
3264
3265         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
3266         (WebCore):
3267
3268 2012-05-01  Igor Oliveira  <igor.o@sisa.samsung.com>
3269
3270         Use HashMap<OwnPtr> for CounterMap in RenderCounter
3271         https://bugs.webkit.org/show_bug.cgi?id=85294
3272
3273         Reviewed by Eric Seidel.
3274
3275         * rendering/RenderCounter.cpp:
3276         (WebCore):
3277         (WebCore::makeCounterNode):
3278         (WebCore::RenderCounter::destroyCounterNodes):
3279
3280 2012-05-01  Philip Rogers  <pdr@google.com>
3281
3282         Skip building instance tree for disallowed target
3283         https://bugs.webkit.org/show_bug.cgi?id=85202
3284
3285         Reviewed by Nikolas Zimmermann.
3286
3287         When the target of a use is disallowed (e.g., a mask element) we can
3288         skip building the instance tree because the shadow tree will be
3289         skipped as well.
3290
3291         Test: svg/custom/animate-disallowed-mask-element.svg
3292
3293         * svg/SVGUseElement.cpp:
3294         (WebCore::SVGUseElement::buildInstanceTree):
3295
3296 2012-04-29  Nikolas Zimmermann  <nzimmermann@rim.com>
3297
3298         Accumulation for values-animation is broken
3299         https://bugs.webkit.org/show_bug.cgi?id=85158
3300
3301         Reviewed by Darin Adler.
3302
3303         Example:
3304         <rect width="999" height="100" fill="green"/>
3305             <animate begin="0s" values="0; 30; 20" accumulate="sum" repeatCount="5" dur="2s"/>
3306         </rect>
3307
3308         The rect should animate like this:
3309         0.000s -> 0
3310         0.500s -> 15
3311         1.000s -> 30
3312         1.500s -> 25
3313         1.999s -> 20
3314         2.000s -> 20 (first accumulation, starts accumulating from the last set value, here '20').
3315         2.500s -> 45
3316         3.000s -> 50
3317         3.500s -> 45
3318         3.999s -> 40
3319         4.000s -> 40 (second accumulation)
3320         etc.
3321
3322         This is currently broken for values-animation. The accumulation should happen after a full cycle of the values animation ran (aka. at the end of the duration).
3323         A values animation works like this: iterate over the list of values, and calculate a 'from' and 'to' value for a given time. Example for values="0; 30; 20" dur="2s":
3324             - 0.0s .. 1.0s -> from=0, to=30
3325             - 1.0s .. 2.0s -> from=30, to=20
3326
3327         Accumulation currently is taken into account at each interval for a values-animation instead of the end of the cycle. Fix that
3328         by passing an additional 'toAtEndOfDuration' type to calculateAnimatedValue() which is used for accumulation instead of the
3329         current 'to' value.
3330
3331         Test: svg/animations/accumulate-values-width-animation.html
3332
3333         * svg/SVGAnimateElement.cpp:
3334         (WebCore::SVGAnimateElement::calculateAnimatedValue):
3335         * svg/SVGAnimateElement.h:
3336         (SVGAnimateElement):
3337         * svg/SVGAnimateMotionElement.cpp:
3338         (WebCore::SVGAnimateMotionElement::calculateAnimatedValue):
3339         * svg/SVGAnimateMotionElement.h:
3340         (SVGAnimateMotionElement):
3341         * svg/SVGAnimatedAngle.cpp:
3342         (WebCore::SVGAnimatedAngleAnimator::calculateAnimatedValue):
3343         * svg/SVGAnimatedAngle.h:
3344         (SVGAnimatedAngleAnimator):
3345         * svg/SVGAnimatedBoolean.cpp:
3346         (WebCore::SVGAnimatedBooleanAnimator::calculateAnimatedValue):
3347         * svg/SVGAnimatedBoolean.h:
3348         (SVGAnimatedBooleanAnimator):
3349         * svg/SVGAnimatedColor.cpp:
3350         (WebCore::SVGAnimatedColorAnimator::calculateAnimatedValue):
3351         * svg/SVGAnimatedColor.h:
3352         (SVGAnimatedColorAnimator):
3353         * svg/SVGAnimatedEnumeration.cpp:
3354         (WebCore::SVGAnimatedEnumerationAnimator::calculateAnimatedValue):
3355         * svg/SVGAnimatedEnumeration.h:
3356         (SVGAnimatedEnumerationAnimator):
3357         * svg/SVGAnimatedInteger.cpp:
3358         (WebCore::SVGAnimatedIntegerAnimator::calculateAnimatedInteger):
3359         (WebCore::SVGAnimatedIntegerAnimator::calculateAnimatedValue):
3360         * svg/SVGAnimatedInteger.h:
3361         (SVGAnimatedIntegerAnimator):
3362         * svg/SVGAnimatedIntegerOptionalInteger.cpp:
3363         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateAnimatedValue):
3364         * svg/SVGAnimatedIntegerOptionalInteger.h:
3365         (SVGAnimatedIntegerOptionalIntegerAnimator):
3366         * svg/SVGAnimatedLength.cpp:
3367         (WebCore::SVGAnimatedLengthAnimator::calculateAnimatedValue):
3368         * svg/SVGAnimatedLength.h:
3369         (SVGAnimatedLengthAnimator):
3370         * svg/SVGAnimatedLengthList.cpp:
3371         (WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
3372         * svg/SVGAnimatedLengthList.h:
3373         (SVGAnimatedLengthListAnimator):
3374         * svg/SVGAnimatedNumber.cpp:
3375         (WebCore::SVGAnimatedNumberAnimator::calculateAnimatedValue):
3376         * svg/SVGAnimatedNumber.h:
3377         (SVGAnimatedNumberAnimator):
3378         * svg/SVGAnimatedNumberList.cpp:
3379         (WebCore::SVGAnimatedNumberListAnimator::calculateAnimatedValue):
3380         * svg/SVGAnimatedNumberList.h:
3381         (SVGAnimatedNumberListAnimator):
3382         * svg/SVGAnimatedNumberOptionalNumber.cpp:
3383         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::calculateAnimatedValue):
3384         * svg/SVGAnimatedNumberOptionalNumber.h:
3385         (SVGAnimatedNumberOptionalNumberAnimator):
3386         * svg/SVGAnimatedPath.cpp:
3387         (WebCore::SVGAnimatedPathAnimator::calculateAnimatedValue):
3388         * svg/SVGAnimatedPath.h:
3389         (SVGAnimatedPathAnimator):
3390         * svg/SVGAnimatedPointList.cpp:
3391         (WebCore::SVGAnimatedPointListAnimator::calculateAnimatedValue):
3392         * svg/SVGAnimatedPointList.h:
3393         (SVGAnimatedPointListAnimator):
3394         * svg/SVGAnimatedPreserveAspectRatio.cpp:
3395         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::calculateAnimatedValue):
3396         * svg/SVGAnimatedPreserveAspectRatio.h:
3397         (SVGAnimatedPreserveAspectRatioAnimator):
3398         * svg/SVGAnimatedRect.cpp:
3399         (WebCore::SVGAnimatedRectAnimator::calculateAnimatedValue):
3400         * svg/SVGAnimatedRect.h:
3401         (SVGAnimatedRectAnimator):
3402         * svg/SVGAnimatedString.cpp:
3403         (WebCore::SVGAnimatedStringAnimator::calculateAnimatedValue):
3404         * svg/SVGAnimatedString.h:
3405         (SVGAnimatedStringAnimator):
3406         * svg/SVGAnimatedTransformList.cpp:
3407         (WebCore::SVGAnimatedTransformListAnimator::calculateAnimatedValue):
3408         * svg/SVGAnimatedTransformList.h:
3409         (SVGAnimatedTransformListAnimator):
3410         * svg/SVGAnimatedTypeAnimator.h:
3411         (SVGAnimatedTypeAnimator):
3412         * svg/SVGAnimationElement.cpp:
3413         (WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
3414         (WebCore::SVGAnimationElement::updateAnimation):
3415         * svg/SVGAnimationElement.h:
3416         (WebCore::SVGAnimationElement::animateAdditiveNumber):
3417         (SVGAnimationElement):
3418
3419 2012-05-01  Beth Dakin  <bdakin@apple.com>
3420
3421         https://bugs.webkit.org/show_bug.cgi?id=85231
3422         Fixed position objects that are removed from the DOM don't kick off 
3423         fixed position recalculation
3424         -and corresponding-
3425         <rdar://problem/11297916>
3426
3427         Reviewed by Darin Adler.
3428
3429         * rendering/RenderBox.cpp:
3430         (WebCore::RenderBox::willBeDestroyed):
3431
3432 2012-05-01  Dana Jansens  <danakj@chromium.org>
3433
3434         Early-out for subtracting a non-intersecting region
3435         https://bugs.webkit.org/show_bug.cgi?id=85258
3436