29f5aaa80d2a049ee70c778753082d9efddc7d76
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-02-20  Dirk Schulze  <krit@webkit.org>
2
3         Enable CANVAS_PATH flag
4         https://bugs.webkit.org/show_bug.cgi?id=108508
5
6         Uneviewed attempt to fix Qt minimal build.
7
8         * html/canvas/DOMPath.h:
9         (WebCore::DOMPath::DOMPath):
10
11 \2013-02-20  Mark Lam  <mark.lam@apple.com>
12
13         Rename DatabaseBackendAsync to DatabaseBackend.
14         https://bugs.webkit.org/show_bug.cgi?id=110422.
15
16         Reviewed by Geoffrey Garen.
17
18         This is a purely cosmetic change to make the naming consistent with
19         the front-end Database.
20
21         No new tests.
22
23         * CMakeLists.txt:
24         * GNUmakefile.list.am:
25         * Modules/webdatabase/ChangeVersionWrapper.cpp:
26         (WebCore::ChangeVersionWrapper::performPreflight):
27         (WebCore::ChangeVersionWrapper::performPostflight):
28         * Modules/webdatabase/Database.cpp:
29         (WebCore::Database::Database):
30         (WebCore::Database::from):
31         (WebCore::Database::backend):
32         * Modules/webdatabase/Database.h:
33         * Modules/webdatabase/DatabaseBackend.cpp: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackendAsync.cpp.
34         (WebCore::DatabaseBackend::DatabaseBackend):
35         (WebCore::DatabaseBackend::openAndVerifyVersion):
36         (WebCore::DatabaseBackend::performOpenAndVerify):
37         (WebCore::DatabaseBackend::close):
38         (WebCore::DatabaseBackend::runTransaction):
39         (WebCore::DatabaseBackend::inProgressTransactionCompleted):
40         (WebCore::DatabaseBackend::scheduleTransaction):
41         (WebCore::DatabaseBackend::scheduleTransactionStep):
42         (WebCore::DatabaseBackend::transactionClient):
43         (WebCore::DatabaseBackend::transactionCoordinator):
44         * Modules/webdatabase/DatabaseBackend.h: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackendAsync.h.
45         * Modules/webdatabase/DatabaseBackendAsync.cpp: Removed.
46         * Modules/webdatabase/DatabaseBackendAsync.h: Removed.
47         * Modules/webdatabase/DatabaseBackendBase.cpp:
48         (WebCore::DatabaseBackendBase::~DatabaseBackendBase):
49         * Modules/webdatabase/DatabaseManager.cpp:
50         * Modules/webdatabase/DatabaseServer.cpp:
51         * Modules/webdatabase/DatabaseTask.cpp:
52         (WebCore::DatabaseTask::DatabaseTask):
53         (WebCore::DatabaseBackend::DatabaseOpenTask::DatabaseOpenTask):
54         (WebCore::DatabaseBackend::DatabaseOpenTask::doPerformTask):
55         (WebCore::DatabaseBackend::DatabaseOpenTask::debugTaskName):
56         (WebCore::DatabaseBackend::DatabaseCloseTask::DatabaseCloseTask):
57         (WebCore::DatabaseBackend::DatabaseCloseTask::doPerformTask):
58         (WebCore::DatabaseBackend::DatabaseCloseTask::debugTaskName):
59         (WebCore::DatabaseBackend::DatabaseTransactionTask::DatabaseTransactionTask):
60         (WebCore::DatabaseBackend::DatabaseTransactionTask::~DatabaseTransactionTask):
61         (WebCore::DatabaseBackend::DatabaseTransactionTask::doPerformTask):
62         (WebCore::DatabaseBackend::DatabaseTransactionTask::debugTaskName):
63         (WebCore::DatabaseBackend::DatabaseTableNamesTask::DatabaseTableNamesTask):
64         (WebCore::DatabaseBackend::DatabaseTableNamesTask::doPerformTask):
65         (WebCore::DatabaseBackend::DatabaseTableNamesTask::debugTaskName):
66         * Modules/webdatabase/DatabaseTask.h:
67         (WebCore::DatabaseTask::database):
68         (DatabaseTask):
69         (WebCore::DatabaseBackend::DatabaseOpenTask::create):
70         (DatabaseBackend::DatabaseOpenTask):
71         (WebCore::DatabaseBackend::DatabaseCloseTask::create):
72         (DatabaseBackend::DatabaseCloseTask):
73         (WebCore::DatabaseBackend::DatabaseTableNamesTask::create):
74         (DatabaseBackend::DatabaseTableNamesTask):
75         * Modules/webdatabase/DatabaseThread.cpp:
76         (WebCore::DatabaseThread::recordDatabaseOpen):
77         (WebCore::DatabaseThread::recordDatabaseClosed):
78         (WebCore::SameDatabasePredicate::SameDatabasePredicate):
79         (SameDatabasePredicate):
80         (WebCore::DatabaseThread::unscheduleDatabaseTasks):
81         * Modules/webdatabase/DatabaseThread.h:
82         * Modules/webdatabase/SQLStatementBackend.cpp:
83         (WebCore::SQLStatementBackend::execute):
84         (WebCore::SQLStatementBackend::setDatabaseDeletedError):
85         (WebCore::SQLStatementBackend::setVersionMismatchedError):
86         (WebCore::SQLStatementBackend::setFailureDueToQuota):
87         * Modules/webdatabase/SQLStatementBackend.h:
88         * Modules/webdatabase/SQLTransactionBackend.cpp:
89         (WebCore::SQLTransactionBackend::create):
90         (WebCore::SQLTransactionBackend::SQLTransactionBackend):
91         * Modules/webdatabase/SQLTransactionBackend.h:
92         (WebCore::SQLTransactionBackend::database):
93         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
94         (WebCore::getDatabaseIdentifier):
95         * Target.pri:
96         * WebCore.gypi:
97         * WebCore.vcproj/WebCore.vcproj:
98         * WebCore.vcxproj/WebCore.vcxproj:
99         * WebCore.vcxproj/WebCore.vcxproj.filters:
100         * WebCore.xcodeproj/project.pbxproj:
101
102 2013-02-20  David Kilzer  <ddkilzer@apple.com>
103
104         Upstream SharedTimerIOS.mm
105         <http://webkit.org/b/110161>
106
107         Reviewed by Benjamin Poulain.
108
109         * Configurations/WebCore.xcconfig:
110         (EXCLUDED_SOURCE_FILE_NAMES_iphoneos): Add SharedTimerMac.mm.
111         * WebCore.xcodeproj/project.pbxproj: Add SharedTimerIOS.mm.
112         * platform/ios/SharedTimerIOS.mm: Add.
113         (WebCore):
114         (-[WebCoreResumeNotifierIOS init]):
115         (-[WebCoreResumeNotifierIOS dealloc]):
116         (-[WebCoreResumeNotifierIOS didWake]):
117         (WebCore::setSharedTimerFiredFunction):
118         (WebCore::timerFired):
119         (WebCore::setSharedTimerFireInterval):
120         (WebCore::stopSharedTimer):
121
122 2013-02-20  Ojan Vafai  <ojan@chromium.org>
123
124         Speculative fix for EFL and Windows compilers not realizing
125         that all possible cases have a return value from this switch.
126
127         * rendering/RenderBox.cpp:
128         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
129
130 2013-02-20  David Hyatt  <hyatt@apple.com>
131
132         [New Multicolumn] Fix overflow computation for column blocks.
133         https://bugs.webkit.org/show_bug.cgi?id=110392.
134
135         Reviewed by Simon Fraser.
136
137         * rendering/RenderBox.cpp:
138         (WebCore::RenderBox::addOverflowFromChild):
139         Exclude in-flow RenderFlowThreads from overflow propagation.
140
141         * rendering/RenderMultiColumnSet.h:
142         * rendering/RenderRegion.h:
143         (WebCore::RenderRegion::shouldHaveAutoLogicalHeight):
144          * rendering/RenderRegionSet.h:
145         (RenderRegionSet):
146         Override shouldHaveAutoLogicalHeight to always be false
147         for region sets and for columns. Eventually we're going to try
148         to leverage this code to do column balancing, and that's why
149         RenderMultiColumnSet has a unique override.
150
151 2013-02-20  Brandon Jones  <bajones@google.com>
152  
153         Printing WebGL canvases in Chrome uses stale data after first print
154         https://bugs.webkit.org/show_bug.cgi?id=110003
155  
156         Reviewed by Kenneth Russell.
157  
158         Unable to validate printed content automatically. No regression in existing WebGL tests.
159  
160          * html/canvas/WebGLRenderingContext.cpp:
161          (WebCore):
162          (WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
163
164 2013-02-20  Christian Biesinger  <cbiesinger@chromium.org>
165
166         Incorrect rendering for flex boxes with percentage height in a table cell
167         https://bugs.webkit.org/show_bug.cgi?id=110389
168
169         Reviewed by Tony Chang.
170
171         Tests: css3/flexbox/flex-percentage-height-in-table-standards-mode.html
172                css3/flexbox/flex-percentage-height-in-table.html
173
174         * rendering/RenderFlexibleBox.cpp:
175         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
176         Always update the logical height of the flex box, not just when it is
177         auto. If necessary, the later updateLogicalHeight() call will adjust
178         it.
179
180 2013-02-20  Philip Rogers  <pdr@google.com>
181
182         Account for transform in SVG background images
183         https://bugs.webkit.org/show_bug.cgi?id=110295
184
185         Reviewed by Dirk Schulze.
186
187         Tiled SVG background images are rendererd by drawing the SVG content into a temporary
188         image buffer, then stamping out a tiled pattern using this buffer. Previously the
189         image buffer did not account for CSS transforms which could result in pixelated backgrounds.
190
191         This patch takes advantage of the context's transform when sizing the temporary tiling
192         image buffer. Because the context's transform also includes scale, this patch simplifies
193         the SVG image code to no longer track scale.
194
195         Test: svg/as-background-image/svg-transformed-background.html
196
197         * loader/cache/CachedImage.cpp:
198         (WebCore):
199         (WebCore::CachedImage::imageForRenderer):
200
201             CachedImage::lookupOrCreateImageForRenderer no longer creates images so it has been
202             refactored into just "imageForRenderer". Previously there were two versions of
203             lookupOrCreateImageForRenderer; these have been folded into imageForRenderer.
204
205         * loader/cache/CachedImage.h:
206         * svg/graphics/SVGImage.cpp:
207         (WebCore::SVGImage::drawPatternForContainer):
208
209             To create the temporary tiling image buffer, the final size in screen coordinates is
210             needed. This is now computed using the current context's CTM. Because the CTM
211             already includes the page scale, all page scale tracking can be removed.
212
213             The adjustments to srcRect and the pattern transform are the same as before, just
214             refactored to use imageBufferScale which has x and y components.
215
216         * svg/graphics/SVGImage.h:
217         * svg/graphics/SVGImageCache.cpp:
218         (WebCore::SVGImageCache::setContainerSizeForRenderer):
219
220             Because the page scale needed to be cached between calls to
221             setContainerSizeForRenderer, this function was written to modify an existing cache
222             entry. Because the page scale no longer needs to be tracked, this code has been
223             simplified to re-write any existing cache entry.
224
225         (WebCore::SVGImageCache::imageSizeForRenderer):
226
227             This function has been simplified by calling SVGImageForContainer::size() instead
228             of computing this value manually. The value returned remains the same, containing
229             the container size multiplied by zoom.
230
231         (WebCore::SVGImageCache::imageForRenderer):
232
233             Previously we set the page scale on every call to imageForRenderer. Because page scale
234             no longer needs to be tracked, this function has been simplified to simply return
235             the cached SVGImageForContainer.
236
237         * svg/graphics/SVGImageForContainer.cpp:
238         (WebCore::SVGImageForContainer::drawPattern):
239         * svg/graphics/SVGImageForContainer.h:
240         (WebCore::SVGImageForContainer::create):
241         (WebCore::SVGImageForContainer::SVGImageForContainer):
242         (SVGImageForContainer):
243
244 2013-02-20  Jer Noble  <jer.noble@apple.com>
245
246         Crash in com.apple.WebKit2.WebProcessService at com.apple.avfoundation: __73-[AVAssetResourceLoader _attemptDelegateHandlingOfRequestWithDictionary:]_block_invoke + 51
247         https://bugs.webkit.org/show_bug.cgi?id=110385
248
249         Reviewed by Eric Carlson.
250
251         Ensure AVFoundation does not attempt to message a dead object by explicitly disassociating
252         the AVAssetResourceLoaderDelegate on MediaPlayerPrivateAVFoundationObjC destruction.
253
254         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
255         (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
256
257 2013-02-20  Ojan Vafai  <ojan@chromium.org>
258
259         Positioned, replaced elements with intrinsic width keywords compute the wrong width
260         https://bugs.webkit.org/show_bug.cgi?id=110393
261
262         Reviewed by Emil A Eklund.
263
264         Test: fast/css-intrinsic-dimensions/intrinsic-sized-replaced-absolutes.html
265
266         * rendering/RenderBox.cpp:
267         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
268         Add the intrinsic size keywords to the switch. Confusingly, we have to
269         subtract the border and padding since the callers expect the content width.
270
271         * rendering/RenderReplaced.cpp:
272         (WebCore::RenderReplaced::computeReplacedLogicalWidth):
273         Don't do the intrinsic ratio calculation if the width is an
274         intrinsic width keyword, as per, http://dev.w3.org/csswg/css3-sizing/#replaced-intrinsic.
275
276         (WebCore::RenderReplaced::computeIntrinsicLogicalWidths):
277         (WebCore::RenderReplaced::computePreferredLogicalWidths):
278         The old code was trying to apply the intrinsic ratio calculation to
279         the intrinsic width, which is wrong per spec.
280
281 2013-02-20  Alec Flett  <alecflett@chromium.org>
282
283         LevelDB: Remove excess vector copy
284         https://bugs.webkit.org/show_bug.cgi?id=110399
285
286         Reviewed by Tony Chang.
287
288         Remove an extra copy introduced by the makeVector function.
289
290         No new tests, this is covered by existing tests.
291
292         * platform/leveldb/LevelDBDatabase.cpp:
293         (WebCore::LevelDBDatabase::safeGet):
294
295 2013-02-20  Simon Fraser  <simon.fraser@apple.com>
296
297         Zoomed, slow-scrolling pages keep recreating tiles when scrolled
298         https://bugs.webkit.org/show_bug.cgi?id=110379
299
300         Reviewed by Tim Horton.
301
302         On slow-scrolling pages the TileCache makes the tiles the size of
303         the visible rect to minimize per-tile painting overhead. If the size
304         of that rect changes, the TileCache re-creates all the tiles.
305         
306         This was a problem whem zoomed, because mapping the visible rect
307         through the scale transform and then rounding it would cause the
308         size to keep changing, causing lots of tile re-creation.
309         
310         Fix by carrying the visibleRect around as a FloatRect, and doing
311         the same for the exposedRect. We then only expand to integers
312         when computing the tile size. This also fixes an issue where we could
313         sometimes make extra tiles because of fractional bits of tiles at the edges,
314         as shown by the test result change.
315
316         * platform/graphics/TiledBacking.h:
317         * platform/graphics/ca/GraphicsLayerCA.cpp:
318         (WebCore::GraphicsLayerCA::updateVisibleRect):
319         * platform/graphics/ca/mac/TileCache.h:
320         * platform/graphics/ca/mac/TileCache.mm:
321         (WebCore::TileCache::setVisibleRect):
322         (WebCore::TileCache::setExposedRect):
323         (WebCore::TileCache::prepopulateRect):
324         (WebCore::TileCache::computeTileCoverageRect):
325         (WebCore::TileCache::tileSizeForCoverageRect):
326         (WebCore::TileCache::blankPixelCountForTiles):
327         (WebCore::TileCache::revalidateTiles):
328         (WebCore::TileCache::ensureTilesForRect):
329         * platform/graphics/ca/mac/WebTileLayer.mm:
330         (-[WebTileLayer logFilledFreshTile]):
331
332 2013-02-20  Julien Chaffraix  <jchaffraix@webkit.org>
333
334         [CSS Grid Layout] Implement the auto-placement algorithm without grid growth
335         https://bugs.webkit.org/show_bug.cgi?id=110277
336
337         Reviewed by Tony Chang.
338
339         Tests: fast/css-grid-layout/grid-item-addition-auto-placement-update.html
340                fast/css-grid-layout/grid-item-removal-auto-placement-update.html
341                fast/css-grid-layout/grid-auto-flow-resolution.html (extended to cover more cases)
342
343         This change implements most of the auto-placement algorithm per
344         http://dev.w3.org/csswg/css3-grid-layout/#auto-placement-algo
345
346         To limit the size of the code change, it doesn't implement growing the grid if there
347         are no empty grid areas. If we don't find any empty grid areas, we just insert in the first
348         one, like what grid-auto-flow: none would do (which explains the test failures).
349
350         * rendering/RenderGrid.cpp:
351         (WebCore::RenderGrid::GridIterator::nextEmptyGridArea):
352         Added this function to return the GridCoordinate of the next empty grid area along
353         the iterator's direction.
354
355         (WebCore::RenderGrid::placeItemsOnGrid):
356         Split this function into the different steps below. For efficiency, collect the auto vs specified
357         major axis grid items in different Vectors.
358
359         (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
360         Added this function that implements part of step 1 of the algorithm (the grid items without
361         auto row / column are already handled in placeItemsOnGrid).
362
363         (WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid):
364         Added this function that iterates over the auto grid items and call placeAutoMajorAxisItemOnGrid.
365
366         (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
367         Added this method to handle the step 4 of the algorithm. Based on the minor axis's position,
368         it either walks along the major axis once or several times until it finds an empty grid area
369         for the grid item.
370
371         (WebCore::RenderGrid::autoPlacementMajorAxisPositionForChild):
372         (WebCore::RenderGrid::autoPlacementMinorAxisPositionForChild):
373         (WebCore::RenderGrid::autoPlacementMajorAxisDirection):
374         (WebCore::RenderGrid::autoPlacementMinorAxisDirection):
375         Added these helper functions that return minor / major axis positions & direction.
376
377         * rendering/RenderGrid.h:
378         Added the previous new RenderGrid functions.
379
380 2013-02-20  Vincent Scheib  <scheib@chromium.org>
381
382         Accept 'allowfullscreen' in addition to 'webkitallowfullscreen'.
383         https://bugs.webkit.org/show_bug.cgi?id=110374
384
385         Reviewed by Adam Barth.
386
387         The fullscreen API also includes a new HTML attribute for iframes
388         which permits its use. That attribute, 'allowfullcreen' is now
389         included in the HTML specification [1] and is stable enough
390         to remove the webkit prefix.
391
392         [1] http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#attr-iframe-allowfullscreen
393
394         Tests: fullscreen/full-screen-enabled-prefixed.html
395                fullscreen/full-screen-iframe-allowed-prefixed.html
396                fullscreen/full-screen-iframe-with-mixed-allow-webkitallow-attribute.html
397
398         * dom/Document.cpp:
399         (WebCore::isAttributeOnAllOwners):
400         (WebCore::Document::fullScreenIsAllowedForElement):
401         (WebCore::Document::webkitFullscreenEnabled):
402         * html/HTMLAttributeNames.in:
403
404 2013-02-20  Roger Fong  <roger_fong@apple.com>
405
406         Unreviewed. Remove references to SAFARI_THEME from Windows Solution.
407         <rdar://problem/13258710>
408
409         * config.h:
410         * page/Settings.cpp:
411         * page/Settings.h:
412         * platform/win/ScrollbarThemeWin.cpp:
413         * rendering/RenderThemeWin.cpp:
414
415 2013-02-20  Roger Fong  <roger_fong@apple.com>
416
417         Get VS2010 Solution B&I ready.
418         <rdar://problem/1322988>
419
420         Rubberstamped by Timothy Horton.
421
422         Add Production configuration. 
423         Add a WebCore submit solution with a DebugSuffix configuration. 
424         Modify WebCore.make as necessary.
425         
426         * DerivedSources.make:
427         * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj:
428         * WebCore.vcxproj/QTMovieWin/QTMovieWinCommon.props:
429         * WebCore.vcxproj/QTMovieWin/QTMovieWinProduction.props: Added.
430         * WebCore.vcxproj/QTMovieWin/QTMovieWinRelease.props:
431         * WebCore.vcxproj/WebCore.make: Added.
432         * WebCore.vcxproj/WebCore.sln: Removed.
433         * WebCore.vcxproj/WebCore.submit.sln: Copied from Source/WebCore/WebCore.vcxproj/WebCore.sln.
434         * WebCore.vcxproj/WebCore.vcxproj:
435         * WebCore.vcxproj/WebCoreGenerated.vcxproj:
436         * WebCore.vcxproj/WebCoreGeneratedProduction.props: Added.
437         * WebCore.vcxproj/WebCoreGeneratedRelease.props:
438         * WebCore.vcxproj/WebCoreProduction.props: Added.
439         * WebCore.vcxproj/WebCoreRelease.props:
440         * WebCore.vcxproj/WebCoreTestSupport.vcxproj:
441
442 2013-02-20  Adam Klein  <adamk@chromium.org>
443
444         [v8] Fix an erroneous WrapperGrouper call in preparation for refactoring
445         https://bugs.webkit.org/show_bug.cgi?id=110396
446
447         Reviewed by Kentaro Hara.
448
449         This is in preparation for a refactor to expose a simplified
450         WrapperGrouper interface to V8 wrapper classes enabling them to
451         specify multiple roots per wrapper object. 
452
453         * bindings/v8/V8GCController.cpp: Since MutationObservers are not Nodes, the correct call here is addObjectToGroup, as it is for all other non-Node wrappers.
454
455 2013-02-20  Levi Weintraub  <leviw@chromium.org>
456
457         Line layout (but not pref widths) double-counts word spacing when between inlines
458         https://bugs.webkit.org/show_bug.cgi?id=110381
459
460         Reviewed by Emil A Eklund.
461
462         When a word break with a space occurs between inlines and word-spacing is non-zero,
463         line layout incorrectly committed the word-spacing value to the line twice, causing
464         wrapping in inline-blocks. To fix this, clear the word-spacing value when between
465         words and ignoring spaces, as we will already have added the word-spacing to the
466         line.
467
468         Test: fast/text/word-space-between-inlines.html
469
470         * rendering/RenderBlockLineLayout.cpp:
471         (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
472
473 2013-02-20  Nate Chapin  <japhet@chromium.org>
474
475         Crash in WebCore::FrameLoader::checkCompleted()
476         https://bugs.webkit.org/show_bug.cgi?id=110237
477
478         Reviewed by Abhishek Arya.
479
480         Test: http/tests/misc/delete-frame-during-readystatechange.html
481
482         * loader/FrameLoader.cpp:
483         (WebCore::FrameLoader::checkCompleted): Protect before setReadyState() is called.
484
485 2013-02-20  David Grogan  <dgrogan@chromium.org>
486
487         IndexedDB: Limit LevelDB's max open files
488         https://bugs.webkit.org/show_bug.cgi?id=109993
489
490         Reviewed by Tony Chang.
491
492         LevelDB keeps up to 1000 (by default) data files open at a time to
493         avoid having to open() them. This has caused chromium to hit the
494         process-wide open file limit. This patch changes max_open_files to 20,
495         as that's the minimum permitted by LevelDB and we have no reason to
496         think that performance will suffer because of the extra open calls.
497
498         No new tests - a chromium browser test that tracks the open LevelDB
499         files is plausible but is blocked on http://crbug.com/177249/.
500
501         * platform/leveldb/LevelDBDatabase.cpp:
502         (WebCore::openDB):
503
504 2013-02-20  David Hyatt  <hyatt@apple.com>
505
506         [New Multicolumn] Resize RenderMultiColumnSets around their columns.
507         https://bugs.webkit.org/show_bug.cgi?id=110378.
508
509         Reviewed by Dirk Schulze.
510
511         Test: fast/multicol/newmulticol/positioned-with-constrained-height.html.
512
513         * rendering/RenderBlock.h:
514         (RenderBlock):
515         Make computeOverflow public so that RenderMultiColumnFlowThread can
516         access it.
517
518         * rendering/RenderMultiColumnFlowThread.cpp:
519         (WebCore::RenderMultiColumnFlowThread::layout):
520         Subclass layout to recompute the overflow for RenderMultiColumnBlock
521         after the flow thread has finished layout. This way it can account
522         for changes in RenderMultiColumnSets without having to do a second
523         layout pass.
524
525         * rendering/RenderMultiColumnFlowThread.h:
526         (RenderMultiColumnFlowThread):
527         Override layout().
528
529         * rendering/RenderMultiColumnSet.cpp:
530         (WebCore::RenderMultiColumnSet::columnCount):
531         Clean up a comment that referred to portions as region rects still.
532
533         (WebCore::RenderMultiColumnSet::setFlowThreadPortionRect):
534         * rendering/RenderMultiColumnSet.h:
535         * rendering/RenderRegion.h:
536         (WebCore::RenderRegion::setFlowThreadPortionRect):
537         Make setFlowThreadPortionRect virtual and actually mutate the size
538         and position of RenderMultiColumnSets so that they enclose their
539         column rects.
540
541 2013-02-20  Dirk Schulze  <krit@webkit.org>
542
543         Enable CANVAS_PATH flag
544         https://bugs.webkit.org/show_bug.cgi?id=108508
545
546         Reviewed by Simon Fraser.
547
548         Enable CANVAS_PATH flag on trunk.
549
550         Existing tests cover the feature.
551
552         * Configurations/FeatureDefines.xcconfig:
553
554 2013-02-20  Sheriff Bot  <webkit.review.bot@gmail.com>
555
556         Unreviewed, rolling out r143441.
557         http://trac.webkit.org/changeset/143441
558         https://bugs.webkit.org/show_bug.cgi?id=110376
559
560         May be causing chromium content_browsertests failures.
561         (Requested by vollick on #webkit).
562
563         * bindings/v8/ScriptValue.cpp:
564         (WebCore::ScriptValue::serialize):
565         (WebCore::ScriptValue::getString):
566         (WebCore::ScriptValue::toString):
567         (WebCore::ScriptValue::toInspectorValue):
568         * bindings/v8/ScriptValue.h:
569         (WebCore::ScriptValue::ScriptValue):
570         (WebCore::ScriptValue::operator=):
571         (WebCore::ScriptValue::operator==):
572         (WebCore::ScriptValue::isEqual):
573         (WebCore::ScriptValue::isFunction):
574         (WebCore::ScriptValue::isNull):
575         (WebCore::ScriptValue::isUndefined):
576         (WebCore::ScriptValue::isObject):
577         (WebCore::ScriptValue::hasNoValue):
578         (WebCore::ScriptValue::clear):
579         (WebCore::ScriptValue::v8Value):
580         (ScriptValue):
581         * bindings/v8/SharedPersistent.h:
582         (WebCore):
583         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
584         (WebCore::InjectedScriptHost::scriptValueAsNode):
585         * bindings/v8/custom/V8MessageEventCustom.cpp:
586         (WebCore::V8MessageEvent::dataAttrGetterCustom):
587
588 2013-02-15  Dirk Schulze  <krit@webkit.org>
589
590         [Chromium] Add runtime flag for CanvasPath
591         https://bugs.webkit.org/show_bug.cgi?id=109997
592
593         Reviewed by Adam Barth.
594
595         Add runtime flag for Chromium.
596
597         * bindings/generic/RuntimeEnabledFeatures.cpp:
598         (WebCore):
599         * bindings/generic/RuntimeEnabledFeatures.h:
600         (RuntimeEnabledFeatures):
601         (WebCore::RuntimeEnabledFeatures::setCanvasPathEnabled):
602         (WebCore::RuntimeEnabledFeatures::canvasPathEnabled):
603         * html/canvas/DOMPath.idl:
604         * page/DOMWindow.idl:
605
606 2013-02-20  Laszlo Gombos  <l.gombos@samsung.com>
607
608         Remove unnecessary includes for Platform.h from headers
609         https://bugs.webkit.org/show_bug.cgi?id=110300
610
611         Reviewed by Alexey Proskuryakov.
612
613         wtf/Platform.h only need to be included in a few places directly
614         as it is included in config.h. Remove the unnecessay duplicate as
615         it can be confusing.
616
617         No new tests, no change in functionality.
618
619         * platform/SecureTextInput.h:
620         * platform/audio/Biquad.h:
621         * platform/audio/FFTFrame.h:
622         * platform/graphics/cpu/arm/filters/FEBlendNEON.h:
623         * platform/graphics/cpu/arm/filters/NEONHelpers.h:
624         * platform/graphics/filters/FELighting.h:
625
626 2013-02-20  Florin Malita  <fmalita@chromium.org>
627
628         [SVG] Update of element referenced by multiple 'use' nodes is absurdly slow
629         https://bugs.webkit.org/show_bug.cgi?id=97905
630
631         Reviewed by Dirk Schulze.
632
633         Rebuilding the shadow and instance trees of dependent use nodes recursively can be
634         extremely inefficient with non-trivial dependency graphs (the trees are not constructed
635         in topological order).
636
637         To avoid redundant buildShadowAndInstanceTree() invokations, separate the invalidation
638         phase from the actual tree (re)building phase, and only descend into the dependency DAG
639         during the invalidation phase (recursion also stops at nodes that have been previously
640         invalidated).
641
642         No new tests: functional coverage provided by existing tests, perfomance tracked by
643         PerformanceTests/SVG/SvgNestedUse.html.
644
645         * svg/SVGUseElement.cpp:
646         (WebCore::SVGUseElement::buildPendingResource):
647         (WebCore::SVGUseElement::buildShadowAndInstanceTree):
648         (WebCore::SVGUseElement::invalidateShadowTree):
649         (WebCore):
650         (WebCore::SVGUseElement::invalidateDependentShadowTrees):
651         * svg/SVGUseElement.h:
652         (SVGUseElement):
653
654 2013-02-20  Tim Horton  <timothy_horton@apple.com>
655
656         RenderLayerBacking should initialize TiledBacking's isInWindow state with Page's isInWindow, not isOnscreen
657         https://bugs.webkit.org/show_bug.cgi?id=110370
658         <rdar://problem/13254006>
659
660         Reviewed by Simon Fraser.
661
662         * rendering/RenderLayerBacking.cpp:
663         (WebCore::RenderLayerBacking::RenderLayerBacking):
664
665 2013-02-20  Mark Lam  <mark.lam@apple.com>
666
667         Cleanup the SQLTransaction and SQLTransactionBackend state dispatch
668         to only honor a state transition request if the associated database
669         hasn't been interrupted.
670         https://bugs.webkit.org/show_bug.cgi?id=110247.
671
672         Reviewed by Antti Koivisto.
673
674         No new tests.
675
676         * Modules/webdatabase/SQLTransaction.cpp:
677         (WebCore::SQLTransaction::performPendingCallback):
678         (WebCore::SQLTransaction::computeNextStateAndCleanupIfNeeded):
679         * Modules/webdatabase/SQLTransaction.h:
680         * Modules/webdatabase/SQLTransactionBackend.cpp:
681         (WebCore::SQLTransactionBackend::computeNextStateAndCleanupIfNeeded):
682         (WebCore::SQLTransactionBackend::performNextStep):
683         * Modules/webdatabase/SQLTransactionBackend.h:
684
685 2013-02-20  Alexey Proskuryakov  <ap@apple.com>
686
687         ResourceHandle::loadResourceSynchronously should have blob support in cross-platform code
688         https://bugs.webkit.org/show_bug.cgi?id=110364
689
690         Reviewed by Anders Carlsson.
691
692         * platform/network/ResourceHandle.h:
693         * platform/network/ResourceHandle.cpp: (WebCore::ResourceHandle::loadResourceSynchronously):
694         Added a cross-platform version to keep blob-related logic in one place.
695
696         * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
697         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
698         * platform/network/cf/ResourceHandleCFNet.cpp:
699         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
700         * platform/network/curl/ResourceHandleCurl.cpp:
701         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
702         * platform/network/mac/ResourceHandleMac.mm:
703         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
704         * platform/network/qt/ResourceHandleQt.cpp:
705         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
706         * platform/network/soup/ResourceHandleSoup.cpp:
707         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
708         * platform/network/win/ResourceHandleWin.cpp:
709         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
710         Renamed loadResourceSynchronously to platformLoadResourceSynchronously,
711         removed blob handling from platforms that had it.
712
713 2013-02-20  David Hyatt  <hyatt@apple.com>
714
715         [New Multicolumn] RenderMultiColumnFlowThreads should establish a BFC.
716         https://bugs.webkit.org/show_bug.cgi?id=110366.
717
718         Reviewed by Antti Koivisto.
719
720         RenderFlowThreads should establish a block formatting context always.
721         CSS Regions have named flow thread that they absolutely position, and so
722         they got this for free by being absolutely positioned.
723         
724         RenderMultiColumnFlowThreads, however, are relative positioned, so we need
725         to just add an isRenderFlowThread case specifically so we're not dependent
726         on the positioning scheme used for the flow thread to establish the BFC.
727         
728         Test: fast/multicol/newmulticol/float-*.html.
729
730         * rendering/RenderBlock.cpp:
731         (WebCore::RenderBlock::MarginInfo::MarginInfo):
732
733 2013-02-20  David Hyatt  <hyatt@apple.com>
734
735         [New Multicolumn] Column gap is computed incorrectly.
736         https://bugs.webkit.org/show_bug.cgi?id=110360.
737
738         Reviewed by Simon Fraser.
739
740         Test: fast/multicol/newmulticol/layers-split-across-columns.html.
741
742         * rendering/RenderMultiColumnSet.cpp:
743         (WebCore::RenderMultiColumnSet::columnGap):
744         Make sure we ask the RenderMultiColumnBlock for the gap rather than our
745         own style, since we don't actually have the gap value in our style.
746         
747         (WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
748         * rendering/RenderMultiColumnSet.h:
749         Fix another spot where the columnGap was an int. It should be a LayoutUnit.
750
751 2013-02-20  Robert Hogan  <robert@webkit.org>
752
753         No caret on empty contenteditable element with negative text-indent
754         https://bugs.webkit.org/show_bug.cgi?id=108633
755
756         Reviewed by Ryosuke Niwa.
757
758         Test: fast/repaint/paint-caret-in-div-with-negative-indent.html
759
760         When an editable element has a negative text indent we won't paint the caret when the
761         element is empty because it falls outside the element's border box. To ensure the caret is painted,
762         account for any negative indent with our overflow.
763
764         * rendering/RenderBlock.cpp:
765         (WebCore::RenderBlock::computeOverflow):
766
767 2013-02-20  Ojan Vafai  <ojan@chromium.org>
768
769         Remove stretchesToMinIntrinsicLogicalWidth
770         https://bugs.webkit.org/show_bug.cgi?id=110266
771
772         Reviewed by Emil Eklund.
773
774         This was only used by fieldsets and now we have a way to express this
775         concept in CSS.
776
777         * WebCore.order:
778         * css/html.css:
779         Make fieldsets min-width: -webkit-min-content.
780
781         * rendering/RenderBox.cpp:
782         (WebCore::RenderBox::computeLogicalWidthInRegion):
783         (WebCore::RenderBox::computePositionedLogicalWidth):
784         * rendering/RenderBox.h:
785         Remove all calls to stretchesToMinIntrinsicLogicalWidth.
786
787 2013-02-20  Ojan Vafai  <ojan@chromium.org>
788
789         Make intrinsic width values work for positioned elements
790         https://bugs.webkit.org/show_bug.cgi?id=110264
791
792         Reviewed by Tony Chang.
793
794         Tests: fast/css-intrinsic-dimensions/intrinsic-sized-absolutes.html
795                fast/css-intrinsic-dimensions/width-shrinks-avoid-floats.html
796
797         * rendering/RenderBox.cpp:
798         (WebCore::RenderBox::computeIntrinsicLogicalWidthUsing):
799         (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
800         Move the computation of intrinsic widths out into a helper function so that
801         computePositionedLogicalWidthUsing can use it. As per the current spec,
802         fill-available measures shrink to avoid floats. http://dev.w3.org/csswg/css3-sizing/
803
804         (WebCore::RenderBox::computePositionedLogicalWidth):
805         Compute intrinsic min-widths in addition to non-zero ones. Intrinsic widths
806         return true for isZero. width and max-width don't need modifying since they already
807         call computePositionedLogicalWidthUsing for intrinsic widths.
808
809         (WebCore::RenderBox::computePositionedLogicalWidthUsing):
810         Compute intrinsic widths and use a Fixed length for the rest of the positioned width
811         computation. Doesn't include bordersPlusPadding because the caller, expected the content
812         width and adds in the bordersPlusPadding later.
813
814         * rendering/RenderBox.h:
815
816 2013-02-20  Robert Hogan  <robert@webkit.org>
817
818         input element with placeholder text and width set to 100% on focus causes overflow even after losing focus
819         https://bugs.webkit.org/show_bug.cgi?id=109020
820
821         Reviewed by David Hyatt.
822
823         Tests: fast/forms/input-placeholder-layout-view.html
824                fast/forms/textarea-placeholder-layout-view.html
825
826         Placeholder elements don't affect layout so shouldn't contribute overflow either.
827
828         * rendering/RenderTextControlSingleLine.cpp:
829         (WebCore::RenderTextControlSingleLine::layout):
830
831 2013-02-20  Mark Lam  <mark.lam@apple.com>
832
833         Rename DatabaseBackend to DatabaseBackendBase.
834         https://bugs.webkit.org/show_bug.cgi?id=110303.
835
836         Rubber stamped by Alexey Proskuryakov.
837
838         This is a purely cosmetic change to make the naming consistent with
839         the front-end DatabaseBase.
840
841         No new tests.
842
843         * CMakeLists.txt:
844         * GNUmakefile.list.am:
845         * Modules/webdatabase/AbstractDatabaseServer.h:
846         * Modules/webdatabase/Database.cpp:
847         (WebCore::Database::create):
848         (WebCore::Database::version):
849         * Modules/webdatabase/Database.h:
850         (Database):
851         * Modules/webdatabase/DatabaseBackend.cpp: Removed.
852         * Modules/webdatabase/DatabaseBackend.h: Removed.
853         * Modules/webdatabase/DatabaseBackendAsync.cpp:
854         (WebCore::DatabaseBackendAsync::DatabaseBackendAsync):
855         (WebCore::DatabaseBackendAsync::performOpenAndVerify):
856         * Modules/webdatabase/DatabaseBackendAsync.h:
857         * Modules/webdatabase/DatabaseBackendBase.cpp: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackend.cpp.
858         (WebCore::DatabaseBackendBase::databaseInfoTableName):
859         (WebCore::DatabaseBackendBase::DatabaseBackendBase):
860         (WebCore::DatabaseBackendBase::~DatabaseBackendBase):
861         (WebCore::DatabaseBackendBase::closeDatabase):
862         (WebCore::DatabaseBackendBase::version):
863         (WebCore::DoneCreatingDatabaseOnExitCaller::DoneCreatingDatabaseOnExitCaller):
864         (DoneCreatingDatabaseOnExitCaller):
865         (WebCore::DatabaseBackendBase::performOpenAndVerify):
866         (WebCore::DatabaseBackendBase::securityOrigin):
867         (WebCore::DatabaseBackendBase::stringIdentifier):
868         (WebCore::DatabaseBackendBase::displayName):
869         (WebCore::DatabaseBackendBase::estimatedSize):
870         (WebCore::DatabaseBackendBase::fileName):
871         (WebCore::DatabaseBackendBase::details):
872         (WebCore::DatabaseBackendBase::getVersionFromDatabase):
873         (WebCore::DatabaseBackendBase::setVersionInDatabase):
874         (WebCore::DatabaseBackendBase::setExpectedVersion):
875         (WebCore::DatabaseBackendBase::getCachedVersion):
876         (WebCore::DatabaseBackendBase::setCachedVersion):
877         (WebCore::DatabaseBackendBase::getActualVersionForTransaction):
878         (WebCore::DatabaseBackendBase::disableAuthorizer):
879         (WebCore::DatabaseBackendBase::enableAuthorizer):
880         (WebCore::DatabaseBackendBase::setAuthorizerReadOnly):
881         (WebCore::DatabaseBackendBase::setAuthorizerPermissions):
882         (WebCore::DatabaseBackendBase::lastActionChangedDatabase):
883         (WebCore::DatabaseBackendBase::lastActionWasInsert):
884         (WebCore::DatabaseBackendBase::resetDeletes):
885         (WebCore::DatabaseBackendBase::hadDeletes):
886         (WebCore::DatabaseBackendBase::resetAuthorizer):
887         (WebCore::DatabaseBackendBase::maximumSize):
888         (WebCore::DatabaseBackendBase::incrementalVacuumIfNeeded):
889         (WebCore::DatabaseBackendBase::interrupt):
890         (WebCore::DatabaseBackendBase::isInterrupted):
891         (WebCore::DatabaseBackendBase::reportOpenDatabaseResult):
892         (WebCore::DatabaseBackendBase::reportChangeVersionResult):
893         (WebCore::DatabaseBackendBase::reportStartTransactionResult):
894         (WebCore::DatabaseBackendBase::reportCommitTransactionResult):
895         (WebCore::DatabaseBackendBase::reportExecuteStatementResult):
896         (WebCore::DatabaseBackendBase::reportVacuumDatabaseResult):
897         * Modules/webdatabase/DatabaseBackendBase.h: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackend.h.
898         (DatabaseBackendBase):
899         * Modules/webdatabase/DatabaseBackendSync.cpp:
900         (WebCore::DatabaseBackendSync::DatabaseBackendSync):
901         * Modules/webdatabase/DatabaseBackendSync.h:
902         * Modules/webdatabase/DatabaseBase.h:
903         * Modules/webdatabase/DatabaseManager.cpp:
904         (WebCore::DatabaseManager::openDatabaseBackend):
905         (WebCore::DatabaseManager::openDatabase):
906         (WebCore::DatabaseManager::openDatabaseSync):
907         (WebCore::DatabaseManager::getMaxSizeForDatabase):
908         * Modules/webdatabase/DatabaseManager.h:
909         (DatabaseManager):
910         * Modules/webdatabase/DatabaseServer.cpp:
911         (WebCore::DatabaseServer::openDatabase):
912         (WebCore::DatabaseServer::createDatabase):
913         (WebCore::DatabaseServer::getMaxSizeForDatabase):
914         * Modules/webdatabase/DatabaseServer.h:
915         * Modules/webdatabase/DatabaseSync.cpp:
916         (WebCore::DatabaseSync::create):
917         * Modules/webdatabase/DatabaseSync.h:
918         (DatabaseSync):
919         * Modules/webdatabase/DatabaseTracker.cpp:
920         (WebCore::DatabaseTracker::getMaxSizeForDatabase):
921         (WebCore::DatabaseTracker::databaseChanged):
922         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
923         (WebCore::DatabaseTracker::doneCreatingDatabase):
924         (WebCore::DatabaseTracker::addOpenDatabase):
925         (WebCore::DatabaseTracker::removeOpenDatabase):
926         (WebCore::DatabaseTracker::getOpenDatabases):
927         (WebCore::DatabaseTracker::deleteDatabaseFile):
928         * Modules/webdatabase/DatabaseTracker.h:
929         (DatabaseTracker):
930         * Modules/webdatabase/OriginQuotaManager.cpp:
931         (WebCore::OriginQuotaManager::markDatabase):
932         * Modules/webdatabase/OriginQuotaManager.h:
933         (OriginQuotaManager):
934         * Modules/webdatabase/SQLTransactionClient.cpp:
935         (WebCore::SQLTransactionClient::didCommitWriteTransaction):
936         (WebCore::SQLTransactionClient::didExecuteStatement):
937         (WebCore::SQLTransactionClient::didExceedQuota):
938         * Modules/webdatabase/SQLTransactionClient.h:
939         (SQLTransactionClient):
940         * Modules/webdatabase/chromium/DatabaseObserver.h:
941         (DatabaseObserver):
942         * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
943         (WebCore::DatabaseTracker::addOpenDatabase):
944         (WebCore::NotifyDatabaseObserverOnCloseTask::create):
945         (WebCore::NotifyDatabaseObserverOnCloseTask::NotifyDatabaseObserverOnCloseTask):
946         (NotifyDatabaseObserverOnCloseTask):
947         (WebCore::DatabaseTracker::removeOpenDatabase):
948         (WebCore::DatabaseTracker::prepareToOpenDatabase):
949         (WebCore::DatabaseTracker::failedToOpenDatabase):
950         (WebCore::DatabaseTracker::getMaxSizeForDatabase):
951         (WebCore::DatabaseTracker::CloseOneDatabaseImmediatelyTask::create):
952         (WebCore::DatabaseTracker::CloseOneDatabaseImmediatelyTask::CloseOneDatabaseImmediatelyTask):
953         (DatabaseTracker::CloseOneDatabaseImmediatelyTask):
954         (WebCore::DatabaseTracker::closeOneDatabaseImmediately):
955         * Modules/webdatabase/chromium/SQLTransactionClientChromium.cpp:
956         (WebCore::NotifyDatabaseChangedTask::create):
957         (WebCore::NotifyDatabaseChangedTask::NotifyDatabaseChangedTask):
958         (NotifyDatabaseChangedTask):
959         (WebCore::SQLTransactionClient::didCommitWriteTransaction):
960         (WebCore::SQLTransactionClient::didExecuteStatement):
961         (WebCore::SQLTransactionClient::didExceedQuota):
962         * Target.pri:
963         * WebCore.gypi:
964         * WebCore.vcproj/WebCore.vcproj:
965         * WebCore.vcxproj/WebCore.vcxproj:
966         * WebCore.vcxproj/WebCore.vcxproj.filters:
967         * WebCore.xcodeproj/project.pbxproj:
968
969 2013-02-20  Eric Carlson  <eric.carlson@apple.com>
970
971         iOS does not use CaptionUserPreferencesMac
972         https://bugs.webkit.org/show_bug.cgi?id=110259
973
974         Reviewed by Dean Jackson.
975
976         * page/CaptionUserPreferencesMac.h: Add PLATFORM(IOS) guard
977         * page/CaptionUserPreferencesMac.mm: Ditto.
978
979         * page/PageGroup.cpp:
980         (WebCore::PageGroup::captionPreferences): Ditto.
981
982 2013-02-19  David Hyatt  <hyatt@apple.com>
983
984         [New Multicolumn] Make layers paint properly in columns.
985         https://bugs.webkit.org/show_bug.cgi?id=110296.
986
987         Reviewed by Sam Weinig.
988
989         Construct the style for the RenderMultiColumnFlowThread such that it
990         establishes a stacking context (by being position:relative
991         with a z-index of 0). This causes the layer collection code
992         to correctly ignore the RenderFlowThread layers during normal
993         painting.
994         
995         Fix more clipping bugs to eliminate subpixel layout differences
996         between old and new multicolumn.
997
998         Test: fast/multicol/newmulticol/layers-in-multicol.html
999
1000         * rendering/RenderMultiColumnBlock.cpp:
1001         (WebCore::createMultiColumnFlowThreadStyle):
1002         (WebCore):
1003         (WebCore::RenderMultiColumnBlock::addChild):
1004         Use a custom style (similar to what normal RenderFlowThreads do)
1005         for the RenderMultiColumnFlowThread that makes it a stacking
1006         context.
1007         
1008         * rendering/RenderMultiColumnSet.cpp:
1009         (WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
1010         Fix the overflow calculations out the leftmost and rightmost
1011         columns to actually look at the physical placement of the columns.
1012         The old code was backwards for RTL.
1013         
1014         * rendering/RenderRegion.cpp:
1015         (WebCore::RenderRegion::overflowRectForFlowThreadPortion):
1016         Fix the clipping done by overflowRectForFlowThreadPortion to min
1017         and max with the passed-in portion rect so that subclasses that
1018         inflate the rect prior to passing it into the method don't have that
1019         inflation discarded.
1020
1021 2013-02-20  Alexander Pavlov  <apavlov@chromium.org>
1022
1023         Web Inspector: CSSProperty.status defaults to "style" not "active"
1024         https://bugs.webkit.org/show_bug.cgi?id=110348
1025
1026         Reviewed by Timothy Hatcher.
1027
1028         * inspector/Inspector.json: Fix the default property status to be "style" in the description.
1029
1030 2013-02-20  Dan Carney  <dcarney@google.com>
1031
1032         [v8] potentially disposed handle returned for npapi object
1033         https://bugs.webkit.org/show_bug.cgi?id=110331
1034
1035         Reviewed by Kentaro Hara.
1036
1037         No new tests. No change in functionality.
1038
1039         * bindings/v8/V8NPUtils.cpp:
1040         (WebCore::convertNPVariantToV8Object):
1041
1042 2013-02-20  Xabier Rodriguez Calvar  <calvaris@igalia.com>  and  Martin Robinson  <mrobinson@igalia.com>
1043
1044         [Gtk] HTML5 Media controls require a design refresh
1045         https://bugs.webkit.org/show_bug.cgi?id=83869
1046
1047         Created new controls that depend less on Gtk and more in CSS.
1048
1049         Reviewed by Philippe Normand.
1050
1051         * GNUmakefile.list.am: Added compilation for MediaControlsGtk.cpp
1052         and MediaControlsGtk.h
1053         * css/mediaControlsGtk.css: Taken from Chromium and adapted for
1054         WebKitGtk+.
1055         * html/shadow/MediaControlsGtk.cpp: Added.
1056         (WebCore): Added MediaControlsGtk class.
1057         (WebCore::MediaControlsGtk::MediaControlsGtk): Class constructor
1058         (WebCore::MediaControls::create): Creates the Gtk+ controls
1059         components.
1060         (WebCore::MediaControlsGtk::createControls): Creates the Gtk+
1061         controls components.
1062         (WebCore::MediaControlsGtk::initializeControls): Initializes all
1063         media controls.
1064         (WebCore::MediaControlsGtk::setMediaController): Sets the media
1065         controller.
1066         (WebCore::MediaControlsGtk::reset): Resets the controllers.
1067         (WebCore::MediaControlsGtk::playbackStarted): Invoked when the
1068         playback starts
1069         (WebCore::MediaControlsGtk::updateCurrentTimeDisplay): Updates the
1070         controls when the current time shall be updated.
1071         (WebCore::MediaControlsGtk::changedMute): Updates the controls
1072         then the mute changes.
1073         (WebCore::MediaControlsGtk::showVolumeSlider): Invoked when the
1074         volume slider is meant to be shown.
1075         (WebCore::MediaControlsGtk::createTextTrackDisplay): Creates the
1076         track display. Though it is not used by us, it needs to be created
1077         to prevent immediate crashes when loading a video.
1078         * html/shadow/MediaControlsGtk.h: Added.
1079         (WebCore): Added the MediaControlsGtk class.
1080         (MediaControlsGtk): Added the MediaControlsGtk class.
1081         * platform/gtk/RenderThemeGtk.cpp:
1082         (WebCore): Added getStockSymbolicIconForWidgetType function
1083         signature to load symbolic icons.
1084         (WebCore::supportsFocus): Added media control widgets to support
1085         focus so that the focus ring is not painted by WebCore.
1086         (WebCore::RenderThemeGtk::paintMediaButton): Added the symbolic
1087         icon support. It supports now normal and symbolic icons at the
1088         same time.
1089         (WebCore::RenderThemeGtk::paintMediaFullscreenButton): Added the
1090         symbolic icon support.
1091         (WebCore::RenderThemeGtk::paintMediaMuteButton): Added the
1092         symbolic icon support.
1093         (WebCore::RenderThemeGtk::paintMediaPlayButton): Added the
1094         symbolic icon support.
1095         (WebCore::RenderThemeGtk::paintMediaSeekBackButton): Added the
1096         symbolic icon support.
1097         (WebCore::RenderThemeGtk::paintMediaSeekForwardButton): Added the
1098         symbolic icon support.
1099         (WebCore::borderRadiiFromStyle): Created the radii info from the
1100         style.
1101         (WebCore::RenderThemeGtk::paintMediaSliderTrack): Removed the
1102         background and the Gtk widget support as it is painted with
1103         CSS. Also paint the time ranges with the CSS style.
1104         (WebCore::RenderThemeGtk::paintMediaSliderThumb): Paint slider
1105         thumb according to the CSS parameters.
1106         (WebCore::RenderThemeGtk::paintMediaVolumeSliderContainer):
1107         Delegates in the CSS.
1108         (WebCore::RenderThemeGtk::paintMediaVolumeSliderTrack): Fills the
1109         track up to the volume level and delegates the border in the CSS.
1110         (WebCore::RenderThemeGtk::paintMediaVolumeSliderThumb): Delegates
1111         in the paintMediaSliderThumb method so the thumb is painted the
1112         same with the CSS parameters.
1113         (WebCore::RenderThemeGtk::paintMediaCurrentTime): Removed the Gtk
1114         background to use only CSS.
1115         * platform/gtk/RenderThemeGtk.h:
1116         (RenderThemeGtk): Changed paintMediaButton to support the symbolic
1117         and normal icons at the same time.
1118         * platform/gtk/RenderThemeGtk2.cpp:
1119         (WebCore::RenderThemeGtk::adjustSliderThumbSize): Not adjusting
1120         the thumb size and letting the CSS decide that for media slider.
1121         (WebCore::getStockSymbolicIconForWidgetType): Implemented as a
1122         fallback to the normal stock icons.
1123         * platform/gtk/RenderThemeGtk3.cpp:
1124         (WebCore):
1125         (WebCore::RenderThemeGtk::adjustSliderThumbSize): Not adjusting
1126         the thumb size and letting the CSS decide that for the media
1127         sliders.
1128         (WebCore::getStockSymbolicIconForWidgetType): Added this function
1129         to load symbolic icons. It falls back to normal icons if the
1130         symbolic is not found.
1131
1132 2013-02-20  Andras Becsi  <andras.becsi@digia.com>
1133
1134         [Qt] Rename AncestorChainWalker.h to EventPathWalker.h in the project file.
1135
1136         Unreviewed gardening.
1137
1138         AncestorChainWalker has been renamed to EventPathWalker in r143422.
1139         Rename the header in the project file as well so that it shows up in QtCreator.
1140
1141         No new tests needed.
1142
1143         * Target.pri:
1144
1145 2013-02-20  Ilya Tikhonovsky  <loislo@chromium.org>
1146
1147         Web Inspector: fix for frontend closure compile errors.
1148         https://bugs.webkit.org/show_bug.cgi?id=110329
1149
1150         Reviewed by Vsevolod Vlasov.
1151
1152         It has no tests because it has no code changes.
1153
1154         * inspector/front-end/HeapSnapshot.js:
1155         (HeapSnapshotMetainfo):
1156         * inspector/front-end/NativeMemorySnapshotView.js:
1157         (WebInspector.NativeSnapshotProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
1158         (WebInspector.NativeSnapshotProfileType.prototype.buttonClicked):
1159
1160 2013-02-20  Florin Malita  <fmalita@chromium.org>
1161
1162         Clear SVGPathSeg role on removal.
1163         https://bugs.webkit.org/show_bug.cgi?id=110058
1164
1165         Reviewed by Dirk Schulze.
1166
1167         SVGPathSegListPropertyTearOff::initialize() and SVGPathSegListPropertyTearOff::replaceItem()
1168         need to clear the context and role for segments being expunged from the list, similarly to
1169         removeItem(). Otherwise, processIncomingListItemValue() can get confused and attempt to
1170         remove stale segments.
1171
1172         Test: svg/dom/SVGPathSegList-crash.html
1173
1174         * svg/properties/SVGPathSegListPropertyTearOff.cpp:
1175         (WebCore::SVGPathSegListPropertyTearOff::clearContextAndRoles):
1176         (WebCore::SVGPathSegListPropertyTearOff::clear):
1177         (WebCore::SVGPathSegListPropertyTearOff::replaceItem):
1178         (WebCore):
1179         * svg/properties/SVGPathSegListPropertyTearOff.h:
1180         (WebCore::SVGPathSegListPropertyTearOff::initialize):
1181         (SVGPathSegListPropertyTearOff):
1182
1183 2013-02-20  Sheriff Bot  <webkit.review.bot@gmail.com>
1184
1185         Unreviewed, rolling out r143434.
1186         http://trac.webkit.org/changeset/143434
1187         https://bugs.webkit.org/show_bug.cgi?id=110326
1188
1189         added reftest fails on chromium mac 10.6 (Requested by
1190         toyoshim on #webkit).
1191
1192         * rendering/RenderFileUploadControl.cpp:
1193         (WebCore::RenderFileUploadControl::paintObject):
1194
1195 2013-02-19  Vsevolod Vlasov  <vsevik@chromium.org>
1196
1197         Web Inspector: Make UISourceCode.path() an array of path segments.
1198         https://bugs.webkit.org/show_bug.cgi?id=110229
1199
1200         Reviewed by Pavel Feldman.
1201
1202         * inspector/front-end/FileSystemProjectDelegate.js:
1203         (WebInspector.FileSystemProjectDelegate.prototype._filePathForPath):
1204         (WebInspector.FileSystemProjectDelegate.prototype.innerCallback):
1205         (WebInspector.FileSystemProjectDelegate.prototype.requestFileContent):
1206         (WebInspector.FileSystemProjectDelegate.prototype._contentTypeForPath):
1207         (WebInspector.FileSystemProjectDelegate.prototype.populate.filesLoaded):
1208         (WebInspector.FileSystemProjectDelegate.prototype.populate):
1209         * inspector/front-end/SimpleWorkspaceProvider.js:
1210         (WebInspector.SimpleProjectDelegate.prototype.requestFileContent):
1211         (WebInspector.SimpleProjectDelegate.prototype.searchInFileContent):
1212         (WebInspector.SimpleProjectDelegate.prototype.addFile):
1213         (WebInspector.SimpleProjectDelegate.prototype._ensureUniquePath):
1214         (WebInspector.SimpleProjectDelegate.prototype.removeFile):
1215         (WebInspector.SimpleWorkspaceProvider.pathForSplittedURL):
1216         (WebInspector.SimpleWorkspaceProvider.prototype.addFileByName):
1217         (WebInspector.SimpleWorkspaceProvider.prototype.removeFileByName):
1218         * inspector/front-end/UISourceCode.js:
1219         (WebInspector.UISourceCode.prototype.uri):
1220         * inspector/front-end/Workspace.js:
1221         (WebInspector.Project.prototype._fileAdded):
1222         (WebInspector.Project.prototype._fileRemoved):
1223         (WebInspector.Project.prototype.uiSourceCode):
1224         (WebInspector.Workspace.prototype.uiSourceCodeForURL):
1225         (WebInspector.Workspace.prototype.urlForPath):
1226
1227 2013-02-20  Yury Semikhatsky  <yurys@chromium.org>
1228
1229         Web Inspector: fix message for non-existent domain warning
1230         https://bugs.webkit.org/show_bug.cgi?id=110315
1231
1232         Reviewed by Alexander Pavlov.
1233
1234         Only send (Heap)Profiler.resetProfiles event if the client has
1235         requested profile headers before.
1236
1237         * inspector/InspectorHeapProfilerAgent.cpp:
1238         (HeapProfilerAgentState):
1239         (WebCore):
1240         (WebCore::InspectorHeapProfilerAgent::InspectorHeapProfilerAgent):
1241         (WebCore::InspectorHeapProfilerAgent::resetFrontendProfiles):
1242         (WebCore::InspectorHeapProfilerAgent::clearFrontend):
1243         (WebCore::InspectorHeapProfilerAgent::restore):
1244         (WebCore::InspectorHeapProfilerAgent::getProfileHeaders):
1245         * inspector/InspectorHeapProfilerAgent.h:
1246         (InspectorHeapProfilerAgent):
1247         * inspector/InspectorProfilerAgent.cpp:
1248         (ProfilerAgentState):
1249         (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
1250         (WebCore::InspectorProfilerAgent::addProfile):
1251         (WebCore::InspectorProfilerAgent::disable):
1252         (WebCore::InspectorProfilerAgent::getProfileHeaders):
1253         (WebCore):
1254         (WebCore::InspectorProfilerAgent::resetFrontendProfiles):
1255         (WebCore::InspectorProfilerAgent::restore):
1256         * inspector/InspectorProfilerAgent.h:
1257         (InspectorProfilerAgent):
1258
1259 2013-02-19  Vsevolod Vlasov  <vsevik@chromium.org>
1260
1261         Web Inspector: Move workspace specific code from FileMapping to workspace.
1262         https://bugs.webkit.org/show_bug.cgi?id=110219
1263
1264         Reviewed by Pavel Feldman.
1265
1266         Extracted workspace specific code from FileMapping to Workspace.
1267         This allows to reduce usage of uri and eventually make UISourceCode.path an array of path segments.
1268
1269         Test: inspector/workspace-mapping.html
1270
1271         * inspector/front-end/CSSStyleModel.js:
1272         (WebInspector.CSSStyleModel.prototype.rawLocationToUILocation):
1273         * inspector/front-end/CompilerScriptMapping.js:
1274         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
1275         (WebInspector.CompilerScriptMapping.prototype.get addScript.get this):
1276         (WebInspector.CompilerScriptMapping.prototype.get addScript):
1277         * inspector/front-end/FileMapping.js:
1278         (WebInspector.FileMapping):
1279         (WebInspector.FileMapping.prototype.mappingEntryForURL):
1280         (WebInspector.FileMapping.prototype.mappingEntryForPath):
1281         * inspector/front-end/FileSystemMapping.js:
1282         (WebInspector.FileSystemMapping.prototype.fileSystemPathForPrefix):
1283         (WebInspector.FileSystemMappingImpl.prototype.addFileSystemMapping):
1284         (WebInspector.FileSystemMappingImpl.prototype.removeFileSystemMapping):
1285         (WebInspector.FileSystemMappingImpl.prototype.fileSystemPathForPrefix):
1286         * inspector/front-end/FileSystemProjectDelegate.js:
1287         (WebInspector.FileSystemProjectDelegate):
1288         (WebInspector.FileSystemProjectDelegate.prototype.populate.filesLoaded):
1289         (WebInspector.FileSystemProjectDelegate.prototype.populate):
1290         (WebInspector.FileSystemWorkspaceProvider):
1291         (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemAdded):
1292         * inspector/front-end/IsolatedFileSystemManager.js:
1293         (WebInspector.IsolatedFileSystemManager):
1294         * inspector/front-end/NetworkUISourceCodeProvider.js:
1295         (WebInspector.NetworkUISourceCodeProvider):
1296         (WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
1297         * inspector/front-end/ResourceScriptMapping.js:
1298         (WebInspector.ResourceScriptMapping.prototype._workspaceUISourceCodeForScript):
1299         * inspector/front-end/ResourceUtils.js:
1300         (WebInspector.displayNameForURL):
1301         * inspector/front-end/SASSSourceMapping.js:
1302         (WebInspector.SASSSourceMapping.prototype._reloadCSS):
1303         (WebInspector.SASSSourceMapping.prototype._bindUISourceCode):
1304         (WebInspector.SASSSourceMapping.prototype.rawLocationToUILocation):
1305         * inspector/front-end/ScriptsPanel.js:
1306         (WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
1307         * inspector/front-end/SimpleWorkspaceProvider.js:
1308         (WebInspector.SimpleWorkspaceProvider.pathForSplittedURL):
1309         (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
1310         * inspector/front-end/StylesSourceMapping.js:
1311         (WebInspector.StylesSourceMapping.prototype.rawLocationToUILocation):
1312         (WebInspector.StylesSourceMapping.prototype._resourceAdded):
1313         (WebInspector.StylesSourceMapping.prototype._mainFrameCreatedOrNavigated):
1314         (WebInspector.StyleContentBinding):
1315         (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
1316         * inspector/front-end/Workspace.js:
1317         (WebInspector.Workspace):
1318         (WebInspector.Workspace.prototype.hasMappingForURL):
1319         (WebInspector.Workspace.prototype._fileSystemPathForEntry):
1320         (WebInspector.Workspace.prototype.uiSourceCodeForURL):
1321         (WebInspector.Workspace.prototype.urlForPath):
1322         * inspector/front-end/inspector.js:
1323
1324 2013-02-20  Alexander Pavlov  <apavlov@chromium.org>
1325
1326         Web Inspector: Introduce SecurityOriginAdded and SecurityOriginRemoved events into ResourceTreeModel
1327         https://bugs.webkit.org/show_bug.cgi?id=110232
1328
1329         Reviewed by Vsevolod Vlasov.
1330
1331         * inspector/front-end/ResourceTreeModel.js:
1332         (WebInspector.ResourceTreeModel):
1333         (WebInspector.ResourceTreeModel.prototype._addFrame):
1334         (WebInspector.ResourceTreeModel.prototype._addSecurityOrigin): Added.
1335         (WebInspector.ResourceTreeModel.prototype._removeSecurityOrigin): Added.
1336         (WebInspector.ResourceTreeModel.prototype._handleMainFrameDetached): Added.
1337         (WebInspector.ResourceTreeModel.prototype._frameNavigated):
1338         (WebInspector.ResourceTreeModel.prototype._frameDetached):
1339
1340 2013-02-20  Dan Carney  <dcarney@google.com>
1341
1342         [v8] ScriptValue has dangerous copy semantics
1343         https://bugs.webkit.org/show_bug.cgi?id=110206
1344
1345         Reviewed by Kentaro Hara.
1346
1347         Update ScriptValue to used a SharedPersistent,
1348         making it impossible to return dead references.
1349
1350         No new tests. No change in functionality.
1351
1352         * bindings/v8/ScriptValue.cpp:
1353         (WebCore::ScriptValue::serialize):
1354         (WebCore::ScriptValue::getString):
1355         (WebCore::ScriptValue::toString):
1356         (WebCore::ScriptValue::toInspectorValue):
1357         * bindings/v8/ScriptValue.h:
1358         (WebCore::ScriptValue::ScriptValue):
1359         (WebCore::ScriptValue::operator=):
1360         (WebCore::ScriptValue::operator==):
1361         (WebCore::ScriptValue::isEqual):
1362         (WebCore::ScriptValue::isFunction):
1363         (WebCore::ScriptValue::isNull):
1364         (WebCore::ScriptValue::isUndefined):
1365         (WebCore::ScriptValue::isObject):
1366         (WebCore::ScriptValue::hasNoValue):
1367         (WebCore::ScriptValue::clear):
1368         (ScriptValue):
1369         (WebCore::ScriptValue::v8Value):
1370         (WebCore::ScriptValue::v8ValueRaw):
1371         * bindings/v8/SharedPersistent.h:
1372         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
1373         (WebCore::InjectedScriptHost::scriptValueAsNode):
1374         * bindings/v8/custom/V8MessageEventCustom.cpp:
1375         (WebCore::V8MessageEvent::dataAttrGetterCustom):
1376
1377 2013-02-20  Andrey Lushnikov  <lushnikov@chromium.org>
1378
1379         Web Inspector: highlight undefined word in JavaScript
1380         https://bugs.webkit.org/show_bug.cgi?id=109585
1381
1382         Reviewed by Vsevolod Vlasov.
1383
1384         Test enhancement: inspector/syntax-highlight-javascript.html
1385
1386         Add global object value properties to tokenizer and add a css style
1387         class to highlight "undefined" with gray color.
1388
1389         * inspector/front-end/SourceJavaScriptTokenizer.js:
1390         (WebInspector.SourceJavaScriptTokenizer.prototype.nextToken):
1391         * inspector/front-end/SourceJavaScriptTokenizer.re2js:
1392         * inspector/front-end/inspectorSyntaxHighlight.css:
1393         (.webkit-javascript-undef):
1394
1395 2013-02-20  Mike West  <mkwst@chromium.org>
1396
1397         Use EventPathWalker rather than parentNode() to normalize event targets in EventHandler.
1398         https://bugs.webkit.org/show_bug.cgi?id=110037
1399
1400         Reviewed by Ryosuke Niwa.
1401
1402         We need to teach EventHandler about Shadow DOM in a few places in order
1403         to ensure that we properly target events dispatched upon text nodes.
1404         Rather than naively grabbing the text node's direct parent via
1405         parentNode(), we need to account for the case in which the text node is
1406         distributed[1] to an insertion point inside a shadow host.
1407         EventPathWalker::parent understands these relationships, and should
1408         be used when dealing with mouse, drag, and touch events.
1409
1410         [1]: http://www.w3.org/TR/shadow-dom/#dfn-distribution
1411
1412         * page/EventHandler.cpp:
1413         (WebCore::EventHandler::handleMouseDraggedEvent):
1414         (WebCore::EventHandler::handleTouchEvent):
1415         (WebCore::EventHandler::passGestureEventToWidgetIfPossible):
1416         (WebCore::EventHandler::updateDragAndDrop):
1417             Refactor parentNode callsites to use EventPathWalker::parent().
1418
1419 2013-02-20  Vsevolod Vlasov  <vsevik@chromium.org>
1420
1421         Web Inspector: [Regression] Search in ProfilesPanel is broken
1422         https://bugs.webkit.org/show_bug.cgi?id=110312
1423
1424         Reviewed by Pavel Feldman.
1425
1426         * inspector/front-end/CPUProfileView.js:
1427         (WebInspector.CPUProfileView.prototype.matchesQuery):
1428         (WebInspector.CPUProfileView.prototype.performSearch):
1429
1430 2013-02-20  Eugene Klyuchnikov  <eustas@chromium.org>
1431
1432         Web Inspector: View.markAsRoot should never be invoked on attached view.
1433         https://bugs.webkit.org/show_bug.cgi?id=110224
1434
1435         Reviewed by Pavel Feldman.
1436
1437         This will cause CSS loading problems after "show".
1438
1439         * inspector/front-end/Drawer.js:
1440         Ensure child view is detached before marked as root.
1441         * inspector/front-end/View.js:
1442         (WebInspector.View.prototype.markAsRoot): Added assertion.
1443
1444 2013-02-20  Nils Barth  <nbarth@google.com>
1445
1446         File upload control doesn't apply CSS vertical padding or border to file name
1447         https://bugs.webkit.org/show_bug.cgi?id=109011
1448
1449         Reviewed by Hajime Morrita.
1450
1451         Test: fast/forms/file/file-vertical-padding-border.html
1452
1453         * rendering/RenderFileUploadControl.cpp:
1454             Add borderTop() and paddingTop() when computing position.
1455         (WebCore::RenderFileUploadControl::paintObject):
1456
1457 2013-02-19  Andrey Adaikin  <aandrey@chromium.org>
1458
1459         Few methods in WebGLRenderingContext.idl have incorrect signatures
1460         https://bugs.webkit.org/show_bug.cgi?id=110305
1461
1462         Reviewed by Kentaro Hara.
1463
1464         * html/canvas/WebGLRenderingContext.idl:
1465
1466 2013-02-19  Tim Horton  <timothy_horton@apple.com>
1467
1468         Clarify isInWindow vs. isVisible path through to RenderLayerCompositor
1469         https://bugs.webkit.org/show_bug.cgi?id=110261
1470         <rdar://problem/13196122>
1471
1472         Reviewed by Simon Fraser.
1473
1474         Remove RenderLayerCompositor::willMoveOffscreen/didMoveOnscreen.
1475         Add RenderLayerCompositor::setIsInWindow, and pipe in-window changes through from Page::setIsInWindow.
1476         Adjust a few Document functions that previously called RenderView::didMoveOnscreen/willMoveOffscreen to use setIsInWindow instead, since in-window state changes are occurring when attaching and detaching documents.
1477
1478         * WebCore.exp.in: Export Page::setIsInWindow.
1479         * dom/Document.cpp:
1480         (WebCore::Document::attach): Use setIsInWindow instead of didMoveOnscreen.
1481         (WebCore::Document::documentWillBecomeInactive): Use setIsInWindow instead of willMoveOffscreen.
1482         (WebCore::Document::documentDidResumeFromPageCache): Use setIsInWindow instead of didMoveOnscreen.
1483         * page/FrameView.cpp:
1484         (WebCore::FrameView::didMoveOnscreen):
1485         (WebCore::FrameView::willMoveOffscreen):
1486         RenderView doesn't care about moving on/offscreen, just in-window state.
1487         (WebCore::FrameView::setIsInWindow): Added. Forward isInWindow changes to our RenderView.
1488         * page/FrameView.h:
1489         (FrameView): Add setIsInWindow.
1490         * page/Page.cpp:
1491         (WebCore::Page::setIsInWindow): Added. Forward isInWindow changes to the Page's FrameViews.
1492         * page/Page.h:
1493         (Page): Add setIsInWindow.
1494         (WebCore::Page::isInWindow):
1495         * rendering/RenderLayerCompositor.cpp:
1496         (WebCore::RenderLayerCompositor::setIsInWindow): Added. Replace willMoveOffscreen/didMoveOnscreen with setIsInWindow,
1497         since that's the only change we actually care about.
1498         * rendering/RenderLayerCompositor.h:
1499         (RenderLayerCompositor): Add setIsInWindow.
1500         * rendering/RenderView.cpp:
1501         (WebCore::RenderView::setIsInWindow): Added. Replace willMoveOffscreen/didMoveOnscreen with setIsInWindow,
1502         since that's the only change RenderLayerCompositor actually cares about.
1503         * rendering/RenderView.h:
1504         (RenderView): Add setIsInWindow.
1505
1506 2013-02-19  Eugene Klyuchnikov  <eustas@chromium.org>
1507
1508         Web Inspector: Cleanup and add JSDocs to SuggestBox
1509         https://bugs.webkit.org/show_bug.cgi?id=110202
1510
1511         Reviewed by Pavel Feldman.
1512
1513         SuggestBox contains some obsolete/unused code and not fully
1514         covered with JSDocs.
1515
1516         * inspector/front-end/SuggestBox.js:
1517         (WebInspector.SuggestBox.prototype.visible):
1518         Replaced getter with function.
1519         (WebInspector.SuggestBox.prototype._onScrollOrResize):
1520         Use camel-case for function names.
1521         (WebInspector.SuggestBox.prototype._onBoxMouseDown): Ditto.
1522         (WebInspector.SuggestBox.prototype.updateSuggestions):
1523         Removed unused code.
1524         (WebInspector.SuggestBox.prototype.hide): Adopt changes.
1525         (WebInspector.SuggestBox.prototype._applySuggestion): Ditto.
1526         * inspector/front-end/TextPrompt.js:
1527         (WebInspector.TextPrompt.prototype.isSuggestBoxVisible): Ditto.
1528
1529 2013-02-19  Hayato Ito <hayato@chromium.org>
1530
1531         Calculate EventPath in EventDispatcher's constructor.
1532         https://bugs.webkit.org/show_bug.cgi?id=109905
1533
1534         Reviewed by Dimitri Glazkov.
1535
1536         This patch calculates an EventPath in EventDispatcher's
1537         constructor and removes EventDispatcher::ensureEventPath().
1538         We don't have any reason to initialize an EventPath lazily.
1539
1540         No tests. No change in behavior.
1541
1542         * dom/EventDispatcher.cpp:
1543         (WebCore::EventDispatcher::EventDispatcher):
1544         (WebCore::EventDispatcher::dispatch):
1545         * dom/EventDispatcher.h:
1546         (WebCore::EventDispatcher::eventPath):
1547         (EventDispatcher):
1548         * dom/FocusEvent.cpp:
1549         (WebCore::FocusEventDispatchMediator::dispatchEvent):
1550         (WebCore::BlurEventDispatchMediator::dispatchEvent):
1551         (WebCore::FocusInEventDispatchMediator::dispatchEvent):
1552         (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
1553         * dom/MouseEvent.cpp:
1554         (WebCore::MouseEventDispatchMediator::dispatchEvent):
1555
1556 2013-02-19  Simon Fraser  <simon.fraser@apple.com>
1557
1558         Fix TileCache tile size when zoomed on slow-scrolling site
1559         https://bugs.webkit.org/show_bug.cgi?id=110289
1560
1561         Reviewed by Tim Horton.
1562         
1563         In slow scrolling mode, we use the tile coverage rect as the tile size
1564         (so a single tile covers the viewport). When zoomed, the tile coverage rect
1565         shrinks relative to the TileCache, so scale the tile size back up.
1566
1567         Test: platform/mac-wk2/tiled-drawing/tile-size-slow-zoomed.html
1568
1569         * platform/graphics/ca/mac/TileCache.mm:
1570         (WebCore::TileCache::tileSizeForCoverageRect):
1571
1572 2013-02-19  Hayato Ito  <hayato@chromium.org>
1573
1574         Rename AncestorChainWalker.
1575         https://bugs.webkit.org/show_bug.cgi?id=110146
1576
1577         Reviewed by Dimitri Glazkov.
1578
1579         Rename AncestorChainWalker to EventPathWalker.
1580         The term of EventPath is used in DOM Core spec.  EventPath was
1581         already introduced into a EventContext.h in r112055. We should
1582         spread this term into the Walker class since they share the same
1583         purpose.
1584
1585         No new tests, no behavior change.
1586
1587         * CMakeLists.txt:
1588         * GNUmakefile.list.am:
1589         * Target.pri:
1590         * WebCore.gypi:
1591         * WebCore.xcodeproj/project.pbxproj:
1592         * dom/DOMAllInOne.cpp:
1593         * dom/EventDispatcher.cpp:
1594         * dom/EventPathWalker.cpp: Renamed from Source/WebCore/dom/AncestorChainWalker.cpp.
1595         (WebCore):
1596         (WebCore::EventPathWalker::EventPathWalker):
1597         (WebCore::EventPathWalker::parent): parent() is now a static function to cover simple use cases.
1598         (WebCore::EventPathWalker::moveToParent): Renamed from parent().
1599         * dom/EventPathWalker.h: Renamed from Source/WebCore/dom/AncestorChainWalker.h.
1600         (WebCore):
1601         (EventPathWalker):
1602         (WebCore::EventPathWalker::node):
1603         (WebCore::EventPathWalker::isVisitingInsertionPointInReprojection): Renamed from isCrossingInsertionPoint().
1604         * dom/EventRetargeter.cpp:
1605         (WebCore::EventRetargeter::calculateEventPath):
1606         (WebCore::EventRetargeter::buildRelatedNodeMap):
1607         * dom/TreeScope.cpp:
1608         (WebCore::TreeScope::focusedNode):
1609         * html/HTMLLIElement.cpp:
1610         (WebCore::HTMLLIElement::attach):
1611         * page/EventHandler.cpp:
1612         (WebCore::EventHandler::updateMouseEventTargetNode):
1613         (WebCore::EventHandler::handleWheelEvent):
1614
1615 2013-02-19  Dean Jackson  <dino@apple.com>
1616
1617         Snapshotted plugin label should not be selectable
1618         https://bugs.webkit.org/show_bug.cgi?id=110286
1619
1620         Reviewed by Simon Fraser.
1621
1622         Update the CSS to make it clear that you should click
1623         on a snapshot (use the finger pointer) and disable
1624         text selection.
1625
1626         * css/plugIns.css:
1627         (embed::-webkit-snapshotted-plugin-content .snapshot-container .snapshot-label):
1628
1629 2013-02-19  Hans Muller  <hmuller@adobe.com>
1630
1631         [CSS Exclusions] Enable shape-inside support for ellipses
1632         https://bugs.webkit.org/show_bug.cgi?id=109868
1633
1634         Reviewed by Dirk Schulze.
1635
1636         This change is very similar to the one recently made for circles:
1637         removed the test that disabled ellipse values for shape-inside.
1638         The remaining support for ellipses, which is based on rounded rectangles
1639         whose width/height is equal to their radiusX/radiusY, has not changed.
1640
1641         Test: fast/exclusions/shape-inside/shape-inside-ellipse.html
1642
1643         * rendering/ExclusionShapeInsideInfo.h:
1644         (WebCore::ExclusionShapeInsideInfo::isEnabledFor): No longer disallows any BasicShape type.
1645
1646 2013-02-19  Uday Kiran  <udaykiran@motorola.com>
1647
1648         'round' not implemented in border-image
1649         https://bugs.webkit.org/show_bug.cgi?id=14185
1650
1651         Reviewed by David Hyatt.
1652
1653         Add rendering support for 'round' keyword of border-image-repeat CSS property
1654         http://dev.w3.org/csswg/css3-background/#border-image-repeat
1655         Rebased original patch by Benjamin Otte <otte@gnome.org> and made few fixes.
1656
1657         Test: fast/borders/border-image-02.html
1658
1659         * platform/graphics/GraphicsContext.cpp:
1660         (WebCore::GraphicsContext::drawTiledImage):
1661         * platform/graphics/GraphicsContext.h:
1662         (GraphicsContext):
1663         * platform/graphics/Image.cpp:
1664         (WebCore::Image::drawTiled):
1665         * platform/graphics/Image.h:
1666         (Image):
1667         * rendering/RenderBoxModelObject.cpp:
1668         (WebCore::RenderBoxModelObject::paintNinePieceImage): For 'round' keyword,
1669         the image is tiled (repeated) to fill the area. If it does not fill the area
1670         with a whole number of tiles, the image is rescaled so that it does.
1671
1672 2013-02-19  Conrad Shultz  <conrad_shultz@apple.com>
1673
1674         Allow UI clients to handle vertical wheel events.
1675         https://bugs.webkit.org/show_bug.cgi?id=110006
1676
1677         Reviewed by Tim Horton.
1678
1679         Add API to allow matching changes in WebKit2 to control rubber-banding behavior at vertical page extrema.
1680         If rubber-banding is disabled during a scroll event that would otherwise trigger rubber-banding, dispatch
1681         didNotHandleWheelEvent() to the page UI client.
1682
1683         * WebCore.exp.in:
1684         Export new rubber-banding API.
1685
1686         * page/Page.cpp:
1687         (WebCore):
1688         (WebCore::Page::rubberBandsAtBottom):
1689         Proxy for the corresponding function in ScrollingCoordinator.
1690         (WebCore::Page::setRubberBandsAtBottom):
1691         Ditto.
1692         (WebCore::Page::rubberBandsAtTop):
1693         Ditto.
1694         (WebCore::Page::setRubberBandsAtTop):
1695         Ditto.
1696
1697         * page/Page.h:
1698         (Page):
1699         Declare new rubber-banding API (above).
1700
1701         * page/scrolling/ScrollingCoordinator.h:
1702         (WebCore::ScrollingCoordinator::rubberBandsAtBottom):
1703         Stub API implementation.
1704         (WebCore::ScrollingCoordinator::setRubberBandsAtBottom):
1705         Ditto.
1706         (WebCore::ScrollingCoordinator::rubberBandsAtTop):
1707         Ditto.
1708         (WebCore::ScrollingCoordinator::setRubberBandsAtTop):
1709         Ditto.
1710
1711         * page/scrolling/ScrollingTree.cpp:
1712         (WebCore::ScrollingTree::ScrollingTree):
1713         Initialize new member variables.
1714         (WebCore::ScrollingTree::setMainFramePinState):
1715         Set top/bottom pinned states.
1716         (WebCore::ScrollingTree::rubberBandsAtBottom):
1717         New accessor function.
1718         (WebCore::ScrollingTree::setRubberBandsAtBottom):
1719         New mutator function.
1720         (WebCore::ScrollingTree::rubberBandsAtTop):
1721         New accessor function.
1722         (WebCore::ScrollingTree::setRubberBandsAtTop):
1723         New mutator function.
1724         (WebCore::ScrollingTree::willWheelEventStartSwipeGesture):
1725         Start a vertical swipe event if the frame is pinned at the top or bottom and associated rubber-banding is disabled.
1726
1727         * page/scrolling/ScrollingTree.h:
1728         (ScrollingTree):
1729         Declare new rubber-banding API and associated member variables.
1730
1731         * page/scrolling/mac/ScrollingCoordinatorMac.h:
1732         (ScrollingCoordinatorMac):
1733         Declare API overrides.
1734
1735         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
1736         (WebCore::ScrollingCoordinatorMac::rubberBandsAtBottom):
1737         Method override; proxy to corresponding function in ScrollingTree.
1738         (WebCore::ScrollingCoordinatorMac::setRubberBandsAtBottom):
1739         Ditto.
1740         (WebCore::ScrollingCoordinatorMac::rubberBandsAtTop):
1741         Ditto.
1742         (WebCore::ScrollingCoordinatorMac::setRubberBandsAtTop):
1743         Ditto.
1744
1745         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
1746         (WebCore::ScrollingTreeScrollingNodeMac::pinnedInDirection):
1747         Remove trailing whitespace.
1748         (WebCore::ScrollingTreeScrollingNodeMac::updateMainFramePinState):
1749         Calculate and pass vertical pinning state to ScrollingTree::setMainFramePinState().
1750
1751 2013-02-19  Simon Fraser  <simon.fraser@apple.com>
1752
1753         Rubber-banding should not affect the visibleRect of the TileCache
1754         https://bugs.webkit.org/show_bug.cgi?id=110278
1755
1756         Reviewed by Beth Dakin.
1757         
1758         When rubber-banding a slow-scrolling page, or image document, we would constantly re-create
1759         the bottom tile because of the logic that adapts the tile size to the visible rect when slow
1760         scrolling.
1761         
1762         Avoid that by ensuring that the visibleRect is not affected by rubber-banding. This is done
1763         via a GraphicsLayerClient function that allows RenderLayerCompositor to provide a custom
1764         position for the scroll layer. We constrain that scroll position to remove the overhang that
1765         results from rubber-banding.
1766
1767         I wasn't able to make a test for this, even with internals.setScrollViewPosition().
1768
1769         * platform/graphics/GraphicsLayerClient.h:
1770         (GraphicsLayerClient):
1771         (WebCore::GraphicsLayerClient::customPositionForVisibleRectComputation):
1772         * platform/graphics/ca/GraphicsLayerCA.cpp:
1773         (WebCore::GraphicsLayerCA::computeVisibleRect):
1774         * rendering/RenderLayerCompositor.cpp:
1775         (WebCore::RenderLayerCompositor::customPositionForVisibleRectComputation):
1776         * rendering/RenderLayerCompositor.h:
1777
1778 2013-02-19  Tony Gentilcore  <tonyg@chromium.org>
1779
1780         Fix crash in preloading scanning base tags with no href attribute for background parser
1781         https://bugs.webkit.org/show_bug.cgi?id=110276
1782
1783         Reviewed by Eric Seidel.
1784
1785         Previously a <base> tag without an href attribute (like the one in fast/dom/HTMLAnchorElement/set-href-attribute-rebase.html)
1786         would crash the background parser's preload scanner.
1787
1788         To fix that, we only call stripLeadingAndTrailingHTMLSpaces() if the href attribute is non-null. This matches the main thread parser.
1789
1790         Along with this, I decided to templatize updatePredictedBaseURL() so that the main and background parser can share the same impl.
1791
1792         This required making CompactHTMLToken and HTMLToken a little more similar:
1793         1. Give HTMLToken a getAttributeItem() method.
1794         2. Move CompactAttribute to CompactHTMLToken::Attribute and make it a struct.
1795
1796         No new tests because covered by existing tests.
1797
1798         * html/parser/AtomicHTMLToken.h:
1799         (WebCore::AtomicHTMLToken::AtomicHTMLToken):
1800         * html/parser/CompactHTMLToken.cpp:
1801         (SameSizeAsCompactHTMLToken):
1802         (WebCore::CompactHTMLToken::CompactHTMLToken):
1803         (WebCore::CompactHTMLToken::getAttributeItem):
1804         (WebCore::CompactHTMLToken::isSafeToSendToAnotherThread):
1805         * html/parser/CompactHTMLToken.h:
1806         (WebCore::CompactHTMLToken::Attribute::Attribute):
1807         (Attribute):
1808         (WebCore::CompactHTMLToken::attributes):
1809         (CompactHTMLToken):
1810         (WebCore::CompactHTMLToken::publicIdentifier):
1811         (WebCore::CompactHTMLToken::systemIdentifier):
1812         * html/parser/HTMLParserIdioms.h:
1813         (WebCore):
1814         (WebCore::stripLeadingAndTrailingHTMLSpaces):
1815         * html/parser/HTMLPreloadScanner.cpp:
1816         (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
1817         (WebCore):
1818         (WebCore::TokenPreloadScanner::updatePredictedBaseURL):
1819         * html/parser/HTMLPreloadScanner.h:
1820         * html/parser/HTMLToken.h:
1821         (WebCore::HTMLToken::getAttributeItem):
1822         (HTMLToken):
1823
1824 2013-02-19  Mark Lam  <mark.lam@apple.com>
1825
1826         Introducing AbstractSQLTransaction and AbstractSQLTransactionBackend.
1827         https://bugs.webkit.org/show_bug.cgi?id=110273.
1828
1829         Reviewed by Anders Carlsson.
1830
1831         This is part of the webdatabase refactoring for webkit2.
1832         - Also changed the frontend and backend to only refer to the
1833           abstract interface of each other.
1834
1835         No new tests.
1836
1837         * Modules/webdatabase/AbstractSQLTransaction.h: Added.
1838         (AbstractSQLTransaction):
1839         (WebCore::AbstractSQLTransaction::~AbstractSQLTransaction):
1840         * Modules/webdatabase/AbstractSQLTransactionBackend.h: Added.
1841         (AbstractSQLTransactionBackend):
1842         (WebCore::AbstractSQLTransactionBackend::~AbstractSQLTransactionBackend):
1843         * Modules/webdatabase/SQLTransaction.cpp:
1844         (WebCore::SQLTransaction::hasCallback):
1845         (WebCore::SQLTransaction::hasSuccessCallback):
1846         (WebCore::SQLTransaction::hasErrorCallback):
1847         (WebCore::SQLTransaction::setBackend):
1848         * Modules/webdatabase/SQLTransaction.h:
1849         (SQLTransaction):
1850         * Modules/webdatabase/SQLTransactionBackend.cpp:
1851         (WebCore::SQLTransactionBackend::create):
1852         (WebCore::SQLTransactionBackend::SQLTransactionBackend):
1853         * Modules/webdatabase/SQLTransactionBackend.h:
1854         (SQLTransactionBackend):
1855         * Modules/webdatabase/SQLTransactionStateMachine.h:
1856
1857 2013-02-19  Emil A Eklund  <eae@chromium.org>
1858
1859         Change computeStickyPositionConstraints to use LayoutBoxExtent for margins
1860         https://bugs.webkit.org/show_bug.cgi?id=108872
1861
1862         Reviewed by Levi Weintraub.
1863         
1864         Change RenderBoxModelObject::computeStickyPositionConstraints to
1865         use a LayoutBoxExtent to represent margins.
1866
1867         No new tests, no change in functionality.
1868
1869         * platform/graphics/LayoutRect.h:
1870         (WebCore::LayoutRect::contract):
1871         Add version contract methods that takes a LayoutBoxExtent object.
1872         
1873         * platform/graphics/LayoutSize.h:
1874         (WebCore::LayoutSize::shrink):
1875         Add shrink method.
1876         
1877         * rendering/RenderBoxModelObject.cpp:
1878         (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
1879         Change to use a LayoutBoxExtent object to represent margins.
1880
1881 2013-02-19  Tony Gentilcore  <tonyg@chromium.org>
1882
1883         Disable ASSERT(!hasInsertionPoint()) for background parser
1884         https://bugs.webkit.org/show_bug.cgi?id=110251
1885
1886         Reviewed by Adam Barth.
1887
1888         The background parser crashes about 10 layout tests by hitting ASSERT(!hasInsertionPoint()).
1889         Now, finish() is the thing that closes the HTMLInputStream which removes the insertion point.
1890         In these tests, a document.open() calls insert() which clears the HTMLInputStream which causes
1891         there to be an insertion point again.
1892
1893         With the main thread parser, insert() is called before finish() so the ASSERT passes.
1894         However, with the threaded parser, finish() is called before insert(), so we fail the ASSERT.
1895
1896         This patch disables the ASSERT for the background parser because m_input isn't really relevant.
1897         This causes us to pass the tests. However, there is a risk that now hasInsertionPoint() may be incorrect
1898         and Document has a non-debug branch that tests hasInsertionPoint().
1899
1900         No new tests because covered by existing tests.
1901
1902         * html/parser/HTMLDocumentParser.cpp:
1903         (WebCore::HTMLDocumentParser::prepareToStopParsing):
1904         (WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd):
1905
1906 2013-02-19  Hans Muller  <hmuller@adobe.com>
1907
1908         [CSS Exclusions] Enable shape-inside support for ellipses
1909         https://bugs.webkit.org/show_bug.cgi?id=109868
1910
1911         Reviewed by Dirk Schulze.
1912
1913         This change is very similar to the one recently made for circles:
1914         removed the test that disabled ellipse values for shape-inside.
1915         The remaining support for ellipses, which is based on rounded rectangles
1916         whose width/height is equal to their radiusX/radiusY, has not changed.
1917
1918         Test: fast/exclusions/shape-inside/shape-inside-ellipse.html
1919
1920         * rendering/ExclusionShapeInsideInfo.h:
1921         (WebCore::ExclusionShapeInsideInfo::isEnabledFor): No longer disallows any BasicShape type.
1922
1923 2013-02-19  Simon Fraser  <simon.fraser@apple.com>
1924
1925         Separate constraining for overhang from fixed-position zooming behavior in scrollOffsetForFixedPosition()
1926         https://bugs.webkit.org/show_bug.cgi?id=110267
1927
1928         Reviewed by Beth Dakin.
1929
1930         The static scrollOffsetForFixedPosition() function in ScrollingCoordinator did two things;
1931         it constrained the scroll position when rubber-banding, and applied the special scaling for
1932         fixed position when zoomed.
1933         
1934         Separate these out so that we can use the rubber-banding constrained elsewhere.
1935
1936         * page/FrameView.cpp:
1937         (WebCore::FrameView::scrollOffsetForFixedPosition): The static function is here now.
1938         * page/FrameView.h:
1939         * page/scrolling/ScrollingCoordinator.cpp: Code moved to FrameView.
1940         * page/scrolling/ScrollingCoordinator.h:
1941         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
1942         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition): scrollOffsetForFixedPosition()
1943         is now on FrameView.
1944         * platform/ScrollableArea.cpp:
1945         (WebCore::constrainedScrollPosition): Helper to constrain one axis for overhang.
1946         (WebCore::ScrollableArea::constrainScrollPositionForOverhang): Static function that
1947         can be called by FrameView::scrollOffsetForFixedPosition().
1948         * platform/ScrollableArea.h: Static function constrainScrollPositionForOverhang()
1949         so we can call it from another thread. Also a member fuction of the same name, which takes
1950         the scrollPosition as input (so we can feed it a layer position in a later patch).
1951
1952 2013-02-19  Tony Gentilcore  <tonyg@chromium.org>
1953
1954         Fix checkThatTokensAreSafeToSendToAnotherThread() now that the preload scanner is enabled
1955         https://bugs.webkit.org/show_bug.cgi?id=110258
1956
1957         Reviewed by Adam Barth.
1958
1959         We were hitting this ASSERT on numerous tests with the background parser enabled. This copy fixes the assertion.
1960
1961         No new tests becuase covered by existing tests.
1962
1963         * html/parser/HTMLResourcePreloader.h:
1964         (WebCore::PreloadRequest::setCharset):
1965
1966 2013-02-19  Tony Gentilcore  <tonyg@chromium.org>
1967
1968         Fix typo: inititatorFor->initiatorFor
1969         https://bugs.webkit.org/show_bug.cgi?id=110260
1970
1971         Reviewed by Adam Barth.
1972
1973         No new tests because no changed functionality.
1974
1975         * html/parser/HTMLPreloadScanner.cpp:
1976         (WebCore::TokenPreloadScanner::initiatorFor):
1977         (WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
1978         * html/parser/HTMLPreloadScanner.h:
1979
1980 2013-02-19  Tony Chang  <tony@chromium.org>
1981
1982         Convert 3 settings to use Settings.in
1983         https://bugs.webkit.org/show_bug.cgi?id=109875
1984
1985         Reviewed by Ryosuke Niwa.
1986
1987         Convert mediaEnabled, applicationChromeMode and DOMPasteAllowed to
1988         use Settings.in. They previously had inconsistently named setters.
1989
1990         No new tests, this is a refactoring.
1991
1992         * Source/WebCore/WebCore.exp.in: Remove symbols that are now inlined from exports.
1993         * Source/WebCore/WebCore.order: Remove symbols that no longer exist.
1994         * dom/make_names.pl:
1995         (printConstructorInterior): Rename isMediaEnabled to mediaEnabled.
1996         (printWrapperFunctions): Rename isMediaEnabled to mediaEnabled.
1997         * editing/EditorCommand.cpp:
1998         (WebCore::supportedPaste): Rename isDOMPasteAllowed to DOMPasteAllowed.
1999         * page/Settings.cpp:
2000         (WebCore::Settings::Settings): Remove custom code.
2001         * page/Settings.h:
2002         (Settings): Remove custom code.
2003         * page/Settings.in: Add entries for mediaEnabled, applicationChromeMode and DOMPasteAllowed.
2004         * page/make_settings.pl:
2005         (setterFunctionName): Expand uppercase rules to include DOM.
2006         * rendering/RenderTheme.cpp:
2007         (WebCore::RenderTheme::isDefault): Rename inApplicationChromeMode to applicationChromeMode.
2008         * rendering/RenderThemeWin.cpp:
2009         (WebCore::documentIsInApplicationChromeMode): Rename inApplicationChromeMode to applicationChromeMode.
2010
2011 2013-02-19  Julien Chaffraix  <jchaffraix@webkit.org>
2012
2013         [CSS Grid Layout] Refactor the code in preparation of auto placement support
2014         https://bugs.webkit.org/show_bug.cgi?id=110244
2015
2016         Reviewed by Ojan Vafai.
2017
2018         Test: fast/css-grid-layout/grid-auto-flow-resolution.html
2019
2020         In order to support auto placement, we need to iterate over the grid items with
2021         auto row / column several times. This changes makes us do that in a very simple,
2022         not-yet-conformant way. While touching this code, the distinction between grid-auto-flow
2023         none and row / column was better drawn (and enforced).
2024
2025         * rendering/RenderGrid.cpp:
2026         (WebCore::RenderGrid::resolveGridPositionFromStyle):
2027         Made it illegal to call resolveGridPositionFromStyle if the grid track is auto and
2028         grid-auto-flow is not none. This would catch bad use of the function.
2029
2030         (WebCore::RenderGrid::maximumIndexInDirection):
2031         Updated to bail out if the grid track is auto. Also improved the comment.
2032
2033         (WebCore::RenderGrid::placeItemsOnGrid):
2034         Updated the function to do several iterations. Also handled the grid-auto-flow: none
2035         case differently as it shouldn't need the extra iteration(s).
2036
2037 2013-02-19  David Hyatt  <hyatt@apple.com>
2038
2039         [New Multicolumn] REGRESSION: RenderMultiColumnSets broken by the RenderRegion -> RenderBlock subclassing.
2040         https://bugs.webkit.org/show_bug.cgi?id=110239.
2041
2042         Reviewed by Simon Fraser.
2043
2044         Test: fast/multicol/newmulticol/column-rules-fixed-height.html
2045
2046         * rendering/RenderBlock.cpp:
2047         (WebCore::RenderBlock::columnRectAt):
2048         Make sure the columnGap() in the old multicolumn code is always expressed as a LayoutUnit. This was the
2049         one place where it was still an int.
2050
2051         * rendering/RenderFlowThread.cpp:
2052         (WebCore::RenderFlowThread::paintFlowThreadPortionInRegion):
2053         Rework the painting of flow thread portions to account for the fact that regions paint at an integral
2054         translation. This means you have to construct clipping around that integral destination. Subpixel layout
2055         regions did not clip correctly as a result of this issue.
2056
2057         * rendering/RenderMultiColumnSet.cpp:
2058         (WebCore::RenderMultiColumnSet::columnRectAt):
2059         Fix the same bug with columnGap() that the old column code has, i.e., one spot where it was an int.
2060
2061         (WebCore::RenderMultiColumnSet::paintObject):
2062         RenderMultiColumnSet should be using paintObject and not paint and it needs to check for visibility
2063         and phases now that it is a RenderBlock subclass.
2064
2065         (WebCore::RenderMultiColumnSet::paintColumnRules):
2066         Fix the bug that Opera guys fixed in the old multi-column code. They didn't patch the new code, so this
2067         takes care of that.
2068
2069         * rendering/RenderMultiColumnSet.h:
2070         (RenderMultiColumnSet):
2071         Change to use paintObject instead of paint.
2072
2073 2013-02-19  Branimir Lambov  <blambov@google.com>
2074
2075         Fix 'slice' aspect ratio calculation
2076         https://bugs.webkit.org/show_bug.cgi?id=99984
2077
2078         Reviewed by Dirk Schulze.
2079
2080         Previously the calculation for the 'slice' aspect ratio would incorrectly calculate the
2081         source rect location based on the destination rect offset. This caused our source rect to be
2082         incorrect, and sometimes render outside the visible area completely. After this patch
2083         our implementation matches the implementation of both Gecko and Presto.
2084
2085         The relevant spec section:
2086         http://www.w3.org/TR/SVG/single-page.html#coords-PreserveAspectRatioAttribute
2087
2088         Tests: svg/as-image/image-preserveAspectRatio-all.svg
2089                svg/filters/feImage-preserveAspectRatio-all.svg
2090
2091         * svg/SVGPreserveAspectRatio.cpp:
2092         (WebCore::SVGPreserveAspectRatio::transformRect):
2093
2094 2013-02-19  Kentaro Hara  <haraken@google.com>
2095
2096         [V8] ScriptRunner::runCompiledScript() should return Handle<Value>() when OOM occurs
2097         https://bugs.webkit.org/show_bug.cgi?id=110254
2098
2099         Reviewed by Adam Barth.
2100
2101         Chromium bug: https://code.google.com/p/chromium/issues/detail?id=176951
2102
2103         Currently ScriptRunner::runCompiledScript() calls
2104         ASSERT(script.IsEmpty()) when OOM occurs. The Chromium bug is
2105         hitting the ASSERT(). The ASSERT() does not make sense at all.
2106         Instead, we should return an empty handle when OOM occurs.
2107
2108         No tests. The bug happens only when OOM occurs.
2109
2110         * bindings/v8/ScriptRunner.cpp:
2111         (WebCore::ScriptRunner::runCompiledScript):
2112
2113 2013-02-19  Elliott Sprehn  <esprehn@chromium.org>
2114
2115         Support both MutationObserver and WebKitMutationObserver
2116         https://bugs.webkit.org/show_bug.cgi?id=109776
2117
2118         Reviewed by Ojan Vafai.
2119
2120         We should allow new MutationObserver now that we support parser generated
2121         mutations. This leaves the old prefixed constructor in until we decide
2122         people don't depend on it.
2123
2124         Test: fast/dom/MutationObserver/mutation-observer-prefix.html
2125
2126         * page/DOMWindow.idl:
2127
2128 2013-02-19  Elliott Sprehn  <esprehn@chromium.org>
2129
2130         Remove RenderText::updateText
2131         https://bugs.webkit.org/show_bug.cgi?id=109991
2132
2133         Reviewed by Eric Seidel.
2134
2135         There's no reason for the generic RenderText::updateText virtual hook
2136         anymore now that r143060 made RenderQuote stop setting dirty bits during
2137         layout since the hook is only used by RenderCounter.
2138
2139         Instead add updateCounterIfNeeded and make it clear this is a hack for
2140         counters.
2141
2142         * rendering/RenderBlockLineLayout.cpp:
2143         (WebCore::updateCounterIfNeeded): Added, not handles the counter specific hack.
2144         (WebCore::dirtyLineBoxesForRenderer):
2145         (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
2146         * rendering/RenderCounter.cpp:
2147         (WebCore::RenderCounter::updateCounter):
2148         * rendering/RenderCounter.h:
2149         (RenderCounter):
2150         * rendering/RenderQuote.cpp:
2151         (WebCore::RenderQuote::styleDidChange):
2152         (WebCore::RenderQuote::updateDepth):
2153         * rendering/RenderQuote.h:
2154         (RenderQuote):
2155         * rendering/RenderText.h:
2156         (RenderText):
2157
2158 2013-02-19  Tony Chang  <tony@chromium.org>
2159
2160         Border changes on tables with collapsed borders doesn't relayout table cells
2161         https://bugs.webkit.org/show_bug.cgi?id=109774
2162
2163         Reviewed by David Hyatt.
2164
2165         Test: fast/table/border-collapsing/dynamic-border-width-change.html
2166
2167         Changes to border top and border bottom on table rows also changes the size
2168         of the table cell causing a relayout to be needed.
2169
2170         * rendering/RenderTableRow.cpp:
2171         (WebCore::borderWidthChanged): Also include border top and bottom.
2172         (WebCore::RenderTableRow::styleDidChange): Remove logical from the helper function name.
2173
2174 2013-02-19  Kentaro Hara  <haraken@chromium.org>
2175
2176         Unreviewed. Rebaselined run-bindings-tests.
2177
2178         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
2179         (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
2180         * bindings/scripts/test/JS/JSTestObj.cpp:
2181         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
2182
2183 2013-02-19  ChangSeok Oh  <changseok.oh@collabora.com>
2184
2185         [GTK][AC] Implement matrix transform animation with clutter ac backend
2186         https://bugs.webkit.org/show_bug.cgi?id=109848
2187
2188         Reviewed by Gustavo Noronha Silva.
2189
2190         Clutter 1.12 doesn't support additive transform animations yet, so the combination
2191         of two or more transformations(such as rotation after translation) runs unexpectedly.
2192         So we use a matrix transformation instead for the case.
2193
2194         Covered by existing animation tests.
2195
2196         * platform/graphics/clutter/GraphicsLayerClutter.cpp:
2197         (WebCore::getValueFunctionNameForTransformOperation):
2198         (WebCore::GraphicsLayerClutter::createTransformAnimationsFromKeyframes):
2199         * platform/graphics/clutter/PlatformClutterAnimation.cpp:
2200         (WebCore::toClutterActorPropertyString): Add actor property "transform"
2201         (WebCore::clutterMatrixProgress): Handle interpolation between two matrices instead of default clutter_matrix_progress.
2202         (WebCore):
2203         (WebCore::PlatformClutterAnimation::supportsAdditiveValueFunction):
2204         (WebCore::PlatformClutterAnimation::setFromValue): for TransformationMatrix.
2205         (WebCore::PlatformClutterAnimation::setToValue): ditto.
2206         (WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
2207         (WebCore::PlatformClutterAnimation::addTransformTransition):
2208         * platform/graphics/clutter/PlatformClutterAnimation.h:
2209         (PlatformClutterAnimation):
2210         * platform/graphics/clutter/TransformationMatrixClutter.cpp: Add copy constructor for CoglMatrix.
2211         (WebCore::TransformationMatrix::TransformationMatrix):
2212         (WebCore):
2213         * platform/graphics/transforms/TransformationMatrix.h:
2214         (TransformationMatrix):
2215
2216 2013-02-19  Kassy Coan  <kassycoan@chromium.org>
2217
2218         Update FeatureObserver on top level navigation in addition to page destruction.
2219         https://bugs.webkit.org/show_bug.cgi?id=109874
2220
2221         Reviewed by Adam Barth.
2222
2223         No new tests. Only effect is to histogram more frequently.
2224
2225         * loader/FrameLoader.cpp:
2226         (WebCore::FrameLoader::dispatchDidCommitLoad):
2227         * page/FeatureObserver.cpp:
2228         (WebCore::FeatureObserver::~FeatureObserver):
2229         (WebCore):
2230         (WebCore::FeatureObserver::updateMeasurements):
2231         (WebCore::FeatureObserver::didCommitLoad):
2232         * page/FeatureObserver.h:
2233         (FeatureObserver):
2234
2235 2013-02-19  Morten Stenshorne  <mstensho@opera.com>
2236
2237         Remove unnecessary (and problematic) copy-constructor from LayoutUnit
2238         https://bugs.webkit.org/show_bug.cgi?id=110121
2239
2240         This copy constructor does what a default copy constructor would do, so
2241         it's not necessary. Furthermore, this copy constructor is the only
2242         reason why LayoutUnit becomes non-POD, and that triggers a gdb bug,
2243         making it impossible to do things like "print location()" when inside
2244         some RenderBlock, for instance.
2245
2246         Gdb bug http://sourceware.org/bugzilla/show_bug.cgi?id=15154 reported.
2247
2248         Reviewed by Benjamin Poulain.
2249
2250         No tests. Apart from dealing with buggy debuggers, this is just code cleanup.
2251
2252         * platform/LayoutUnit.h:
2253
2254 2013-02-19  Emil A Eklund  <eae@chromium.org>
2255
2256         LayoutUnit::epsilon shouldn't be necessary to place floats
2257         https://bugs.webkit.org/show_bug.cgi?id=94000
2258
2259         Reviewed by Levi Weintraub.
2260         
2261         Currently, to get float placement correct, we need to have an
2262         epsilon tolerance in RenderBlock::computeLogicalLocationForFloat
2263         for the width of the line to fit them on. This really shouldn't
2264         be necessary, and probably indicates we're losing precision
2265         elsewhere.
2266         
2267         Remove epsilon as it no longer appears to be needed. All layout
2268         tests pass without it.
2269
2270         No new tests, covered by existing tests.
2271
2272         * rendering/RenderBlock.cpp:
2273         (WebCore::RenderBlock::computeLogicalLocationForFloat):
2274
2275 2013-02-19  Tim Volodine  <timvolodine@chromium.org>
2276
2277         Text Autosizing: prevent oscillation of font sizes during autosizing
2278         https://bugs.webkit.org/show_bug.cgi?id=108205
2279
2280         Reviewed by Kenneth Rohde Christiansen.
2281
2282         On some websites autosized font-sizes oscillate due to layouts caused by
2283         hovering or incremental page loading (and on other sites font sizes do
2284         eventually stabilize, but it takes many layouts before they reach a steady
2285         size). To prevent all these cases, we no longer allow the autosizing
2286         multiplier to change after it has been set (to a value other than 1).
2287
2288         This won't always give exactly the same results, but testing on 2000 top
2289         sites shows that this makes little difference in practice, and it prevents
2290         these very jarring cases. As a happy side-effect, this speeds up layouts
2291         as font sizes change less.
2292
2293         Test: fast/text-autosizing/oscillation-javascript-fontsize-change.html
2294
2295         * page/FrameView.cpp:
2296         (WebCore::FrameView::setFrameRect):
2297         * page/Settings.cpp:
2298         (WebCore::Settings::setTextAutosizingFontScaleFactor):
2299         * rendering/TextAutosizer.cpp:
2300         (WebCore::TextAutosizer::recalculateMultipliers):
2301         (WebCore):
2302         (WebCore::TextAutosizer::processContainer):
2303         * rendering/TextAutosizer.h:
2304         (TextAutosizer):
2305
2306 2013-02-19  Youenn Fablet  <youennf@gmail.com>
2307
2308         [EFL][DRT] http/tests/loading/307-after-303-after-post.html times out
2309         https://bugs.webkit.org/show_bug.cgi?id=93214
2310
2311         Ensured that GET verb is consistently used for any request
2312         coming after a redirection that triggers switching to GET.
2313
2314         Reviewed by Martin Robinson.
2315
2316         * platform/network/soup/ResourceHandleSoup.cpp:
2317         (WebCore::doRedirect):
2318
2319 2013-02-19  Andras Becsi  <andras.becsi@digia.com>
2320
2321         [Qt] Fix compilation if Qt was configured with -no-rtti
2322         https://bugs.webkit.org/show_bug.cgi?id=110234
2323
2324         Reviewed by Noam Rosenthal.
2325
2326         Availability of dynamic_cast should be checked.
2327
2328         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
2329         (WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded):
2330
2331 2013-02-18  Alexey Proskuryakov  <ap@apple.com>
2332
2333         Unregistered blob URLs have incorrect MIME type
2334         https://bugs.webkit.org/show_bug.cgi?id=110166
2335
2336         Reviewed by Sam Weinig.
2337
2338         * page/SecurityOrigin.cpp: (WebCore::SecurityOrigin::shouldUseInnerURL): Added a FIXME.
2339
2340         * platform/network/BlobResourceHandle.cpp: (WebCore::BlobResourceHandle::notifyResponseOnError):
2341         Pass an accurate MIME type (for a delegate to see).
2342
2343 2013-02-19  Joshua Bell  <jsbell@chromium.org>
2344
2345         IndexedDB: additional checks on LevelDB decoding
2346         https://bugs.webkit.org/show_bug.cgi?id=109711
2347
2348         Reviewed by Tony Chang.
2349
2350         Watch out for decoding errors caused by corrupted data, and exit various
2351         decode/compare operations earlier.
2352
2353         Covered by existing LayoutTests and Chromium's webkit_unit_tests
2354
2355         * Modules/indexeddb/IDBLevelDBCoding.cpp:
2356         (WebCore::IDBLevelDBCoding::decodeStringWithLength): Bail if length is negative.
2357         (WebCore::IDBLevelDBCoding::compareEncodedStringsWithLength): Distinguish error case.
2358         (WebCore::IDBLevelDBCoding::extractEncodedIDBKey): Bail if length is negative.
2359         (WebCore::IDBLevelDBCoding::compareEncodedIDBKeys): Distinguish error case.
2360         (WebCore::IDBLevelDBCoding::compare): Plumb through "ok".
2361         (WebCore::IDBLevelDBCoding::ObjectStoreDataKey::compare): Ditto.
2362         (WebCore::IDBLevelDBCoding::ExistsEntryKey::compare): Ditto.
2363         (WebCore::IDBLevelDBCoding::IndexDataKey::compare): Ditto.
2364         * Modules/indexeddb/IDBLevelDBCoding.h: Updated method signatures.
2365
2366 2013-02-19  ChangSeok Oh  <changseok.oh@collabora.com>
2367
2368         [GTK][AC] Implement keyframe animations with clutter ac backend
2369         https://bugs.webkit.org/show_bug.cgi?id=110057
2370
2371         Reviewed by Gustavo Noronha Silva.
2372
2373         This patch brings accelerated keyframe animation with clutter to WebKitGtk+.
2374         Changes of GraphicsLayerClutter are based on GraphicsLayerCA. But major changes
2375         of PlatformClutterAnimation are implemented with clutter keyframe transition apis.
2376         See http://developer.gnome.org/clutter/stable/ClutterKeyframeTransition.html
2377
2378         Covered by existing animation tests.
2379
2380         * platform/graphics/clutter/GraphicsLayerClutter.cpp:
2381         (WebCore::GraphicsLayerClutter::createKeyframeAnimation):
2382         (WebCore::GraphicsLayerClutter::setTransformAnimationKeyframes):
2383         (WebCore::GraphicsLayerClutter::setAnimationKeyframes):
2384         * platform/graphics/clutter/PlatformClutterAnimation.cpp:
2385         (WebCore::toClutterActorPropertyString):
2386         (WebCore::PlatformClutterAnimation::PlatformClutterAnimation):
2387         (WebCore::PlatformClutterAnimation::setTimingFunction):
2388         (WebCore::PlatformClutterAnimation::setValues):
2389         (WebCore::PlatformClutterAnimation::setKeyTimes):
2390         (WebCore::PlatformClutterAnimation::setTimingFunctions):
2391         (WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
2392         (WebCore):
2393         (WebCore::PlatformClutterAnimation::addClutterKeyframeTransitionForProperty):
2394         (WebCore::PlatformClutterAnimation::addOpacityTransition):
2395         (WebCore::PlatformClutterAnimation::addTransformTransition):
2396         (WebCore::PlatformClutterAnimation::addAnimationForKey):
2397         (WebCore::PlatformClutterAnimation::removeAnimationForKey):
2398         * platform/graphics/clutter/PlatformClutterAnimation.h:
2399         (PlatformClutterAnimation):
2400
2401 2013-02-19  Claudio Saavedra  <csaavedra@igalia.com>
2402
2403         [harfbuzz] Crash in harfbuzz related code
2404         https://bugs.webkit.org/show_bug.cgi?id=110145
2405
2406         Reviewed by Martin Robinson.
2407
2408         Patch by Behdad Esfahbod <behdad@google.com>
2409
2410         * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
2411         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Ask harfbuzz
2412         to guess the segment properties.
2413
2414 2013-02-19  Pavel Podivilov  <podivilov@chromium.org>
2415
2416         Web Inspector: release backtrace object group on each step.
2417         https://bugs.webkit.org/show_bug.cgi?id=110223
2418
2419         Reviewed by Pavel Feldman.
2420
2421         * inspector/InspectorDebuggerAgent.cpp:
2422         (WebCore):
2423         (WebCore::InspectorDebuggerAgent::stepOver):
2424         (WebCore::InspectorDebuggerAgent::stepInto):
2425         (WebCore::InspectorDebuggerAgent::stepOut):
2426
2427 2013-02-19  Sheriff Bot  <webkit.review.bot@gmail.com>
2428
2429         Unreviewed, rolling out r142975.
2430         http://trac.webkit.org/changeset/142975
2431         https://bugs.webkit.org/show_bug.cgi?id=110225
2432
2433         Introduces hard-to-reproduce crashes upon inspected page
2434         navigation on Mac (Requested by apavlov on #webkit).
2435
2436         * dom/DocumentStyleSheetCollection.cpp:
2437         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
2438         * inspector/Inspector.json:
2439         * inspector/InspectorCSSAgent.cpp:
2440         (WebCore::InspectorCSSAgent::InspectorCSSAgent):
2441         (WebCore::InspectorCSSAgent::clearFrontend):
2442         (WebCore::InspectorCSSAgent::enable):
2443         (WebCore::InspectorCSSAgent::getAllStyleSheets):
2444         (WebCore::InspectorCSSAgent::collectStyleSheets):
2445         (WebCore::InspectorCSSAgent::bindStyleSheet):
2446         (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
2447         (WebCore::InspectorCSSAgent::detectOrigin):
2448         (WebCore::InspectorCSSAgent::buildObjectForRule):
2449         * inspector/InspectorCSSAgent.h:
2450         (InspectorCSSAgent):
2451         * inspector/InspectorInstrumentation.cpp:
2452         (WebCore):
2453         * inspector/InspectorInstrumentation.h:
2454         (WebCore):
2455         (InspectorInstrumentation):
2456         * inspector/front-end/CSSStyleModel.js:
2457         (WebInspector.CSSStyleModel.prototype.getViaInspectorResourceForRule):
2458         (WebInspector.CSSStyleModelResourceBinding.prototype.):
2459         (WebInspector.CSSStyleModelResourceBinding.prototype.requestStyleSheetIdForResource):
2460         (WebInspector.CSSStyleModelResourceBinding.prototype.requestResourceURLForStyleSheetId):
2461         (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetIdForResource):
2462         (WebInspector.CSSStyleModelResourceBinding.prototype._loadStyleSheetHeaders):
2463         (WebInspector.CSSStyleModelResourceBinding.prototype.headersLoaded):
2464         (WebInspector.CSSStyleModelResourceBinding.prototype._requestViaInspectorResource):
2465         (WebInspector.CSSStyleModelResourceBinding.prototype._getOrCreateInspectorResource):
2466         (WebInspector.CSSStyleModelResourceBinding.prototype._reset):
2467         * inspector/front-end/SASSSourceMapping.js:
2468         (WebInspector.SASSSourceMapping.prototype._styleSheetChanged.callback):
2469         (WebInspector.SASSSourceMapping.prototype._styleSheetChanged):
2470         * inspector/front-end/StylesSidebarPane.js:
2471         (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode.callback):
2472         (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode):
2473         * inspector/front-end/StylesSourceMapping.js:
2474         (WebInspector.StyleContentBinding.prototype.callback):
2475         (WebInspector.StyleContentBinding.prototype.setStyleContent):
2476         (WebInspector.StyleContentBinding.prototype.):
2477         (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
2478
2479 2013-02-19  Julien Chaffraix  <jchaffraix@webkit.org>
2480
2481         RenderGrid::computedUsedBreadthOfGridTracks can read past m_grid's size
2482         https://bugs.webkit.org/show_bug.cgi?id=110126
2483
2484         Reviewed by Ojan Vafai.
2485
2486         The issue comes from how we store the column information inside m_grid.
2487         Because m_grid is a Vector of rows, we could lose the column information
2488         if we had no row, no grid item but some columns defined in CSS. As the
2489         logic would assume that our row / column size would be greater than what
2490         the style defines explicitely, we would access past our Vector's boundary.
2491
2492         The fix is to ensure that we have at least a row so that we can store the
2493         column information in every case. This fix is overly broad as it also forces
2494         the grid to have one column, which shouldn't be an issue.
2495
2496         Test: fast/css-grid-layout/grid-element-empty-row-column.html
2497
2498         * rendering/RenderGrid.cpp:
2499         (WebCore::RenderGrid::maximumIndexInDirection):
2500         Forced this function to return at least one as the maximum index so that
2501         m_grid has at least one row / column.
2502
2503         (WebCore::RenderGrid::placeItemsOnGrid):
2504         Added a ASSERT that m_grid is bigger than the explicit grid-rows / grid-columns.
2505         Also changed an existing ASSERT to use gridWasPopulated for consistency and changed
2506         the code not to call gridRowCount as it would ASSERT (we are in the middle of populating
2507         the grid).
2508
2509         * rendering/RenderGrid.h:
2510         (WebCore::RenderGrid::gridWasPopulated):
2511         Added this helper function.
2512
2513         (WebCore::RenderGrid::gridColumnCount):
2514         Replaced a now unneeded branch with an ASSERT. As placeItemsOnGrid should be called
2515         prior to read m_grid, this change should be fine.
2516
2517         (WebCore::RenderGrid::gridRowCount):
2518         Added an ASSERT.
2519
2520 2013-02-19  Sergio Villar Senin  <svillar@igalia.com>
2521
2522         [Soup] Use synchronous calls to close completely processed streams
2523         https://bugs.webkit.org/show_bug.cgi?id=107432
2524
2525         Reviewed by Martin Robinson.
2526
2527         There is no need to close already processed streams in asynchronous
2528         calls since they won't block. Using the synchronous call will save
2529         us some code and unnecessary asynchronous burden. This is kind of
2530         a code refactor so no new tests needed.
2531
2532         * platform/network/soup/ResourceHandleSoup.cpp:
2533         (WebCore):
2534         (WebCore::redirectSkipCallback):
2535         (WebCore::readCallback):
2536
2537 2013-02-19  Andrey Adaikin  <aandrey@chromium.org>
2538
2539         Web Inspector: [Canvas] use timeline's didBeginFrame for marking frame end calls
2540         https://bugs.webkit.org/show_bug.cgi?id=110130
2541
2542         Reviewed by Pavel Feldman.
2543
2544         In Web Inspector canvas profiler use timeline's didBeginFrame for marking frame end calls instead of an ad-hoc timeout-based solution.
2545
2546         * inspector/InjectedScriptCanvasModule.cpp:
2547         (WebCore::InjectedScriptCanvasModule::markFrameEnd):
2548         (WebCore):
2549         * inspector/InjectedScriptCanvasModule.h:
2550         (InjectedScriptCanvasModule):
2551         * inspector/InjectedScriptCanvasModuleSource.js:
2552         (.):
2553         * inspector/InspectorCanvasAgent.cpp:
2554         (WebCore::InspectorCanvasAgent::hasUninstrumentedCanvases):
2555         (WebCore::InspectorCanvasAgent::notifyRenderingContextWasWrapped):
2556         (WebCore::InspectorCanvasAgent::findFramesWithUninstrumentedCanvases):
2557         (WebCore::InspectorCanvasAgent::frameNavigated):
2558         (WebCore::InspectorCanvasAgent::didBeginFrame):
2559         (WebCore):
2560         * inspector/InspectorCanvasAgent.h:
2561         (InspectorCanvasAgent):
2562         * inspector/InspectorController.cpp:
2563         (WebCore::InspectorController::didBeginFrame):
2564
2565 2013-02-19  Vsevolod Vlasov  <vsevik@chromium.org>
2566
2567         Web Inspector: Decouple various file system project implementation parts for better testability and cover with tests.
2568         https://bugs.webkit.org/show_bug.cgi?id=110204
2569
2570         Reviewed by Pavel Feldman.
2571
2572         Extracted FileSystemWorkspaceProvider from IsolatedFileSystemManager to take care of managing workspace projects and projectDelegates.
2573         Replaced FileMapping.urlForURI with urlForPath method that does not need any information about workspace structure anymore.
2574
2575         Test: inspector/file-system-project.html
2576
2577         * inspector/front-end/FileMapping.js:
2578         (WebInspector.FileMapping.prototype.urlForPath):
2579         * inspector/front-end/FileSystemProjectDelegate.js:
2580         (WebInspector.FileSystemProjectDelegate):
2581         (WebInspector.FileSystemProjectDelegate.prototype.populate.filesLoaded):
2582         (WebInspector.FileSystemProjectDelegate.prototype.populate):
2583         (WebInspector.FileSystemWorkspaceProvider):
2584         (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemAdded):
2585         (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemRemoved):
2586         * inspector/front-end/IsolatedFileSystem.js:
2587         (WebInspector.IsolatedFileSystem):
2588         (WebInspector.IsolatedFileSystem.prototype.name):
2589         (WebInspector.IsolatedFileSystem.prototype.rootURL):
2590         * inspector/front-end/IsolatedFileSystemManager.js:
2591         (WebInspector.IsolatedFileSystemManager):
2592         (WebInspector.IsolatedFileSystemManager.prototype._innerAddFileSystem):
2593         (WebInspector.IsolatedFileSystemManager.prototype._fileSystemRemoved):
2594         (WebInspector.IsolatedFileSystemManager.prototype._isolatedFileSystem):
2595         (WebInspector.IsolatedFileSystemManager.prototype.requestDOMFileSystem):
2596         * inspector/front-end/inspector.js:
2597
2598 2013-02-19  Andrey Adaikin  <aandrey@chromium.org>
2599
2600         Web Inspector: [Canvas] do not replace replay image with spinner icon
2601         https://bugs.webkit.org/show_bug.cgi?id=110213
2602
2603         Reviewed by Pavel Feldman.
2604
2605         Otherwise it's visually hard to see changes in the replay image. Instead show a small spinner icon in the bottom right corner.
2606
2607         * inspector/front-end/CanvasProfileView.js:
2608         (WebInspector.CanvasProfileView):
2609         (WebInspector.CanvasProfileView.prototype._enableWaitIcon):
2610         * inspector/front-end/canvasProfiler.css:
2611         (#canvas-replay-image-container):
2612         (.canvas-debug-info):
2613         (.canvas-spinner-icon):
2614
2615 2013-02-19  Andrey Adaikin  <aandrey@chromium.org>
2616
2617         Web Inspector: [Canvas] UI: tweak replay control buttons behavior
2618         https://bugs.webkit.org/show_bug.cgi?id=110207
2619
2620         Reviewed by Pavel Feldman.
2621
2622         New behavior for control buttons in the Canvas profiler.
2623         - The NextCall button (~StepInto) on a node group should expand it and move into its first child (instead of expanding and moving into the next node group)
2624         - The NextDrawCall button (~StepOver) should move to a next node that has children (instead of just iterating call group nodes, ignoring frame nodes).
2625         - The ReplayLast button should select the last expanded node (instead of always selecting last frame group node).
2626
2627         * inspector/front-end/CanvasProfileView.js:
2628         (WebInspector.CanvasProfileView.prototype._onReplayStepClick):
2629         (WebInspector.CanvasProfileView.prototype._onReplayDrawingCallClick):
2630         (WebInspector.CanvasProfileView.prototype._onReplayLastStepClick):
2631
2632 2013-02-19  Andrei Bucur  <abucur@adobe.com>
2633
2634         [CSS Regions] Assertion in RenderFlowThread::removeRenderBoxRegionInfo
2635         https://bugs.webkit.org/show_bug.cgi?id=109914
2636
2637         Reviewed by David Hyatt.
2638
2639         This patch moves a part of the invalidation operations inside the RenderFlowThread::invalidateRegions call. The maps
2640         are cleared anyway at layout time but doing this earlier makes sure the flow thread is in a more consistent state
2641         (the RenderFlowThread object has both the region chain invalidated and the regions information cleared).
2642
2643         RenderFlowThread::removeRenderBoxRegionInfo will check if the region chain is invalidated. If true, it means the
2644         flow thread has a layout scheduled and the regions information is not yet reliable. In this case we just return from the
2645         function and wait for the layout to cleanup the box information.
2646
2647         Test: fast/regions/remove-box-info-assert.html
2648
2649         * rendering/RenderFlowThread.cpp:
2650         (WebCore::RenderFlowThread::removeRegionFromThread):
2651         (WebCore::RenderFlowThread::invalidateRegions):
2652         (WebCore):
2653         (WebCore::RenderFlowThread::layout):
2654         (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
2655         * rendering/RenderFlowThread.h:
2656         * rendering/RenderNamedFlowThread.cpp:
2657         (WebCore::RenderNamedFlowThread::removeRegionFromThread):
2658
2659 2013-02-19  Alberto Garcia  <agarcia@igalia.com>
2660
2661         Fix build broekn by r142988.
2662         https://bugs.webkit.org/show_bug.cgi?id=109530
2663
2664         Unreviewed. Build fix.
2665
2666         Properly add shortMonthFormat() to the LocaleNone class.
2667
2668         * platform/text/LocaleNone.cpp:
2669         (LocaleNone):
2670         (WebCore::LocaleNone::shortMonthFormat):
2671
2672 2013-02-19  Anton Vayvod  <avayvod@chromium.org>
2673
2674         [Text Autosizing] Combine narrow descendants of a cluster into groups that should be autosized with the same multiplier.
2675         https://bugs.webkit.org/show_bug.cgi?id=109825
2676
2677         Enhancement of the approach introduced in https://bugs.webkit.org/show_bug.cgi?id=109573.
2678         Instead of using the same text size multiplier for all narrow descendants of any autosizing
2679         cluster, group the descendants by how much narrower they are than the cluster's
2680         |blockContainingAllText| and process each group separately with a different multiplier for
2681         each one.
2682         For example, we want nested comments on the page to be autosized as a group but separately
2683         from a sidebar on the same page.
2684
2685         Reviewed by Kenneth Rohde Christiansen.
2686
2687         Updated the existing test to verify the patch.
2688
2689         * rendering/TextAutosizer.cpp:
2690         (WebCore::TextAutosizer::processClusterInternal):
2691
2692             Splits the narrow descendants of the autosizing cluster into groups before processing
2693             each group individually.
2694
2695         (WebCore::TextAutosizer::getNarrowDescendantsGroupedByWidth):
2696
2697             Sorts the narrow descendants of the given cluster into groups, combining them by the
2698             difference between their content widths. If sorted by width, two consecutive nodes
2699             belong to the same group if their width difference is no greater than 100 CSS units.
2700
2701         * rendering/TextAutosizer.h:
2702
2703             New method definitions.
2704
2705 2013-02-18  Ilya Tikhonovsky  <loislo@chromium.org>
2706
2707         Web Inspector: Native Memory Instrumentation: show user provided name property of the heap snapshot node.
2708         https://bugs.webkit.org/show_bug.cgi?id=110124
2709
2710         Reviewed by Yury Semikhatsky.
2711
2712         Publish userProvidedName into grid node.
2713
2714         * inspector/front-end/HeapSnapshotGridNodes.js:
2715         (WebInspector.HeapSnapshotGenericObjectNode):
2716         (WebInspector.HeapSnapshotGenericObjectNode.prototype._createObjectCell):
2717         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
2718         * inspector/front-end/HeapSnapshotProxy.js:
2719         (WebInspector.HeapSnapshotWorker):
2720         * inspector/front-end/NativeHeapSnapshot.js:
2721         (WebInspector.NativeHeapSnapshotNode.prototype.serialize):
2722
2723 2013-02-19  Arpita Bahuguna  <a.bah@samsung.com>
2724
2725         Caret is not displayed when trying to focus inside a contenteditable element containing an empty block.
2726         https://bugs.webkit.org/show_bug.cgi?id=108053
2727
2728         Reviewed by Ryosuke Niwa.
2729
2730         Test: editing/selection/caret-in-div-containing-empty-block.html
2731
2732         * rendering/RenderBox.cpp:
2733         (WebCore::RenderBox::localCaretRect):
2734         When trying to compute the caret rect for the contenteditable div, the
2735         border and the padding were not considered. Because of this, for the
2736         given test case, which had a border defined on the containing div, the
2737         caret was being painted just atop the border, thereby masking it.
2738
2739         Have modified the code to ensure that the computed caret rect takes
2740         into account the border and padding (if any) specified on the box, but only
2741         if the node doesn't have content that shall be skipped for editing.
2742
2743         We do not add border and padding while computing the caret rect for any
2744         element that either has no content or has content that shall be skipped
2745         for editing purposes. This holds true for table elements as well.
2746
2747         This helps avoid the caret displacement previsouly observed before/after
2748         any controls placed within the contenteditable box, when considering
2749         border and padding in computation of the caret rect.
2750
2751 2013-02-19  Mihnea Ovidenie  <mihnea@adobe.com>
2752
2753         CSSRegions: crash positioned object with inline containing block in flow thread
2754         https://bugs.webkit.org/show_bug.cgi?id=108307
2755
2756         Reviewed by David Hyatt.
2757
2758         The fix for https://bugs.webkit.org/show_bug.cgi?id=69896 allowed positioned blocks work
2759         with variable width regions. However, the information needed for that is available only
2760         when the container used for positioning is a block.
2761
2762         This patch ensures we are using this solution only when the container used for positioning
2763         is a block. This needs to be revisited when we will extend support for other types of boxes
2764         as mentioned in RenderBox::renderBoxRegionInfo.
2765
2766         Test: fast/regions/positioned-object-inline-cb-crash.html
2767
2768         * rendering/RenderBox.cpp:
2769         (WebCore::RenderBox::renderBoxRegionInfo):
2770         (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
2771         (WebCore::RenderBox::computePositionedLogicalWidth): Make sure we are using containerBlocks
2772         that are blocks. Add an assert that the type of containerBlock we are using can have
2773         computed RenderBoxRegionInfo.
2774         (WebCore::RenderBox::computePositionedLogicalHeight):
2775         * rendering/RenderBoxModelObject.h:
2776         (WebCore::RenderBoxModelObject::canHaveBoxInfoInRegion): This helper method
2777         will return the boxes that may have computed RenderBoxRegionInfo. Currently,
2778         returns true for blocks only.
2779
2780 2013-02-19  Ryosuke Niwa  <rniwa@webkit.org>
2781
2782         Yet anther JSC build fix after r143304.
2783
2784         * bindings/js/JSDOMBinding.h:
2785         (WebCore::argumentOrNull):
2786
2787 2013-02-19  Kentaro Hara  <haraken@chromium.org>
2788
2789         Unreviewed build fix. Fixed warning caused by r143305.
2790
2791         * bindings/scripts/CodeGeneratorJS.pm:
2792         (GenerateParametersCheck):
2793         * bindings/scripts/CodeGeneratorV8.pm:
2794         (GenerateParametersCheck):
2795
2796 2013-02-19  Kentaro Hara  <haraken@chromium.org>
2797
2798         Unreviewed build fix after r143304.
2799
2800         * bindings/js/JSDOMBinding.h:
2801         (WebCore::argumentOrNull):
2802
2803 2013-02-19  Kentaro Hara  <haraken@chromium.org>
2804
2805         [V8] Remove redundant usage of MAYBE_MISSING_PARAMETER() macro
2806         https://bugs.webkit.org/show_bug.cgi?id=109899
2807
2808         Reviewed by Adam Barth.
2809
2810         Currently:
2811
2812         - MAYBE_MISSING_PARAMETER(args, index, DefaultIsUndefined) returns args[index].
2813         - MAYBE_MISSING_PARAMETER(args, index, DefaultIsNullString) returns Local<Value>()
2814         if args[index] is missing (i.e. the length of |args| is less than |index|).
2815         It returns args[index] otherwise.
2816
2817         No one other than CodeGeneratorV8.pm uses
2818         MAYBE_MISSING_PARAMETER(args, index, DefaultIsUndefined). Instead, we simply use
2819         args[index]. We should remove the redundant usage from CodeGeneratorV8.pm too.
2820         The long-name macro has been making generated code less readable.
2821
2822         In addition, we can rename MAYBE_MISSING_PARAMETER() to argumentOrNull().
2823
2824         No tests. No change in behavior.
2825
2826         * bindings/scripts/CodeGeneratorV8.pm:
2827         (GenerateParametersCheck):
2828         * bindings/scripts/test/V8/V8Float64Array.cpp:
2829         (WebCore::Float64ArrayV8Internal::fooCallback):
2830         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2831         (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
2832         (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
2833         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2834         (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
2835         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2836         (WebCore::TestEventTargetV8Internal::itemCallback):
2837         (WebCore::TestEventTargetV8Internal::dispatchEventCallback):
2838         * bindings/scripts/test/V8/V8TestInterface.cpp:
2839         (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
2840         (WebCore::V8TestInterface::constructorCallback):
2841         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2842         (WebCore::TestMediaQueryListListenerV8Internal::methodCallback):
2843         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2844         (WebCore::V8TestNamedConstructorConstructorCallback):
2845         * bindings/scripts/test/V8/V8TestObj.cpp:
2846         (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
2847         (WebCore::TestObjV8Internal::longMethodWithArgsCallback):
2848         (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
2849         (WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
2850         (WebCore::TestObjV8Internal::methodReturningSequenceCallback):
2851         (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
2852         (WebCore::TestObjV8Internal::optionsObjectCallback):
2853         (WebCore::TestObjV8Internal::methodWithOptionalArgCallback):
2854         (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgCallback):
2855         (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
2856         (WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
2857         (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
2858         (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
2859         (WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback):
2860         (WebCore::TestObjV8Internal::overloadedMethod1Callback):
2861         (WebCore::TestObjV8Internal::overloadedMethod2Callback):
2862         (WebCore::TestObjV8Internal::overloadedMethod3Callback):
2863         (WebCore::TestObjV8Internal::overloadedMethod4Callback):
2864         (WebCore::TestObjV8Internal::overloadedMethod6Callback):
2865         (WebCore::TestObjV8Internal::overloadedMethod7Callback):
2866         (WebCore::TestObjV8Internal::overloadedMethod8Callback):
2867         (WebCore::TestObjV8Internal::overloadedMethod9Callback):
2868         (WebCore::TestObjV8Internal::overloadedMethod10Callback):
2869         (WebCore::TestObjV8Internal::overloadedMethod11Callback):
2870         (WebCore::TestObjV8Internal::classMethodWithOptionalCallback):
2871         (WebCore::TestObjV8Internal::overloadedMethod12Callback):
2872         (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
2873         (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
2874         (WebCore::TestObjV8Internal::enabledPerContextMethod1Callback):
2875         (WebCore::TestObjV8Internal::enabledPerContextMethod2Callback):
2876         (WebCore::TestObjV8Internal::stringArrayFunctionCallback):
2877         (WebCore::TestObjV8Internal::domStringListFunctionCallback):
2878         (WebCore::TestObjV8Internal::convert1Callback):
2879         (WebCore::TestObjV8Internal::convert2Callback):
2880         (WebCore::TestObjV8Internal::convert4Callback):
2881         (WebCore::TestObjV8Internal::convert5Callback):
2882         (WebCore::TestObjV8Internal::strictFunctionCallback):
2883         (WebCore::TestObjV8Internal::variadicStringMethodCallback):
2884         (WebCore::TestObjV8Internal::variadicDoubleMethodCallback):
2885         (WebCore::TestObjV8Internal::variadicNodeMethodCallback):
2886         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
2887         (WebCore::V8TestOverloadedConstructors::constructor1Callback):
2888         (WebCore::V8TestOverloadedConstructors::constructor2Callback):
2889         (WebCore::V8TestOverloadedConstructors::constructor3Callback):
2890         (WebCore::V8TestOverloadedConstructors::constructor4Callback):
2891         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2892         (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
2893         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
2894         (WebCore::TestTypedefsV8Internal::funcCallback):
2895         (WebCore::TestTypedefsV8Internal::setShadowCallback):
2896         (WebCore::TestTypedefsV8Internal::methodWithSequenceArgCallback):
2897         (WebCore::TestTypedefsV8Internal::nullableArrayArgCallback):
2898         (WebCore::TestTypedefsV8Internal::stringArrayFunctionCallback):
2899         (WebCore::TestTypedefsV8Internal::stringArrayFunction2Callback):
2900         (WebCore::V8TestTypedefs::constructorCallback):
2901         * bindings/v8/V8BindingMacros.h:
2902         (WebCore):
2903         * bindings/v8/custom/V8HistoryCustom.cpp:
2904         (WebCore::V8History::pushStateCallbackCustom):
2905         (WebCore::V8History::replaceStateCallbackCustom):
2906
2907 2013-02-19  Kentaro Hara  <haraken@chromium.org>
2908
2909         [JSC] MAYBE_MISSING_PARAMETER(..., DefaultIsNullString) macro is redundant
2910         https://bugs.webkit.org/show_bug.cgi?id=109902
2911
2912         Reviewed by Adam Barth.
2913
2914         Currently:
2915
2916         - MAYBE_MISSING_PARAMETER(exec, index, DefaultIsUndefined)
2917           returns exec->argument(index).
2918         - MAYBE_MISSING_PARAMETER(exec, index, DefaultIsNullString)
2919           returns JSValue() if exec->argument(index) is missing
2920           (i.e. the length of the argument is less than index).
2921           It returns exec->argument(index) otherwise.
2922
2923         No one other than CodeGeneratorJS.pm uses
2924         MAYBE_MISSING_PARAMETER(exec, index, DefaultIsUndefined).
2925         Instead, we simply use exec->argument(index). We should remove
2926         the redundant usage in CodeGeneratorJS.pm too. The long-name macro
2927         has been making generated code less readable.
2928
2929         In addition, we can rename MAYBE_MISSING_PARAMETER() to argumentOrNull().
2930
2931         c.f. corresponding V8 bug: https://bugs.webkit.org/show_bug.cgi?id=109899
2932
2933         No tests. No change in behavior.
2934
2935         * bindings/js/JSDOMBinding.h:
2936         (WebCore):
2937         * bindings/scripts/CodeGeneratorJS.pm:
2938         (GenerateParametersCheck):
2939         * bindings/scripts/test/JS/JSFloat64Array.cpp:
2940         (WebCore::jsFloat64ArrayPrototypeFunctionFoo):
2941         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
2942         (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
2943         (WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
2944         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
2945         (WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
2946         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
2947         (WebCore::jsTestEventTargetPrototypeFunctionItem):
2948         (WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
2949         * bindings/scripts/test/JS/JSTestInterface.cpp:
2950         (WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
2951         (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
2952         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
2953         (WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
2954         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
2955         (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
2956         * bindings/scripts/test/JS/JSTestObj.cpp:
2957         (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
2958         (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
2959         (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
2960         (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
2961         (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
2962         (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
2963         (WebCore::jsTestObjPrototypeFunctionSerializedValue):
2964         (WebCore::jsTestObjPrototypeFunctionOptionsObject):
2965         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
2966         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
2967         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
2968         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
2969         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
2970         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
2971         (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
2972         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
2973         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
2974         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
2975         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
2976         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
2977         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
2978         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
2979         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
2980         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
2981         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
2982         (WebCore::jsTestObjConstructorFunctionClassMethodWithOptional):
2983         (WebCore::jsTestObjConstructorFunctionOverloadedMethod11):
2984         (WebCore::jsTestObjConstructorFunctionOverloadedMethod12):
2985         (WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
2986         (WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
2987         (WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
2988         (WebCore::jsTestObjPrototypeFunctionConvert1):
2989         (WebCore::jsTestObjPrototypeFunctionConvert2):
2990         (WebCore::jsTestObjPrototypeFunctionConvert4):
2991         (WebCore::jsTestObjPrototypeFunctionConvert5):
2992         (WebCore::jsTestObjPrototypeFunctionStrictFunction):
2993         (WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
2994         (WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
2995         (WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
2996         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
2997         (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors1):
2998         (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors2):
2999         (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors3):
3000         (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors4):
3001         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
3002         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
3003         (WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionAcceptTransferList):
3004         (WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionMultiTransferList):
3005         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
3006         (WebCore::JSTestTypedefsConstructor::constructJSTestTypedefs):
3007         (WebCore::jsTestTypedefsPrototypeFunctionFunc):
3008         (WebCore::jsTestTypedefsPrototypeFunctionMultiTransferList):
3009         (WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
3010         (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
3011         (WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
3012         (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
3013         (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):
3014
3015 2013-02-18  Hayato Ito  <hayato@chromium.org>
3016
3017         Make EventDispatcher take an Event object in its constructor.
3018         https://bugs.webkit.org/show_bug.cgi?id=109898
3019
3020         Reviewed by Dimitri Glazkov.
3021
3022         Re-landing r143145, which caused a crash when deltaX and deltaY of a PlatformWheelEvent are both zero.
3023
3024         Fixed a crash by early exiting in EventDispatcher::dispatchEvent(Node*, PassRefPtr<EventDispatcher*>)
3025         if mediator's event() returns null.
3026
3027         Also Added a layout test to catch this kind of crash in the future.
3028
3029         Test: fast/events/platform-wheelevent-with-delta-zero-crash.html
3030
3031         * dom/EventDispatchMediator.cpp:
3032         (WebCore::EventDispatchMediator::dispatchEvent):
3033         * dom/EventDispatcher.cpp:
3034         (WebCore::EventDispatcher::dispatchEvent):
3035         (WebCore::EventDispatcher::EventDispatcher):
3036         (WebCore::EventDispatcher::ensureEventPath):
3037         (WebCore::EventDispatcher::dispatchSimulatedClick):
3038         (WebCore::EventDispatcher::dispatch):
3039         (WebCore::EventDispatcher::dispatchEventPreProcess):
3040         (WebCore::EventDispatcher::dispatchEventAtCapturing):
3041         (WebCore::EventDispatcher::dispatchEventAtTarget):
3042         (WebCore::EventDispatcher::dispatchEventAtBubbling):
3043         (WebCore::EventDispatcher::dispatchEventPostProcess):
3044         * dom/EventDispatcher.h:
3045         (EventDispatcher):
3046         (WebCore::EventDispatcher::node):
3047         (WebCore::EventDispatcher::event):
3048         * dom/FocusEvent.cpp:
3049         (WebCore::FocusEventDispatchMediator::dispatchEvent):
3050         (WebCore::BlurEventDispatchMediator::dispatchEvent):
3051         (WebCore::FocusInEventDispatchMediator::dispatchEvent):
3052         (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
3053         * dom/GestureEvent.cpp:
3054         (WebCore::GestureEventDispatchMediator::dispatchEvent):
3055         * dom/MouseEvent.cpp:
3056         (WebCore::MouseEventDispatchMediator::dispatchEvent):
3057         * dom/WheelEvent.cpp:
3058         (WebCore::WheelEventDispatchMediator::dispatchEvent):
3059         Assert event() rather than an early exit since this code path should be hit only when event() is non-null.
3060
3061 2013-02-18  Takashi Sakamoto  <tasak@google.com>
3062
3063         :before/:after pseudo elements do not always apply to the proper element
3064         https://bugs.webkit.org/show_bug.cgi?id=93925
3065
3066         Reviewed by Dimitri Glazkov.
3067
3068         Disable sharing a style with siblings if :after or :before pseudo style
3069         is unique.
3070
3071         Test: fast/css/before-after-pseudo-class.html
3072
3073         * css/StyleResolver.cpp:
3074         (WebCore::StyleResolver::canShareStyleWithElement):
3075         Added a new condition, hasUniquePseudoStyle.
3076         * rendering/style/RenderStyle.cpp:
3077         (WebCore::RenderStyle::hasUniquePseudoStyle):
3078         Added to check whether any pseudo style has unique bit or not.
3079         (WebCore):
3080         * rendering/style/RenderStyle.h:
3081
3082 2013-02-18  Andy Estes  <aestes@apple.com>
3083
3084         Focusing a new frame (via window.focus()) should blur the active element in the current frame
3085         https://bugs.webkit.org/show_bug.cgi?id=110172
3086
3087         Reviewed by Ryosuke Niwa.
3088
3089         When a change in the focused node crosses a frame boundary, WebKit
3090         doesn't always succeed in blurring the old focused node before focusing
3091         the new one.
3092
3093         Each document remembers its focused node, and a Page-scoped
3094         FocusController remembers the focused frame. If a new focused node is
3095         in a different frame than the focused frame, FocusController tells the
3096         old frame's document to clear its focused node before focusing the new
3097         one (and remembering the new frame).
3098
3099         Unfortunately, web content can confuse FocusController by calling
3100         window.focus() at the wrong time. Since window.focus() changes
3101         FocusController's focused frame without focusing a new node,
3102         FocusController won't think that a frame boundary is being crossed if a
3103         node in this frame is later focused. Therefore it won't clear the old
3104         frame's focused node (it won't even know which frame contained the old
3105         focused node), causing at least two bugs:
3106
3107         1) The node in the old frame will not receive a blur event.
3108         2) Calling document.activeElement on the main frame will return the
3109            previously focused node, but the HTML5 spec says it should return
3110            the frame owner element if a subframe has focus.
3111
3112         Fix both of these bugs by explicitly clearing the current frame's
3113         focused node if window.focus() changes the focused frame. This fix
3114         carries some compatibility risk by changing a long-standing behavior
3115         of the engine (we've had this bug since the beginning of the project,
3116         AFAICT). On the upside, it matches the behavior of both Firefox and IE,
3117         matches what HTML5 says about subframe focus, and fixes at least one
3118         well-known enterprise web app.
3119
3120         Tests: fast/dom/HTMLDocument/active-element-frames.html
3121                fast/frames/frame-focus-blurs-active-element.html
3122
3123         * page/DOMWindow.cpp:
3124         (WebCore::DOMWindow::focus): If the frame being focused is not the same
3125         as the currently focused frame, clear the currently focused frame's
3126         focused node.
3127
3128 2013-02-18  Simon Fraser  <simon.fraser@apple.com>
3129
3130         Clean up the boolean argument to visibleContentRect
3131         https://bugs.webkit.org/show_bug.cgi?id=110167
3132
3133         Reviewed by Simon Fraser.
3134
3135         Replace the boolean argument to visibleContentRect() with
3136         an enum.
3137
3138         No behavior change.
3139
3140         * WebCore.exp.in:
3141         * dom/Document.cpp:
3142         (WebCore::Document::viewportSize):
3143         * inspector/InspectorOverlay.cpp:
3144         (WebCore::InspectorOverlay::update):
3145         * page/DOMWindow.cpp:
3146         (WebCore::DOMWindow::innerHeight):
3147         (WebCore::DOMWindow::innerWidth):
3148         * page/FrameView.cpp:
3149         (WebCore::FrameView::calculateScrollbarModesForLayout):
3150         (WebCore::FrameView::layout):
3151         (WebCore::FrameView::performPostLayoutTasks):
3152         (WebCore::FrameView::windowClipRect):
3153         * page/SpatialNavigation.cpp:
3154         (WebCore::canScrollInDirection):
3155         * platform/ScrollView.cpp:
3156         (WebCore::ScrollView::unscaledVisibleContentSize):
3157         (WebCore::ScrollView::visibleContentRect):
3158         (WebCore::ScrollView::layoutSize):
3159         (WebCore::ScrollView::updateScrollbars):
3160         (WebCore::ScrollView::paint):
3161         * platform/ScrollView.h:
3162         * platform/ScrollableArea.cpp:
3163         (WebCore::ScrollableArea::visibleContentRect):
3164         * platform/ScrollableArea.h:
3165         * rendering/RenderDialog.cpp:
3166         (WebCore::RenderDialog::layout):
3167         * rendering/RenderLayer.cpp:
3168         (WebCore::RenderLayer::maximumScrollPosition):
3169         (WebCore::RenderLayer::visibleContentRect):
3170         * rendering/RenderLayer.h:
3171         * rendering/RenderLayerCompositor.cpp:
3172         (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
3173         (WebCore::RenderLayerCompositor::updateRootLayerPosition):
3174
3175 2013-02-18  Ryosuke Niwa  <rniwa@webkit.org>
3176
3177         That didn't work either. Just make it public. This is why I hate nested classes. They just don't work.
3178
3179         * rendering/RenderBlock.h:
3180         (RenderBlock):
3181
3182 2013-02-18  Ryosuke Niwa  <rniwa@webkit.org>
3183
3184         Windows build fix. Apparently Visual Studio still has a lot of bugs with respect to nested classes.
3185         Work around it by directly instantiating the class inside createFloatingObjects.
3186
3187         * rendering/RenderBlock.cpp:
3188         (WebCore::RenderBlock::createFloatingObjects): Directly instantiate FloatingObjects.
3189         * rendering/RenderBlock.h:
3190         (RenderBlock): Moved the declaration of createFloatingObjects up.
3191         (FloatingObjects::FloatingObjects):
3192
3193 2013-02-18  Ryosuke Niwa  <rniwa@webkit.org>
3194
3195         Merge handleSpecialChild into layoutBlockChildren
3196         https://bugs.webkit.org/show_bug.cgi?id=110165
3197
3198         Reviewed by Darin Adler.
3199
3200         Merge handleSpecialChild, handlePositionedChild, and handleFloatingChild into layoutBlockChildren
3201         to make the semantics of the code clear and to get rid of the outdated comment about how there are
3202         four types of four types of special children.
3203
3204         * rendering/RenderBlock.cpp:
3205         (WebCore::RenderBlock::layoutBlockChildren):
3206         * rendering/RenderBlock.h:
3207         (RenderBlock):
3208
3209 2013-02-18  Ryosuke Niwa  <rniwa@webkit.org>
3210
3211         Encapsulate FloatingObject's constructor inside create
3212         https://bugs.webkit.org/show_bug.cgi?id=110169
3213
3214         Reviewed by Darin Adler.
3215
3216         Added FloatingObject::create and made FloatingObject's constructor private.
3217         Also added RenderBlock::ensureFloatingObjects to help lazily creating FloatingObjects.
3218
3219         * rendering/RenderBlock.cpp:
3220         (WebCore::RenderBlock::insertFloatingObject):
3221         (WebCore::RenderBlock::addOverhangingFloats):
3222         (WebCore::RenderBlock::addIntrudingFloats):
3223         (WebCore::RenderBlock::ensureFloatingObjects):
3224         (WebCore::RenderBlock::FloatingObjects::create):
3225         (WebCore::RenderBlock::FloatingObjects::FloatingObjects):
3226         * rendering/RenderBlock.h:
3227         (FloatingObjects):
3228         (RenderBlock):
3229
3230 2013-02-18  Anders Carlsson  <andersca@apple.com>
3231
3232         Add a DefaultHash for RefPtr<SecurityOrigin>
3233         https://bugs.webkit.org/show_bug.cgi?id=110170
3234
3235         Reviewed by Andreas Kling.
3236
3237         Remove all explicit uses of SecurityOriginHash.
3238
3239         * Modules/webdatabase/DatabaseTracker.h:
3240         * Modules/webdatabase/OriginQuotaManager.h:
3241         * loader/appcache/ApplicationCacheStorage.cpp:
3242         (WebCore::ApplicationCacheStorage::getOriginsWithCache):
3243         * loader/cache/MemoryCache.h:
3244         * page/SecurityOriginHash.h:
3245         * storage/StorageNamespaceImpl.h:
3246         (StorageNamespaceImpl):
3247
3248 2013-02-18  David Hyatt  <hyatt@apple.com>
3249
3250         Padding and border changes don't trigger the relayout of children in some cases.
3251         https://bugs.webkit.org/show_bug.cgi?id=109639.
3252
3253         Reviewed by Ryosuke Niwa.
3254
3255         The fix for this bug was way too general and involved putting code into RenderBox. Since
3256         RenderBox makes no assumptions about what kind of layout system might derive from it, it
3257         was incorrect to just mark all children as needing layout whenever borders and padding
3258         changed widths.
3259         
3260         This patch takes the two cases handled by the original code and makes them more
3261         specialized down in subclasses, i.e., RenderBlock and RenderTableRow. RenderBlock has
3262         been refined to only check if children aren't inline and to also not invalidate
3263         floats or irrelevant positioned objects that might not even have this block as their
3264         containing block.
3265         
3266         The RenderTableRow code is specialized to only care about collapsing borders and
3267         to only check borders rather than padding. It also requires that a child be a cell
3268         in order to do the invalidation.
3269
3270         Covered by existing tests, since this is just specializing the code to more precisely
3271         cover the test cases that have already been written.
3272
3273         Longer term, it should be layout code that figures this stuff out rather than style
3274         change code, but that involves more dramatic changes that can wait.
3275
3276         Test: fast/block/positioning/border-change-relayout-test.html
3277
3278         * rendering/RenderBlock.cpp:
3279         (WebCore::borderOrPaddingLogicalWidthChanged):
3280         (WebCore):
3281         (WebCore::RenderBlock::styleDidChange):
3282         * rendering/RenderBox.cpp:
3283         (WebCore):
3284         (WebCore::RenderBox::styleDidChange):
3285         * rendering/RenderTableRow.cpp:
3286         (WebCore::borderLogicalWidthChanged):
3287         (WebCore):
3288         (WebCore::RenderTableRow::styleDidChange):
3289
3290 2013-02-18  Mark Lam  <mark.lam@apple.com>
3291
3292         Small follow up to r143271: Fix SQLTransaction leak.
3293         https://bugs.webkit.org/show_bug.cgi?id=110052.
3294
3295         Reviewed by Geoffrey Garen.
3296
3297         Applied Geoff's suggestion nullify m_frontend sooner for greater
3298         code clarity. Also added some comments about m_frontend.
3299
3300         No new tests.
3301
3302         * Modules/webdatabase/SQLTransactionBackend.cpp:
3303         (WebCore::SQLTransactionBackend::doCleanup):
3304         * Modules/webdatabase/SQLTransactionBackend.h:
3305         (SQLTransactionBackend):
3306
3307 2013-02-18  Geoffrey Garen  <ggaren@apple.com>
3308
3309         Shrank the SourceProvider cache
3310         https://bugs.webkit.org/show_bug.cgi?id=110158
3311
3312         Reviewed by Oliver Hunt.
3313
3314         Test: fast/js/regress/nested-function-parsing.html
3315
3316         No need to keep statistics on cache size, since we're going to throw it
3317         away no matter what.
3318
3319         * WebCore.order:
3320         * bindings/js/CachedScriptSourceProvider.h:
3321         (CachedScriptSourceProvider):
3322         (WebCore::CachedScriptSourceProvider::CachedScriptSourceProvider):
3323         * loader/cache/CachedScript.cpp:
3324         (WebCore::CachedScript::destroyDecodedData):
3325         (WebCore):
3326         (WebCore::CachedScript::reportMemoryUsage):
3327         * loader/cache/CachedScript.h:
3328         (CachedScript):
3329
3330 2013-02-18  peavo@outlook.com  <peavo@outlook.com>
3331
3332         [Curl] The function cookiesForDOM() does not behave correctly.
3333         https://bugs.webkit.org/show_bug.cgi?id=109923
3334
3335         Reviewed by Brent Fulgham.
3336
3337         The cookiesForDOM() function should return a list of matching cookies, both persistent and session cookies.
3338
3339         * platform/network/curl/CookieJarCurl.cpp:
3340         (WebCore::readCurlCookieToken): Added function to read next token from Curl cookie string.
3341         (WebCore::addMatchingCurlCookie): Added function to add matching cookies to cookie list.
3342         (WebCore::setCookiesFromDOM): Add domain and path from url to cookie if not already set.
3343         (WebCore::cookiesForDOM): Return a list of matching cookies, both session and persistent cookies.
3344
3345 2013-02-17  Mark Lam  <mark.lam@apple.com>
3346
3347         Fix SQLTransaction leak.
3348         https://bugs.webkit.org/show_bug.cgi?id=110052.
3349
3350         Reviewed by Geoffrey Garen.
3351
3352         With https://bugs.webkit.org/show_bug.cgi?id=104750, there is now a circular
3353         reference between SQLTransaction and its backend. The clean up process needs
3354         to be fixed to explicitly break this reference cycle.
3355
3356         The 5 phases of the SQLTransaction (and backend) phases and their clean up
3357         actions are:
3358
3359         Phase 1. After Birth, before scheduling
3360         - During shutdown, DatabaseThread::databaseThread() calls
3361           DatabaseBackendAsync::close(). DatabaseBackendAsync::close() iterates
3362           DatabaseBackendAsync::m_transactionQueue and calls
3363           SQLtransactionBackend::notifyDatabaseThreadIsShuttingDown() on each
3364           transaction there.
3365
3366         Phase 2. After scheduling, before state AcquireLock
3367         - ~DatabaseTask() calls SQLtransactionBackend's
3368           notifyDatabaseThreadIsShuttingDown().
3369
3370         Phase 3. After state AcquireLock, before "lockAcquired"
3371         - During shutdown, DatabaseThread::databaseThread() calls
3372           SQLTransactionCoordinator::shutdown(), which calls
3373           SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown().
3374
3375         Phase 4: After "lockAcquired", before state CleanupAndTerminate
3376         - Same as Phase 3.
3377
3378         Phase 5: After state CleanupAndTerminate
3379         - state CleanupAndTerminate calls SQLTransactionBackend::doCleanup().
3380
3381         See comment at the top of SQLTransactionBackend.cpp for more details.
3382
3383         Other supporting changes:
3384         - Moved Database::close() to the DatabaseBackendAsync.
3385         - Moved the "if already cleaned up" check from SQLTransactionBackend's
3386           notifyDatabaseThreadIsShuttingDown() to doCleanup().
3387         - Added a check to prevent SQLTransactionCoordinator's releaseLock()
3388           from running when it's shutting down.
3389
3390         No new tests.
3391
3392         * Modules/webdatabase/Database.cpp:
3393         * Modules/webdatabase/Database.h:
3394         * Modules/webdatabase/DatabaseBackendAsync.cpp:
3395         (WebCore::DatabaseBackendAsync::close): Move from Database.cpp.
3396         * Modules/webdatabase/DatabaseBackendAsync.h:
3397         * Modules/webdatabase/DatabaseTask.cpp:
3398         (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::DatabaseTransactionTask):
3399         (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::~DatabaseTransactionTask):
3400         (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::doPerformTask):
3401         * Modules/webdatabase/DatabaseTask.h:
3402         (DatabaseBackendAsync::DatabaseTransactionTask):
3403         * Modules/webdatabase/DatabaseThread.cpp:
3404         (WebCore::DatabaseThread::databaseThread):
3405         * Modules/webdatabase/SQLTransactionBackend.cpp:
3406         (WebCore::SQLTransactionBackend::doCleanup):
3407         (WebCore::SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown):
3408         (WebCore::SQLTransactionBackend::cleanupAndTerminate):
3409         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
3410         (WebCore::SQLTransactionCoordinator::SQLTransactionCoordinator):
3411         (WebCore::SQLTransactionCoordinator::acquireLock):
3412         (WebCore::SQLTransactionCoordinator::releaseLock):
3413         (WebCore::SQLTransactionCoordinator::shutdown):
3414         * Modules/webdatabase/SQLTransactionCoordinator.h:
3415         (SQLTransactionCoordinator):
3416
3417 2013-02-18  David Kilzer  <ddkilzer@apple.com>
3418
3419         Fix WebCore Xcode project
3420
3421         * WebCore.xcodeproj/project.pbxproj: Fix path for CDMPrivate.h.
3422
3423 2013-02-18  Julien Chaffraix  <jchaffraix@webkit.org>
3424
3425         [CSS Grid Layout] Refactor grid position resolution code to support an internal grid representation
3426         https://bugs.webkit.org/show_bug.cgi?id=109718
3427
3428         Reviewed by Ojan Vafai.
3429
3430         In order to support auto placement (where we can't infer a grid item's position from its style),
3431         we need to have 2 code paths:
3432         - One that places the elements on the grid representation.
3433         - One that reuse the grid representation to return the position.
3434
3435         This code path implements this split so that we can add auto placement in a follow-up patch(es).
3436         Also in order to avoid a O(n^2) behavior [walking over our grid to find a grid item's position],
3437         the cached position code path needed an efficient way to find the grid items -> position mapping.
3438
3439         Refactoring, covered by existing tests.
3440
3441         * rendering/RenderGrid.cpp:
3442         (WebCore::RenderGrid::cachedGridCoordinate):
3443         (WebCore::RenderGrid::resolveGridPositionFromStyle):
3444         These methods implements the above split. The first one
3445         reuses our cached information whereas the other one is
3446         used to build the cache.
3447
3448         (WebCore::RenderGrid::computeIntrinsicLogicalWidths):
3449         (WebCore::RenderGrid::layoutGridItems):
3450         Added some code to clear the grid items' position.
3451
3452         (WebCore::RenderGrid::findChildLogicalPosition):
3453         (WebCore::RenderGrid::logicalContentHeightForChild):
3454         Updated these functions to use cachedGridPosition.
3455
3456         (WebCore::RenderGrid::maximumIndexInDirection):
3457         Added a comment about why we don't use cachedGridPosition.
3458
3459         (WebCore::RenderGrid::insertItemIntoGrid):
3460         Added this helper function to insert into the grid and
3461         cache the position in the reverse lookup map.
3462
3463         (WebCore::RenderGrid::placeItemsOnGrid):
3464         Updated to call insertItemIntoGrid. Also added an ASSERT
3465         similar to m_grid.
3466
3467         (WebCore::RenderGrid::clearGrid):
3468         Added this helper function to clear our grid structure.
3469
3470         * rendering/RenderGrid.h:
3471         (GridCoordinate):
3472         (WebCore::RenderGrid::GridCoordinate::GridCoordinate):
3473         Added this POD to hold the coordinates in our reverse map.
3474
3475 2013-02-18  Stephen Chenney  <schenney@chromium.org>
3476
3477         feFlood incorrectly applied color-interpolation-filters
3478         https://bugs.webkit.org/show_bug.cgi?id=109985
3479
3480         Reviewed by Dirk Schulze.
3481
3482         The SVG spec defines the color-interpolation-filters property for all
3483         filter effect elements in order to control cases where a color is
3484         based on some arithmetic computation on other colors. For example,
3485         when computing gradients or blending colors. feFlood simply fills a
3486         region with the given color, and that given color is always defined to
3487         be in sRGB space, so the feFlood result should always be sRGB.
3488
3489         The new behavior matches both Opera and Firefox.
3490
3491         Tests: svg/filters/feFlood-color-interpolation-expected.svg
3492                svg/filters/feFlood-color-interpolation.svg
3493
3494         * platform/graphics/filters/FEFlood.cpp:
3495         (WebCore::FEFlood::platformApplySoftware): Force the color mode to be
3496         sRGB before returning.
3497
3498 2013-02-18  Mark Lam  <mark.lam@apple.com>
3499
3500         Introduced AbstractSQLStatement and AbstractSQLStatementBackend.
3501         https://bugs.webkit.org/show_bug.cgi?id=110148.
3502
3503         Reviewed by Geoff Garen.
3504
3505         This is part of the webdatabase refactoring for webkit2.
3506         - Also changed the frontend and backend to only refer to the
3507           abstract interface of each other.
3508
3509         No new tests.
3510
3511         * GNUmakefile.list.am:
3512         * Modules/webdatabase/AbstractSQLStatement.h: Added.
3513         (AbstractSQLStatement):
3514         (WebCore::AbstractSQLStatement::~AbstractSQLStatement):
3515         * Modules/webdatabase/AbstractSQLStatementBackend.h: Added.
3516         (AbstractSQLStatementBackend):
3517         (WebCore::AbstractSQLStatementBackend::~AbstractSQLStatementBackend):
3518         * Modules/webdatabase/SQLStatement.cpp:
3519         (WebCore::SQLStatement::setBackend):
3520         * Modules/webdatabase/SQLStatement.h:
3521         (SQLStatement):
3522         * Modules/webdatabase/SQLStatementBackend.cpp:
3523         (WebCore::SQLStatementBackend::create):
3524         (WebCore::SQLStatementBackend::SQLStatementBackend):
3525         (WebCore::SQLStatementBackend::frontend):
3526         * Modules/webdatabase/SQLStatementBackend.h:
3527         (SQLStatementBackend):
3528         * Modules/webdatabase/SQLTransaction.cpp:
3529         (WebCore::SQLTransaction::deliverStatementCallback):
3530         * Modules/webdatabase/SQLTransactionBackend.cpp:
3531         (WebCore::SQLTransactionBackend::currentStatement):
3532         (WebCore::SQLTransactionBackend::executeSQL):
3533         * Modules/webdatabase/SQLTransactionBackend.h:
3534         (SQLTransactionBackend):
3535         * Target.pri:
3536         * WebCore.gypi:
3537         * WebCore.vcproj/WebCore.vcproj:
3538         * WebCore.vcxproj/WebCore.vcxproj:
3539         * WebCore.vcxproj/WebCore.vcxproj.filters:
3540         * WebCore.xcodeproj/project.pbxproj:
3541
3542 2013-02-18  David Kilzer  <ddkilzer@apple.com>
3543
3544         BUILD FIX (r143230): Fix renamed header and implementation of -[WebAccessibilityObjectWrapper accessibilityPostedNotification:]
3545         <http://webkit.org/b/110077>
3546
3547         Fixes the following build failures:
3548
3549             AccessibilityObjectIOS.mm:35:9: fatal error: 'AccessibilityObjectWrapperIOS.h' file not found
3550             #import "AccessibilityObjectWrapperIOS.h"
3551                     ^
3552             1 error generated.
3553
3554             WebAccessibilityObjectWrapperIOS.mm:2051:35: error: use of undeclared identifier 'notificationString'; did you mean 'notificationType'?
3555                 if (AXNotificationCallback && notificationString)
3556                                               ^~~~~~~~~~~~~~~~~~
3557                                               notificationType
3558             WebAccessibilityObjectWrapperIOS.mm:2049:81: note: 'notificationType' declared here
3559             - (void)accessibilityPostedNotification:(WebCore::AXObjectCache::AXNotification)notificationType
3560                                                                                             ^
3561             WebAccessibilityObjectWrapperIOS.mm:2052:38: error: use of undeclared identifier 'notificationString'; did you mean 'notificationType'?
3562                     AXNotificationCallback(self, notificationString, AXPostedNotificationContext);
3563                                                  ^~~~~~~~~~~~~~~~~~
3564                                                  notificationType
3565             WebAccessibilityObjectWrapperIOS.mm:2049:81: note: 'notificationType' declared here
3566             - (void)accessibilityPostedNotification:(WebCore::AXObjectCache::AXNotification)notificationType
3567                                                                                             ^
3568             WebAccessibilityObjectWrapperIOS.mm:2052:38: error: cannot initialize a parameter of type 'NSString *' with an lvalue of type 'WebCore::AXObjectCache::AXNotification'
3569                     AXNotificationCallback(self, notificationString, AXPostedNotificationContext);
3570                                                  ^~~~~~~~~~~~~~~~~~
3571             WebAccessibilityObjectWrapperIOS.mm:2049:81: error: conflicting parameter types in implementation of 'accessibilityPostedNotification:': 'NSString *' vs 'WebCore::AXObjectCache::AXNotification' [-Werror,-Wmismatched-parameter-types]
3572             - (void)accessibilityPostedNotification:(WebCore::AXObjectCache::AXNotification)notificationType
3573                                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
3574             WebAccessibilityObjectWrapperBase.h:48:53: note: previous definition is here
3575             - (void)accessibilityPostedNotification:(NSString *)notificationName;
3576                                                      ~~~~~~~~~~ ^
3577             4 errors generated.
3578
3579         * accessibility/ios/AccessibilityObjectIOS.mm: Fix name of
3580         included header.
3581         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
3582         (-[WebAccessibilityObjectWrapper accessibilityPostedNotification:]):
3583         Fix implementation to match declaration.
3584
3585         * accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
3586         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
3587         * accessibility/ios/AXObjectCacheIOS.mm:
3588         - Clean up #endif comments.
3589
3590 2013-02-18  Jer Noble  <jer.noble@apple.com>
3591
3592         EME: Add a CDMPrivate implementation using AVFoundation.
3593         https://bugs.webkit.org/show_bug.cgi?id=109739
3594
3595         Reviewed by Eric Carlson.
3596
3597         Add a CDMPrivate implementation using AVFoundation, similar to the EME v1 implementation
3598         in MediaPlayerPrivateAVFoundationObjC. This requires passing the AVAssetResourceLoadingRequest
3599         from the MediaPlayerPrivateAVFoundationObjC instance to CDMSessionAVFoundation. To do so
3600         without adding platform-specific API to MediaPlayer, add a static map from MediaPlayer ->
3601         MediaPlayerPrivateAVFoundationObjC instances to be used to vend the AVAssetResourceLoadingRequest
3602         to CDMSessionAVFoundation.
3603
3604         * Modules/encryptedmedia/CDM.cpp:
3605         (WebCore::installedCDMFactories): Add the factory for CDMPrivateAVFoundation.
3606         * Modules/encryptedmedia/CDM.h:
3607         * Modules/encryptedmedia/CDMPrivateAVFoundation.h: Added.
3608         (WebCore::CDMPrivateAVFoundation::create): Simple factory method.
3609         (WebCore::CDMPrivateAVFoundation::~CDMPrivateAVFoundation): Simple virtual destructor.
3610         (WebCore::CDMPrivateAVFoundation::cdm): Simple getter.
3611         (WebCore::CDMPrivateAVFoundation::CDMPrivateAVFoundation): Simple constructor.
3612         * Modules/encryptedmedia/CDMPrivateAVFoundation.mm: Added.
3613         (WebCore::CDMSessionAVFoundation::~CDMSessionAVFoundation): Simple destructor.
3614         (WebCore::CDMPrivateAVFoundation::supportsKeySytem): Check whether the given key system is supported.
3615         (WebCore::CDMPrivateAVFoundation::supportsMIMEType): Check whether the given MIME type is supported.
3616         (WebCore::CDMPrivateAVFoundation::createSession): Return a new CDMSessionAVFoundation.
3617         (WebCore::CDMSessionAVFoundation::CDMSessionAVFoundation): Simple constructor.
3618         (WebCore::CDMSessionAVFoundation::generateKeyRequest): Retrieve the AVAssetResourceLoadingRequest
3619             from the MediaPlayer, and use it to generate a key request.
3620         (WebCore::CDMSessionAVFoundation::releaseKeys): No-op.
3621         (WebCore::CDMSessionAVFoundation::update): Add the passed in key to the AVAssetResourceLoadingRequest.
3622         * WebCore.xcodeproj/project.pbxproj:
3623         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
3624         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
3625         (WebCore::playerToPrivateMap): Lazily instantiate static map.
3626         (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Register with the playerToPrivateMap.
3627         (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC): Unregister from same.
3628         (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Also send keyNeeded event in ENCRYPTED_MEDIA_V2.
3629         (WebCore::MediaPlayerPrivateAVFoundationObjC::extractKeyURIKeyIDAndCertificateFromInitData): Convert this 
3630             method from file-static to class static.
3631         (WebCore::MediaPlayerPrivateAVFoundationObjC::takeRequestForPlayerAndKeyURI): Pull the AVAssetResourceLoadingRequest
3632             from m_keyURIToRequestMap and return it, if present.
3633
3634 2013-02-18  Philip Rogers  <pdr@google.com>
3635
3636         Fix scaling of tiled SVG backgrounds on high-dpi displays
3637         https://bugs.webkit.org/show_bug.cgi?id=110047
3638
3639         Reviewed by Dirk Schulze.
3640
3641         This patch fixes the scaling of SVG when used for drawing patterns. Tiled/patterend SVG
3642         images are first drawn into an image buffer and then the image buffer is used to stamp
3643         out tiles. Because it is a raster source, the size of the image buffer needs to
3644         be scaled to the final resolution of the device. After scaling the image buffer, the
3645         source rect and pattern transforms need to be adjusted so they align in device pixel
3646         coordinates. This adjustment was not done before this patch, causing pixelated rendering.
3647
3648         Additionally, a FIXME has been added due to webkit.org/b/110065 and the image buffer
3649         has been manually scaled (using "zoomedAndScaledContainerRect") instead of relying
3650         on the ImageBuffer's resolutionScale parameter.
3651
3652         Test: svg/as-background-image/tiled-background-image.html
3653
3654         * svg/graphics/SVGImage.cpp:
3655         (WebCore::SVGImage::drawPatternForContainer):
3656
3657             Note that fixing the FIXME does not change that the source rect and transform need
3658             to be adjusted for page scale.
3659
3660 2013-02-18  David Hyatt  <hyatt@apple.com>
3661
3662         Make seamless iframes paginate properly in their enclosing document's pagination context.
3663         https://bugs.webkit.org/show_bug.cgi?id=106125
3664         <rdar://problem/12922720> Text in iframe is clipped while printing
3665
3666         Reviewed by Simon Fraser.
3667
3668         Added new tests in fast/multicol and fast/region.
3669
3670         * rendering/RenderBlock.cpp:
3671         (WebCore::RenderBlock::clampToStartAndEndRegions):
3672         Don't clamp when the RenderView is the containing block of an object in a RenderFlowThread.
3673
3674         * rendering/RenderObject.cpp:
3675         (WebCore::RenderObject::containerForRepaint):
3676         Don't attempt any repaint container antics when we're in a seamless iframe, since the ancestor
3677         document will actually do the handoff into the flow thread.
3678
3679         * rendering/RenderView.cpp:
3680         (WebCore::enclosingSeamlessRenderer):
3681         Heper function to test for an enclosing seamless iframe.
3682         
3683         (WebCore::RenderView::addChild):
3684         Subclass addChild on RenderView to properly set the inRenderFlowThread state for a seamless
3685         child document so thta it will check regions.
3686
3687         (WebCore::RenderView::initializeLayoutState):
3688         New helper method for setting up the initial layout state of a RenderView. If inside a seamless
3689         paginated ancestor, set up the appropriate pagination information so the child document
3690         knows about it. This method will expand to inherit info about line grids and exclusions eventually
3691         also.
3692
3693         (WebCore::RenderView::layout):
3694         Now calls initializeLayoutState to set up the layout state.
3695
3696         * rendering/RenderView.h:
3697         (WebCore::RenderView::pageLogicalHeight):
3698         (WebCore::RenderView::setPageLogicalHeight):
3699         (RenderView):
3700         Fix the type of the page logical height methods to be LayoutUnit instead of unsigned.
3701
3702 2013-02-18  Sheriff Bot  <webkit.review.bot@gmail.com>
3703
3704         Unreviewed, rolling out r143145.
3705         http://trac.webkit.org/changeset/143145
3706         https://bugs.webkit.org/show_bug.cgi?id=110143
3707
3708         Causes frequent crashes. (Requested by eric_carlson on
3709         #webkit).
3710
3711         * dom/EventDispatchMediator.cpp:
3712         (WebCore::EventDispatchMediator::dispatchEvent):
3713         * dom/EventDispatcher.cpp:
3714         (WebCore::EventDispatcher::dispatchEvent):
3715         (WebCore::EventDispatcher::EventDispatcher):
3716         (WebCore::EventDispatcher::ensureEventPath):
3717         (WebCore::EventDispatcher::dispatchSimulatedClick):
3718         (WebCore::EventDispatcher::dispatchEventPreProcess):
3719         (WebCore::EventDispatcher::dispatchEventAtCapturing):
3720         (WebCore::EventDispatcher::dispatchEventAtTarget):
3721         (WebCore::EventDispatcher::dispatchEventAtBubbling):
3722         (WebCore::EventDispatcher::dispatchEventPostProcess):
3723         * dom/EventDispatcher.h:
3724         (EventDispatcher):
3725         (WebCore::EventDispatcher::node):
3726         (WebCore):
3727         * dom/FocusEvent.cpp:
3728         (WebCore::FocusEventDispatchMediator::dispatchEvent):
3729         (WebCore::BlurEventDispatchMediator::dispatchEvent):
3730         (WebCore::FocusInEventDispatchMediator::dispatchEvent):
3731         (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
3732         * dom/GestureEvent.cpp:
3733         (WebCore::GestureEventDispatchMediator::dispatchEvent):
3734         * dom/MouseEvent.cpp:
3735         (WebCore::MouseEventDispatchMediator::dispatchEvent):
3736
3737 2013-02-18  Christophe Dumez  <ch.dumez@sisa.samsung.com>
3738
3739         [Soup] Free cookies explicitly in loops instead of using GOwnPtr
3740         https://bugs.webkit.org/show_bug.cgi?id=110103
3741
3742         Reviewed by Martin Robinson.
3743
3744         Free cookies explicitly in loops instead of using GOwnPtr for this.
3745         Until now, the code was mixing both styles. This patch makes the
3746         code consistent one way. Adopting list items with GOwnPtr for the
3747         sole purpose to free them makes the freeing less obvious and may
3748         lead to mistakes if someone refactors the code and calls "break;"
3749         to abort loop iteration.
3750
3751         No new tests, no behavior change.
3752
3753         * platform/network/soup/CookieJarSoup.cpp:
3754         (WebCore::getRawCookies):
3755         (WebCore::deleteCookie):
3756         (WebCore::getHostnamesWithCookies):
3757
3758 2013-02-18  Joseph Pecoraro  <pecoraro@apple.com>
3759
3760         [JSC]: ASSERT in KURL(ParsedURLStringTag) under sourceMapURLForScript
3761         https://bugs.webkit.org/show_bug.cgi?id=109987
3762
3763         Reviewed by Pavel Feldman.
3764
3765         Improved an existing test to cover this.
3766
3767         * bindings/js/ScriptDebugServer.cpp:
3768         (WebCore::ScriptDebugServer::dispatchDidParseSource):
3769         Remove the sourceURL parsing and script.url replacement from the JSC
3770         implementation of ScriptDebugServer. The WebCore inspector code that
3771         this was added for already does this, at a more appropriate time.
3772
3773 2013-02-18  Mike West  <mkwst@chromium.org>
3774
3775         compareDocumentPosition reports disconnected nodes as following each other
3776         https://bugs.webkit.org/show_bug.cgi?id=108274
3777
3778         Reviewed by Dimitri Glazkov.
3779
3780         jQuery has had to implement their own sorting mechanism in Sizzle[1] due
3781         to Node::compareDocumentPosition always reporting disconnected nodes
3782         as following each other. According to spec[2], we should instead be
3783         indicating that the result is (a) disconnected, (b) implementation
3784         specific, and (c) deterministically ordered.
3785
3786         [1]: https://github.com/jquery/sizzle/commit/1c8aec91284af8d8c14447976235d5dd72b0d75e
3787         [2]: http://dom.spec.whatwg.org/#dom-node-comparedocumentposition
3788
3789         Test: fast/dom/compare-document-position-disconnected-nodes.html
3790
3791         * dom/Node.cpp:
3792         (WebCore::Node::compareDocumentPosition):
3793             After walking the parentNode chain of both Nodes, compare the root.
3794             If the Nodes don't share a root, they're in distinct trees, and
3795             should return as described above. We determine which element
3796             "preceeds" the other in an arbitrary fashion via pointer comparison.
3797
3798 2013-02-18  Andrey Adaikin  <aandrey@chromium.org>
3799
3800         Web Inspector: [Canvas] fix replay log grouping by frames
3801         https://bugs.webkit.org/show_bug.cgi?id=110122
3802
3803         Reviewed by Pavel Feldman.
3804
3805         Bug: log grouping by frames did not work if a frame end call is not a draw call.
3806         Drive-by: Last draw call group may not contain a draw call. In this case merge it into the previous group.
3807
3808         * inspector/front-end/CanvasProfileView.js:
3809         (WebInspector.CanvasProfileView.prototype._appendCallNode):
3810         (WebInspector.CanvasProfileView.prototype._maybeMergeLastDrawCallGroups):
3811
3812 2013-02-18  Christophe Dumez  <ch.dumez@sisa.samsung.com>
3813
3814         [Soup] Superfluous HashMap check in SocketStreamHandleSoup::getHandleFromId()
3815         https://bugs.webkit.org/show_bug.cgi?id=110107
3816
3817         Reviewed by Martin Robinson.
3818
3819         Remove Superfluous HashMap::contains() call in SocketStreamHandleSoup::getHandleFromId()
3820         as HashMap::get() will already return 0 in this case anyway.
3821
3822         No new tests, no behavior change.
3823
3824         * platform/network/soup/SocketStreamHandleSoup.cpp:
3825         (WebCore):
3826         (WebCore::getHandleFromId):
3827
3828 2013-02-18  Zan Dobersek  <zdobersek@igalia.com>
3829
3830         Stop placing std::isfinite and std::signbit inside the global scope
3831         https://bugs.webkit.org/show_bug.cgi?id=109817
3832
3833         Reviewed by Darin Adler.
3834
3835         Prefix calls to the isfinite and signbit methods with std:: as the two
3836         methods are no longer being imported into the global scope.
3837
3838         No new tests as there's no change in functionality.
3839
3840         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
3841         (WebCore::JSCanvasRenderingContext2D::setWebkitLineDash):
3842         * bindings/js/JSDOMBinding.cpp:
3843         (WebCore::jsDateOrNull):
3844         * bindings/js/JSDOMBinding.h:
3845         (WebCore::finiteInt32Value):
3846         * bindings/v8/V8Binding.h:
3847         (WebCore::v8DateOrNull):
3848         * css/CSSPrimitiveValue.cpp:
3849         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
3850         * html/BaseDateAndTimeInputType.cpp:
3851         (WebCore::BaseDateAndTimeInputType::parseToNumber):
3852         * html/HTMLInputElement.cpp:
3853         (WebCore::HTMLInputElement::setValueAsNumber):
3854         * html/HTMLMeterElement.cpp:
3855         (WebCore::HTMLMeterElement::setMin):
3856         (WebCore::HTMLMeterElement::setMax):
3857         (WebCore::HTMLMeterElement::setValue):
3858         (WebCore::HTMLMeterElement::setLow):
3859         (WebCore::HTMLMeterElement::setHigh):
3860         (WebCore::HTMLMeterElement::setOptimum):
3861         * html/HTMLProgressElement.cpp:
3862         (WebCore::HTMLProgressElement::value):
3863         (WebCore::HTMLProgressElement::setValue):
3864         (WebCore::HTMLProgressElement::max):
3865         (WebCore::HTMLProgressElement::setMax):
3866         * html/MonthInputType.cpp:
3867         (WebCore::MonthInputType::valueAsDate):
3868         (WebCore::MonthInputType::defaultValueForStepUp):
3869         (WebCore::MonthInputType::parseToNumber):
3870         * html/NumberInputType.cpp:
3871         (WebCore::NumberInputType::typeMismatchFor):
3872         (WebCore::NumberInputType::sanitizeValue):
3873         (WebCore::NumberInputType::hasBadInput):
3874         * html/RangeInputType.cpp:
3875         (WebCore::RangeInputType::typeMismatchFor):
3876         * html/TimeInputType.cpp:
3877         (WebCore::TimeInputType::defaultValueForStepUp):
3878         * html/canvas/CanvasPathMethods.cpp:
3879         (WebCore::CanvasPathMethods::moveTo):
3880         (WebCore::CanvasPathMethods::lineTo):
3881         (WebCore::CanvasPathMethods::quadraticCurveTo):
3882         (WebCore::CanvasPathMethods::bezierCurveTo):
3883         (WebCore::CanvasPathMethods::arcTo):
3884         (WebCore::CanvasPathMethods::arc):
3885         (WebCore::CanvasPathMethods::rect):
3886         * html/canvas/CanvasRenderingContext2D.cpp:
3887         (WebCore::CanvasRenderingContext2D::setLineWidth):
3888         (WebCore::CanvasRenderingContext2D::setMiterLimit):
3889         (WebCore::CanvasRenderingContext2D::setShadowOffsetX):
3890         (WebCore::CanvasRenderingContext2D::setShadowOffsetY):
3891         (WebCore::CanvasRenderingContext2D::setShadowBlur):
3892         (WebCore::lineDashSequenceIsValid):
3893         (WebCore::CanvasRenderingContext2D::setLineDashOffset):
3894         (WebCore::CanvasRenderingContext2D::scale):
3895         (WebCore::CanvasRenderingContext2D::rotate):
3896         (WebCore::CanvasRenderingContext2D::translate):
3897         (WebCore::CanvasRenderingContext2D::transform):
3898         (WebCore::CanvasRenderingContext2D::setTransform):
3899         (WebCore::validateRectForCanvas):
3900         (WebCore::CanvasRenderingContext2D::isPointInPath):
3901         (WebCore::CanvasRenderingContext2D::isPointInStroke):
3902         (WebCore::CanvasRenderingContext2D::drawImage):
3903         (WebCore::CanvasRenderingContext2D::createLinearGradient):
3904         (WebCore::CanvasRenderingContext2D::createRadialGradient):
3905         (WebCore::CanvasRenderingContext2D::createImageData):
3906         (WebCore::CanvasRenderingContext2D::getImageData):
3907         (WebCore::CanvasRenderingContext2D::putImageData):
3908         (WebCore::CanvasRenderingContext2D::drawTextInternal):
3909         * html/parser/HTMLParserIdioms.cpp:
3910         (WebCore::parseToDoubleForNumberType):
3911         * html/shadow/MediaControlElements.cpp:
3912         (WebCore::MediaControlTimelineElement::setDuration):
3913         * html/shadow/MediaControls.cpp:
3914         (WebCore::MediaControls::reset):
3915         * html/shadow/MediaControlsApple.cpp:
3916         (WebCore::MediaControlsApple::reset):
3917         * html/shadow/MediaControlsBlackBerry.cpp:
3918         (WebCore::MediaControlFullscreenTimelineElement::setDuration):
3919         (WebCore::MediaControlsBlackBerry::reset):
3920         * inspector/InspectorValues.cpp:
3921         (WebCore::InspectorBasicValue::writeJSON):
3922         * loader/cache/CachedResource.cpp:
3923         (WebCore::CachedResource::currentAge):
3924         (WebCore::CachedResource::freshnessLifetime):
3925         * page/DOMWindow.cpp:
3926         (WebCore::DOMWindow::adjustWindowRect):
3927         * platform/DateComponents.cpp:
3928         (WebCore::DateComponents::setMillisecondsSinceEpochForDate):
3929         (WebCore::DateComponents::setMillisecondsSinceEpochForDateTime):
3930         (WebCore::DateComponents::setMillisecondsSinceEpochForMonth):
3931         (WebCore::DateComponents::setMillisecondsSinceMidnight):
3932         (WebCore::DateComponents::setMonthsSinceEpoch):
3933         (WebCore::DateComponents::setMillisecondsSinceEpochForWeek):
3934         * platform/Decimal.cpp:
3935         (WebCore::Decimal::fromDouble):
3936         * platform/FileSystem.h:
3937         (WebCore::isValidFileTime):
3938         * platform/LocalizedStrings.cpp:
3939         (WebCore::localizedMediaTimeDescription):
3940         * platform/graphics/cairo/CairoUtilities.cpp:
3941         (WebCore::drawPatternToCairoContext):
3942         * platform/graphics/cairo/PathCairo.cpp:
3943         (WebCore::Path::addArc):
3944         (WebCore::Path::contains):
3945         * platform/graphics/cg/PathCG.cpp:
3946         (WebCore::Path::addArc):
3947         * platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.cpp:
3948         (WebCore::FullscreenVideoControllerGStreamer::timeToString):
3949         * platform/graphics/openvg/PathOpenVG.cpp:
3950         (WebCore::Path::addArc):
3951         * platform/graphics/skia/SkiaUtils.h:
3952         (WebCore::WebCoreFloatToSkScalar):
3953         (WebCore::WebCoreDoubleToSkScalar):
3954         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
3955         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::maxTimeSeekable):
3956         * platform/gtk/LocalizedStringsGtk.cpp:
3957         (WebCore::localizedMediaTimeDescription):
3958         * platform/mac/WebVideoFullscreenHUDWindowController.mm:
3959         (timeToString):
3960         * platform/network/ResourceResponseBase.cpp:
3961         (WebCore::parseDateValueInHeader):
3962         * platform/qt/LocalizedStringsQt.cpp:
3963         (WebCore::localizedMediaTimeDescription):
3964         * rendering/RenderFlexibleBox.cpp:
3965         (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
3966         * rendering/RenderMediaControlsChromium.cpp:
3967         (WebCore::formatChromiumMediaControlsTime):
3968         * rendering/RenderTheme.cpp:
3969         (WebCore::RenderTheme::formatMediaControlsTime):
3970         * rendering/style/RenderStyle.cpp:
3971         (WebCore::RenderStyle::setFontSize):
3972         * svg/SVGPathParser.cpp:
3973         (WebCore::SVGPathParser::decomposeArcToCubic):
3974         * xml/XPathFunctions.cpp:
3975         (WebCore::XPath::FunRound::round):
3976         * xml/XPathValue.cpp:
3977         (WebCore::XPath::Value::toString):
3978
3979 2013-02-18  Chris Fleizach  <cfleizach@apple.com>
3980
3981         AX: Make iOS wrapper use the WebAccessibilityObjectBase wrapper
3982         https://bugs.webkit.org/show_bug.cgi?id=110077
3983
3984         Reviewed by David Kilzer.
3985
3986         Make the iOS wrapper a subclass of the shared wrapper so that iOS can re-use code from the Mac.
3987         Rename the iOS file to reflect the class name.
3988
3989         * WebCore.xcodeproj/project.pbxproj:
3990         * accessibility/ios/AXObjectCacheIOS.mm:
3991         (WebCore::AXObjectCache::attachWrapper):
3992         (WebCore::AXObjectCache::postPlatformNotification):
3993         * accessibility/ios/AccessibilityObjectWrapperIOS.h: Removed.
3994         * accessibility/ios/AccessibilityObjectWrapperIOS.mm: Removed.
3995         * accessibility/ios/WebAccessibilityObjectWrapperIOS.h: Copied from Source/WebCore/accessibility/ios/AccessibilityObjectWrapperIOS.h.
3996         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: Copied from Source/WebCore/accessibility/ios/AccessibilityObjectWrapperIOS.mm.
3997         (-[WebAccessibilityObjectWrapper initWithAccessibilityObject:]):
3998         (-[WebAccessibilityObjectWrapper attachmentView]):
3999         (-[WebAccessibilityObjectWrapper accessibilityPostedNotification:WebCore::AXObjectCache::]):
4000
4001 2013-02-18  Sheriff Bot  <webkit.review.bot@gmail.com>
4002
4003         Unreviewed, rolling out r143210.
4004         http://trac.webkit.org/changeset/143210
4005         https://bugs.webkit.org/show_bug.cgi?id=110128
4006
4007         Still causing some test timeouts (Requested by anttik on
4008         #webkit).
4009