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