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