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