f270e2365868161b37131bc69e7e77279e899f8d
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-02-19  Tony Gentilcore  <tonyg@chromium.org>
2
3         Fix checkThatTokensAreSafeToSendToAnotherThread() now that the preload scanner is enabled
4         https://bugs.webkit.org/show_bug.cgi?id=110258
5
6         Reviewed by Adam Barth.
7
8         We were hitting this ASSERT on numerous tests with the background parser enabled. This copy fixes the assertion.
9
10         No new tests becuase covered by existing tests.
11
12         * html/parser/HTMLResourcePreloader.h:
13         (WebCore::PreloadRequest::setCharset):
14
15 2013-02-19  Tony Gentilcore  <tonyg@chromium.org>
16
17         Fix typo: inititatorFor->initiatorFor
18         https://bugs.webkit.org/show_bug.cgi?id=110260
19
20         Reviewed by Adam Barth.
21
22         No new tests because no changed functionality.
23
24         * html/parser/HTMLPreloadScanner.cpp:
25         (WebCore::TokenPreloadScanner::initiatorFor):
26         (WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
27         * html/parser/HTMLPreloadScanner.h:
28
29 2013-02-19  Tony Chang  <tony@chromium.org>
30
31         Convert 3 settings to use Settings.in
32         https://bugs.webkit.org/show_bug.cgi?id=109875
33
34         Reviewed by Ryosuke Niwa.
35
36         Convert mediaEnabled, applicationChromeMode and DOMPasteAllowed to
37         use Settings.in. They previously had inconsistently named setters.
38
39         No new tests, this is a refactoring.
40
41         * Source/WebCore/WebCore.exp.in: Remove symbols that are now inlined from exports.
42         * Source/WebCore/WebCore.order: Remove symbols that no longer exist.
43         * dom/make_names.pl:
44         (printConstructorInterior): Rename isMediaEnabled to mediaEnabled.
45         (printWrapperFunctions): Rename isMediaEnabled to mediaEnabled.
46         * editing/EditorCommand.cpp:
47         (WebCore::supportedPaste): Rename isDOMPasteAllowed to DOMPasteAllowed.
48         * page/Settings.cpp:
49         (WebCore::Settings::Settings): Remove custom code.
50         * page/Settings.h:
51         (Settings): Remove custom code.
52         * page/Settings.in: Add entries for mediaEnabled, applicationChromeMode and DOMPasteAllowed.
53         * page/make_settings.pl:
54         (setterFunctionName): Expand uppercase rules to include DOM.
55         * rendering/RenderTheme.cpp:
56         (WebCore::RenderTheme::isDefault): Rename inApplicationChromeMode to applicationChromeMode.
57         * rendering/RenderThemeWin.cpp:
58         (WebCore::documentIsInApplicationChromeMode): Rename inApplicationChromeMode to applicationChromeMode.
59
60 2013-02-19  Julien Chaffraix  <jchaffraix@webkit.org>
61
62         [CSS Grid Layout] Refactor the code in preparation of auto placement support
63         https://bugs.webkit.org/show_bug.cgi?id=110244
64
65         Reviewed by Ojan Vafai.
66
67         Test: fast/css-grid-layout/grid-auto-flow-resolution.html
68
69         In order to support auto placement, we need to iterate over the grid items with
70         auto row / column several times. This changes makes us do that in a very simple,
71         not-yet-conformant way. While touching this code, the distinction between grid-auto-flow
72         none and row / column was better drawn (and enforced).
73
74         * rendering/RenderGrid.cpp:
75         (WebCore::RenderGrid::resolveGridPositionFromStyle):
76         Made it illegal to call resolveGridPositionFromStyle if the grid track is auto and
77         grid-auto-flow is not none. This would catch bad use of the function.
78
79         (WebCore::RenderGrid::maximumIndexInDirection):
80         Updated to bail out if the grid track is auto. Also improved the comment.
81
82         (WebCore::RenderGrid::placeItemsOnGrid):
83         Updated the function to do several iterations. Also handled the grid-auto-flow: none
84         case differently as it shouldn't need the extra iteration(s).
85
86 2013-02-19  David Hyatt  <hyatt@apple.com>
87
88         [New Multicolumn] REGRESSION: RenderMultiColumnSets broken by the RenderRegion -> RenderBlock subclassing.
89         https://bugs.webkit.org/show_bug.cgi?id=110239.
90
91         Reviewed by Simon Fraser.
92
93         Test: fast/multicol/newmulticol/column-rules-fixed-height.html
94
95         * rendering/RenderBlock.cpp:
96         (WebCore::RenderBlock::columnRectAt):
97         Make sure the columnGap() in the old multicolumn code is always expressed as a LayoutUnit. This was the
98         one place where it was still an int.
99
100         * rendering/RenderFlowThread.cpp:
101         (WebCore::RenderFlowThread::paintFlowThreadPortionInRegion):
102         Rework the painting of flow thread portions to account for the fact that regions paint at an integral
103         translation. This means you have to construct clipping around that integral destination. Subpixel layout
104         regions did not clip correctly as a result of this issue.
105
106         * rendering/RenderMultiColumnSet.cpp:
107         (WebCore::RenderMultiColumnSet::columnRectAt):
108         Fix the same bug with columnGap() that the old column code has, i.e., one spot where it was an int.
109
110         (WebCore::RenderMultiColumnSet::paintObject):
111         RenderMultiColumnSet should be using paintObject and not paint and it needs to check for visibility
112         and phases now that it is a RenderBlock subclass.
113
114         (WebCore::RenderMultiColumnSet::paintColumnRules):
115         Fix the bug that Opera guys fixed in the old multi-column code. They didn't patch the new code, so this
116         takes care of that.
117
118         * rendering/RenderMultiColumnSet.h:
119         (RenderMultiColumnSet):
120         Change to use paintObject instead of paint.
121
122 2013-02-19  Branimir Lambov  <blambov@google.com>
123
124         Fix 'slice' aspect ratio calculation
125         https://bugs.webkit.org/show_bug.cgi?id=99984
126
127         Reviewed by Dirk Schulze.
128
129         Previously the calculation for the 'slice' aspect ratio would incorrectly calculate the
130         source rect location based on the destination rect offset. This caused our source rect to be
131         incorrect, and sometimes render outside the visible area completely. After this patch
132         our implementation matches the implementation of both Gecko and Presto.
133
134         The relevant spec section:
135         http://www.w3.org/TR/SVG/single-page.html#coords-PreserveAspectRatioAttribute
136
137         Tests: svg/as-image/image-preserveAspectRatio-all.svg
138                svg/filters/feImage-preserveAspectRatio-all.svg
139
140         * svg/SVGPreserveAspectRatio.cpp:
141         (WebCore::SVGPreserveAspectRatio::transformRect):
142
143 2013-02-19  Kentaro Hara  <haraken@google.com>
144
145         [V8] ScriptRunner::runCompiledScript() should return Handle<Value>() when OOM occurs
146         https://bugs.webkit.org/show_bug.cgi?id=110254
147
148         Reviewed by Adam Barth.
149
150         Chromium bug: https://code.google.com/p/chromium/issues/detail?id=176951
151
152         Currently ScriptRunner::runCompiledScript() calls
153         ASSERT(script.IsEmpty()) when OOM occurs. The Chromium bug is
154         hitting the ASSERT(). The ASSERT() does not make sense at all.
155         Instead, we should return an empty handle when OOM occurs.
156
157         No tests. The bug happens only when OOM occurs.
158
159         * bindings/v8/ScriptRunner.cpp:
160         (WebCore::ScriptRunner::runCompiledScript):
161
162 2013-02-19  Elliott Sprehn  <esprehn@chromium.org>
163
164         Support both MutationObserver and WebKitMutationObserver
165         https://bugs.webkit.org/show_bug.cgi?id=109776
166
167         Reviewed by Ojan Vafai.
168
169         We should allow new MutationObserver now that we support parser generated
170         mutations. This leaves the old prefixed constructor in until we decide
171         people don't depend on it.
172
173         Test: fast/dom/MutationObserver/mutation-observer-prefix.html
174
175         * page/DOMWindow.idl:
176
177 2013-02-19  Elliott Sprehn  <esprehn@chromium.org>
178
179         Remove RenderText::updateText
180         https://bugs.webkit.org/show_bug.cgi?id=109991
181
182         Reviewed by Eric Seidel.
183
184         There's no reason for the generic RenderText::updateText virtual hook
185         anymore now that r143060 made RenderQuote stop setting dirty bits during
186         layout since the hook is only used by RenderCounter.
187
188         Instead add updateCounterIfNeeded and make it clear this is a hack for
189         counters.
190
191         * rendering/RenderBlockLineLayout.cpp:
192         (WebCore::updateCounterIfNeeded): Added, not handles the counter specific hack.
193         (WebCore::dirtyLineBoxesForRenderer):
194         (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
195         * rendering/RenderCounter.cpp:
196         (WebCore::RenderCounter::updateCounter):
197         * rendering/RenderCounter.h:
198         (RenderCounter):
199         * rendering/RenderQuote.cpp:
200         (WebCore::RenderQuote::styleDidChange):
201         (WebCore::RenderQuote::updateDepth):
202         * rendering/RenderQuote.h:
203         (RenderQuote):
204         * rendering/RenderText.h:
205         (RenderText):
206
207 2013-02-19  Tony Chang  <tony@chromium.org>
208
209         Border changes on tables with collapsed borders doesn't relayout table cells
210         https://bugs.webkit.org/show_bug.cgi?id=109774
211
212         Reviewed by David Hyatt.
213
214         Test: fast/table/border-collapsing/dynamic-border-width-change.html
215
216         Changes to border top and border bottom on table rows also changes the size
217         of the table cell causing a relayout to be needed.
218
219         * rendering/RenderTableRow.cpp:
220         (WebCore::borderWidthChanged): Also include border top and bottom.
221         (WebCore::RenderTableRow::styleDidChange): Remove logical from the helper function name.
222
223 2013-02-19  Kentaro Hara  <haraken@chromium.org>
224
225         Unreviewed. Rebaselined run-bindings-tests.
226
227         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
228         (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
229         * bindings/scripts/test/JS/JSTestObj.cpp:
230         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
231
232 2013-02-19  ChangSeok Oh  <changseok.oh@collabora.com>
233
234         [GTK][AC] Implement matrix transform animation with clutter ac backend
235         https://bugs.webkit.org/show_bug.cgi?id=109848
236
237         Reviewed by Gustavo Noronha Silva.
238
239         Clutter 1.12 doesn't support additive transform animations yet, so the combination
240         of two or more transformations(such as rotation after translation) runs unexpectedly.
241         So we use a matrix transformation instead for the case.
242
243         Covered by existing animation tests.
244
245         * platform/graphics/clutter/GraphicsLayerClutter.cpp:
246         (WebCore::getValueFunctionNameForTransformOperation):
247         (WebCore::GraphicsLayerClutter::createTransformAnimationsFromKeyframes):
248         * platform/graphics/clutter/PlatformClutterAnimation.cpp:
249         (WebCore::toClutterActorPropertyString): Add actor property "transform"
250         (WebCore::clutterMatrixProgress): Handle interpolation between two matrices instead of default clutter_matrix_progress.
251         (WebCore):
252         (WebCore::PlatformClutterAnimation::supportsAdditiveValueFunction):
253         (WebCore::PlatformClutterAnimation::setFromValue): for TransformationMatrix.
254         (WebCore::PlatformClutterAnimation::setToValue): ditto.
255         (WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
256         (WebCore::PlatformClutterAnimation::addTransformTransition):
257         * platform/graphics/clutter/PlatformClutterAnimation.h:
258         (PlatformClutterAnimation):
259         * platform/graphics/clutter/TransformationMatrixClutter.cpp: Add copy constructor for CoglMatrix.
260         (WebCore::TransformationMatrix::TransformationMatrix):
261         (WebCore):
262         * platform/graphics/transforms/TransformationMatrix.h:
263         (TransformationMatrix):
264
265 2013-02-19  Kassy Coan  <kassycoan@chromium.org>
266
267         Update FeatureObserver on top level navigation in addition to page destruction.
268         https://bugs.webkit.org/show_bug.cgi?id=109874
269
270         Reviewed by Adam Barth.
271
272         No new tests. Only effect is to histogram more frequently.
273
274         * loader/FrameLoader.cpp:
275         (WebCore::FrameLoader::dispatchDidCommitLoad):
276         * page/FeatureObserver.cpp:
277         (WebCore::FeatureObserver::~FeatureObserver):
278         (WebCore):
279         (WebCore::FeatureObserver::updateMeasurements):
280         (WebCore::FeatureObserver::didCommitLoad):
281         * page/FeatureObserver.h:
282         (FeatureObserver):
283
284 2013-02-19  Morten Stenshorne  <mstensho@opera.com>
285
286         Remove unnecessary (and problematic) copy-constructor from LayoutUnit
287         https://bugs.webkit.org/show_bug.cgi?id=110121
288
289         This copy constructor does what a default copy constructor would do, so
290         it's not necessary. Furthermore, this copy constructor is the only
291         reason why LayoutUnit becomes non-POD, and that triggers a gdb bug,
292         making it impossible to do things like "print location()" when inside
293         some RenderBlock, for instance.
294
295         Gdb bug http://sourceware.org/bugzilla/show_bug.cgi?id=15154 reported.
296
297         Reviewed by Benjamin Poulain.
298
299         No tests. Apart from dealing with buggy debuggers, this is just code cleanup.
300
301         * platform/LayoutUnit.h:
302
303 2013-02-19  Emil A Eklund  <eae@chromium.org>
304
305         LayoutUnit::epsilon shouldn't be necessary to place floats
306         https://bugs.webkit.org/show_bug.cgi?id=94000
307
308         Reviewed by Levi Weintraub.
309         
310         Currently, to get float placement correct, we need to have an
311         epsilon tolerance in RenderBlock::computeLogicalLocationForFloat
312         for the width of the line to fit them on. This really shouldn't
313         be necessary, and probably indicates we're losing precision
314         elsewhere.
315         
316         Remove epsilon as it no longer appears to be needed. All layout
317         tests pass without it.
318
319         No new tests, covered by existing tests.
320
321         * rendering/RenderBlock.cpp:
322         (WebCore::RenderBlock::computeLogicalLocationForFloat):
323
324 2013-02-19  Tim Volodine  <timvolodine@chromium.org>
325
326         Text Autosizing: prevent oscillation of font sizes during autosizing
327         https://bugs.webkit.org/show_bug.cgi?id=108205
328
329         Reviewed by Kenneth Rohde Christiansen.
330
331         On some websites autosized font-sizes oscillate due to layouts caused by
332         hovering or incremental page loading (and on other sites font sizes do
333         eventually stabilize, but it takes many layouts before they reach a steady
334         size). To prevent all these cases, we no longer allow the autosizing
335         multiplier to change after it has been set (to a value other than 1).
336
337         This won't always give exactly the same results, but testing on 2000 top
338         sites shows that this makes little difference in practice, and it prevents
339         these very jarring cases. As a happy side-effect, this speeds up layouts
340         as font sizes change less.
341
342         Test: fast/text-autosizing/oscillation-javascript-fontsize-change.html
343
344         * page/FrameView.cpp:
345         (WebCore::FrameView::setFrameRect):
346         * page/Settings.cpp:
347         (WebCore::Settings::setTextAutosizingFontScaleFactor):
348         * rendering/TextAutosizer.cpp:
349         (WebCore::TextAutosizer::recalculateMultipliers):
350         (WebCore):
351         (WebCore::TextAutosizer::processContainer):
352         * rendering/TextAutosizer.h:
353         (TextAutosizer):
354
355 2013-02-19  Youenn Fablet  <youennf@gmail.com>
356
357         [EFL][DRT] http/tests/loading/307-after-303-after-post.html times out
358         https://bugs.webkit.org/show_bug.cgi?id=93214
359
360         Ensured that GET verb is consistently used for any request
361         coming after a redirection that triggers switching to GET.
362
363         Reviewed by Martin Robinson.
364
365         * platform/network/soup/ResourceHandleSoup.cpp:
366         (WebCore::doRedirect):
367
368 2013-02-19  Andras Becsi  <andras.becsi@digia.com>
369
370         [Qt] Fix compilation if Qt was configured with -no-rtti
371         https://bugs.webkit.org/show_bug.cgi?id=110234
372
373         Reviewed by Noam Rosenthal.
374
375         Availability of dynamic_cast should be checked.
376
377         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
378         (WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded):
379
380 2013-02-18  Alexey Proskuryakov  <ap@apple.com>
381
382         Unregistered blob URLs have incorrect MIME type
383         https://bugs.webkit.org/show_bug.cgi?id=110166
384
385         Reviewed by Sam Weinig.
386
387         * page/SecurityOrigin.cpp: (WebCore::SecurityOrigin::shouldUseInnerURL): Added a FIXME.
388
389         * platform/network/BlobResourceHandle.cpp: (WebCore::BlobResourceHandle::notifyResponseOnError):
390         Pass an accurate MIME type (for a delegate to see).
391
392 2013-02-19  Joshua Bell  <jsbell@chromium.org>
393
394         IndexedDB: additional checks on LevelDB decoding
395         https://bugs.webkit.org/show_bug.cgi?id=109711
396
397         Reviewed by Tony Chang.
398
399         Watch out for decoding errors caused by corrupted data, and exit various
400         decode/compare operations earlier.
401
402         Covered by existing LayoutTests and Chromium's webkit_unit_tests
403
404         * Modules/indexeddb/IDBLevelDBCoding.cpp:
405         (WebCore::IDBLevelDBCoding::decodeStringWithLength): Bail if length is negative.
406         (WebCore::IDBLevelDBCoding::compareEncodedStringsWithLength): Distinguish error case.
407         (WebCore::IDBLevelDBCoding::extractEncodedIDBKey): Bail if length is negative.
408         (WebCore::IDBLevelDBCoding::compareEncodedIDBKeys): Distinguish error case.
409         (WebCore::IDBLevelDBCoding::compare): Plumb through "ok".
410         (WebCore::IDBLevelDBCoding::ObjectStoreDataKey::compare): Ditto.
411         (WebCore::IDBLevelDBCoding::ExistsEntryKey::compare): Ditto.
412         (WebCore::IDBLevelDBCoding::IndexDataKey::compare): Ditto.
413         * Modules/indexeddb/IDBLevelDBCoding.h: Updated method signatures.
414
415 2013-02-19  ChangSeok Oh  <changseok.oh@collabora.com>
416
417         [GTK][AC] Implement keyframe animations with clutter ac backend
418         https://bugs.webkit.org/show_bug.cgi?id=110057
419
420         Reviewed by Gustavo Noronha Silva.
421
422         This patch brings accelerated keyframe animation with clutter to WebKitGtk+.
423         Changes of GraphicsLayerClutter are based on GraphicsLayerCA. But major changes
424         of PlatformClutterAnimation are implemented with clutter keyframe transition apis.
425         See http://developer.gnome.org/clutter/stable/ClutterKeyframeTransition.html
426
427         Covered by existing animation tests.
428
429         * platform/graphics/clutter/GraphicsLayerClutter.cpp:
430         (WebCore::GraphicsLayerClutter::createKeyframeAnimation):
431         (WebCore::GraphicsLayerClutter::setTransformAnimationKeyframes):
432         (WebCore::GraphicsLayerClutter::setAnimationKeyframes):
433         * platform/graphics/clutter/PlatformClutterAnimation.cpp:
434         (WebCore::toClutterActorPropertyString):
435         (WebCore::PlatformClutterAnimation::PlatformClutterAnimation):
436         (WebCore::PlatformClutterAnimation::setTimingFunction):
437         (WebCore::PlatformClutterAnimation::setValues):
438         (WebCore::PlatformClutterAnimation::setKeyTimes):
439         (WebCore::PlatformClutterAnimation::setTimingFunctions):
440         (WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
441         (WebCore):
442         (WebCore::PlatformClutterAnimation::addClutterKeyframeTransitionForProperty):
443         (WebCore::PlatformClutterAnimation::addOpacityTransition):
444         (WebCore::PlatformClutterAnimation::addTransformTransition):
445         (WebCore::PlatformClutterAnimation::addAnimationForKey):
446         (WebCore::PlatformClutterAnimation::removeAnimationForKey):
447         * platform/graphics/clutter/PlatformClutterAnimation.h:
448         (PlatformClutterAnimation):
449
450 2013-02-19  Claudio Saavedra  <csaavedra@igalia.com>
451
452         [harfbuzz] Crash in harfbuzz related code
453         https://bugs.webkit.org/show_bug.cgi?id=110145
454
455         Reviewed by Martin Robinson.
456
457         Patch by Behdad Esfahbod <behdad@google.com>
458
459         * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
460         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Ask harfbuzz
461         to guess the segment properties.
462
463 2013-02-19  Pavel Podivilov  <podivilov@chromium.org>
464
465         Web Inspector: release backtrace object group on each step.
466         https://bugs.webkit.org/show_bug.cgi?id=110223
467
468         Reviewed by Pavel Feldman.
469
470         * inspector/InspectorDebuggerAgent.cpp:
471         (WebCore):
472         (WebCore::InspectorDebuggerAgent::stepOver):
473         (WebCore::InspectorDebuggerAgent::stepInto):
474         (WebCore::InspectorDebuggerAgent::stepOut):
475
476 2013-02-19  Sheriff Bot  <webkit.review.bot@gmail.com>
477
478         Unreviewed, rolling out r142975.
479         http://trac.webkit.org/changeset/142975
480         https://bugs.webkit.org/show_bug.cgi?id=110225
481
482         Introduces hard-to-reproduce crashes upon inspected page
483         navigation on Mac (Requested by apavlov on #webkit).
484
485         * dom/DocumentStyleSheetCollection.cpp:
486         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
487         * inspector/Inspector.json:
488         * inspector/InspectorCSSAgent.cpp:
489         (WebCore::InspectorCSSAgent::InspectorCSSAgent):
490         (WebCore::InspectorCSSAgent::clearFrontend):
491         (WebCore::InspectorCSSAgent::enable):
492         (WebCore::InspectorCSSAgent::getAllStyleSheets):
493         (WebCore::InspectorCSSAgent::collectStyleSheets):
494         (WebCore::InspectorCSSAgent::bindStyleSheet):
495         (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
496         (WebCore::InspectorCSSAgent::detectOrigin):
497         (WebCore::InspectorCSSAgent::buildObjectForRule):
498         * inspector/InspectorCSSAgent.h:
499         (InspectorCSSAgent):
500         * inspector/InspectorInstrumentation.cpp:
501         (WebCore):
502         * inspector/InspectorInstrumentation.h:
503         (WebCore):
504         (InspectorInstrumentation):
505         * inspector/front-end/CSSStyleModel.js:
506         (WebInspector.CSSStyleModel.prototype.getViaInspectorResourceForRule):
507         (WebInspector.CSSStyleModelResourceBinding.prototype.):
508         (WebInspector.CSSStyleModelResourceBinding.prototype.requestStyleSheetIdForResource):
509         (WebInspector.CSSStyleModelResourceBinding.prototype.requestResourceURLForStyleSheetId):
510         (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetIdForResource):
511         (WebInspector.CSSStyleModelResourceBinding.prototype._loadStyleSheetHeaders):
512         (WebInspector.CSSStyleModelResourceBinding.prototype.headersLoaded):
513         (WebInspector.CSSStyleModelResourceBinding.prototype._requestViaInspectorResource):
514         (WebInspector.CSSStyleModelResourceBinding.prototype._getOrCreateInspectorResource):
515         (WebInspector.CSSStyleModelResourceBinding.prototype._reset):
516         * inspector/front-end/SASSSourceMapping.js:
517         (WebInspector.SASSSourceMapping.prototype._styleSheetChanged.callback):
518         (WebInspector.SASSSourceMapping.prototype._styleSheetChanged):
519         * inspector/front-end/StylesSidebarPane.js:
520         (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode.callback):
521         (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode):
522         * inspector/front-end/StylesSourceMapping.js:
523         (WebInspector.StyleContentBinding.prototype.callback):
524         (WebInspector.StyleContentBinding.prototype.setStyleContent):
525         (WebInspector.StyleContentBinding.prototype.):
526         (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
527
528 2013-02-19  Julien Chaffraix  <jchaffraix@webkit.org>
529
530         RenderGrid::computedUsedBreadthOfGridTracks can read past m_grid's size
531         https://bugs.webkit.org/show_bug.cgi?id=110126
532
533         Reviewed by Ojan Vafai.
534
535         The issue comes from how we store the column information inside m_grid.
536         Because m_grid is a Vector of rows, we could lose the column information
537         if we had no row, no grid item but some columns defined in CSS. As the
538         logic would assume that our row / column size would be greater than what
539         the style defines explicitely, we would access past our Vector's boundary.
540
541         The fix is to ensure that we have at least a row so that we can store the
542         column information in every case. This fix is overly broad as it also forces
543         the grid to have one column, which shouldn't be an issue.
544
545         Test: fast/css-grid-layout/grid-element-empty-row-column.html
546
547         * rendering/RenderGrid.cpp:
548         (WebCore::RenderGrid::maximumIndexInDirection):
549         Forced this function to return at least one as the maximum index so that
550         m_grid has at least one row / column.
551
552         (WebCore::RenderGrid::placeItemsOnGrid):
553         Added a ASSERT that m_grid is bigger than the explicit grid-rows / grid-columns.
554         Also changed an existing ASSERT to use gridWasPopulated for consistency and changed
555         the code not to call gridRowCount as it would ASSERT (we are in the middle of populating
556         the grid).
557
558         * rendering/RenderGrid.h:
559         (WebCore::RenderGrid::gridWasPopulated):
560         Added this helper function.
561
562         (WebCore::RenderGrid::gridColumnCount):
563         Replaced a now unneeded branch with an ASSERT. As placeItemsOnGrid should be called
564         prior to read m_grid, this change should be fine.
565
566         (WebCore::RenderGrid::gridRowCount):
567         Added an ASSERT.
568
569 2013-02-19  Sergio Villar Senin  <svillar@igalia.com>
570
571         [Soup] Use synchronous calls to close completely processed streams
572         https://bugs.webkit.org/show_bug.cgi?id=107432
573
574         Reviewed by Martin Robinson.
575
576         There is no need to close already processed streams in asynchronous
577         calls since they won't block. Using the synchronous call will save
578         us some code and unnecessary asynchronous burden. This is kind of
579         a code refactor so no new tests needed.
580
581         * platform/network/soup/ResourceHandleSoup.cpp:
582         (WebCore):
583         (WebCore::redirectSkipCallback):
584         (WebCore::readCallback):
585
586 2013-02-19  Andrey Adaikin  <aandrey@chromium.org>
587
588         Web Inspector: [Canvas] use timeline's didBeginFrame for marking frame end calls
589         https://bugs.webkit.org/show_bug.cgi?id=110130
590
591         Reviewed by Pavel Feldman.
592
593         In Web Inspector canvas profiler use timeline's didBeginFrame for marking frame end calls instead of an ad-hoc timeout-based solution.
594
595         * inspector/InjectedScriptCanvasModule.cpp:
596         (WebCore::InjectedScriptCanvasModule::markFrameEnd):
597         (WebCore):
598         * inspector/InjectedScriptCanvasModule.h:
599         (InjectedScriptCanvasModule):
600         * inspector/InjectedScriptCanvasModuleSource.js:
601         (.):
602         * inspector/InspectorCanvasAgent.cpp:
603         (WebCore::InspectorCanvasAgent::hasUninstrumentedCanvases):
604         (WebCore::InspectorCanvasAgent::notifyRenderingContextWasWrapped):
605         (WebCore::InspectorCanvasAgent::findFramesWithUninstrumentedCanvases):
606         (WebCore::InspectorCanvasAgent::frameNavigated):
607         (WebCore::InspectorCanvasAgent::didBeginFrame):
608         (WebCore):
609         * inspector/InspectorCanvasAgent.h:
610         (InspectorCanvasAgent):
611         * inspector/InspectorController.cpp:
612         (WebCore::InspectorController::didBeginFrame):
613
614 2013-02-19  Vsevolod Vlasov  <vsevik@chromium.org>
615
616         Web Inspector: Decouple various file system project implementation parts for better testability and cover with tests.
617         https://bugs.webkit.org/show_bug.cgi?id=110204
618
619         Reviewed by Pavel Feldman.
620
621         Extracted FileSystemWorkspaceProvider from IsolatedFileSystemManager to take care of managing workspace projects and projectDelegates.
622         Replaced FileMapping.urlForURI with urlForPath method that does not need any information about workspace structure anymore.
623
624         Test: inspector/file-system-project.html
625
626         * inspector/front-end/FileMapping.js:
627         (WebInspector.FileMapping.prototype.urlForPath):
628         * inspector/front-end/FileSystemProjectDelegate.js:
629         (WebInspector.FileSystemProjectDelegate):
630         (WebInspector.FileSystemProjectDelegate.prototype.populate.filesLoaded):
631         (WebInspector.FileSystemProjectDelegate.prototype.populate):
632         (WebInspector.FileSystemWorkspaceProvider):
633         (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemAdded):
634         (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemRemoved):
635         * inspector/front-end/IsolatedFileSystem.js:
636         (WebInspector.IsolatedFileSystem):
637         (WebInspector.IsolatedFileSystem.prototype.name):
638         (WebInspector.IsolatedFileSystem.prototype.rootURL):
639         * inspector/front-end/IsolatedFileSystemManager.js:
640         (WebInspector.IsolatedFileSystemManager):
641         (WebInspector.IsolatedFileSystemManager.prototype._innerAddFileSystem):
642         (WebInspector.IsolatedFileSystemManager.prototype._fileSystemRemoved):
643         (WebInspector.IsolatedFileSystemManager.prototype._isolatedFileSystem):
644         (WebInspector.IsolatedFileSystemManager.prototype.requestDOMFileSystem):
645         * inspector/front-end/inspector.js:
646
647 2013-02-19  Andrey Adaikin  <aandrey@chromium.org>
648
649         Web Inspector: [Canvas] do not replace replay image with spinner icon
650         https://bugs.webkit.org/show_bug.cgi?id=110213
651
652         Reviewed by Pavel Feldman.
653
654         Otherwise it's visually hard to see changes in the replay image. Instead show a small spinner icon in the bottom right corner.
655
656         * inspector/front-end/CanvasProfileView.js:
657         (WebInspector.CanvasProfileView):
658         (WebInspector.CanvasProfileView.prototype._enableWaitIcon):
659         * inspector/front-end/canvasProfiler.css:
660         (#canvas-replay-image-container):
661         (.canvas-debug-info):
662         (.canvas-spinner-icon):
663
664 2013-02-19  Andrey Adaikin  <aandrey@chromium.org>
665
666         Web Inspector: [Canvas] UI: tweak replay control buttons behavior
667         https://bugs.webkit.org/show_bug.cgi?id=110207
668
669         Reviewed by Pavel Feldman.
670
671         New behavior for control buttons in the Canvas profiler.
672         - 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)
673         - The NextDrawCall button (~StepOver) should move to a next node that has children (instead of just iterating call group nodes, ignoring frame nodes).
674         - The ReplayLast button should select the last expanded node (instead of always selecting last frame group node).
675
676         * inspector/front-end/CanvasProfileView.js:
677         (WebInspector.CanvasProfileView.prototype._onReplayStepClick):
678         (WebInspector.CanvasProfileView.prototype._onReplayDrawingCallClick):
679         (WebInspector.CanvasProfileView.prototype._onReplayLastStepClick):
680
681 2013-02-19  Andrei Bucur  <abucur@adobe.com>
682
683         [CSS Regions] Assertion in RenderFlowThread::removeRenderBoxRegionInfo
684         https://bugs.webkit.org/show_bug.cgi?id=109914
685
686         Reviewed by David Hyatt.
687
688         This patch moves a part of the invalidation operations inside the RenderFlowThread::invalidateRegions call. The maps
689         are cleared anyway at layout time but doing this earlier makes sure the flow thread is in a more consistent state
690         (the RenderFlowThread object has both the region chain invalidated and the regions information cleared).
691
692         RenderFlowThread::removeRenderBoxRegionInfo will check if the region chain is invalidated. If true, it means the
693         flow thread has a layout scheduled and the regions information is not yet reliable. In this case we just return from the
694         function and wait for the layout to cleanup the box information.
695
696         Test: fast/regions/remove-box-info-assert.html
697
698         * rendering/RenderFlowThread.cpp:
699         (WebCore::RenderFlowThread::removeRegionFromThread):
700         (WebCore::RenderFlowThread::invalidateRegions):
701         (WebCore):
702         (WebCore::RenderFlowThread::layout):
703         (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
704         * rendering/RenderFlowThread.h:
705         * rendering/RenderNamedFlowThread.cpp:
706         (WebCore::RenderNamedFlowThread::removeRegionFromThread):
707
708 2013-02-19  Alberto Garcia  <agarcia@igalia.com>
709
710         Fix build broekn by r142988.
711         https://bugs.webkit.org/show_bug.cgi?id=109530
712
713         Unreviewed. Build fix.
714
715         Properly add shortMonthFormat() to the LocaleNone class.
716
717         * platform/text/LocaleNone.cpp:
718         (LocaleNone):
719         (WebCore::LocaleNone::shortMonthFormat):
720
721 2013-02-19  Anton Vayvod  <avayvod@chromium.org>
722
723         [Text Autosizing] Combine narrow descendants of a cluster into groups that should be autosized with the same multiplier.
724         https://bugs.webkit.org/show_bug.cgi?id=109825
725
726         Enhancement of the approach introduced in https://bugs.webkit.org/show_bug.cgi?id=109573.
727         Instead of using the same text size multiplier for all narrow descendants of any autosizing
728         cluster, group the descendants by how much narrower they are than the cluster's
729         |blockContainingAllText| and process each group separately with a different multiplier for
730         each one.
731         For example, we want nested comments on the page to be autosized as a group but separately
732         from a sidebar on the same page.
733
734         Reviewed by Kenneth Rohde Christiansen.
735
736         Updated the existing test to verify the patch.
737
738         * rendering/TextAutosizer.cpp:
739         (WebCore::TextAutosizer::processClusterInternal):
740
741             Splits the narrow descendants of the autosizing cluster into groups before processing
742             each group individually.
743
744         (WebCore::TextAutosizer::getNarrowDescendantsGroupedByWidth):
745
746             Sorts the narrow descendants of the given cluster into groups, combining them by the
747             difference between their content widths. If sorted by width, two consecutive nodes
748             belong to the same group if their width difference is no greater than 100 CSS units.
749
750         * rendering/TextAutosizer.h:
751
752             New method definitions.
753
754 2013-02-18  Ilya Tikhonovsky  <loislo@chromium.org>
755
756         Web Inspector: Native Memory Instrumentation: show user provided name property of the heap snapshot node.
757         https://bugs.webkit.org/show_bug.cgi?id=110124
758
759         Reviewed by Yury Semikhatsky.
760
761         Publish userProvidedName into grid node.
762
763         * inspector/front-end/HeapSnapshotGridNodes.js:
764         (WebInspector.HeapSnapshotGenericObjectNode):
765         (WebInspector.HeapSnapshotGenericObjectNode.prototype._createObjectCell):
766         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
767         * inspector/front-end/HeapSnapshotProxy.js:
768         (WebInspector.HeapSnapshotWorker):
769         * inspector/front-end/NativeHeapSnapshot.js:
770         (WebInspector.NativeHeapSnapshotNode.prototype.serialize):
771
772 2013-02-19  Arpita Bahuguna  <a.bah@samsung.com>
773
774         Caret is not displayed when trying to focus inside a contenteditable element containing an empty block.
775         https://bugs.webkit.org/show_bug.cgi?id=108053
776
777         Reviewed by Ryosuke Niwa.
778
779         Test: editing/selection/caret-in-div-containing-empty-block.html
780
781         * rendering/RenderBox.cpp:
782         (WebCore::RenderBox::localCaretRect):
783         When trying to compute the caret rect for the contenteditable div, the
784         border and the padding were not considered. Because of this, for the
785         given test case, which had a border defined on the containing div, the
786         caret was being painted just atop the border, thereby masking it.
787
788         Have modified the code to ensure that the computed caret rect takes
789         into account the border and padding (if any) specified on the box, but only
790         if the node doesn't have content that shall be skipped for editing.
791
792         We do not add border and padding while computing the caret rect for any
793         element that either has no content or has content that shall be skipped
794         for editing purposes. This holds true for table elements as well.
795
796         This helps avoid the caret displacement previsouly observed before/after
797         any controls placed within the contenteditable box, when considering
798         border and padding in computation of the caret rect.
799
800 2013-02-19  Mihnea Ovidenie  <mihnea@adobe.com>
801
802         CSSRegions: crash positioned object with inline containing block in flow thread
803         https://bugs.webkit.org/show_bug.cgi?id=108307
804
805         Reviewed by David Hyatt.
806
807         The fix for https://bugs.webkit.org/show_bug.cgi?id=69896 allowed positioned blocks work
808         with variable width regions. However, the information needed for that is available only
809         when the container used for positioning is a block.
810
811         This patch ensures we are using this solution only when the container used for positioning
812         is a block. This needs to be revisited when we will extend support for other types of boxes
813         as mentioned in RenderBox::renderBoxRegionInfo.
814
815         Test: fast/regions/positioned-object-inline-cb-crash.html
816
817         * rendering/RenderBox.cpp:
818         (WebCore::RenderBox::renderBoxRegionInfo):
819         (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
820         (WebCore::RenderBox::computePositionedLogicalWidth): Make sure we are using containerBlocks
821         that are blocks. Add an assert that the type of containerBlock we are using can have
822         computed RenderBoxRegionInfo.
823         (WebCore::RenderBox::computePositionedLogicalHeight):
824         * rendering/RenderBoxModelObject.h:
825         (WebCore::RenderBoxModelObject::canHaveBoxInfoInRegion): This helper method
826         will return the boxes that may have computed RenderBoxRegionInfo. Currently,
827         returns true for blocks only.
828
829 2013-02-19  Ryosuke Niwa  <rniwa@webkit.org>
830
831         Yet anther JSC build fix after r143304.
832
833         * bindings/js/JSDOMBinding.h:
834         (WebCore::argumentOrNull):
835
836 2013-02-19  Kentaro Hara  <haraken@chromium.org>
837
838         Unreviewed build fix. Fixed warning caused by r143305.
839
840         * bindings/scripts/CodeGeneratorJS.pm:
841         (GenerateParametersCheck):
842         * bindings/scripts/CodeGeneratorV8.pm:
843         (GenerateParametersCheck):
844
845 2013-02-19  Kentaro Hara  <haraken@chromium.org>
846
847         Unreviewed build fix after r143304.
848
849         * bindings/js/JSDOMBinding.h:
850         (WebCore::argumentOrNull):
851
852 2013-02-19  Kentaro Hara  <haraken@chromium.org>
853
854         [V8] Remove redundant usage of MAYBE_MISSING_PARAMETER() macro
855         https://bugs.webkit.org/show_bug.cgi?id=109899
856
857         Reviewed by Adam Barth.
858
859         Currently:
860
861         - MAYBE_MISSING_PARAMETER(args, index, DefaultIsUndefined) returns args[index].
862         - MAYBE_MISSING_PARAMETER(args, index, DefaultIsNullString) returns Local<Value>()
863         if args[index] is missing (i.e. the length of |args| is less than |index|).
864         It returns args[index] otherwise.
865
866         No one other than CodeGeneratorV8.pm uses
867         MAYBE_MISSING_PARAMETER(args, index, DefaultIsUndefined). Instead, we simply use
868         args[index]. We should remove the redundant usage from CodeGeneratorV8.pm too.
869         The long-name macro has been making generated code less readable.
870
871         In addition, we can rename MAYBE_MISSING_PARAMETER() to argumentOrNull().
872
873         No tests. No change in behavior.
874
875         * bindings/scripts/CodeGeneratorV8.pm:
876         (GenerateParametersCheck):
877         * bindings/scripts/test/V8/V8Float64Array.cpp:
878         (WebCore::Float64ArrayV8Internal::fooCallback):
879         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
880         (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
881         (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
882         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
883         (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
884         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
885         (WebCore::TestEventTargetV8Internal::itemCallback):
886         (WebCore::TestEventTargetV8Internal::dispatchEventCallback):
887         * bindings/scripts/test/V8/V8TestInterface.cpp:
888         (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
889         (WebCore::V8TestInterface::constructorCallback):
890         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
891         (WebCore::TestMediaQueryListListenerV8Internal::methodCallback):
892         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
893         (WebCore::V8TestNamedConstructorConstructorCallback):
894         * bindings/scripts/test/V8/V8TestObj.cpp:
895         (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
896         (WebCore::TestObjV8Internal::longMethodWithArgsCallback):
897         (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
898         (WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
899         (WebCore::TestObjV8Internal::methodReturningSequenceCallback):
900         (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
901         (WebCore::TestObjV8Internal::optionsObjectCallback):
902         (WebCore::TestObjV8Internal::methodWithOptionalArgCallback):
903         (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgCallback):
904         (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
905         (WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
906         (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
907         (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
908         (WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback):
909         (WebCore::TestObjV8Internal::overloadedMethod1Callback):
910         (WebCore::TestObjV8Internal::overloadedMethod2Callback):
911         (WebCore::TestObjV8Internal::overloadedMethod3Callback):
912         (WebCore::TestObjV8Internal::overloadedMethod4Callback):
913         (WebCore::TestObjV8Internal::overloadedMethod6Callback):
914         (WebCore::TestObjV8Internal::overloadedMethod7Callback):
915         (WebCore::TestObjV8Internal::overloadedMethod8Callback):
916         (WebCore::TestObjV8Internal::overloadedMethod9Callback):
917         (WebCore::TestObjV8Internal::overloadedMethod10Callback):
918         (WebCore::TestObjV8Internal::overloadedMethod11Callback):
919         (WebCore::TestObjV8Internal::classMethodWithOptionalCallback):
920         (WebCore::TestObjV8Internal::overloadedMethod12Callback):
921         (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
922         (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
923         (WebCore::TestObjV8Internal::enabledPerContextMethod1Callback):
924         (WebCore::TestObjV8Internal::enabledPerContextMethod2Callback):
925         (WebCore::TestObjV8Internal::stringArrayFunctionCallback):
926         (WebCore::TestObjV8Internal::domStringListFunctionCallback):
927         (WebCore::TestObjV8Internal::convert1Callback):
928         (WebCore::TestObjV8Internal::convert2Callback):
929         (WebCore::TestObjV8Internal::convert4Callback):
930         (WebCore::TestObjV8Internal::convert5Callback):
931         (WebCore::TestObjV8Internal::strictFunctionCallback):
932         (WebCore::TestObjV8Internal::variadicStringMethodCallback):
933         (WebCore::TestObjV8Internal::variadicDoubleMethodCallback):
934         (WebCore::TestObjV8Internal::variadicNodeMethodCallback):
935         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
936         (WebCore::V8TestOverloadedConstructors::constructor1Callback):
937         (WebCore::V8TestOverloadedConstructors::constructor2Callback):
938         (WebCore::V8TestOverloadedConstructors::constructor3Callback):
939         (WebCore::V8TestOverloadedConstructors::constructor4Callback):
940         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
941         (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
942         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
943         (WebCore::TestTypedefsV8Internal::funcCallback):
944         (WebCore::TestTypedefsV8Internal::setShadowCallback):
945         (WebCore::TestTypedefsV8Internal::methodWithSequenceArgCallback):
946         (WebCore::TestTypedefsV8Internal::nullableArrayArgCallback):
947         (WebCore::TestTypedefsV8Internal::stringArrayFunctionCallback):
948         (WebCore::TestTypedefsV8Internal::stringArrayFunction2Callback):
949         (WebCore::V8TestTypedefs::constructorCallback):
950         * bindings/v8/V8BindingMacros.h:
951         (WebCore):
952         * bindings/v8/custom/V8HistoryCustom.cpp:
953         (WebCore::V8History::pushStateCallbackCustom):
954         (WebCore::V8History::replaceStateCallbackCustom):
955
956 2013-02-19  Kentaro Hara  <haraken@chromium.org>
957
958         [JSC] MAYBE_MISSING_PARAMETER(..., DefaultIsNullString) macro is redundant
959         https://bugs.webkit.org/show_bug.cgi?id=109902
960
961         Reviewed by Adam Barth.
962
963         Currently:
964
965         - MAYBE_MISSING_PARAMETER(exec, index, DefaultIsUndefined)
966           returns exec->argument(index).
967         - MAYBE_MISSING_PARAMETER(exec, index, DefaultIsNullString)
968           returns JSValue() if exec->argument(index) is missing
969           (i.e. the length of the argument is less than index).
970           It returns exec->argument(index) otherwise.
971
972         No one other than CodeGeneratorJS.pm uses
973         MAYBE_MISSING_PARAMETER(exec, index, DefaultIsUndefined).
974         Instead, we simply use exec->argument(index). We should remove
975         the redundant usage in CodeGeneratorJS.pm too. The long-name macro
976         has been making generated code less readable.
977
978         In addition, we can rename MAYBE_MISSING_PARAMETER() to argumentOrNull().
979
980         c.f. corresponding V8 bug: https://bugs.webkit.org/show_bug.cgi?id=109899
981
982         No tests. No change in behavior.
983
984         * bindings/js/JSDOMBinding.h:
985         (WebCore):
986         * bindings/scripts/CodeGeneratorJS.pm:
987         (GenerateParametersCheck):
988         * bindings/scripts/test/JS/JSFloat64Array.cpp:
989         (WebCore::jsFloat64ArrayPrototypeFunctionFoo):
990         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
991         (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
992         (WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
993         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
994         (WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
995         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
996         (WebCore::jsTestEventTargetPrototypeFunctionItem):
997         (WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
998         * bindings/scripts/test/JS/JSTestInterface.cpp:
999         (WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
1000         (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
1001         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
1002         (WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
1003         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
1004         (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
1005         * bindings/scripts/test/JS/JSTestObj.cpp:
1006         (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
1007         (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
1008         (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
1009         (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
1010         (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
1011         (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
1012         (WebCore::jsTestObjPrototypeFunctionSerializedValue):
1013         (WebCore::jsTestObjPrototypeFunctionOptionsObject):
1014         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
1015         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
1016         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
1017         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
1018         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
1019         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
1020         (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
1021         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
1022         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
1023         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
1024         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
1025         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
1026         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
1027         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
1028         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
1029         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
1030         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
1031         (WebCore::jsTestObjConstructorFunctionClassMethodWithOptional):
1032         (WebCore::jsTestObjConstructorFunctionOverloadedMethod11):
1033         (WebCore::jsTestObjConstructorFunctionOverloadedMethod12):
1034         (WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
1035         (WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
1036         (WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
1037         (WebCore::jsTestObjPrototypeFunctionConvert1):
1038         (WebCore::jsTestObjPrototypeFunctionConvert2):
1039         (WebCore::jsTestObjPrototypeFunctionConvert4):
1040         (WebCore::jsTestObjPrototypeFunctionConvert5):
1041         (WebCore::jsTestObjPrototypeFunctionStrictFunction):
1042         (WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
1043         (WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
1044         (WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
1045         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
1046         (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors1):
1047         (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors2):
1048         (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors3):
1049         (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors4):
1050         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1051         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
1052         (WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionAcceptTransferList):
1053         (WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionMultiTransferList):
1054         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
1055         (WebCore::JSTestTypedefsConstructor::constructJSTestTypedefs):
1056         (WebCore::jsTestTypedefsPrototypeFunctionFunc):
1057         (WebCore::jsTestTypedefsPrototypeFunctionMultiTransferList):
1058         (WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
1059         (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
1060         (WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
1061         (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
1062         (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):
1063
1064 2013-02-18  Hayato Ito  <hayato@chromium.org>
1065
1066         Make EventDispatcher take an Event object in its constructor.
1067         https://bugs.webkit.org/show_bug.cgi?id=109898
1068
1069         Reviewed by Dimitri Glazkov.
1070
1071         Re-landing r143145, which caused a crash when deltaX and deltaY of a PlatformWheelEvent are both zero.
1072
1073         Fixed a crash by early exiting in EventDispatcher::dispatchEvent(Node*, PassRefPtr<EventDispatcher*>)
1074         if mediator's event() returns null.
1075
1076         Also Added a layout test to catch this kind of crash in the future.
1077
1078         Test: fast/events/platform-wheelevent-with-delta-zero-crash.html
1079
1080         * dom/EventDispatchMediator.cpp:
1081         (WebCore::EventDispatchMediator::dispatchEvent):
1082         * dom/EventDispatcher.cpp:
1083         (WebCore::EventDispatcher::dispatchEvent):
1084         (WebCore::EventDispatcher::EventDispatcher):
1085         (WebCore::EventDispatcher::ensureEventPath):
1086         (WebCore::EventDispatcher::dispatchSimulatedClick):
1087         (WebCore::EventDispatcher::dispatch):
1088         (WebCore::EventDispatcher::dispatchEventPreProcess):
1089         (WebCore::EventDispatcher::dispatchEventAtCapturing):
1090         (WebCore::EventDispatcher::dispatchEventAtTarget):
1091         (WebCore::EventDispatcher::dispatchEventAtBubbling):
1092         (WebCore::EventDispatcher::dispatchEventPostProcess):
1093         * dom/EventDispatcher.h:
1094         (EventDispatcher):
1095         (WebCore::EventDispatcher::node):
1096         (WebCore::EventDispatcher::event):
1097         * dom/FocusEvent.cpp:
1098         (WebCore::FocusEventDispatchMediator::dispatchEvent):
1099         (WebCore::BlurEventDispatchMediator::dispatchEvent):
1100         (WebCore::FocusInEventDispatchMediator::dispatchEvent):
1101         (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
1102         * dom/GestureEvent.cpp:
1103         (WebCore::GestureEventDispatchMediator::dispatchEvent):
1104         * dom/MouseEvent.cpp:
1105         (WebCore::MouseEventDispatchMediator::dispatchEvent):
1106         * dom/WheelEvent.cpp:
1107         (WebCore::WheelEventDispatchMediator::dispatchEvent):
1108         Assert event() rather than an early exit since this code path should be hit only when event() is non-null.
1109
1110 2013-02-18  Takashi Sakamoto  <tasak@google.com>
1111
1112         :before/:after pseudo elements do not always apply to the proper element
1113         https://bugs.webkit.org/show_bug.cgi?id=93925
1114
1115         Reviewed by Dimitri Glazkov.
1116
1117         Disable sharing a style with siblings if :after or :before pseudo style
1118         is unique.
1119
1120         Test: fast/css/before-after-pseudo-class.html
1121
1122         * css/StyleResolver.cpp:
1123         (WebCore::StyleResolver::canShareStyleWithElement):
1124         Added a new condition, hasUniquePseudoStyle.
1125         * rendering/style/RenderStyle.cpp:
1126         (WebCore::RenderStyle::hasUniquePseudoStyle):
1127         Added to check whether any pseudo style has unique bit or not.
1128         (WebCore):
1129         * rendering/style/RenderStyle.h:
1130
1131 2013-02-18  Andy Estes  <aestes@apple.com>
1132
1133         Focusing a new frame (via window.focus()) should blur the active element in the current frame
1134         https://bugs.webkit.org/show_bug.cgi?id=110172
1135
1136         Reviewed by Ryosuke Niwa.
1137
1138         When a change in the focused node crosses a frame boundary, WebKit
1139         doesn't always succeed in blurring the old focused node before focusing
1140         the new one.
1141
1142         Each document remembers its focused node, and a Page-scoped
1143         FocusController remembers the focused frame. If a new focused node is
1144         in a different frame than the focused frame, FocusController tells the
1145         old frame's document to clear its focused node before focusing the new
1146         one (and remembering the new frame).
1147
1148         Unfortunately, web content can confuse FocusController by calling
1149         window.focus() at the wrong time. Since window.focus() changes
1150         FocusController's focused frame without focusing a new node,
1151         FocusController won't think that a frame boundary is being crossed if a
1152         node in this frame is later focused. Therefore it won't clear the old
1153         frame's focused node (it won't even know which frame contained the old
1154         focused node), causing at least two bugs:
1155
1156         1) The node in the old frame will not receive a blur event.
1157         2) Calling document.activeElement on the main frame will return the
1158            previously focused node, but the HTML5 spec says it should return
1159            the frame owner element if a subframe has focus.
1160
1161         Fix both of these bugs by explicitly clearing the current frame's
1162         focused node if window.focus() changes the focused frame. This fix
1163         carries some compatibility risk by changing a long-standing behavior
1164         of the engine (we've had this bug since the beginning of the project,
1165         AFAICT). On the upside, it matches the behavior of both Firefox and IE,
1166         matches what HTML5 says about subframe focus, and fixes at least one
1167         well-known enterprise web app.
1168
1169         Tests: fast/dom/HTMLDocument/active-element-frames.html
1170                fast/frames/frame-focus-blurs-active-element.html
1171
1172         * page/DOMWindow.cpp:
1173         (WebCore::DOMWindow::focus): If the frame being focused is not the same
1174         as the currently focused frame, clear the currently focused frame's
1175         focused node.
1176
1177 2013-02-18  Simon Fraser  <simon.fraser@apple.com>
1178
1179         Clean up the boolean argument to visibleContentRect
1180         https://bugs.webkit.org/show_bug.cgi?id=110167
1181
1182         Reviewed by Simon Fraser.
1183
1184         Replace the boolean argument to visibleContentRect() with
1185         an enum.
1186
1187         No behavior change.
1188
1189         * WebCore.exp.in:
1190         * dom/Document.cpp:
1191         (WebCore::Document::viewportSize):
1192         * inspector/InspectorOverlay.cpp:
1193         (WebCore::InspectorOverlay::update):
1194         * page/DOMWindow.cpp:
1195         (WebCore::DOMWindow::innerHeight):
1196         (WebCore::DOMWindow::innerWidth):
1197         * page/FrameView.cpp:
1198         (WebCore::FrameView::calculateScrollbarModesForLayout):
1199         (WebCore::FrameView::layout):
1200         (WebCore::FrameView::performPostLayoutTasks):
1201         (WebCore::FrameView::windowClipRect):
1202         * page/SpatialNavigation.cpp:
1203         (WebCore::canScrollInDirection):
1204         * platform/ScrollView.cpp:
1205         (WebCore::ScrollView::unscaledVisibleContentSize):
1206         (WebCore::ScrollView::visibleContentRect):
1207         (WebCore::ScrollView::layoutSize):
1208         (WebCore::ScrollView::updateScrollbars):
1209         (WebCore::ScrollView::paint):
1210         * platform/ScrollView.h:
1211         * platform/ScrollableArea.cpp:
1212         (WebCore::ScrollableArea::visibleContentRect):
1213         * platform/ScrollableArea.h:
1214         * rendering/RenderDialog.cpp:
1215         (WebCore::RenderDialog::layout):
1216         * rendering/RenderLayer.cpp:
1217         (WebCore::RenderLayer::maximumScrollPosition):
1218         (WebCore::RenderLayer::visibleContentRect):
1219         * rendering/RenderLayer.h:
1220         * rendering/RenderLayerCompositor.cpp:
1221         (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
1222         (WebCore::RenderLayerCompositor::updateRootLayerPosition):
1223
1224 2013-02-18  Ryosuke Niwa  <rniwa@webkit.org>
1225
1226         That didn't work either. Just make it public. This is why I hate nested classes. They just don't work.
1227
1228         * rendering/RenderBlock.h:
1229         (RenderBlock):
1230
1231 2013-02-18  Ryosuke Niwa  <rniwa@webkit.org>
1232
1233         Windows build fix. Apparently Visual Studio still has a lot of bugs with respect to nested classes.
1234         Work around it by directly instantiating the class inside createFloatingObjects.
1235
1236         * rendering/RenderBlock.cpp:
1237         (WebCore::RenderBlock::createFloatingObjects): Directly instantiate FloatingObjects.
1238         * rendering/RenderBlock.h:
1239         (RenderBlock): Moved the declaration of createFloatingObjects up.
1240         (FloatingObjects::FloatingObjects):
1241
1242 2013-02-18  Ryosuke Niwa  <rniwa@webkit.org>
1243
1244         Merge handleSpecialChild into layoutBlockChildren
1245         https://bugs.webkit.org/show_bug.cgi?id=110165
1246
1247         Reviewed by Darin Adler.
1248
1249         Merge handleSpecialChild, handlePositionedChild, and handleFloatingChild into layoutBlockChildren
1250         to make the semantics of the code clear and to get rid of the outdated comment about how there are
1251         four types of four types of special children.
1252
1253         * rendering/RenderBlock.cpp:
1254         (WebCore::RenderBlock::layoutBlockChildren):
1255         * rendering/RenderBlock.h:
1256         (RenderBlock):
1257
1258 2013-02-18  Ryosuke Niwa  <rniwa@webkit.org>
1259
1260         Encapsulate FloatingObject's constructor inside create
1261         https://bugs.webkit.org/show_bug.cgi?id=110169
1262
1263         Reviewed by Darin Adler.
1264
1265         Added FloatingObject::create and made FloatingObject's constructor private.
1266         Also added RenderBlock::ensureFloatingObjects to help lazily creating FloatingObjects.
1267
1268         * rendering/RenderBlock.cpp:
1269         (WebCore::RenderBlock::insertFloatingObject):
1270         (WebCore::RenderBlock::addOverhangingFloats):
1271         (WebCore::RenderBlock::addIntrudingFloats):
1272         (WebCore::RenderBlock::ensureFloatingObjects):
1273         (WebCore::RenderBlock::FloatingObjects::create):
1274         (WebCore::RenderBlock::FloatingObjects::FloatingObjects):
1275         * rendering/RenderBlock.h:
1276         (FloatingObjects):
1277         (RenderBlock):
1278
1279 2013-02-18  Anders Carlsson  <andersca@apple.com>
1280
1281         Add a DefaultHash for RefPtr<SecurityOrigin>
1282         https://bugs.webkit.org/show_bug.cgi?id=110170
1283
1284         Reviewed by Andreas Kling.
1285
1286         Remove all explicit uses of SecurityOriginHash.
1287
1288         * Modules/webdatabase/DatabaseTracker.h:
1289         * Modules/webdatabase/OriginQuotaManager.h:
1290         * loader/appcache/ApplicationCacheStorage.cpp:
1291         (WebCore::ApplicationCacheStorage::getOriginsWithCache):
1292         * loader/cache/MemoryCache.h:
1293         * page/SecurityOriginHash.h:
1294         * storage/StorageNamespaceImpl.h:
1295         (StorageNamespaceImpl):
1296
1297 2013-02-18  David Hyatt  <hyatt@apple.com>
1298
1299         Padding and border changes don't trigger the relayout of children in some cases.
1300         https://bugs.webkit.org/show_bug.cgi?id=109639.
1301
1302         Reviewed by Ryosuke Niwa.
1303
1304         The fix for this bug was way too general and involved putting code into RenderBox. Since
1305         RenderBox makes no assumptions about what kind of layout system might derive from it, it
1306         was incorrect to just mark all children as needing layout whenever borders and padding
1307         changed widths.
1308         
1309         This patch takes the two cases handled by the original code and makes them more
1310         specialized down in subclasses, i.e., RenderBlock and RenderTableRow. RenderBlock has
1311         been refined to only check if children aren't inline and to also not invalidate
1312         floats or irrelevant positioned objects that might not even have this block as their
1313         containing block.
1314         
1315         The RenderTableRow code is specialized to only care about collapsing borders and
1316         to only check borders rather than padding. It also requires that a child be a cell
1317         in order to do the invalidation.
1318
1319         Covered by existing tests, since this is just specializing the code to more precisely
1320         cover the test cases that have already been written.
1321
1322         Longer term, it should be layout code that figures this stuff out rather than style
1323         change code, but that involves more dramatic changes that can wait.
1324
1325         Test: fast/block/positioning/border-change-relayout-test.html
1326
1327         * rendering/RenderBlock.cpp:
1328         (WebCore::borderOrPaddingLogicalWidthChanged):
1329         (WebCore):
1330         (WebCore::RenderBlock::styleDidChange):
1331         * rendering/RenderBox.cpp:
1332         (WebCore):
1333         (WebCore::RenderBox::styleDidChange):
1334         * rendering/RenderTableRow.cpp:
1335         (WebCore::borderLogicalWidthChanged):
1336         (WebCore):
1337         (WebCore::RenderTableRow::styleDidChange):
1338
1339 2013-02-18  Mark Lam  <mark.lam@apple.com>
1340
1341         Small follow up to r143271: Fix SQLTransaction leak.
1342         https://bugs.webkit.org/show_bug.cgi?id=110052.
1343
1344         Reviewed by Geoffrey Garen.
1345
1346         Applied Geoff's suggestion nullify m_frontend sooner for greater
1347         code clarity. Also added some comments about m_frontend.
1348
1349         No new tests.
1350
1351         * Modules/webdatabase/SQLTransactionBackend.cpp:
1352         (WebCore::SQLTransactionBackend::doCleanup):
1353         * Modules/webdatabase/SQLTransactionBackend.h:
1354         (SQLTransactionBackend):
1355
1356 2013-02-18  Geoffrey Garen  <ggaren@apple.com>
1357
1358         Shrank the SourceProvider cache
1359         https://bugs.webkit.org/show_bug.cgi?id=110158
1360
1361         Reviewed by Oliver Hunt.
1362
1363         Test: fast/js/regress/nested-function-parsing.html
1364
1365         No need to keep statistics on cache size, since we're going to throw it
1366         away no matter what.
1367
1368         * WebCore.order:
1369         * bindings/js/CachedScriptSourceProvider.h:
1370         (CachedScriptSourceProvider):
1371         (WebCore::CachedScriptSourceProvider::CachedScriptSourceProvider):
1372         * loader/cache/CachedScript.cpp:
1373         (WebCore::CachedScript::destroyDecodedData):
1374         (WebCore):
1375         (WebCore::CachedScript::reportMemoryUsage):
1376         * loader/cache/CachedScript.h:
1377         (CachedScript):
1378
1379 2013-02-18  peavo@outlook.com  <peavo@outlook.com>
1380
1381         [Curl] The function cookiesForDOM() does not behave correctly.
1382         https://bugs.webkit.org/show_bug.cgi?id=109923
1383
1384         Reviewed by Brent Fulgham.
1385
1386         The cookiesForDOM() function should return a list of matching cookies, both persistent and session cookies.
1387
1388         * platform/network/curl/CookieJarCurl.cpp:
1389         (WebCore::readCurlCookieToken): Added function to read next token from Curl cookie string.
1390         (WebCore::addMatchingCurlCookie): Added function to add matching cookies to cookie list.
1391         (WebCore::setCookiesFromDOM): Add domain and path from url to cookie if not already set.
1392         (WebCore::cookiesForDOM): Return a list of matching cookies, both session and persistent cookies.
1393
1394 2013-02-17  Mark Lam  <mark.lam@apple.com>
1395
1396         Fix SQLTransaction leak.
1397         https://bugs.webkit.org/show_bug.cgi?id=110052.
1398
1399         Reviewed by Geoffrey Garen.
1400
1401         With https://bugs.webkit.org/show_bug.cgi?id=104750, there is now a circular
1402         reference between SQLTransaction and its backend. The clean up process needs
1403         to be fixed to explicitly break this reference cycle.
1404
1405         The 5 phases of the SQLTransaction (and backend) phases and their clean up
1406         actions are:
1407
1408         Phase 1. After Birth, before scheduling
1409         - During shutdown, DatabaseThread::databaseThread() calls
1410           DatabaseBackendAsync::close(). DatabaseBackendAsync::close() iterates
1411           DatabaseBackendAsync::m_transactionQueue and calls
1412           SQLtransactionBackend::notifyDatabaseThreadIsShuttingDown() on each
1413           transaction there.
1414
1415         Phase 2. After scheduling, before state AcquireLock
1416         - ~DatabaseTask() calls SQLtransactionBackend's
1417           notifyDatabaseThreadIsShuttingDown().
1418
1419         Phase 3. After state AcquireLock, before "lockAcquired"
1420         - During shutdown, DatabaseThread::databaseThread() calls
1421           SQLTransactionCoordinator::shutdown(), which calls
1422           SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown().
1423
1424         Phase 4: After "lockAcquired", before state CleanupAndTerminate
1425         - Same as Phase 3.
1426
1427         Phase 5: After state CleanupAndTerminate
1428         - state CleanupAndTerminate calls SQLTransactionBackend::doCleanup().
1429
1430         See comment at the top of SQLTransactionBackend.cpp for more details.
1431
1432         Other supporting changes:
1433         - Moved Database::close() to the DatabaseBackendAsync.
1434         - Moved the "if already cleaned up" check from SQLTransactionBackend's
1435           notifyDatabaseThreadIsShuttingDown() to doCleanup().
1436         - Added a check to prevent SQLTransactionCoordinator's releaseLock()
1437           from running when it's shutting down.
1438
1439         No new tests.
1440
1441         * Modules/webdatabase/Database.cpp:
1442         * Modules/webdatabase/Database.h:
1443         * Modules/webdatabase/DatabaseBackendAsync.cpp:
1444         (WebCore::DatabaseBackendAsync::close): Move from Database.cpp.
1445         * Modules/webdatabase/DatabaseBackendAsync.h:
1446         * Modules/webdatabase/DatabaseTask.cpp:
1447         (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::DatabaseTransactionTask):
1448         (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::~DatabaseTransactionTask):
1449         (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::doPerformTask):
1450         * Modules/webdatabase/DatabaseTask.h:
1451         (DatabaseBackendAsync::DatabaseTransactionTask):
1452         * Modules/webdatabase/DatabaseThread.cpp:
1453         (WebCore::DatabaseThread::databaseThread):
1454         * Modules/webdatabase/SQLTransactionBackend.cpp:
1455         (WebCore::SQLTransactionBackend::doCleanup):
1456         (WebCore::SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown):
1457         (WebCore::SQLTransactionBackend::cleanupAndTerminate):
1458         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
1459         (WebCore::SQLTransactionCoordinator::SQLTransactionCoordinator):
1460         (WebCore::SQLTransactionCoordinator::acquireLock):
1461         (WebCore::SQLTransactionCoordinator::releaseLock):
1462         (WebCore::SQLTransactionCoordinator::shutdown):
1463         * Modules/webdatabase/SQLTransactionCoordinator.h:
1464         (SQLTransactionCoordinator):
1465
1466 2013-02-18  David Kilzer  <ddkilzer@apple.com>
1467
1468         Fix WebCore Xcode project
1469
1470         * WebCore.xcodeproj/project.pbxproj: Fix path for CDMPrivate.h.
1471
1472 2013-02-18  Julien Chaffraix  <jchaffraix@webkit.org>
1473
1474         [CSS Grid Layout] Refactor grid position resolution code to support an internal grid representation
1475         https://bugs.webkit.org/show_bug.cgi?id=109718
1476
1477         Reviewed by Ojan Vafai.
1478
1479         In order to support auto placement (where we can't infer a grid item's position from its style),
1480         we need to have 2 code paths:
1481         - One that places the elements on the grid representation.
1482         - One that reuse the grid representation to return the position.
1483
1484         This code path implements this split so that we can add auto placement in a follow-up patch(es).
1485         Also in order to avoid a O(n^2) behavior [walking over our grid to find a grid item's position],
1486         the cached position code path needed an efficient way to find the grid items -> position mapping.
1487
1488         Refactoring, covered by existing tests.
1489
1490         * rendering/RenderGrid.cpp:
1491         (WebCore::RenderGrid::cachedGridCoordinate):
1492         (WebCore::RenderGrid::resolveGridPositionFromStyle):
1493         These methods implements the above split. The first one
1494         reuses our cached information whereas the other one is
1495         used to build the cache.
1496
1497         (WebCore::RenderGrid::computeIntrinsicLogicalWidths):
1498         (WebCore::RenderGrid::layoutGridItems):
1499         Added some code to clear the grid items' position.
1500
1501         (WebCore::RenderGrid::findChildLogicalPosition):
1502         (WebCore::RenderGrid::logicalContentHeightForChild):
1503         Updated these functions to use cachedGridPosition.
1504
1505         (WebCore::RenderGrid::maximumIndexInDirection):
1506         Added a comment about why we don't use cachedGridPosition.
1507
1508         (WebCore::RenderGrid::insertItemIntoGrid):
1509         Added this helper function to insert into the grid and
1510         cache the position in the reverse lookup map.
1511
1512         (WebCore::RenderGrid::placeItemsOnGrid):
1513         Updated to call insertItemIntoGrid. Also added an ASSERT
1514         similar to m_grid.
1515
1516         (WebCore::RenderGrid::clearGrid):
1517         Added this helper function to clear our grid structure.
1518
1519         * rendering/RenderGrid.h:
1520         (GridCoordinate):
1521         (WebCore::RenderGrid::GridCoordinate::GridCoordinate):
1522         Added this POD to hold the coordinates in our reverse map.
1523
1524 2013-02-18  Stephen Chenney  <schenney@chromium.org>
1525
1526         feFlood incorrectly applied color-interpolation-filters
1527         https://bugs.webkit.org/show_bug.cgi?id=109985
1528
1529         Reviewed by Dirk Schulze.
1530
1531         The SVG spec defines the color-interpolation-filters property for all
1532         filter effect elements in order to control cases where a color is
1533         based on some arithmetic computation on other colors. For example,
1534         when computing gradients or blending colors. feFlood simply fills a
1535         region with the given color, and that given color is always defined to
1536         be in sRGB space, so the feFlood result should always be sRGB.
1537
1538         The new behavior matches both Opera and Firefox.
1539
1540         Tests: svg/filters/feFlood-color-interpolation-expected.svg
1541                svg/filters/feFlood-color-interpolation.svg
1542
1543         * platform/graphics/filters/FEFlood.cpp:
1544         (WebCore::FEFlood::platformApplySoftware): Force the color mode to be
1545         sRGB before returning.
1546
1547 2013-02-18  Mark Lam  <mark.lam@apple.com>
1548
1549         Introduced AbstractSQLStatement and AbstractSQLStatementBackend.
1550         https://bugs.webkit.org/show_bug.cgi?id=110148.
1551
1552         Reviewed by Geoff Garen.
1553
1554         This is part of the webdatabase refactoring for webkit2.
1555         - Also changed the frontend and backend to only refer to the
1556           abstract interface of each other.
1557
1558         No new tests.
1559
1560         * GNUmakefile.list.am:
1561         * Modules/webdatabase/AbstractSQLStatement.h: Added.
1562         (AbstractSQLStatement):
1563         (WebCore::AbstractSQLStatement::~AbstractSQLStatement):
1564         * Modules/webdatabase/AbstractSQLStatementBackend.h: Added.
1565         (AbstractSQLStatementBackend):
1566         (WebCore::AbstractSQLStatementBackend::~AbstractSQLStatementBackend):
1567         * Modules/webdatabase/SQLStatement.cpp:
1568         (WebCore::SQLStatement::setBackend):
1569         * Modules/webdatabase/SQLStatement.h:
1570         (SQLStatement):
1571         * Modules/webdatabase/SQLStatementBackend.cpp:
1572         (WebCore::SQLStatementBackend::create):
1573         (WebCore::SQLStatementBackend::SQLStatementBackend):
1574         (WebCore::SQLStatementBackend::frontend):
1575         * Modules/webdatabase/SQLStatementBackend.h:
1576         (SQLStatementBackend):
1577         * Modules/webdatabase/SQLTransaction.cpp:
1578         (WebCore::SQLTransaction::deliverStatementCallback):
1579         * Modules/webdatabase/SQLTransactionBackend.cpp:
1580         (WebCore::SQLTransactionBackend::currentStatement):
1581         (WebCore::SQLTransactionBackend::executeSQL):
1582         * Modules/webdatabase/SQLTransactionBackend.h:
1583         (SQLTransactionBackend):
1584         * Target.pri:
1585         * WebCore.gypi:
1586         * WebCore.vcproj/WebCore.vcproj:
1587         * WebCore.vcxproj/WebCore.vcxproj:
1588         * WebCore.vcxproj/WebCore.vcxproj.filters:
1589         * WebCore.xcodeproj/project.pbxproj:
1590
1591 2013-02-18  David Kilzer  <ddkilzer@apple.com>
1592
1593         BUILD FIX (r143230): Fix renamed header and implementation of -[WebAccessibilityObjectWrapper accessibilityPostedNotification:]
1594         <http://webkit.org/b/110077>
1595
1596         Fixes the following build failures:
1597
1598             AccessibilityObjectIOS.mm:35:9: fatal error: 'AccessibilityObjectWrapperIOS.h' file not found
1599             #import "AccessibilityObjectWrapperIOS.h"
1600                     ^
1601             1 error generated.
1602
1603             WebAccessibilityObjectWrapperIOS.mm:2051:35: error: use of undeclared identifier 'notificationString'; did you mean 'notificationType'?
1604                 if (AXNotificationCallback && notificationString)
1605                                               ^~~~~~~~~~~~~~~~~~
1606                                               notificationType
1607             WebAccessibilityObjectWrapperIOS.mm:2049:81: note: 'notificationType' declared here
1608             - (void)accessibilityPostedNotification:(WebCore::AXObjectCache::AXNotification)notificationType
1609                                                                                             ^
1610             WebAccessibilityObjectWrapperIOS.mm:2052:38: error: use of undeclared identifier 'notificationString'; did you mean 'notificationType'?
1611                     AXNotificationCallback(self, notificationString, AXPostedNotificationContext);
1612                                                  ^~~~~~~~~~~~~~~~~~
1613                                                  notificationType
1614             WebAccessibilityObjectWrapperIOS.mm:2049:81: note: 'notificationType' declared here
1615             - (void)accessibilityPostedNotification:(WebCore::AXObjectCache::AXNotification)notificationType
1616                                                                                             ^
1617             WebAccessibilityObjectWrapperIOS.mm:2052:38: error: cannot initialize a parameter of type 'NSString *' with an lvalue of type 'WebCore::AXObjectCache::AXNotification'
1618                     AXNotificationCallback(self, notificationString, AXPostedNotificationContext);
1619                                                  ^~~~~~~~~~~~~~~~~~
1620             WebAccessibilityObjectWrapperIOS.mm:2049:81: error: conflicting parameter types in implementation of 'accessibilityPostedNotification:': 'NSString *' vs 'WebCore::AXObjectCache::AXNotification' [-Werror,-Wmismatched-parameter-types]
1621             - (void)accessibilityPostedNotification:(WebCore::AXObjectCache::AXNotification)notificationType
1622                                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
1623             WebAccessibilityObjectWrapperBase.h:48:53: note: previous definition is here
1624             - (void)accessibilityPostedNotification:(NSString *)notificationName;
1625                                                      ~~~~~~~~~~ ^
1626             4 errors generated.
1627
1628         * accessibility/ios/AccessibilityObjectIOS.mm: Fix name of
1629         included header.
1630         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
1631         (-[WebAccessibilityObjectWrapper accessibilityPostedNotification:]):
1632         Fix implementation to match declaration.
1633
1634         * accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
1635         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
1636         * accessibility/ios/AXObjectCacheIOS.mm:
1637         - Clean up #endif comments.
1638
1639 2013-02-18  Jer Noble  <jer.noble@apple.com>
1640
1641         EME: Add a CDMPrivate implementation using AVFoundation.
1642         https://bugs.webkit.org/show_bug.cgi?id=109739
1643
1644         Reviewed by Eric Carlson.
1645
1646         Add a CDMPrivate implementation using AVFoundation, similar to the EME v1 implementation
1647         in MediaPlayerPrivateAVFoundationObjC. This requires passing the AVAssetResourceLoadingRequest
1648         from the MediaPlayerPrivateAVFoundationObjC instance to CDMSessionAVFoundation. To do so
1649         without adding platform-specific API to MediaPlayer, add a static map from MediaPlayer ->
1650         MediaPlayerPrivateAVFoundationObjC instances to be used to vend the AVAssetResourceLoadingRequest
1651         to CDMSessionAVFoundation.
1652
1653         * Modules/encryptedmedia/CDM.cpp:
1654         (WebCore::installedCDMFactories): Add the factory for CDMPrivateAVFoundation.
1655         * Modules/encryptedmedia/CDM.h:
1656         * Modules/encryptedmedia/CDMPrivateAVFoundation.h: Added.
1657         (WebCore::CDMPrivateAVFoundation::create): Simple factory method.
1658         (WebCore::CDMPrivateAVFoundation::~CDMPrivateAVFoundation): Simple virtual destructor.
1659         (WebCore::CDMPrivateAVFoundation::cdm): Simple getter.
1660         (WebCore::CDMPrivateAVFoundation::CDMPrivateAVFoundation): Simple constructor.
1661         * Modules/encryptedmedia/CDMPrivateAVFoundation.mm: Added.
1662         (WebCore::CDMSessionAVFoundation::~CDMSessionAVFoundation): Simple destructor.
1663         (WebCore::CDMPrivateAVFoundation::supportsKeySytem): Check whether the given key system is supported.
1664         (WebCore::CDMPrivateAVFoundation::supportsMIMEType): Check whether the given MIME type is supported.
1665         (WebCore::CDMPrivateAVFoundation::createSession): Return a new CDMSessionAVFoundation.
1666         (WebCore::CDMSessionAVFoundation::CDMSessionAVFoundation): Simple constructor.
1667         (WebCore::CDMSessionAVFoundation::generateKeyRequest): Retrieve the AVAssetResourceLoadingRequest
1668             from the MediaPlayer, and use it to generate a key request.
1669         (WebCore::CDMSessionAVFoundation::releaseKeys): No-op.
1670         (WebCore::CDMSessionAVFoundation::update): Add the passed in key to the AVAssetResourceLoadingRequest.
1671         * WebCore.xcodeproj/project.pbxproj:
1672         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
1673         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1674         (WebCore::playerToPrivateMap): Lazily instantiate static map.
1675         (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Register with the playerToPrivateMap.
1676         (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC): Unregister from same.
1677         (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Also send keyNeeded event in ENCRYPTED_MEDIA_V2.
1678         (WebCore::MediaPlayerPrivateAVFoundationObjC::extractKeyURIKeyIDAndCertificateFromInitData): Convert this 
1679             method from file-static to class static.
1680         (WebCore::MediaPlayerPrivateAVFoundationObjC::takeRequestForPlayerAndKeyURI): Pull the AVAssetResourceLoadingRequest
1681             from m_keyURIToRequestMap and return it, if present.
1682
1683 2013-02-18  Philip Rogers  <pdr@google.com>
1684
1685         Fix scaling of tiled SVG backgrounds on high-dpi displays
1686         https://bugs.webkit.org/show_bug.cgi?id=110047
1687
1688         Reviewed by Dirk Schulze.
1689
1690         This patch fixes the scaling of SVG when used for drawing patterns. Tiled/patterend SVG
1691         images are first drawn into an image buffer and then the image buffer is used to stamp
1692         out tiles. Because it is a raster source, the size of the image buffer needs to
1693         be scaled to the final resolution of the device. After scaling the image buffer, the
1694         source rect and pattern transforms need to be adjusted so they align in device pixel
1695         coordinates. This adjustment was not done before this patch, causing pixelated rendering.
1696
1697         Additionally, a FIXME has been added due to webkit.org/b/110065 and the image buffer
1698         has been manually scaled (using "zoomedAndScaledContainerRect") instead of relying
1699         on the ImageBuffer's resolutionScale parameter.
1700
1701         Test: svg/as-background-image/tiled-background-image.html
1702
1703         * svg/graphics/SVGImage.cpp:
1704         (WebCore::SVGImage::drawPatternForContainer):
1705
1706             Note that fixing the FIXME does not change that the source rect and transform need
1707             to be adjusted for page scale.
1708
1709 2013-02-18  David Hyatt  <hyatt@apple.com>
1710
1711         Make seamless iframes paginate properly in their enclosing document's pagination context.
1712         https://bugs.webkit.org/show_bug.cgi?id=106125
1713         <rdar://problem/12922720> Text in iframe is clipped while printing
1714
1715         Reviewed by Simon Fraser.
1716
1717         Added new tests in fast/multicol and fast/region.
1718
1719         * rendering/RenderBlock.cpp:
1720         (WebCore::RenderBlock::clampToStartAndEndRegions):
1721         Don't clamp when the RenderView is the containing block of an object in a RenderFlowThread.
1722
1723         * rendering/RenderObject.cpp:
1724         (WebCore::RenderObject::containerForRepaint):
1725         Don't attempt any repaint container antics when we're in a seamless iframe, since the ancestor
1726         document will actually do the handoff into the flow thread.
1727
1728         * rendering/RenderView.cpp:
1729         (WebCore::enclosingSeamlessRenderer):
1730         Heper function to test for an enclosing seamless iframe.
1731         
1732         (WebCore::RenderView::addChild):
1733         Subclass addChild on RenderView to properly set the inRenderFlowThread state for a seamless
1734         child document so thta it will check regions.
1735
1736         (WebCore::RenderView::initializeLayoutState):
1737         New helper method for setting up the initial layout state of a RenderView. If inside a seamless
1738         paginated ancestor, set up the appropriate pagination information so the child document
1739         knows about it. This method will expand to inherit info about line grids and exclusions eventually
1740         also.
1741
1742         (WebCore::RenderView::layout):
1743         Now calls initializeLayoutState to set up the layout state.
1744
1745         * rendering/RenderView.h:
1746         (WebCore::RenderView::pageLogicalHeight):
1747         (WebCore::RenderView::setPageLogicalHeight):
1748         (RenderView):
1749         Fix the type of the page logical height methods to be LayoutUnit instead of unsigned.
1750
1751 2013-02-18  Sheriff Bot  <webkit.review.bot@gmail.com>
1752
1753         Unreviewed, rolling out r143145.
1754         http://trac.webkit.org/changeset/143145
1755         https://bugs.webkit.org/show_bug.cgi?id=110143
1756
1757         Causes frequent crashes. (Requested by eric_carlson on
1758         #webkit).
1759
1760         * dom/EventDispatchMediator.cpp:
1761         (WebCore::EventDispatchMediator::dispatchEvent):
1762         * dom/EventDispatcher.cpp:
1763         (WebCore::EventDispatcher::dispatchEvent):
1764         (WebCore::EventDispatcher::EventDispatcher):
1765         (WebCore::EventDispatcher::ensureEventPath):
1766         (WebCore::EventDispatcher::dispatchSimulatedClick):
1767         (WebCore::EventDispatcher::dispatchEventPreProcess):
1768         (WebCore::EventDispatcher::dispatchEventAtCapturing):
1769         (WebCore::EventDispatcher::dispatchEventAtTarget):
1770         (WebCore::EventDispatcher::dispatchEventAtBubbling):
1771         (WebCore::EventDispatcher::dispatchEventPostProcess):
1772         * dom/EventDispatcher.h:
1773         (EventDispatcher):
1774         (WebCore::EventDispatcher::node):
1775         (WebCore):
1776         * dom/FocusEvent.cpp:
1777         (WebCore::FocusEventDispatchMediator::dispatchEvent):
1778         (WebCore::BlurEventDispatchMediator::dispatchEvent):
1779         (WebCore::FocusInEventDispatchMediator::dispatchEvent):
1780         (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
1781         * dom/GestureEvent.cpp:
1782         (WebCore::GestureEventDispatchMediator::dispatchEvent):
1783         * dom/MouseEvent.cpp:
1784         (WebCore::MouseEventDispatchMediator::dispatchEvent):
1785
1786 2013-02-18  Christophe Dumez  <ch.dumez@sisa.samsung.com>
1787
1788         [Soup] Free cookies explicitly in loops instead of using GOwnPtr
1789         https://bugs.webkit.org/show_bug.cgi?id=110103
1790
1791         Reviewed by Martin Robinson.
1792
1793         Free cookies explicitly in loops instead of using GOwnPtr for this.
1794         Until now, the code was mixing both styles. This patch makes the
1795         code consistent one way. Adopting list items with GOwnPtr for the
1796         sole purpose to free them makes the freeing less obvious and may
1797         lead to mistakes if someone refactors the code and calls "break;"
1798         to abort loop iteration.
1799
1800         No new tests, no behavior change.
1801
1802         * platform/network/soup/CookieJarSoup.cpp:
1803         (WebCore::getRawCookies):
1804         (WebCore::deleteCookie):
1805         (WebCore::getHostnamesWithCookies):
1806
1807 2013-02-18  Joseph Pecoraro  <pecoraro@apple.com>
1808
1809         [JSC]: ASSERT in KURL(ParsedURLStringTag) under sourceMapURLForScript
1810         https://bugs.webkit.org/show_bug.cgi?id=109987
1811
1812         Reviewed by Pavel Feldman.
1813
1814         Improved an existing test to cover this.
1815
1816         * bindings/js/ScriptDebugServer.cpp:
1817         (WebCore::ScriptDebugServer::dispatchDidParseSource):
1818         Remove the sourceURL parsing and script.url replacement from the JSC
1819         implementation of ScriptDebugServer. The WebCore inspector code that
1820         this was added for already does this, at a more appropriate time.
1821
1822 2013-02-18  Mike West  <mkwst@chromium.org>
1823
1824         compareDocumentPosition reports disconnected nodes as following each other
1825         https://bugs.webkit.org/show_bug.cgi?id=108274
1826
1827         Reviewed by Dimitri Glazkov.
1828
1829         jQuery has had to implement their own sorting mechanism in Sizzle[1] due
1830         to Node::compareDocumentPosition always reporting disconnected nodes
1831         as following each other. According to spec[2], we should instead be
1832         indicating that the result is (a) disconnected, (b) implementation
1833         specific, and (c) deterministically ordered.
1834
1835         [1]: https://github.com/jquery/sizzle/commit/1c8aec91284af8d8c14447976235d5dd72b0d75e
1836         [2]: http://dom.spec.whatwg.org/#dom-node-comparedocumentposition
1837
1838         Test: fast/dom/compare-document-position-disconnected-nodes.html
1839
1840         * dom/Node.cpp:
1841         (WebCore::Node::compareDocumentPosition):
1842             After walking the parentNode chain of both Nodes, compare the root.
1843             If the Nodes don't share a root, they're in distinct trees, and
1844             should return as described above. We determine which element
1845             "preceeds" the other in an arbitrary fashion via pointer comparison.
1846
1847 2013-02-18  Andrey Adaikin  <aandrey@chromium.org>
1848
1849         Web Inspector: [Canvas] fix replay log grouping by frames
1850         https://bugs.webkit.org/show_bug.cgi?id=110122
1851
1852         Reviewed by Pavel Feldman.
1853
1854         Bug: log grouping by frames did not work if a frame end call is not a draw call.
1855         Drive-by: Last draw call group may not contain a draw call. In this case merge it into the previous group.
1856
1857         * inspector/front-end/CanvasProfileView.js:
1858         (WebInspector.CanvasProfileView.prototype._appendCallNode):
1859         (WebInspector.CanvasProfileView.prototype._maybeMergeLastDrawCallGroups):
1860
1861 2013-02-18  Christophe Dumez  <ch.dumez@sisa.samsung.com>
1862
1863         [Soup] Superfluous HashMap check in SocketStreamHandleSoup::getHandleFromId()
1864         https://bugs.webkit.org/show_bug.cgi?id=110107
1865
1866         Reviewed by Martin Robinson.
1867
1868         Remove Superfluous HashMap::contains() call in SocketStreamHandleSoup::getHandleFromId()
1869         as HashMap::get() will already return 0 in this case anyway.
1870
1871         No new tests, no behavior change.
1872
1873         * platform/network/soup/SocketStreamHandleSoup.cpp:
1874         (WebCore):
1875         (WebCore::getHandleFromId):
1876
1877 2013-02-18  Zan Dobersek  <zdobersek@igalia.com>
1878
1879         Stop placing std::isfinite and std::signbit inside the global scope
1880         https://bugs.webkit.org/show_bug.cgi?id=109817
1881
1882         Reviewed by Darin Adler.
1883
1884         Prefix calls to the isfinite and signbit methods with std:: as the two
1885         methods are no longer being imported into the global scope.
1886
1887         No new tests as there's no change in functionality.
1888
1889         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
1890         (WebCore::JSCanvasRenderingContext2D::setWebkitLineDash):
1891         * bindings/js/JSDOMBinding.cpp:
1892         (WebCore::jsDateOrNull):
1893         * bindings/js/JSDOMBinding.h:
1894         (WebCore::finiteInt32Value):
1895         * bindings/v8/V8Binding.h:
1896         (WebCore::v8DateOrNull):
1897         * css/CSSPrimitiveValue.cpp:
1898         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1899         * html/BaseDateAndTimeInputType.cpp:
1900         (WebCore::BaseDateAndTimeInputType::parseToNumber):
1901         * html/HTMLInputElement.cpp:
1902         (WebCore::HTMLInputElement::setValueAsNumber):
1903         * html/HTMLMeterElement.cpp:
1904         (WebCore::HTMLMeterElement::setMin):
1905         (WebCore::HTMLMeterElement::setMax):
1906         (WebCore::HTMLMeterElement::setValue):
1907         (WebCore::HTMLMeterElement::setLow):
1908         (WebCore::HTMLMeterElement::setHigh):
1909         (WebCore::HTMLMeterElement::setOptimum):
1910         * html/HTMLProgressElement.cpp:
1911         (WebCore::HTMLProgressElement::value):
1912         (WebCore::HTMLProgressElement::setValue):
1913         (WebCore::HTMLProgressElement::max):
1914         (WebCore::HTMLProgressElement::setMax):
1915         * html/MonthInputType.cpp:
1916         (WebCore::MonthInputType::valueAsDate):
1917         (WebCore::MonthInputType::defaultValueForStepUp):
1918         (WebCore::MonthInputType::parseToNumber):
1919         * html/NumberInputType.cpp:
1920         (WebCore::NumberInputType::typeMismatchFor):
1921         (WebCore::NumberInputType::sanitizeValue):
1922         (WebCore::NumberInputType::hasBadInput):
1923         * html/RangeInputType.cpp:
1924         (WebCore::RangeInputType::typeMismatchFor):
1925         * html/TimeInputType.cpp:
1926         (WebCore::TimeInputType::defaultValueForStepUp):
1927         * html/canvas/CanvasPathMethods.cpp:
1928         (WebCore::CanvasPathMethods::moveTo):
1929         (WebCore::CanvasPathMethods::lineTo):
1930         (WebCore::CanvasPathMethods::quadraticCurveTo):
1931         (WebCore::CanvasPathMethods::bezierCurveTo):
1932         (WebCore::CanvasPathMethods::arcTo):
1933         (WebCore::CanvasPathMethods::arc):
1934         (WebCore::CanvasPathMethods::rect):
1935         * html/canvas/CanvasRenderingContext2D.cpp:
1936         (WebCore::CanvasRenderingContext2D::setLineWidth):
1937         (WebCore::CanvasRenderingContext2D::setMiterLimit):
1938         (WebCore::CanvasRenderingContext2D::setShadowOffsetX):
1939         (WebCore::CanvasRenderingContext2D::setShadowOffsetY):
1940         (WebCore::CanvasRenderingContext2D::setShadowBlur):
1941         (WebCore::lineDashSequenceIsValid):
1942         (WebCore::CanvasRenderingContext2D::setLineDashOffset):
1943         (WebCore::CanvasRenderingContext2D::scale):
1944         (WebCore::CanvasRenderingContext2D::rotate):
1945         (WebCore::CanvasRenderingContext2D::translate):
1946         (WebCore::CanvasRenderingContext2D::transform):
1947         (WebCore::CanvasRenderingContext2D::setTransform):
1948         (WebCore::validateRectForCanvas):
1949         (WebCore::CanvasRenderingContext2D::isPointInPath):
1950         (WebCore::CanvasRenderingContext2D::isPointInStroke):
1951         (WebCore::CanvasRenderingContext2D::drawImage):
1952         (WebCore::CanvasRenderingContext2D::createLinearGradient):
1953         (WebCore::CanvasRenderingContext2D::createRadialGradient):
1954         (WebCore::CanvasRenderingContext2D::createImageData):
1955         (WebCore::CanvasRenderingContext2D::getImageData):
1956         (WebCore::CanvasRenderingContext2D::putImageData):
1957         (WebCore::CanvasRenderingContext2D::drawTextInternal):
1958         * html/parser/HTMLParserIdioms.cpp:
1959         (WebCore::parseToDoubleForNumberType):
1960         * html/shadow/MediaControlElements.cpp:
1961         (WebCore::MediaControlTimelineElement::setDuration):
1962         * html/shadow/MediaControls.cpp:
1963         (WebCore::MediaControls::reset):
1964         * html/shadow/MediaControlsApple.cpp:
1965         (WebCore::MediaControlsApple::reset):
1966         * html/shadow/MediaControlsBlackBerry.cpp:
1967         (WebCore::MediaControlFullscreenTimelineElement::setDuration):
1968         (WebCore::MediaControlsBlackBerry::reset):
1969         * inspector/InspectorValues.cpp:
1970         (WebCore::InspectorBasicValue::writeJSON):
1971         * loader/cache/CachedResource.cpp:
1972         (WebCore::CachedResource::currentAge):
1973         (WebCore::CachedResource::freshnessLifetime):
1974         * page/DOMWindow.cpp:
1975         (WebCore::DOMWindow::adjustWindowRect):
1976         * platform/DateComponents.cpp:
1977         (WebCore::DateComponents::setMillisecondsSinceEpochForDate):
1978         (WebCore::DateComponents::setMillisecondsSinceEpochForDateTime):
1979         (WebCore::DateComponents::setMillisecondsSinceEpochForMonth):
1980         (WebCore::DateComponents::setMillisecondsSinceMidnight):
1981         (WebCore::DateComponents::setMonthsSinceEpoch):
1982         (WebCore::DateComponents::setMillisecondsSinceEpochForWeek):
1983         * platform/Decimal.cpp:
1984         (WebCore::Decimal::fromDouble):
1985         * platform/FileSystem.h:
1986         (WebCore::isValidFileTime):
1987         * platform/LocalizedStrings.cpp:
1988         (WebCore::localizedMediaTimeDescription):
1989         * platform/graphics/cairo/CairoUtilities.cpp:
1990         (WebCore::drawPatternToCairoContext):
1991         * platform/graphics/cairo/PathCairo.cpp:
1992         (WebCore::Path::addArc):
1993         (WebCore::Path::contains):
1994         * platform/graphics/cg/PathCG.cpp:
1995         (WebCore::Path::addArc):
1996         * platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.cpp:
1997         (WebCore::FullscreenVideoControllerGStreamer::timeToString):
1998         * platform/graphics/openvg/PathOpenVG.cpp:
1999         (WebCore::Path::addArc):
2000         * platform/graphics/skia/SkiaUtils.h:
2001         (WebCore::WebCoreFloatToSkScalar):
2002         (WebCore::WebCoreDoubleToSkScalar):
2003         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
2004         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::maxTimeSeekable):
2005         * platform/gtk/LocalizedStringsGtk.cpp:
2006         (WebCore::localizedMediaTimeDescription):
2007         * platform/mac/WebVideoFullscreenHUDWindowController.mm:
2008         (timeToString):
2009         * platform/network/ResourceResponseBase.cpp:
2010         (WebCore::parseDateValueInHeader):
2011         * platform/qt/LocalizedStringsQt.cpp:
2012         (WebCore::localizedMediaTimeDescription):
2013         * rendering/RenderFlexibleBox.cpp:
2014         (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
2015         * rendering/RenderMediaControlsChromium.cpp:
2016         (WebCore::formatChromiumMediaControlsTime):
2017         * rendering/RenderTheme.cpp:
2018         (WebCore::RenderTheme::formatMediaControlsTime):
2019         * rendering/style/RenderStyle.cpp:
2020         (WebCore::RenderStyle::setFontSize):
2021         * svg/SVGPathParser.cpp:
2022         (WebCore::SVGPathParser::decomposeArcToCubic):
2023         * xml/XPathFunctions.cpp:
2024         (WebCore::XPath::FunRound::round):
2025         * xml/XPathValue.cpp:
2026         (WebCore::XPath::Value::toString):
2027
2028 2013-02-18  Chris Fleizach  <cfleizach@apple.com>
2029
2030         AX: Make iOS wrapper use the WebAccessibilityObjectBase wrapper
2031         https://bugs.webkit.org/show_bug.cgi?id=110077
2032
2033         Reviewed by David Kilzer.
2034
2035         Make the iOS wrapper a subclass of the shared wrapper so that iOS can re-use code from the Mac.
2036         Rename the iOS file to reflect the class name.
2037
2038         * WebCore.xcodeproj/project.pbxproj:
2039         * accessibility/ios/AXObjectCacheIOS.mm:
2040         (WebCore::AXObjectCache::attachWrapper):
2041         (WebCore::AXObjectCache::postPlatformNotification):
2042         * accessibility/ios/AccessibilityObjectWrapperIOS.h: Removed.
2043         * accessibility/ios/AccessibilityObjectWrapperIOS.mm: Removed.
2044         * accessibility/ios/WebAccessibilityObjectWrapperIOS.h: Copied from Source/WebCore/accessibility/ios/AccessibilityObjectWrapperIOS.h.
2045         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: Copied from Source/WebCore/accessibility/ios/AccessibilityObjectWrapperIOS.mm.
2046         (-[WebAccessibilityObjectWrapper initWithAccessibilityObject:]):
2047         (-[WebAccessibilityObjectWrapper attachmentView]):
2048         (-[WebAccessibilityObjectWrapper accessibilityPostedNotification:WebCore::AXObjectCache::]):
2049
2050 2013-02-18  Sheriff Bot  <webkit.review.bot@gmail.com>
2051
2052         Unreviewed, rolling out r143210.
2053         http://trac.webkit.org/changeset/143210
2054         https://bugs.webkit.org/show_bug.cgi?id=110128
2055
2056         Still causing some test timeouts (Requested by anttik on
2057         #webkit).
2058
2059         * platform/SharedTimer.h:
2060         (SharedTimer):
2061         (WebCore):
2062         (WebCore::MainThreadSharedTimer::stop):
2063         * platform/ThreadTimers.cpp:
2064         (WebCore::ThreadTimers::fireTimersInNestedEventLoop):
2065         * platform/mac/SharedTimerMac.mm:
2066         (WebCore):
2067         (WebCore::PowerObserver::restartSharedTimer):
2068         (WebCore::setSharedTimerFireInterval):
2069         (WebCore::stopSharedTimer):
2070
2071 2013-02-18  Vladislav Kaznacheev  <kaznacheev@chromium.org>
2072
2073         Web Inspector: Disable hiding the debugger when it is below the source code
2074         https://bugs.webkit.org/show_bug.cgi?id=110106
2075
2076         Reviewed by Pavel Feldman.
2077
2078         When the "Split horizontally" option is checked in the Sources panel the button responsible for the sidebar
2079         visibility is hidden and the sidebar is force-shown. Also set the "Split sidebar" option default to true.
2080
2081         No new tests.
2082
2083         * inspector/front-end/ScriptsPanel.js:
2084         (WebInspector.ScriptsPanel):
2085         * inspector/front-end/scriptsPanel.css:
2086         (.split-view-horizontal #scripts-debug-sidebar-resizer-widget):
2087
2088 2013-02-18  Bear Travis  <betravis@adobe.com>
2089
2090         [CSS Exclusions] Support outside-shape layout for shape-inside property
2091         https://bugs.webkit.org/show_bug.cgi?id=102571
2092
2093         Reviewed by David Hyatt.
2094
2095         A shape-inside value of 'outside-shape' should resolve to the value of
2096         the shape-outside property for layout. This patch introduces a helper
2097         method to resolve shape-inside in RenderStyle, and replaces calls to
2098         RenderStyle::shapeInside() when the resolved (layout) value should be
2099         used.
2100
2101         Test: fast/exclusions/shape-inside/shape-inside-outside-shape.html
2102
2103         * rendering/ExclusionShapeInfo.cpp:
2104         (WebCore::::computedShape): Use the resolved shape-inside getter.
2105         * rendering/ExclusionShapeInsideInfo.h:
2106         (WebCore::ExclusionShapeInsideInfo::isEnabledFor): Ditto.
2107         (WebCore::ExclusionShapeInsideInfo::ExclusionShapeInsideInfo): Ditto.
2108         * rendering/RenderBlock.cpp:
2109         (WebCore::RenderBlock::styleDidChange): Ditto.
2110         (WebCore::RenderBlock::exclusionShapeInsideInfo): Ditto.
2111         * rendering/style/RenderStyle.h: Add the resolved shape inside getter.
2112
2113 2013-02-18  Pavel Feldman  <pfeldman@chromium.org>
2114
2115         Web Inspector: hide vertical-sidebar-split in dock-to-right mode behind single experimental flag.
2116         https://bugs.webkit.org/show_bug.cgi?id=110119
2117
2118         Reviewed by Vsevolod Vlasov.
2119
2120         Removed context menus, made it toggle automatically upon dock orientation change.
2121
2122         * inspector/front-end/DockController.js:
2123         (WebInspector.DockController.prototype._toggleDockState):
2124         * inspector/front-end/ElementsPanel.js:
2125         (WebInspector.ElementsPanel):
2126         (WebInspector.ElementsPanel.prototype._sidebarContextMenuEventFired):
2127         (WebInspector.ElementsPanel.prototype._dockSideChanged):
2128         (WebInspector.ElementsPanel.prototype._setVerticalSplit):
2129         * inspector/front-end/ScriptsPanel.js:
2130         (WebInspector.ScriptsPanel):
2131         (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
2132         (WebInspector.ScriptsPanel.prototype._dockSideChanged):
2133         * inspector/front-end/Settings.js:
2134         (WebInspector.ExperimentsSettings):
2135         * inspector/front-end/inspector.css:
2136         * inspector/front-end/scriptsPanel.css:
2137         (#scripts-sidebar-stack-pane):
2138         (div.sidebar-pane-stack#scripts-debug-sidebar-contents):
2139         * inspector/front-end/tabbedPane.css:
2140         (.tabbed-pane):
2141
2142 2013-02-18  ChangSeok Oh  <shivamidow@gmail.com>
2143
2144         [GTK] Fix nits for configuration
2145         https://bugs.webkit.org/show_bug.cgi?id=110083
2146
2147         Reviewed by Martin Robinson.
2148
2149         Remove trailing white space. It has caused annoying warning while configuration.
2150
2151         No new tests since no funtionality change.
2152
2153         * GNUmakefile.list.am:
2154
2155 2013-02-18  Kondapally Kalyan  <kalyan.kondapally@intel.com>
2156
2157         [WebGL][EFL] Refactor GraphicsContext3DPrivate to add support for SharedContext.
2158         https://bugs.webkit.org/show_bug.cgi?id=109988
2159
2160         Reviewed by Kenneth Rohde Christiansen.
2161
2162         Covered by existing WebGL tests.
2163
2164         This patch refactors PlatformContext and GraphicsContext3DPrivate to
2165         add support for Shared Context. This would help share GL resources
2166         between transport surface and offscreen surface without having to worry
2167         about the context state. So far, we used the same drawable as transport
2168         surface and offscreen surface. After this patch we use pixmap surface as
2169         offscreen surface and use shared context to render texture content to
2170         transport surface. This would also align as to how shared surface is implemented
2171         on EFL and Qt ports.
2172
2173         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
2174         (WebCore::GraphicsContext3D::GraphicsContext3D):
2175         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
2176         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
2177         (WebCore):
2178         (WebCore::GraphicsContext3DPrivate::initialize):
2179         (WebCore::GraphicsContext3DPrivate::makeSharedContextCurrent):
2180         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
2181         * platform/graphics/efl/GraphicsContext3DPrivate.h:
2182         (GraphicsContext3DPrivate):
2183         * platform/graphics/opengl/GLPlatformContext.cpp:
2184         (WebCore::GLPlatformContext::initialize):
2185         * platform/graphics/opengl/GLPlatformContext.h:
2186         Needed changes to take shared context into use.
2187
2188         * platform/graphics/opengl/GLPlatformSurface.cpp:
2189         (WebCore::GLPlatformSurface::createOffScreenSurface):
2190         (WebCore::GLPlatformSurface::updateContents):
2191         * platform/graphics/opengl/GLPlatformSurface.h:
2192         (GLPlatformSurface):
2193         * platform/graphics/surfaces/glx/GLXConfigSelector.h:
2194         (WebCore::GLXConfigSelector::GLXConfigSelector):
2195         (WebCore::GLXConfigSelector::visualInfo):
2196         (WebCore::GLXConfigSelector::pixmapContextConfig):
2197         (GLXConfigSelector):
2198         (WebCore::GLXConfigSelector::reset):
2199         * platform/graphics/surfaces/glx/GLXContext.cpp:
2200         Added support to query configiration supporting
2201         pixmap surface.
2202
2203         (WebCore::GLXOffScreenContext::initialize):
2204         * platform/graphics/surfaces/glx/GLXContext.h:
2205         (GLXOffScreenContext):
2206         * platform/graphics/surfaces/glx/GLXSurface.cpp:
2207         (WebCore::GLXTransportSurface::GLXTransportSurface):
2208         (WebCore::GLXTransportSurface::swapBuffers):
2209         (WebCore::GLXOffScreenSurface::GLXOffScreenSurface):
2210         (WebCore::GLXOffScreenSurface::~GLXOffScreenSurface):
2211         (WebCore::GLXOffScreenSurface::initialize):
2212         (WebCore::GLXOffScreenSurface::configuration):
2213         (WebCore::GLXOffScreenSurface::destroy):
2214         (WebCore::GLXOffScreenSurface::freeResources):
2215         (WebCore::GLXOffScreenSurface::setGeometry):
2216         Renamed GLXPBuffer surface as GLXOffScreenSurface.
2217
2218         * platform/graphics/surfaces/glx/GLXSurface.h:
2219         (GLXTransportSurface):
2220         (GLXOffScreenSurface):
2221         * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
2222         (WebCore::GraphicsSurfacePrivate::createSurface):
2223         * platform/graphics/surfaces/glx/X11Helper.cpp:
2224         (WebCore::X11Helper::createPixmap):
2225         (WebCore):
2226         (WebCore::X11Helper::destroyPixmap):
2227         (WebCore::X11Helper::createOffScreenWindow):
2228         * platform/graphics/surfaces/glx/X11Helper.h:
2229         (X11Helper):
2230         Added functions to create and destroy pixmap.
2231
2232 2013-02-18  Ilya Tikhonovsky  <loislo@chromium.org>
2233
2234         Web Inspector: Native Memory Instrumentation: Generate meta information for HeapSnapshot parser.
2235         https://bugs.webkit.org/show_bug.cgi?id=110104
2236
2237         Reviewed by Yury Semikhatsky.
2238
2239         The format of Native heap snapshot is slightly different so it should provide its own meta information.
2240
2241
2242         * inspector/HeapGraphSerializer.cpp:
2243         (WebCore::HeapGraphSerializer::HeapGraphSerializer):
2244         (WebCore::HeapGraphSerializer::finish):
2245         (WebCore::HeapGraphSerializer::reportMemoryUsage):
2246         (WebCore::HeapGraphSerializer::registerTypeString):
2247         (WebCore):
2248         * inspector/HeapGraphSerializer.h:
2249         (HeapGraphSerializer):
2250         * inspector/Inspector.json:
2251         * inspector/InspectorMemoryAgent.cpp:
2252         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2253         (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
2254         * inspector/InspectorMemoryAgent.h:
2255         (InspectorMemoryAgent):
2256         * inspector/front-end/HeapSnapshot.js:
2257         (WebInspector.HeapSnapshot.prototype._buildPostOrderIndex):
2258         * inspector/front-end/NativeHeapSnapshot.js:
2259         (WebInspector.NativeHeapSnapshot):
2260
2261 2013-02-18  Carlos Garcia Campos  <cgarcia@igalia.com>
2262
2263         [GTK] Force single header includes in GObject DOM bindings
2264         https://bugs.webkit.org/show_bug.cgi?id=104676
2265
2266         Reviewed by Xan Lopez.
2267
2268         Only including <webkitdom/webkitdom.h> should be allowed from
2269         apps.
2270
2271         * bindings/scripts/CodeGeneratorGObject.pm:
2272         (GenerateHeader):
2273         * bindings/scripts/gobject-generate-headers.pl:
2274         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
2275         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
2276         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
2277         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
2278         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
2279         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
2280         * bindings/scripts/test/GObject/WebKitDOMTestException.h:
2281         * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
2282         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
2283         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
2284         * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
2285         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
2286         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h:
2287         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
2288
2289 2013-02-16  Antti Koivisto  <antti@apple.com>
2290
2291         Reschedule shared CFRunLoopTimer instead of reconstructing it
2292         https://bugs.webkit.org/show_bug.cgi?id=109765
2293
2294         Reviewed by Andreas Kling.
2295
2296         Using CFRunLoopTimerSetNextFireDate is over 2x faster than deleting and reconstructing timers.
2297
2298         * platform/SharedTimer.h:
2299         (WebCore::SharedTimer::willEnterNestedEventLoop):
2300         (WebCore):
2301         (MainThreadSharedTimer):
2302         (WebCore::MainThreadSharedTimer::willEnterNestedEventLoop):
2303         * platform/ThreadTimers.cpp:
2304         (WebCore::ThreadTimers::fireTimersInNestedEventLoop):
2305         * platform/mac/SharedTimerMac.mm:
2306         (WebCore):
2307         (WebCore::PowerObserver::clearSharedTimer):
2308         (WebCore::ensurePowerObserver):
2309         (WebCore::sharedTimer):
2310         (WebCore::reinsertSharedTimer):
2311         
2312             Before entering nested runloop (used for inspector debugger mostly) reconstruct and reinsert the timer. For some reason
2313             the timer doesn't fire otherwise.
2314
2315         (WebCore::setSharedTimerFireInterval):
2316         (WebCore::stopSharedTimer):
2317
2318 2013-02-18  Alexander Pavlov  <apavlov@chromium.org>
2319
2320         Web Inspector: [Resources] Only remember the tree element selection if explicitly made by user
2321         https://bugs.webkit.org/show_bug.cgi?id=110105
2322
2323         Reviewed by Pavel Feldman.
2324
2325         This change instructs the Resources panel to remember the selected tree element only if it has been
2326         selected by the user (not automatically, like selecting a parent when its child is removed).
2327         All onselect() overrides pass the selectedByUser argument value
2328         to BaseStorageTreeElement.prototype.onselect.
2329         Drive-by: Use === comparisons everywhere.
2330
2331         * inspector/front-end/ResourcesPanel.js:
2332         (WebInspector.ResourcesPanel.prototype._reset): Do not detach [immutable] category views.
2333         (WebInspector.BaseStorageTreeElement.prototype.onselect): Remember itemURL on user gesture only.
2334         (WebInspector.StorageCategoryTreeElement.prototype.onselect):
2335         (WebInspector.FrameTreeElement.prototype.onselect):
2336         (WebInspector.FrameResourceTreeElement.prototype.onselect):
2337         (WebInspector.DatabaseTreeElement.prototype.onselect):
2338         (WebInspector.DatabaseTableTreeElement.prototype.onselect):
2339         (WebInspector.IDBDatabaseTreeElement.prototype.onselect):
2340         (WebInspector.IDBObjectStoreTreeElement.prototype.onselect):
2341         (WebInspector.IDBIndexTreeElement.prototype.onselect):
2342         (WebInspector.DOMStorageTreeElement):
2343         (WebInspector.DOMStorageTreeElement.prototype.onselect):
2344         (WebInspector.CookieTreeElement.prototype.onselect):
2345         (WebInspector.ApplicationCacheManifestTreeElement.prototype.onselect):
2346         (WebInspector.ApplicationCacheFrameTreeElement.prototype.onselect):
2347         (WebInspector.FileSystemTreeElement.prototype.onselect):
2348         (WebInspector.FileSystemTreeElement.prototype.clear):
2349         (WebInspector.ResourcesSearchController.prototype.nextSearchResult):
2350
2351 2013-02-18  Vladislav Kaznacheev  <kaznacheev@chromium.org>
2352
2353         Web Inspector: Color picker should not be available in Computed Styles pane
2354         https://bugs.webkit.org/show_bug.cgi?id=109697
2355
2356         Reviewed by Pavel Feldman.
2357
2358         Refactored PropertiesSection and TreeElement inheritors in StylesSidebarPane.js for cleaner separation
2359         of read-only and editable properties.
2360
2361         * inspector/front-end/StylesSidebarPane.js:
2362         (WebInspector.StylePropertiesSection.prototype.onpopulate):
2363         (WebInspector.StylePropertiesSection.prototype.addNewBlankProperty):
2364         (WebInspector.ComputedStylePropertiesSection):
2365         (WebInspector.ComputedStylePropertiesSection.prototype.onpopulate):
2366         (WebInspector.BlankStylePropertiesSection):
2367         (WebInspector.StylePropertyTreeElementBase):
2368         (WebInspector.StylePropertyTreeElementBase.prototype.node):
2369         (WebInspector.StylePropertyTreeElementBase.prototype.editablePane):
2370         (WebInspector.StylePropertyTreeElementBase.prototype.onattach):
2371         (WebInspector.StylePropertyTreeElementBase.prototype.updateTitle.linkifyURL):
2372         (WebInspector.StylePropertyTreeElementBase.prototype.updateTitle.):
2373         (WebInspector.StylePropertyTreeElementBase.prototype):
2374         (.event):
2375         (.isRevert):
2376
2377 2013-02-18  Andrey Adaikin  <aandrey@chromium.org>
2378
2379         Web Inspector: [Canvas] group replay log calls by frames
2380         https://bugs.webkit.org/show_bug.cgi?id=110101
2381
2382         Reviewed by Pavel Feldman.
2383
2384         Group canvas replay log by frames, then by draw calls.
2385
2386         * inspector/InjectedScriptCanvasModuleSource.js:
2387         (.):
2388         * inspector/Inspector.json:
2389         * inspector/front-end/CanvasProfileView.js:
2390         (WebInspector.CanvasProfileView):
2391         (WebInspector.CanvasProfileView.prototype.dispose):
2392         (WebInspector.CanvasProfileView.prototype._appendCallNode):
2393         (WebInspector.CanvasProfileView.prototype._appendDrawCallGroup):
2394
2395 2013-02-18  Christophe Dumez  <ch.dumez@sisa.samsung.com>
2396
2397         [Soup] CookieJarSoup::deleteCookie() should stop looking for the cookie after it is removed
2398         https://bugs.webkit.org/show_bug.cgi?id=110100
2399
2400         Reviewed by Kenneth Rohde Christiansen.
2401
2402         CookieJarSoup::deleteCookie() retrieves the list of cookies that apply to a given URL, then
2403         iterates through the cookies to find the one with the right name and delete it. However, the
2404         current implementation keeps on comparing cookie names after the cookie was removed. This
2405         patch introduces a "wasDeleted" boolean to stop comparing cookie names after the cookie was
2406         deleted. Note that we cannot break as soon as the cookie is found as we need to keep iterating
2407         so that the cookies get freed by GOwnPtr.
2408
2409         No new tests, no behavior change.
2410
2411         * platform/network/soup/CookieJarSoup.cpp:
2412         (WebCore::deleteCookie):
2413
2414 2013-02-18  Vsevolod Vlasov  <vsevik@chromium.org>
2415
2416         Web Inspector: Create separate project for each domain for UISourceCode based on browser resources.
2417         https://bugs.webkit.org/show_bug.cgi?id=109691
2418
2419         Reviewed by Pavel Feldman.
2420
2421         Separate project of certain type is now created for each domain.
2422         UISourceCode path represents a path in the project now.
2423         UISourceCode uri is now calculated based on project id and path.
2424         It is also possible to calculate path based on projectId and URI, which is used for uiSourceCodeForURI() methods.
2425
2426         * inspector/front-end/FileSystemProjectDelegate.js:
2427         (WebInspector.FileSystemProjectDelegate.prototype._filePathForPath):
2428         (WebInspector.FileSystemProjectDelegate.prototype.setFileContent):
2429         (WebInspector.FileSystemProjectDelegate.prototype._populate.filesLoaded):
2430         (WebInspector.FileSystemProjectDelegate.prototype._populate):
2431         (WebInspector.FileSystemProjectDelegate.prototype._removeFile):
2432         * inspector/front-end/ScriptSnippetModel.js:
2433         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
2434         * inspector/front-end/SimpleWorkspaceProvider.js:
2435         (WebInspector.SimpleProjectDelegate):
2436         (WebInspector.SimpleProjectDelegate.projectId):
2437         (WebInspector.SimpleProjectDelegate.prototype.id):
2438         (WebInspector.SimpleProjectDelegate.prototype.displayName):
2439         (WebInspector.SimpleProjectDelegate.prototype.addFile):
2440         (WebInspector.SimpleWorkspaceProvider):
2441         (WebInspector.SimpleWorkspaceProvider.splitURL):
2442         (WebInspector.SimpleWorkspaceProvider._pathForSplittedURL):
2443         (WebInspector.SimpleWorkspaceProvider.uriForURL):
2444         (WebInspector.SimpleWorkspaceProvider.prototype._projectDelegate):
2445         (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
2446         (WebInspector.SimpleWorkspaceProvider.prototype.addFileByName):
2447         (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFile):
2448         (WebInspector.SimpleWorkspaceProvider.prototype.removeFileByName):
2449         (WebInspector.SimpleWorkspaceProvider.prototype.reset):
2450         * inspector/front-end/UISourceCode.js:
2451         (WebInspector.UISourceCode.uri):
2452         (WebInspector.UISourceCode.path):
2453         (WebInspector.UISourceCode.prototype.uri):
2454         * inspector/front-end/Workspace.js:
2455         (WebInspector.Project.prototype._fileAdded):
2456         (WebInspector.Project.prototype._fileRemoved):
2457         (WebInspector.Project.prototype.uiSourceCodeForURI):
2458
2459 2013-02-18  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2460
2461         [EFL] Rebaseline failure media tests after r142947
2462         https://bugs.webkit.org/show_bug.cgi?id=109904
2463
2464         Reviewed by Kenneth Rohde Christiansen.
2465
2466         * css/mediaControlsEfl.css: Align time text vertically.
2467         (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
2468
2469 2013-02-18  Vsevolod Vlasov  <vsevik@chromium.org>
2470
2471         Web Inspector: Extract FileSystemUtils from FileSystemProjectDelegate as IsolatedFileSystem class.
2472         https://bugs.webkit.org/show_bug.cgi?id=110086
2473
2474         Reviewed by Pavel Feldman.
2475
2476         Extracted IsolatedFileSystem class that could be mocked for tests now.
2477         Renamed IsolatedFileSystemModel to IsolatedFileSystemManager.
2478
2479         * WebCore.gypi:
2480         * WebCore.vcproj/WebCore.vcproj:
2481         * inspector/compile-front-end.py:
2482         * inspector/front-end/FileSystemProjectDelegate.js:
2483         (WebInspector.FileSystemProjectDelegate):
2484         (WebInspector.FileSystemProjectDelegate.prototype.id):
2485         (WebInspector.FileSystemProjectDelegate.prototype.displayName):
2486         (WebInspector.FileSystemProjectDelegate.prototype.setFileContent):
2487         (WebInspector.FileSystemProjectDelegate.prototype._populate.filesLoaded):
2488         (WebInspector.FileSystemProjectDelegate.prototype._populate):
2489         * inspector/front-end/IsolatedFileSystem.js: Added.
2490         (WebInspector.IsolatedFileSystem):
2491         (WebInspector.IsolatedFileSystem.errorMessage):
2492         (WebInspector.IsolatedFileSystem.prototype.id):
2493         (WebInspector.IsolatedFileSystem.prototype.path):
2494         (WebInspector.IsolatedFileSystem.prototype._requestFileSystem):
2495         (WebInspector.IsolatedFileSystem.prototype.fileSystemLoaded):
2496         (WebInspector.IsolatedFileSystem.prototype.innerCallback):
2497         (WebInspector.IsolatedFileSystem.prototype.requestFilesRecursive):
2498         (WebInspector.IsolatedFileSystem.prototype.fileEntryLoaded):
2499         (WebInspector.IsolatedFileSystem.prototype.fileLoaded):
2500         (WebInspector.IsolatedFileSystem.prototype.readerLoadEnd):
2501         (WebInspector.IsolatedFileSystem.prototype.errorHandler):
2502         (WebInspector.IsolatedFileSystem.prototype.requestFileContent):
2503         (WebInspector.IsolatedFileSystem.prototype.fileWriterCreated.fileTruncated):
2504         (WebInspector.IsolatedFileSystem.prototype.fileWriterCreated):
2505         (WebInspector.IsolatedFileSystem.prototype.writerEnd):
2506         (WebInspector.IsolatedFileSystem.prototype.setFileContent):
2507         (WebInspector.IsolatedFileSystem.prototype.):
2508         (WebInspector.IsolatedFileSystem.prototype.toArray):
2509         (WebInspector.IsolatedFileSystem.prototype._readDirectory):
2510         (WebInspector.IsolatedFileSystem.prototype._requestEntries):
2511         * inspector/front-end/IsolatedFileSystemManager.js: Renamed from Source/WebCore/inspector/front-end/IsolatedFileSystemModel.js.
2512         (WebInspector.IsolatedFileSystemManager):
2513         (WebInspector.IsolatedFileSystemManager.prototype.mapping):
2514         (WebInspector.IsolatedFileSystemManager.prototype.supportsFileSystems):
2515         (WebInspector.IsolatedFileSystemManager.prototype._requestFileSystems):
2516         (WebInspector.IsolatedFileSystemManager.prototype.addFileSystem):
2517         (WebInspector.IsolatedFileSystemManager.prototype.removeFileSystem):
2518         (WebInspector.IsolatedFileSystemManager.prototype._fileSystemsLoaded):
2519         (WebInspector.IsolatedFileSystemManager.prototype._innerAddFileSystem):
2520         (WebInspector.IsolatedFileSystemManager.prototype._fileSystemPaths):
2521         (WebInspector.IsolatedFileSystemManager.prototype._processPendingFileSystemRequests):
2522         (WebInspector.IsolatedFileSystemManager.prototype._fileSystemAdded):
2523         (WebInspector.IsolatedFileSystemManager.prototype._fileSystemRemoved):
2524         (WebInspector.IsolatedFileSystemManager.prototype._isolatedFileSystem):
2525         (WebInspector.IsolatedFileSystemManager.prototype.requestDOMFileSystem):
2526         (WebInspector.IsolatedFileSystemDispatcher):
2527         (WebInspector.IsolatedFileSystemDispatcher.prototype.fileSystemsLoaded):
2528         (WebInspector.IsolatedFileSystemDispatcher.prototype.fileSystemRemoved):
2529         (WebInspector.IsolatedFileSystemDispatcher.prototype.fileSystemAdded):
2530         * inspector/front-end/SettingsScreen.js:
2531         (WebInspector.WorkspaceSettingsTab.prototype._createFileSystemsEditor):
2532         (WebInspector.WorkspaceSettingsTab.prototype._addFileSystemRow.removeFileSystemClicked):
2533         (WebInspector.WorkspaceSettingsTab.prototype._addFileSystemClicked):
2534         * inspector/front-end/WebKit.qrc:
2535         * inspector/front-end/inspector.html:
2536         * inspector/front-end/inspector.js:
2537
2538 2013-02-18  Huang Dongsung  <luxtella@company100.net>
2539
2540         [EFL][WK2] compositing/layer-creation/fixed-position-out-of-view-scaled.html is flaky
2541         https://bugs.webkit.org/show_bug.cgi?id=110059
2542
2543         Reviewed by Kenneth Rohde Christiansen.
2544
2545         Remove the ASSERT check in TextureMapperLayer. This assertion seems
2546         valid because CoordinatedGraphicsScene::adjustPositionForFixedLayers() calls
2547         TextureMapperLayer::setScrollPositionDeltaIfNeeded() when the graphics
2548         layer is a fixed position layer. However, the assertion can be failed
2549         because it is possible that TextureMapperLayer is a non-fixed position
2550         layer when the graphics layer that holds the TextureMapperLayer is a
2551         fixed position layer. When CoordinatedGraphicsScene flushes,
2552         TextureMapperLayer becomes a fixed position layer.
2553
2554         No new tests. No change in behavior.
2555
2556         * platform/graphics/texmap/TextureMapperLayer.cpp:
2557         (WebCore::TextureMapperLayer::setScrollPositionDeltaIfNeeded):
2558
2559 2013-02-18  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
2560
2561         [WK2][EFL] Unified text checker implementation
2562         https://bugs.webkit.org/show_bug.cgi?id=107682
2563
2564         Reviewed by Anders Carlsson.
2565
2566         No new tests, covered by editing/spelling tests.
2567
2568         * platform/text/TextChecking.h:
2569         (WebCore):
2570         Enabling unified text checker feature for WebKit-EFL.
2571
2572 2013-02-18  Nico Weber  <thakis@chromium.org>
2573
2574         [chromium/clang] Remove -Wno-return-type-c-linkage
2575         https://bugs.webkit.org/show_bug.cgi?id=110098
2576
2577         Reviewed by Jochen Eisinger.
2578
2579         The one instance where this triggered was removed in
2580         http://trac.webkit.org/changeset/141184 . A clang that has this
2581         warning landed in chromium r182694, so it should be safe to turn
2582         the warning on now.
2583
2584         * WebCore.gyp/WebCore.gyp:
2585
2586 2013-02-18  Pavel Feldman  <pfeldman@chromium.org>
2587
2588         Web Inspector: provide basic console.table implementation (no [,columns] support)
2589         https://bugs.webkit.org/show_bug.cgi?id=109453
2590
2591         Reviewed by Vsevolod Vlasov.
2592
2593         Test: inspector/console/console-format-table.html
2594
2595         Using console preview infrastructure to support console.table.
2596
2597         * English.lproj/localizedStrings.js:
2598         * inspector/ConsoleAPITypes.h:
2599         * inspector/ConsoleMessage.cpp:
2600         (WebCore::messageTypeValue):
2601         (WebCore::ConsoleMessage::addToFrontend):
2602         * inspector/InjectedScript.cpp:
2603         (WebCore::InjectedScript::wrapObject):
2604         (WebCore):
2605         (WebCore::InjectedScript::wrapTable):
2606         * inspector/InjectedScript.h:
2607         (InjectedScript):
2608         * inspector/InjectedScriptSource.js:
2609         (.):
2610         * inspector/Inspector.json:
2611         * inspector/InspectorDOMAgent.cpp:
2612         (WebCore::InspectorDOMAgent::buildObjectForEventListener):
2613         * inspector/front-end/ConsoleMessage.js:
2614         (WebInspector.ConsoleMessageImpl):
2615         (WebInspector.ConsoleMessageImpl.prototype.willHide):
2616         (WebInspector.ConsoleMessageImpl.prototype._format):
2617         (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
2618         (WebInspector.ConsoleMessageImpl.prototype._renderPropertyPreview):
2619         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
2620         * inspector/front-end/ConsoleModel.js:
2621         * inspector/front-end/ConsoleView.js:
2622         (WebInspector.ConsoleView.prototype._appendConsoleMessage):
2623         (WebInspector.ConsoleView.prototype._consoleCleared):
2624         (WebInspector.ConsoleView.prototype._updateMessageList):
2625         (WebInspector.ConsoleCommand.prototype.wasShown):
2626         (WebInspector.ConsoleCommand.prototype.willHide):
2627         (WebInspector.ConsoleGroup.prototype.addMessage):
2628         * inspector/front-end/DataGrid.js:
2629         (.sortDataGrid.comparator):
2630         (.sortDataGrid):
2631         (WebInspector.DataGrid.createSortableDataGrid):
2632         (WebInspector.DataGrid.prototype.renderInline):
2633         * inspector/front-end/DatabaseQueryView.js:
2634         (WebInspector.DatabaseQueryView.prototype._queryFinished):
2635         * inspector/front-end/dataGrid.css:
2636         (.data-grid.inline):
2637         (.data-grid.inline td.corner):
2638         * inspector/front-end/resourcesPanel.css:
2639         (.storage-view > .data-grid):
2640         * page/Console.cpp:
2641         (WebCore::Console::table):
2642         (WebCore):
2643         * page/Console.h:
2644         (Console):
2645         * page/Console.idl:
2646
2647 2013-02-18  Vsevolod Vlasov  <vsevik@chromium.org>
2648
2649         Web Inspector: JavaScriptSourceFrame should inherit UISourceCodeFrame
2650         https://bugs.webkit.org/show_bug.cgi?id=110091
2651
2652         Reviewed by Pavel Feldman.
2653
2654         Removed duplicated code from JavaScriptSourceFrame and made it inherit UISourceCodeFrame.
2655
2656         * inspector/front-end/JavaScriptSourceFrame.js:
2657         (WebInspector.JavaScriptSourceFrame):
2658         (WebInspector.JavaScriptSourceFrame.prototype.onUISourceCodeContentChanged):
2659         (WebInspector.JavaScriptSourceFrame.prototype.populateTextAreaContextMenu):
2660         * inspector/front-end/ScriptsPanel.js:
2661         * inspector/front-end/UISourceCodeFrame.js:
2662         (WebInspector.UISourceCodeFrame.prototype.canEditSource):
2663         (WebInspector.UISourceCodeFrame.prototype.onTextChanged):
2664         (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
2665         (WebInspector.UISourceCodeFrame.prototype.onUISourceCodeContentChanged):
2666         (WebInspector.UISourceCodeFrame.prototype._innerSetContent):
2667
2668 2013-02-18  Vsevolod Vlasov  <vsevik@chromium.org>
2669
2670         Web Inspector: Remove unused _files field in FileSystemProjectDelegate
2671         https://bugs.webkit.org/show_bug.cgi?id=110082
2672
2673         Reviewed by Pavel Feldman.
2674
2675         * inspector/front-end/FileSystemProjectDelegate.js:
2676         (WebInspector.FileSystemProjectDelegate):
2677         (WebInspector.FileSystemProjectDelegate.prototype._addFile):
2678         (WebInspector.FileSystemProjectDelegate.prototype._removeFile):
2679
2680 2013-02-18  Pavel Feldman  <pfeldman@chromium.org>
2681
2682         Web Inspector: allow 0 as a formatted parameter in console message.
2683         https://bugs.webkit.org/show_bug.cgi?id=110096
2684
2685         Reviewed by Vsevolod Vlasov.
2686
2687         * inspector/front-end/ConsoleMessage.js:
2688         (WebInspector.ConsoleMessageImpl.prototype.append):
2689         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
2690
2691 2013-02-18  Ilya Tikhonovsky  <loislo@chromium.org>
2692
2693         Unreviewed speculative fix for Chromium Mac.
2694
2695         * WebCore.gypi:
2696
2697 2013-02-13  Ilya Tikhonovsky  <loislo@chromium.org>
2698
2699         Web Inspector: Native Memory Instrumentation: reportLeaf method doesn't report the leaf node properly.
2700         https://bugs.webkit.org/show_bug.cgi?id=109554
2701
2702         In some cases leaves have no pointer so with the old schema we can't generate nodeId for them because we
2703         can't insert 0 into hashmap. It happens when we call addPrivateBuffer method.
2704
2705         Drive by fix: I introduced a client interface for the HeapGraphSerializer.
2706         It helps me to do the tests for the serializer.
2707
2708         Reviewed by Yury Semikhatsky.
2709
2710         It is covered by newly added tests in TestWebKitAPI.
2711
2712         * inspector/HeapGraphSerializer.cpp:
2713         (WebCore::HeapGraphSerializer::HeapGraphSerializer):
2714         (WebCore::HeapGraphSerializer::pushUpdate):
2715         (WebCore::HeapGraphSerializer::reportNode):
2716         (WebCore::HeapGraphSerializer::toNodeId):
2717         (WebCore::HeapGraphSerializer::addRootNode):
2718         * inspector/HeapGraphSerializer.h:
2719         (HeapGraphSerializer):
2720         (Client):
2721         (WebCore::HeapGraphSerializer::Client::~Client):
2722         * inspector/InspectorMemoryAgent.cpp:
2723         (WebCore):
2724         (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
2725
2726 2013-02-18  Sheriff Bot  <webkit.review.bot@gmail.com>
2727
2728         Unreviewed, rolling out r143100.
2729         http://trac.webkit.org/changeset/143100
2730         https://bugs.webkit.org/show_bug.cgi?id=110088
2731
2732         Breaks file system support in workspace. (Requested by vsevik
2733         on #webkit).
2734
2735         * inspector/front-end/ScriptSnippetModel.js:
2736         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
2737         * inspector/front-end/SimpleWorkspaceProvider.js:
2738         (WebInspector.SimpleProjectDelegate):
2739         (WebInspector.SimpleProjectDelegate.prototype.id):
2740         (WebInspector.SimpleProjectDelegate.prototype.displayName):
2741         (WebInspector.SimpleProjectDelegate.prototype.addFile):
2742         (WebInspector.SimpleWorkspaceProvider):
2743         (WebInspector.SimpleWorkspaceProvider.uriForURL):
2744         (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
2745         (WebInspector.SimpleWorkspaceProvider.prototype.removeFile):
2746         (WebInspector.SimpleWorkspaceProvider.prototype.reset):
2747         * inspector/front-end/UISourceCode.js:
2748         (WebInspector.UISourceCode.prototype.uri):
2749         * inspector/front-end/Workspace.js:
2750         (WebInspector.Project.prototype._fileAdded):
2751         (WebInspector.Project.prototype._fileRemoved):
2752         (WebInspector.Project.prototype.uiSourceCodeForURI):
2753         (WebInspector.Workspace.prototype.projectForUISourceCode):
2754
2755 2013-02-15  Eugene Klyuchnikov  <eustas@chromium.org>
2756
2757         Web Inspector: Introduce ProfilesPanelDescriptor.
2758         https://bugs.webkit.org/show_bug.cgi?id=109906
2759
2760         Reviewed by Pavel Feldman.
2761
2762         Some constants/methods should be accesible before ProfilesPanel
2763         is instantiated.
2764
2765         Extracted methods to check if profile is "user-initiated" and what is
2766         its index.
2767
2768         Also profile URL regexp moved to ProfilesPanelDescriptor.
2769
2770         * inspector/front-end/ProfilesPanelDescriptor.js: Added.
2771         * WebCore.gypi: Added ProfilesPanelDescriptor.js
2772         * WebCore.vcproj/WebCore.vcproj: Ditto.
2773         * inspector/compile-front-end.py: Ditto.
2774         * inspector/front-end/WebKit.qrc: Ditto.
2775         * inspector/front-end/inspector.html: Ditto.
2776         * inspector/front-end/HeapSnapshotView.js: Adopted changes.
2777         * inspector/front-end/ProfilesPanel.js: Ditto.
2778         * inspector/front-end/externs.js: Ditto.
2779         * inspector/front-end/inspector.js: Ditto.
2780
2781 2013-02-17  Dimitri Glazkov  <dglazkov@chromium.org>
2782
2783         Stop passing around SelectorChecker in SelectorQuery, now that it's stack-allocated.
2784         https://bugs.webkit.org/show_bug.cgi?id=110038
2785
2786         Reviewed by Andreas Kling.
2787
2788         No functional changes, covered by existing tests.
2789
2790         * dom/SelectorQuery.cpp:
2791         (WebCore::SelectorDataList::matches): Moved instantiation of SelectorChecker in here.
2792         (WebCore::SelectorDataList::queryAll): Got rid of unneeded SelectorChecker arg.
2793         (WebCore::SelectorDataList::queryFirst): Ditto.
2794         (WebCore::SelectorDataList::execute): Moved instantiation of SelectorChecker in here.
2795         (WebCore::SelectorQuery::matches): Removed instantiation of SelectorChecker here.
2796         (WebCore::SelectorQuery::queryAll): Ditto.
2797         (WebCore::SelectorQuery::queryFirst): Ditto.
2798         * dom/SelectorQuery.h:
2799         (WebCore): Tweaked headers to make SelectorChecker just an implementation detail.
2800         (SelectorDataList): Tweaked decls to remove SelectorChecker args.
2801
2802 2013-02-17  Dimitri Glazkov  <dglazkov@chromium.org>
2803
2804         Stop passing around SelectorChecker in ContentSelectorQuery.
2805         https://bugs.webkit.org/show_bug.cgi?id=110041
2806
2807         Now that SelectorChecker has no interesting state, we can simplify ContentSelectorQuery and get rid of a class.
2808
2809         Reviewed by Andreas Kling.
2810
2811         No functional changes, covered by existing tests.
2812
2813         * html/shadow/ContentSelectorQuery.cpp:
2814         (WebCore::ContentSelectorDataList::checkContentSelector): Zapped ContentSelectorChecker and moved its only remaining method here.
2815         (WebCore::ContentSelectorDataList::matches): Removed SelectorChecker argument.
2816         (WebCore::ContentSelectorQuery::ContentSelectorQuery): Removed an unnecessary member.
2817         (WebCore::ContentSelectorQuery::matches): Removed unnecessary argument.
2818         * html/shadow/ContentSelectorQuery.h:
2819         (WebCore): Cleaned up the file.
2820         (ContentSelectorDataList): Updated decls.
2821         (ContentSelectorQuery): Ditto.
2822
2823 2013-02-17  Mike West  <mkwst@chromium.org>
2824
2825         WheelEvent should not target text nodes.
2826         https://bugs.webkit.org/show_bug.cgi?id=109939
2827
2828         Reviewed by Darin Adler.
2829
2830         WheelEvent, like other mouse events, should not target text nodes.
2831         EventHandler correctly handles other mouse events by retargeting
2832         events to text nodes' parents; this patch adds that logic to the
2833         WheelEvent handler.
2834
2835         This should allow jQuery to stop working around WebKit's behavior[1].
2836
2837         [1]: https://github.com/jquery/jquery/commit/c61150427fc8ccc8e884df8f221a6c9bb5477929
2838
2839         Test: fast/events/wheelevent-in-text-node.html
2840
2841         * page/EventHandler.cpp:
2842         (WebCore::EventHandler::handleWheelEvent):
2843             If a WheelEvent's hit test lands on a text node, retarget the
2844             event to the text node's parent. Do this before latching the node.
2845
2846 2013-02-17  Filip Pizlo  <fpizlo@apple.com>
2847
2848         Move all Structure out-of-line inline methods to StructureInlines.h
2849         https://bugs.webkit.org/show_bug.cgi?id=110024
2850
2851         Rubber stamped by Sam Weinig.
2852
2853         No new tests because no new behavior. Just rewiring includes.
2854
2855         * ForwardingHeaders/parser/SourceProviderCache.h: Added.
2856         * loader/cache/CachedScript.cpp:
2857
2858 2013-02-17  Hayato Ito  <hayato@chromium.org>
2859
2860         Make EventDispatcher take an Event object in its constructor.
2861         https://bugs.webkit.org/show_bug.cgi?id=109898
2862
2863         Reviewed by Dimitri Glazkov.
2864
2865         That makes EventDispatcher more RAII-like so that we can calculate
2866         an EventPath in its constructor.  I'll remove
2867         EventDispatcher::ensureEventPath() in a following patch.
2868
2869         No tests. No change in behavior.
2870
2871         * dom/EventDispatchMediator.cpp:
2872         (WebCore::EventDispatchMediator::dispatchEvent):
2873         * dom/EventDispatcher.cpp:
2874         (WebCore::EventDispatcher::dispatchEvent):
2875         (WebCore::EventDispatcher::EventDispatcher):
2876         (WebCore::EventDispatcher::ensureEventPath):
2877         (WebCore::EventDispatcher::dispatchSimulatedClick):
2878         (WebCore::EventDispatcher::dispatch):
2879         (WebCore::EventDispatcher::dispatchEventPreProcess):
2880         (WebCore::EventDispatcher::dispatchEventAtCapturing):
2881         (WebCore::EventDispatcher::dispatchEventAtTarget):
2882         (WebCore::EventDispatcher::dispatchEventAtBubbling):
2883         (WebCore::EventDispatcher::dispatchEventPostProcess):
2884         * dom/EventDispatcher.h:
2885         (EventDispatcher):
2886         (WebCore::EventDispatcher::node):
2887         (WebCore::EventDispatcher::event):
2888         * dom/FocusEvent.cpp:
2889         (WebCore::FocusEventDispatchMediator::dispatchEvent):
2890         (WebCore::BlurEventDispatchMediator::dispatchEvent):
2891         (WebCore::FocusInEventDispatchMediator::dispatchEvent):
2892         (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
2893         * dom/GestureEvent.cpp:
2894         (WebCore::GestureEventDispatchMediator::dispatchEvent):
2895         * dom/MouseEvent.cpp:
2896         (WebCore::MouseEventDispatchMediator::dispatchEvent):
2897
2898 2013-02-17  Philip Rogers  <pdr@google.com>
2899
2900         Fix non-root SVG viewport under zoom
2901         https://bugs.webkit.org/show_bug.cgi?id=99453
2902
2903         Reviewed by Dirk Schulze.
2904
2905         The root SVG element handles zoom differently than other SVG nodes because it needs
2906         to translate between CSS (where zoom is applied to all units) and SVG (where zoom is only
2907         applied at the top level). A good description of this difference can be found here:
2908         http://trac.webkit.org/browser/trunk/Source/WebCore/css/StyleResolver.cpp?rev=142855#L2598
2909
2910         SVG elements can appear as children in the SVG tree as well, and in this mode
2911         SVGSVGElement should not consider the current zoom level. This patch fixes a bug
2912         where non-root viewport calculations were removing zoom.
2913
2914         Test: svg/custom/symbol-zoom.html
2915
2916         * svg/SVGSVGElement.cpp:
2917         (WebCore::SVGSVGElement::currentViewportSize):
2918             This change removes the unnecessary zoom calculation for non-root nodes. This is similar
2919             to how zoom is handled elsewhere, e.g., SVGSVGElement::localCoordinateSpaceTransform.
2920
2921 2013-02-17  Chris Fleizach  <cfleizach@apple.com>
2922
2923         AX: Upstream iOS Accessibility files
2924         https://bugs.webkit.org/show_bug.cgi?id=110071
2925
2926         Reviewed by David Kilzer.
2927
2928         Upstream the iOS Accessibility files for WebCore. 
2929
2930         * WebCore.xcodeproj/project.pbxproj:
2931         * accessibility/ios: Added.
2932         * accessibility/ios/AXObjectCacheIOS.mm: Added.
2933         (WebCore):
2934         (WebCore::AXObjectCache::detachWrapper):
2935         (WebCore::AXObjectCache::attachWrapper):
2936         (WebCore::AXObjectCache::postPlatformNotification):
2937         (WebCore::AXObjectCache::nodeTextChangePlatformNotification):
2938         (WebCore::AXObjectCache::frameLoadingEventPlatformNotification):
2939         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
2940         (WebCore::AXObjectCache::handleScrolledToAnchor):
2941         * accessibility/ios/AccessibilityObjectIOS.mm: Added.
2942         (-[WAKView accessibilityIsIgnored]):
2943         (WebCore):
2944         (WebCore::AccessibilityObject::detachFromParent):
2945         (WebCore::AccessibilityObject::overrideAttachmentParent):
2946         (WebCore::AccessibilityObject::accessibilityPasswordFieldLength):
2947         (WebCore::AccessibilityObject::accessibilityIgnoreAttachment):
2948         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
2949         * accessibility/ios/AccessibilityObjectWrapperIOS.h: Added.
2950         (WAKView):
2951         * accessibility/ios/AccessibilityObjectWrapperIOS.mm: Added.
2952         (AccessibilityUnignoredAncestor):
2953         (-[WebAccessibilityTextMarker initWithTextMarker:cache:]):
2954         (-[WebAccessibilityTextMarker initWithData:cache:]):
2955         (-[WebAccessibilityTextMarker initWithData:accessibilityObject:]):
2956         (+[WebAccessibilityTextMarker textMarkerWithVisiblePosition:cache:]):
2957         (-[WebAccessibilityTextMarker dataRepresentation]):
2958         (-[WebAccessibilityTextMarker visiblePosition]):
2959         (-[WebAccessibilityTextMarker description]):
2960         (-[WebAccessibilityObjectWrapper initWithAccessibilityObject:]):
2961         (-[WebAccessibilityObjectWrapper detach]):
2962         (-[WebAccessibilityObjectWrapper dealloc]):
2963         (-[WebAccessibilityObjectWrapper _prepareAccessibilityCall]):
2964         (-[WebAccessibilityObjectWrapper accessibilityObject]):
2965         (-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
2966         (-[WebAccessibilityObjectWrapper accessibilityPostProcessHitTest:]):
2967         (-[WebAccessibilityObjectWrapper accessibilityHitTest:]):
2968         (-[WebAccessibilityObjectWrapper accessibilityElementCount]):
2969         (-[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]):
2970         (-[WebAccessibilityObjectWrapper indexOfAccessibilityElement:]):
2971         (-[WebAccessibilityObjectWrapper accessibilityLanguage]):
2972         (-[WebAccessibilityObjectWrapper _accessibilityIsLandmarkRole:]):
2973         (-[WebAccessibilityObjectWrapper _accessibilityListAncestor]):
2974         (-[WebAccessibilityObjectWrapper _accessibilityLandmarkAncestor]):
2975         (-[WebAccessibilityObjectWrapper _accessibilityTableAncestor]):
2976         (-[WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]):
2977         (-[WebAccessibilityObjectWrapper accessibilityTraits]):
2978         (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
2979         (-[WebAccessibilityObjectWrapper isAccessibilityElement]):
2980         (-[WebAccessibilityObjectWrapper stringValueShouldBeUsedInLabel]):
2981         (-[WebAccessibilityObjectWrapper accessibilityLabel]):
2982         (-[WebAccessibilityObjectWrapper tableCellParent]):
2983         (-[WebAccessibilityObjectWrapper tableParent]):
2984         (-[WebAccessibilityObjectWrapper accessibilityTitleElement]):
2985         (-[WebAccessibilityObjectWrapper accessibilityHeaderElements]):
2986         (-[WebAccessibilityObjectWrapper accessibilityElementForRow:andColumn:]):
2987         (-[WebAccessibilityObjectWrapper accessibilityRowRange]):
2988         (-[WebAccessibilityObjectWrapper accessibilityColumnRange]):
2989         (-[WebAccessibilityObjectWrapper accessibilityPlaceholderValue]):
2990         (-[WebAccessibilityObjectWrapper accessibilityValue]):
2991         (-[WebAccessibilityObjectWrapper accessibilityIsComboBox]):
2992         (-[WebAccessibilityObjectWrapper accessibilityHint]):
2993         (-[WebAccessibilityObjectWrapper accessibilityURL]):
2994         (-[WebAccessibilityObjectWrapper _convertIntRectToScreenCoordinates:]):
2995         (-[WebAccessibilityObjectWrapper accessibilityElementRect]):
2996         (-[WebAccessibilityObjectWrapper accessibilityActivationPoint]):
2997         (-[WebAccessibilityObjectWrapper accessibilityFrame]):
2998         (-[WebAccessibilityObjectWrapper containsUnnaturallySegmentedChildren]):
2999         (-[WebAccessibilityObjectWrapper accessibilityContainer]):
3000         (-[WebAccessibilityObjectWrapper accessibilityFocusedUIElement]):
3001         (-[WebAccessibilityObjectWrapper _accessibilityWebDocumentView]):
3002         (-[WebAccessibilityObjectWrapper _accessibilityNextElementsWithCount:]):
3003         (-[WebAccessibilityObjectWrapper _accessibilityPreviousElementsWithCount:]):
3004         (-[WebAccessibilityObjectWrapper accessibilityRequired]):
3005         (-[WebAccessibilityObjectWrapper accessibilityFlowToElements]):
3006         (-[WebAccessibilityObjectWrapper accessibilityLinkedElement]):
3007         (-[WebAccessibilityObjectWrapper isAttachment]):
3008         (-[WebAccessibilityObjectWrapper _accessibilityActivate]):
3009         (-[WebAccessibilityObjectWrapper attachmentView]):
3010         (rendererForView):
3011         (-[WebAccessibilityObjectWrapper _accessibilityParentForSubview:]):
3012         (-[WebAccessibilityObjectWrapper postFocusChangeNotification]):
3013         (-[WebAccessibilityObjectWrapper postSelectedTextChangeNotification]):
3014         (-[WebAccessibilityObjectWrapper postLayoutChangeNotification]):
3015         (-[WebAccessibilityObjectWrapper postLiveRegionChangeNotification]):
3016         (-[WebAccessibilityObjectWrapper postLoadCompleteNotification]):
3017         (-[WebAccessibilityObjectWrapper postChildrenChangedNotification]):
3018         (-[WebAccessibilityObjectWrapper postInvalidStatusChangedNotification]):
3019         (-[WebAccessibilityObjectWrapper accessibilityElementDidBecomeFocused]):
3020         (-[WebAccessibilityObjectWrapper accessibilityModifySelection:increase:]):
3021         (-[WebAccessibilityObjectWrapper accessibilityIncreaseSelection:]):
3022         (-[WebAccessibilityObjectWrapper accessibilityDecreaseSelection:]):
3023         (-[WebAccessibilityObjectWrapper accessibilityMoveSelectionToMarker:]):
3024         (-[WebAccessibilityObjectWrapper accessibilityIncrement]):
3025         (-[WebAccessibilityObjectWrapper accessibilityDecrement]):
3026         (-[WebAccessibilityObjectWrapper _addAccessibilityObject:toTextMarkerArray:]):
3027         (-[WebAccessibilityObjectWrapper stringForTextMarkers:]):
3028         (blockquoteLevel):
3029         (AXAttributeStringSetBlockquoteLevel):
3030         (AXAttributeStringSetHeadingLevel):
3031         (AXAttributeStringSetFont):
3032         (AXAttributeStringSetNumber):
3033         (AXAttributeStringSetStyle):
3034         (AXAttributedStringAppendText):
3035         (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
3036         (-[WebAccessibilityObjectWrapper _convertToNSRange:]):
3037         (-[WebAccessibilityObjectWrapper _convertToDOMRange:]):
3038         (-[WebAccessibilityObjectWrapper positionForTextMarker:]):
3039         (-[WebAccessibilityObjectWrapper textMarkerRange]):
3040         (-[WebAccessibilityObjectWrapper elementTextRange]):
3041         (-[WebAccessibilityObjectWrapper accessibilityObjectForTextMarker:]):
3042         (-[WebAccessibilityObjectWrapper textMarkerRangeForSelection]):
3043         (-[WebAccessibilityObjectWrapper textMarkerForPosition:]):
3044         (-[WebAccessibilityObjectWrapper _stringForRange:attributed:]):
3045         (-[WebAccessibilityObjectWrapper stringForRange:]):
3046         (-[WebAccessibilityObjectWrapper attributedStringForRange:]):
3047         (-[WebAccessibilityObjectWrapper elementsForRange:]):
3048         (-[WebAccessibilityObjectWrapper selectionRangeString]):
3049         (-[WebAccessibilityObjectWrapper selectedTextMarker]):
3050         (-[WebAccessibilityObjectWrapper lineEndMarkerForMarker:]):
3051         (-[WebAccessibilityObjectWrapper lineStartMarkerForMarker:]):
3052         (-[WebAccessibilityObjectWrapper nextMarkerForMarker:]):
3053         (-[WebAccessibilityObjectWrapper previousMarkerForMarker:]):
3054         (-[WebAccessibilityObjectWrapper frameForTextMarkers:]):
3055         (-[WebAccessibilityObjectWrapper textMarkerForPoint:]):
3056         (-[WebAccessibilityObjectWrapper accessibilityIdentifier]):
3057         (-[WebAccessibilityObjectWrapper accessibilitySpeechHint]):
3058         (-[WebAccessibilityObjectWrapper accessibilityARIAIsBusy]):
3059         (-[WebAccessibilityObjectWrapper accessibilityARIALiveRegionStatus]):
3060         (-[WebAccessibilityObjectWrapper accessibilityARIARelevantStatus]):
3061         (-[WebAccessibilityObjectWrapper accessibilityARIALiveRegionIsAtomic]):
3062         (-[WebAccessibilityObjectWrapper accessibilityInvalidStatus]):
3063         (-[WebAccessibilityObjectWrapper accessibilityMathRootIndexObject]):
3064         (-[WebAccessibilityObjectWrapper accessibilityMathRadicandObject]):
3065         (-[WebAccessibilityObjectWrapper accessibilityMathNumeratorObject]):
3066         (-[WebAccessibilityObjectWrapper accessibilityMathDenominatorObject]):
3067         (-[WebAccessibilityObjectWrapper accessibilityMathBaseObject]):
3068         (-[WebAccessibilityObjectWrapper accessibilityMathSubscriptObject]):
3069         (-[WebAccessibilityObjectWrapper accessibilityMathSuperscriptObject]):
3070         (-[WebAccessibilityObjectWrapper accessibilityMathUnderObject]):
3071         (-[WebAccessibilityObjectWrapper accessibilityMathOverObject]):
3072         (-[WebAccessibilityObjectWrapper accessibilityMathFencedOpenString]):
3073         (-[WebAccessibilityObjectWrapper accessibilityMathFencedCloseString]):
3074         (-[WebAccessibilityObjectWrapper accessibilityIsMathTopObject]):
3075         (-[WebAccessibilityObjectWrapper accessibilityMathType]):
3076         (-[WebAccessibilityObjectWrapper accessibilitySetPostedNotificationCallback:withContext:]):
3077         (-[WebAccessibilityObjectWrapper accessibilityPostedNotification:WebCore::AXObjectCache::]):
3078         (-[WebAccessibilityObjectWrapper description]):
3079
3080 2013-02-17  Chris Fleizach  <cfleizach@apple.com>
3081
3082         AX: rename WebAccessibilityObjectWrapper to WebAccessibilityObjectWrapperBase
3083         https://bugs.webkit.org/show_bug.cgi?id=110061
3084
3085         Reviewed by David Kilzer.
3086
3087         Rename the base accessibility wrapper class so that the iOS class can share the same name.
3088
3089         * WebCore.xcodeproj/project.pbxproj:
3090         * accessibility/mac/AXObjectCacheMac.mm:
3091         (WebCore::AXObjectCache::attachWrapper):
3092         * accessibility/mac/WebAccessibilityObjectWrapper.h: Replaced with Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.h.
3093         * accessibility/mac/WebAccessibilityObjectWrapper.mm: Replaced with Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm.
3094         * accessibility/mac/WebAccessibilityObjectWrapperBase.h: Copied from Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapper.h.
3095         * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: Copied from Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapper.mm.
3096         * accessibility/mac/WebAccessibilityObjectWrapperMac.h: Removed.
3097         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: Removed.
3098
3099 2013-02-17  Andreas Kling  <akling@apple.com>
3100
3101         REGRESSION(r143125): ~5% performance hit on Chromium's intl2 page cycler.
3102         <http://webkit.org/b/108835>
3103
3104         Reviewed by Ojan Vafai.
3105
3106         Streamline the case where GlyphPage has a per-glyph SimpleFontData* lookup table to allow
3107         taking earlier branches on pages with lots of mixed-font text.
3108         We accomplish this by explicitly storing a null SimpleFontData* for glyph #0 in the per-glyph
3109         lookup table instead of relying on "if (!glyph)" checks in getters.
3110
3111         This is a speculative optimization, I can't get stable enough numbers locally to tell if this
3112         will resolve the issue on the bots.
3113
3114         * platform/graphics/GlyphPage.h:
3115         (WebCore::GlyphPage::glyphDataForIndex):
3116         (WebCore::GlyphPage::fontDataForCharacter):
3117         (WebCore::GlyphPage::setGlyphDataForIndex):
3118
3119 2013-02-17  Chris Fleizach  <cfleizach@apple.com>
3120
3121         WebSpeech: plumb through a method to generate fake speech jobs for testing
3122         https://bugs.webkit.org/show_bug.cgi?id=107351
3123
3124         Reviewed by Adam Barth.
3125
3126         We can't reliably use the platforms synthesizer to test speech synthesis internals.
3127         This patch adds an Internals method to enable a mock synthesizer, which is inherits
3128         from the PlatformSpeechSythesizer.
3129
3130         The fake synthesizer goes through all the motions of a real synthesizer but doesn't do anything.
3131         A bunch of changes were needed here to make PlatformSpeechSynthesizer subclassable so that the
3132         right virtual are used.
3133
3134         The Mock synthesizer only lives in WebCoreTestSupport. Because PlatformSpeechSynthesizer uses
3135         a RetainPtr, I needed to make WebCoreTestSupport link CoreFoundation
3136
3137 2013-02-17  Csaba Osztrogon√°c  <ossy@webkit.org>
3138
3139         [Qt] Unreviewed buildfix for !USE(LIBXML) builds after r143112.
3140
3141         * xml/parser/XMLDocumentParserQt.cpp:
3142         (WebCore::XMLDocumentParser::XMLDocumentParser):
3143
3144 2013-02-17  Andreas Kling  <akling@apple.com>
3145
3146         Optimize GlyphPage for case where all glyphs are available in the same font.
3147         <http://webkit.org/b/108835>
3148         <rdar://problem/13157042>
3149
3150         Reviewed by Antti Koivisto.
3151
3152         Let GlyphPage begin optimistically assuming that all its glyphs will be represented in
3153         the same SimpleFontData*. In this (very common) case, only keep a single SimpleFontData*.
3154
3155         If glyphs from multiple fonts are mixed in one page, an array of per-glyph SimpleFontData*
3156         is allocated transparently.
3157
3158         This was landed before with some bogus branch prediction hints and didn't fare well on
3159         page cyclers (intl2 specifically.) These have been removed this time around, and will
3160         hopefully be regression-free.
3161
3162         4.98 MB progression on Membuster3.
3163
3164         * platform/graphics/GlyphPageTreeNode.cpp:
3165         (WebCore::GlyphPageTreeNode::initializePage):
3166         * platform/graphics/GlyphPage.h:
3167         (WebCore::GlyphPage::createUninitialized):
3168         (WebCore::GlyphPage::createZeroedSystemFallbackPage):
3169         (WebCore::GlyphPage::createCopiedSystemFallbackPage):
3170
3171             There are now three ways of constructing a GlyphPage, two of them are only used for
3172             creating system fallback pages.
3173
3174         (WebCore::GlyphPage::setGlyphDataForIndex):
3175
3176             Hold off creating a SimpleFontData* array until we're sure there are two different
3177             SimpleFontData* backing the glyphs in this page.
3178             We don't store font data for glyph #0, instead we let the getters always return null for it.
3179
3180         (WebCore::GlyphPage::~GlyphPage):
3181
3182             Free the SimpleFontData* array if needed.
3183
3184         (WebCore::GlyphPage::glyphDataForCharacter):
3185         (WebCore::GlyphPage::glyphDataForIndex):
3186         (WebCore::GlyphPage::fontDataForCharacter):
3187
3188             The font data for glyph #0 is always a null pointer now.
3189
3190         (WebCore::GlyphPage::clearForFontData):
3191
3192             Updated for new storage format.
3193
3194         * rendering/svg/SVGTextRunRenderingContext.cpp:
3195         (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):
3196
3197             Fix bug where non-zero glyph was temporarily associated with null font data,
3198             which triggered the new assertion in setGlyphDataForIndex().
3199
3200 2013-02-16  Andreas Kling  <akling@apple.com>
3201
3202         Remove multi-threading gunk from WebKit2's PluginInfoStore.
3203         <http://webkit.org/b/110046>
3204
3205         Reviewed by Alexey Proskuryakov.
3206
3207         Remove now-unused code for making deep (isolated) copies of WebCore plugin structures.
3208
3209         * plugins/PluginData.h:
3210         (MimeClassInfo):
3211         (PluginInfo):
3212
3213 2013-02-16  Alexey Proskuryakov  <ap@apple.com>
3214
3215         Identifier generated twice in FrameLoader::loadResourceSynchronously()
3216         https://bugs.webkit.org/show_bug.cgi?id=110022
3217
3218         Reviewed by Darin Adler.
3219
3220         * loader/FrameLoader.cpp: (WebCore::FrameLoader::loadResourceSynchronously):
3221         Fix an apparent refactoring mistake.
3222
3223 2013-02-16  Andreas Kling  <akling@apple.com>
3224
3225         [JSC] Remove custom mark function for NamedNodeMap.
3226         <http://webkit.org/b/110029>
3227
3228         Reviewed by Darin Adler.
3229
3230         NamedNodeMap refs and unrefs its Element owner, so there's no need for the wrapper to keep the Element alive.
3231
3232         Covered by fast/dom/Attr/access-after-element-destruction.html
3233
3234         * bindings/js/JSNamedNodeMapCustom.cpp:
3235         * dom/NamedNodeMap.idl:
3236
3237 2013-02-16  Peter Nelson  <peter@peterdn.com>
3238
3239         REGRESSION(r143076): Crash when calling removeNamedItem or removeNamedItemNS with a non-existent attribute of newly created element.
3240         <http://webkit.org/b/110019>
3241
3242         Reviewed by Andreas Kling.
3243
3244         Now checks Element::hasAttributes() before calling Element::getAttributeItemIndex().
3245
3246         Test: http/tests/misc/acid3.html
3247
3248         * dom/NamedNodeMap.cpp:
3249         (WebCore::NamedNodeMap::removeNamedItem):
3250         (WebCore::NamedNodeMap::removeNamedItemNS):
3251
3252 2013-02-16  Andreas Kling  <akling@apple.com>
3253
3254         Element: Devirtualize attribute synchronization functions.
3255         <http://webkit.org/b/110033>
3256
3257         Reviewed by Darin Adler.
3258
3259         Devirtualize the functions that perform re-serialization of lazy attributes and give
3260         them "synchronize"-style names:
3261
3262             - SVGElement::synchronizeAnimatedSVGAttribute()
3263             - StyledElement::synchronizeStyleAttributeInternal()
3264
3265         * dom/Element.cpp:
3266         (WebCore::Element::synchronizeAllAttributes):
3267         (WebCore::Element::synchronizeAttribute):
3268         * dom/Element.h:
3269         * dom/StyledElement.cpp:
3270         (WebCore::StyledElement::synchronizeStyleAttribute):
3271         * dom/StyledElement.h:
3272         (StyledElement):
3273         * rendering/svg/RenderSVGResourceGradient.cpp:
3274         (WebCore::RenderSVGResourceGradient::applyResource):
3275         * rendering/svg/RenderSVGResourcePattern.cpp:
3276         (WebCore::RenderSVGResourcePattern::buildPattern):
3277         * svg/SVGElement.cpp:
3278         (WebCore::SVGElement::synchronizeAnimatedSVGAttribute):
3279         * svg/SVGElement.h:
3280         (SVGElement):
3281
3282 2013-02-16  Andreas Kling  <akling@apple.com>
3283
3284         Element: Avoid unrelated attribute synchronization on other attribute access.
3285         <http://webkit.org/b/110025>
3286
3287         Reviewed by Darin Adler.
3288
3289         We've been extremely trigger happy with re-serializing the style attribute (and SVG animatables)
3290         whenever any Element attribute API was used. This patch narrows this down to (almost always)
3291         only synchronizing an attribute when someone specifically wants to read/update it.
3292
3293         Also removed two more confusing ElementData accessors:
3294
3295             - Element::elementDataWithSynchronizedAttributes()
3296             - Element::ensureElementDataWithSynchronizedAttributes()
3297
3298         * dom/Element.h:
3299         * dom/Element.cpp:
3300         (WebCore::Element::hasAttributes):
3301         (WebCore::Element::hasEquivalentAttributes):
3302         (WebCore::Element::cloneAttributesFromElement):
3303         (WebCore::Element::synchronizeAllAttributes):
3304
3305             Renamed updateInvalidAttributes() to synchronizeAllAttributes().
3306             This function should only be used when we need every single attribute to be up-to-date.
3307
3308         (WebCore::Element::synchronizeAttribute):
3309
3310             Broke out logic for synchronizing a specific attribute, given either a full QualifiedName
3311             or a localName.
3312
3313         (WebCore::Element::setSynchronizedLazyAttribute):
3314
3315             Don't call ensureUniqueElementData() indisciminately here. This avoids converting the attribute
3316             storage when re-serializing the inline style yields the same CSS text that was already in the
3317             style attribute.
3318
3319         (WebCore::Element::hasAttribute):
3320         (WebCore::Element::hasAttributeNS):
3321         (WebCore::Element::getAttribute):
3322         (WebCore::Element::getAttributeNode):
3323         (WebCore::Element::getAttributeNodeNS):
3324         (WebCore::Element::setAttribute):
3325         (WebCore::Element::setAttributeNode):
3326         (WebCore::Element::removeAttributeNode):
3327
3328             Only synchronize the attribute in question.
3329
3330         * dom/Node.cpp:
3331         (WebCore::Node::compareDocumentPosition):
3332
3333             Call synchronizeAllAttributes() when comparing two Attr nodes on the same Element instead
3334             of relying on the side-effects of another function doing this.
3335
3336 2013-02-16  Seokju Kwon  <seokju.kwon@gmail.com>
3337
3338         Fix build warnings after r139853
3339         https://bugs.webkit.org/show_bug.cgi?id=109929
3340
3341         Reviewed by Alexey Proskuryakov.
3342
3343         Use UNUSED_PARAM macro to fix build warning -Wunused-parameter
3344         when INSPECTOR is disabled.
3345
3346         No new tests, no behavior change.
3347
3348         * inspector/InspectorInstrumentation.h:
3349         (WebCore::InspectorInstrumentation::frameStartedLoading):
3350         (WebCore::InspectorInstrumentation::frameStoppedLoading):
3351         (WebCore::InspectorInstrumentation::frameScheduledNavigation):
3352         (WebCore::InspectorInstrumentation::frameClearedScheduledNavigation):
3353
3354 2013-02-16  Sheriff Bot  <webkit.review.bot@gmail.com>
3355
3356         Unreviewed, rolling out r142734.
3357         http://trac.webkit.org/changeset/142734
3358         https://bugs.webkit.org/show_bug.cgi?id=110018
3359
3360         "Triggered crashes on lots of websites" (Requested by ggaren
3361         on #webkit).
3362
3363         * bindings/js/JSLocationCustom.cpp:
3364         (WebCore::JSLocation::getOwnPropertySlotDelegate):
3365
3366 2013-02-16  Robert Hogan  <robert@webkit.org>
3367
3368         percentage top value of position:relative element not calculated using parent's min-height unless height set
3369         https://bugs.webkit.org/show_bug.cgi?id=14762
3370
3371         Reviewed by Julien Chaffraix.
3372
3373         Percentage height "is calculated with respect to the height of the generated box's containing block" says  
3374         http://www.w3.org/TR/CSS21/visudet.html#the-height-property and "If the height of the containing block is not 
3375         specified explicitly (i.e., it depends on content height), and this element is not absolutely positioned, the
3376         value computes to 'auto'." So when calculating the used height of a replaced element do not crawl through ancestor 
3377         blocks except when traversing anonymous blocks. Ensure that anonymous table cells are not skipped through though.
3378
3379         http://www.w3.org/TR/CSS21/tables.html#height-layout adds "In CSS 2.1, the height of a cell box is the minimum 
3380         height required by the content." This height is decided by allowing table cells to report their height as auto.
3381         It's not clear why http://trac.webkit.org/changeset/91242 decided it should no longer do this - doing so caused
3382         us to regress in our rendering of computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor.html.
3383
3384         Tests: fast/block/percent-top-parent-respects-min-height.html
3385                fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor-vertical-lr.html
3386                fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor.html
3387                fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor-vertical-lr.html
3388                fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor.html
3389
3390         * rendering/RenderBoxModelObject.cpp:
3391         (WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight):
3392         (WebCore):
3393         (WebCore::RenderBoxModelObject::relativePositionOffset):
3394         * rendering/RenderBoxModelObject.h:
3395         (RenderBoxModelObject):
3396         * rendering/RenderReplaced.cpp:
3397         (WebCore::RenderReplaced::hasReplacedLogicalHeight):
3398
3399 2013-02-16  Stephen White  <senorblanco@chromium.org>
3400
3401         [skia] FEOffset should have a Skia implementation.
3402         https://bugs.webkit.org/show_bug.cgi?id=109831
3403
3404         Reviewed by James Robinson.
3405
3406         Covered by css3/filters/effect-reference.html and -hw.html.
3407
3408         * WebCore.gypi:
3409         * platform/graphics/filters/FEOffset.h:  Implement createImageFilter()
3410         for the Skia path.
3411         * platform/graphics/filters/skia/FEOffsetSkia.cpp: Added.
3412         (WebCore::FEOffset::createImageFilter):
3413         Instantiate an SkOffsetImageFilter when building the Skia DAG.
3414
3415 2013-02-16  Vsevolod Vlasov  <vsevik@chromium.org>
3416
3417         Web Inspector: Create separate project for each domain for UISourceCode based on browser resources.
3418         https://bugs.webkit.org/show_bug.cgi?id=109691
3419
3420         Reviewed by Pavel Feldman.
3421
3422         Separate project of certain type is now created for each domain.
3423         UISourceCode path represents a path in the project now.
3424         UISourceCode uri is now calculated based on project id and path.
3425         It is also possible to calculate path based on projectId and URI, which is used for uiSourceCodeForURI() methods.
3426
3427         * inspector/front-end/ScriptSnippetModel.js:
3428         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
3429         * inspector/front-end/SimpleWorkspaceProvider.js:
3430         (WebInspector.SimpleProjectDelegate):
3431         (WebInspector.SimpleProjectDelegate.projectId):
3432         (WebInspector.SimpleProjectDelegate.prototype.id):
3433         (WebInspector.SimpleProjectDelegate.prototype.displayName):
3434         (WebInspector.SimpleProjectDelegate.prototype.addFile):
3435         (WebInspector.SimpleWorkspaceProvider):
3436         (WebInspector.SimpleWorkspaceProvider.splitURL):
3437         (WebInspector.SimpleWorkspaceProvider._pathForSplittedURL):
3438         (WebInspector.SimpleWorkspaceProvider.uriForURL):
3439         (WebInspector.SimpleWorkspaceProvider.prototype._projectDelegate):
3440         (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
3441         (WebInspector.SimpleWorkspaceProvider.prototype.addFileByName):
3442         (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFile):
3443         (WebInspector.SimpleWorkspaceProvider.prototype.removeFileByName):
3444         (WebInspector.SimpleWorkspaceProvider.prototype.reset):
3445         * inspector/front-end/UISourceCode.js:
3446         (WebInspector.UISourceCode.uri):
3447         (WebInspector.UISourceCode.path):
3448         (WebInspector.UISourceCode.prototype.uri):
3449         * inspector/front-end/Workspace.js:
3450         (WebInspector.Project.prototype._fileAdded):
3451         (WebInspector.Project.prototype._fileRemoved):
3452         (WebInspector.Project.prototype.uiSourceCodeForURI):
3453
3454 2013-02-15  Chris Fleizach  <cfleizach@apple.com>
3455
3456         AX: Split WebAccessibilityObjectWrapper so code can be shared with iOS
3457         https://bugs.webkit.org/show_bug.cgi?id=109849
3458
3459         Reviewed by David Kilzer.
3460
3461         Split up the WebAccessibilityObjectWrapper so that iOS can share more 
3462         code with MacOS. I imagine over time, more code will move into this base class,
3463         but for now this will be a good start.
3464
3465         A base class called WebAccessibilityObjectWrapper now exists, and Mac has a subclass
3466         of that. iOS will be able to do the same.
3467
3468         * WebCore.xcodeproj/project.pbxproj:
3469         * accessibility/mac/AXObjectCacheMac.mm:
3470         (WebCore::AXObjectCache::attachWrapper):
3471         * accessibility/mac/WebAccessibilityObjectWrapper.h:
3472         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
3473         (-[WebAccessibilityObjectWrapper detach]):
3474         (-[WebAccessibilityObjectWrapper attachmentView]):
3475         (-[WebAccessibilityObjectWrapper accessibilityObject]):
3476         (-[WebAccessibilityObjectWrapper accessibilityPostedNotification:]):
3477         (-[WebAccessibilityObjectWrapper titleTagShouldBeUsedInDescriptionField]):
3478         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
3479         (-[WebAccessibilityObjectWrapper accessibilityDescription]):
3480         (-[WebAccessibilityObjectWrapper accessibilityHelpText]):
3481         * accessibility/mac/WebAccessibilityObjectWrapperMac.h: Added.
3482         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: Added.
3483         (std):
3484         (-[WebAccessibilityObjectWrapperMac detach]):
3485         (-[WebAccessibilityObjectWrapperMac attachmentView]):
3486         (CFAutoreleaseHelper):
3487         (AXObjectIsTextMarker):
3488         (AXObjectIsTextMarkerRange):
3489         (AXTextMarkerRange):
3490         (AXTextMarkerRangeStart):
3491         (AXTextMarkerRangeEnd):
3492         (SearchKeyEntry):
3493         (createAccessibilitySearchKeyMap):
3494         (accessibilitySearchKeyForString):
3495         (textMarkerForVisiblePosition):
3496         (-[WebAccessibilityObjectWrapperMac textMarkerForVisiblePosition:]):
3497         (visiblePositionForTextMarker):
3498         (-[WebAccessibilityObjectWrapperMac visiblePositionForTextMarker:]):
3499         (visiblePositionForStartOfTextMarkerRange):
3500         (visiblePositionForEndOfTextMarkerRange):
3501         (textMarkerRangeFromMarkers):
3502         (AXAttributedStringRangeIsValid):
3503         (AXAttributeStringSetFont):
3504         (CreateCGColorIfDifferent):
3505         (AXAttributeStringSetColor):
3506         (AXAttributeStringSetNumber):
3507         (AXAttributeStringSetStyle):
3508         (AXAttributeStringSetBlockquoteLevel):
3509         (AXAttributeStringSetSpelling):
3510         (AXAttributeStringSetHeadingLevel):
3511         (AXAttributeStringSetElement):
3512         (AXAttributedStringAppendText):
3513         (nsStringForReplacedNode):
3514         (-[WebAccessibilityObjectWrapperMac doAXAttributedStringForTextMarkerRange:]):
3515         (textMarkerRangeFromVisiblePositions):
3516         (-[WebAccessibilityObjectWrapperMac textMarkerRangeFromVisiblePositions:endPosition:]):
3517         (-[WebAccessibilityObjectWrapperMac accessibilityActionNames]):
3518         (-[WebAccessibilityObjectWrapperMac additionalAccessibilityAttributeNames]):
3519         (-[WebAccessibilityObjectWrapperMac accessibilityAttributeNames]):
3520         (-[WebAccessibilityObjectWrapperMac visiblePositionRangeForTextMarkerRange:]):
3521         (-[WebAccessibilityObjectWrapperMac renderWidgetChildren]):
3522         (-[WebAccessibilityObjectWrapperMac remoteAccessibilityParentObject]):
3523         (convertToVector):
3524         (convertToNSArray):
3525         (-[WebAccessibilityObjectWrapperMac textMarkerRangeForSelection]):
3526         (-[WebAccessibilityObjectWrapperMac position]):
3527         (createAccessibilityRoleMap):
3528         (roleValueToNSString):
3529         (-[WebAccessibilityObjectWrapperMac role]):
3530         (-[WebAccessibilityObjectWrapperMac subrole]):
3531         (-[WebAccessibilityObjectWrapperMac roleDescription]):
3532         (-[WebAccessibilityObjectWrapperMac scrollViewParent]):
3533         (-[WebAccessibilityObjectWrapperMac titleTagShouldBeUsedInDescriptionField]):
3534         (-[WebAccessibilityObjectWrapperMac accessibilityTitle]):
3535         (-[WebAccessibilityObjectWrapperMac accessibilityDescription]):
3536         (-[WebAccessibilityObjectWrapperMac accessibilityHelpText]):
3537         (-[WebAccessibilityObjectWrapperMac accessibilityAttributeValue:]):
3538         (-[WebAccessibilityObjectWrapperMac accessibilityFocusedUIElement]):
3539         (-[WebAccessibilityObjectWrapperMac accessibilityHitTest:]):
3540         (-[WebAccessibilityObjectWrapperMac accessibilityIsAttributeSettable:]):
3541         (-[WebAccessibilityObjectWrapperMac accessibilityIsIgnored]):
3542         (-[WebAccessibilityObjectWrapperMac accessibilityParameterizedAttributeNames]):
3543         (-[WebAccessibilityObjectWrapperMac accessibilityPerformPressAction]):
3544         (-[WebAccessibilityObjectWrapperMac accessibilityPerformIncrementAction]):
3545         (-[WebAccessibilityObjectWrapperMac accessibilityPerformDecrementAction]):
3546         (-[WebAccessibilityObjectWrapperMac accessibilityPerformShowMenuAction]):
3547         (-[WebAccessibilityObjectWrapperMac accessibilityShowContextMenu]):
3548         (-[WebAccessibilityObjectWrapperMac accessibilityPerformAction:]):
3549         (-[WebAccessibilityObjectWrapperMac accessibilitySetValue:forAttribute:]):
3550         (rendererForView):
3551         (-[WebAccessibilityObjectWrapperMac _accessibilityParentForSubview:]):
3552         (-[WebAccessibilityObjectWrapperMac accessibilityActionDescription:]):
3553         (-[WebAccessibilityObjectWrapperMac doAXAttributedStringForRange:]):
3554         (-[WebAccessibilityObjectWrapperMac _convertToNSRange:]):
3555         (-[WebAccessibilityObjectWrapperMac _indexForTextMarker:]):
3556         (-[WebAccessibilityObjectWrapperMac _textMarkerForIndex:]):
3557         (-[WebAccessibilityObjectWrapperMac doAXRTFForRange:]):
3558         (-[WebAccessibilityObjectWrapperMac accessibilityAttributeValue:forParameter:]):
3559         (-[WebAccessibilityObjectWrapperMac accessibilitySupportsOverriddenAttributes]):
3560         (-[WebAccessibilityObjectWrapperMac accessibilityShouldUseUniqueId]):
3561         (-[WebAccessibilityObjectWrapperMac accessibilityIndexOfChild:]):
3562         (-[WebAccessibilityObjectWrapperMac accessibilityArrayAttributeCount:]):
3563         (-[WebAccessibilityObjectWrapperMac accessibilityArrayAttributeValues:index:maxCount:]):
3564         ([WebAccessibilityObjectWrapperMac accessibilitySetShouldRepostNotifications:]):
3565         (-[WebAccessibilityObjectWrapperMac accessibilityPostedNotification:]):
3566
3567 2013-02-15  Eric Carlson  <eric.carlson@apple.com>
3568
3569         [Mac] remove wkCaptionAppearance from WebKitSystemInterface
3570         https://bugs.webkit.org/show_bug.cgi?id=109996
3571
3572         Reviewed by Simon Fraser.
3573
3574         * platform/mac/WebCoreSystemInterface.h:
3575         * platform/mac/WebCoreSystemInterface.mm:
3576
3577 2013-02-15  Sheriff Bot  <webkit.review.bot@gmail.com>
3578
3579         Unreviewed, rolling out r143088.
3580         http://trac.webkit.org/changeset/143088
3581         https://bugs.webkit.org/show_bug.cgi?id=110000
3582
3583         Breaks the build (Requested by dgorbik on #webkit).
3584
3585         * platform/mac/WebCoreSystemInterface.h:
3586         * platform/mac/WebCoreSystemInterface.mm:
3587
3588 2013-02-15  Chris Rogers  <crogers@google.com>
3589
3590         Enhance AudioBus copyFrom() and sumFrom() to be able to handle discrete and speakers up and down-mixing
3591         https://bugs.webkit.org/show_bug.cgi?id=109983
3592
3593         Reviewed by Kenneth Russell.
3594
3595         The Web Audio spec has a more detailed explanation for how channels are to be up and down-mixed:
3596         https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#UpMix
3597
3598         This patch adds the initial support for handling ChannelInterpretation, although no
3599         new JS API is yet implemented.
3600
3601         No new tests since no new APIs have yet been exposed.
3602
3603         * platform/audio/AudioBus.cpp:
3604         (WebCore::AudioBus::copyFrom):
3605         (WebCore):
3606         (WebCore::AudioBus::sumFrom):
3607         (WebCore::AudioBus::speakersCopyFrom):
3608         (WebCore::AudioBus::speakersSumFrom):
3609         (WebCore::AudioBus::discreteCopyFrom):
3610         (WebCore::AudioBus::discreteSumFrom):
3611         * platform/audio/AudioBus.h:
3612         (AudioBus):
3613
3614 2013-02-15  Tony Chang  <tony@chromium.org>
3615
3616         Padding and border changes doesn't trigger relayout of children
3617         https://bugs.webkit.org/show_bug.cgi?id=109639
3618
3619         Reviewed by Kent Tamura.
3620
3621         In RenderBlock::layoutBlock, we only relayout our children if our logical width
3622         changes. This misses cases where our logical width doesn't change (i.e., padding
3623         or border changes), but our content width does change.
3624
3625         Also convert the needsLayout ASSERT into the if statement. This is because
3626         RenderScrollbarPart can change border widths and not need a layout if the scrollbar
3627         doesn't have a parent. In this case, we don't need to set any children for layout.
3628
3629         This is a more general case of bug 104997.
3630
3631         Test: fast/block/dynamic-padding-border.html
3632
3633         * rendering/RenderBox.cpp:
3634         (WebCore::borderOrPaddingLogicalWidthChanged): Only check if the logical width changed.
3635         (WebCore::RenderBox::styleDidChange): Drop the border-box condition since this can happen
3636         even without border-box box sizing.
3637
3638 2013-02-15  Mark Lam  <mark.lam@apple.com>
3639
3640         Split SQLStatement work between the frontend and backend.
3641         https://bugs.webkit.org/show_bug.cgi?id=104751.
3642
3643         Reviewed by Geoffrey Garen.
3644
3645         This is part of the webdatabase refactoring for webkit2.
3646
3647         1. Copied SQLTransaction to SQLTransactionBackend, and then reduce the
3648            2 to only handle frontend and backend work respectively.
3649
3650         2. Changed how statements are created.
3651
3652            - SQLTransaction::executeSQL() first creates a SQLStatement frontend
3653              which encapsulates the 2 script callbacks. It then passes the
3654              SQLStatement to the backend database to create the
3655              SQLStatementBackend.
3656            - The SQLStatementBackend manages all sqlite work.
3657
3658         3. Remove the Database::reportExecuteStatementResult() wrapper because
3659            it is only needed in the backend now.
3660
3661         4. Added new files to the build / project files.
3662
3663         5. Updated / added comments about how the SQLStatement life-cycle works.
3664
3665         No new tests.
3666
3667         * CMakeLists.txt:
3668         * GNUmakefile.list.am:
3669         * Modules/webdatabase/Database.cpp:
3670         * Modules/webdatabase/Database.h:
3671         (Database):
3672         (WebCore::Database::reportCommitTransactionResult):
3673         * Modules/webdatabase/DatabaseBackend.h:
3674         (DatabaseBackend):
3675         * Modules/webdatabase/SQLStatement.cpp:
3676         (WebCore::SQLStatement::create):
3677         (WebCore::SQLStatement::SQLStatement):
3678         (WebCore::SQLStatement::setBackend):
3679         (WebCore::SQLStatement::hasCallback):
3680         (WebCore::SQLStatement::hasErrorCallback):
3681         (WebCore::SQLStatement::performCallback):
3682         * Modules/webdatabase/SQLStatement.h:
3683         (SQLStatement):
3684         * Modules/webdatabase/SQLStatementBackend.cpp: Copied from Source/WebCore/Modules/webdatabase/SQLStatement.cpp.
3685         (WebCore::SQLStatementBackend::create):
3686         (WebCore::SQLStatementBackend::SQLStatementBackend):
3687         (WebCore::SQLStatementBackend::frontend):
3688         (WebCore::SQLStatementBackend::sqlError):
3689         (WebCore::SQLStatementBackend::sqlResultSet):
3690         (WebCore::SQLStatementBackend::execute):
3691         (WebCore::SQLStatementBackend::setDatabaseDeletedError):
3692         (WebCore::SQLStatementBackend::setVersionMismatchedError):
3693         (WebCore::SQLStatementBackend::setFailureDueToQuota):
3694         (WebCore::SQLStatementBackend::clearFailureDueToQuota):
3695         (WebCore::SQLStatementBackend::lastExecutionFailedDueToQuota):
3696         * Modules/webdatabase/SQLStatementBackend.h: Copied from Source/WebCore/Modules/webdatabase/SQLStatement.h.
3697         (SQLStatementBackend):
3698         (WebCore::SQLStatementBackend::hasStatementCallback):
3699         (WebCore::SQLStatementBackend::hasStatementErrorCallback):
3700         * Modules/webdatabase/SQLTransaction.cpp:
3701         (WebCore::SQLTransaction::deliverStatementCallback):
3702         (WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
3703         (WebCore::SQLTransaction::executeSQL):
3704         * Modules/webdatabase/SQLTransactionBackend.cpp:
3705         (WebCore::SQLTransactionBackend::doCleanup):
3706         (WebCore::SQLTransactionBackend::currentStatement):
3707         (WebCore::SQLTransactionBackend::enqueueStatementBackend):
3708         (WebCore::SQLTransactionBackend::executeSQL):
3709         (WebCore::SQLTransactionBackend::runStatements):
3710         (WebCore::SQLTransactionBackend::getNextStatement):
3711         (WebCore::SQLTransactionBackend::runCurrentStatementAndGetNextState):
3712         (WebCore::SQLTransactionBackend::nextStateForCurrentStatementError):
3713         * Modules/webdatabase/SQLTransactionBackend.h:
3714         (SQLTransactionBackend):
3715         * Target.pri:
3716         * WebCore.gypi:
3717         * WebCore.vcproj/WebCore.vcproj:
3718         * WebCore.vcxproj/WebCore.vcxproj:
3719         * WebCore.vcxproj/WebCore.vcxproj.filters:
3720         * WebCore.xcodeproj/project.pbxproj:
3721
3722 2013-02-15  Elliott Sprehn  <esprehn@chromium.org>
3723
3724         Rename HasCustomCallbacks to HasCustomStyleCallbacks
3725         https://bugs.webkit.org/show_bug.cgi?id=109982
3726
3727         Reviewed by Eric Seidel.
3728
3729         Now that inside ChildFrameDisconnector we only call isFrameOwnerElement()
3730         on elements that report having descendants (or themselves) have connected
3731         frames we don't need to be as agressive about avoiding the virtual call
3732         to isFrameOwnerElement() which lets us rename hasCustomCallbacks to
3733         hasCustomStyleCallbacks to better reflect it's purpose.
3734
3735         * dom/ContainerNodeAlgorithms.h:
3736         (WebCore::ChildFrameDisconnector::collectFrameOwners):
3737         * dom/Element.cpp:
3738         (WebCore::Element::styleForRenderer):
3739         (WebCore::Element::recalcStyle):
3740         (WebCore::Element::willRecalcStyle):
3741         (WebCore::Element::didRecalcStyle):
3742         (WebCore::Element::customStyleForRenderer):
3743         * dom/Node.h:
3744         (WebCore::Node::pseudoId):
3745         (WebCore::Node::hasCustomStyleCallbacks):
3746         (WebCore::Node::customPseudoId):
3747         (WebCore::Node::setHasCustomStyleCallbacks):
3748         * dom/PseudoElement.cpp:
3749         (WebCore::PseudoElement::PseudoElement):
3750         * dom/ShadowRoot.cpp:
3751         (WebCore::ShadowRoot::recalcStyle):
3752         * html/HTMLFormControlElement.cpp:
3753         (WebCore::HTMLFormControlElement::HTMLFormControlElement):
3754         * html/HTMLFrameOwnerElement.cpp:
3755         (WebCore::HTMLFrameOwnerElement::HTMLFrameOwnerElement):
3756         (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
3757         * html/HTMLFrameSetElement.cpp:
3758         (WebCore::HTMLFrameSetElement::HTMLFrameSetElement):
3759         * html/HTMLIFrameElement.cpp:
3760         (WebCore::HTMLIFrameElement::HTMLIFrameElement):
3761         * html/HTMLInputElement.cpp:
3762         (WebCore::HTMLInputElement::HTMLInputElement):
3763         * html/HTMLMediaElement.cpp:
3764         (WebCore::HTMLMediaElement::HTMLMediaElement):
3765         * html/HTMLOptGroupElement.cpp:
3766         (WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
3767         * html/HTMLOptionElement.cpp:
3768         (WebCore::HTMLOptionElement::HTMLOptionElement):
3769         * html/HTMLPlugInImageElement.cpp:
3770         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
3771         * html/shadow/DateTimeEditElement.cpp:
3772         (WebCore::DateTimeEditElement::DateTimeEditElement):
3773         * html/shadow/TextControlInnerElements.cpp:
3774         (WebCore::TextControlInnerElement::TextControlInnerElement):
3775         (WebCore::TextControlInnerTextElement::TextControlInnerTextElement):
3776         * html/shadow/TextFieldDecorationElement.cpp:
3777         (WebCore::TextFieldDecorationElement::TextFieldDecorationElement):
3778         * svg/SVGElement.cpp:
3779         (WebCore::SVGElement::SVGElement):
3780         * svg/SVGUseElement.cpp:
3781         (WebCore::SVGUseElement::SVGUseElement):
3782
3783 2013-02-15  Eric Carlson  <eric.carlson@apple.com>
3784
3785         [Mac] remove wkCaptionAppearance from WebKitSystemInterface
3786         https://bugs.webkit.org/show_bug.cgi?id=109996
3787
3788         Reviewed by Simon Fraser.
3789
3790         * platform/mac/WebCoreSystemInterface.h:
3791         * platform/mac/WebCoreSystemInterface.mm:
3792
3793 2013-02-15  Andreas Kling  <akling@apple.com>
3794
3795         Calling DOM Element.attributes shouldn't force creation of ElementData.
3796         <http://webkit.org/b/109976>
3797
3798         Reviewed by Darin Adler.
3799
3800         Don't create ElementData for an Element unnecessarily just because someone calls .attributes on it.
3801         Previously, JS like this would create empty ElementData when 'element' has no attributes:
3802
3803             for (i = 0; i < element.attributes.length; ++i)
3804                 doStuff(element.attributes[i]);
3805
3806         Make NamedNodeMap::length() short-circuit and return 0 if !Element::hasAttributes().
3807
3808         * dom/Element.cpp:
3809         (WebCore::Element::attributes):
3810         * dom/NamedNodeMap.cpp:
3811         (WebCore::NamedNodeMap::length):
3812
3813 2013-02-15  Kentaro Hara  <haraken@chromium.org>
3814
3815         [V8] An "EvenTarget" type in IDL should be converted to EventTarget*, not to Node*
3816         https://bugs.webkit.org/show_bug.cgi?id=109895
3817
3818         Reviewed by Adam Barth.
3819
3820         Currently an "EventTarget" type in IDL is converted to Node*.
3821         This is wrong because there are non-Node interfaces that inherit
3822         a EventTarget. We should convert an "EventTarget" type to EventTarget*.
3823         This will fix FIXMEs in CodeGeneratorV8.pm.
3824
3825         * bindings/scripts/CodeGeneratorV8.pm:
3826         (GetNativeType):
3827         (JSValueToNative):
3828
3829 2013-02-15  Simon Fraser  <simon.fraser@apple.com>
3830
3831         REGRESSION (r142505?): Crashes in WebCore::ScrollingStateNode::appendChild when using back/forward buttons
3832         https://bugs.webkit.org/show_bug.cgi?id=109826
3833         <rdar://problem/13216100>
3834
3835         Reviewed by Beth Dakin.
3836
3837         Fix a crash when going Back on some pages with fixed position elements.
3838         
3839         When a page was being restored from the page cache, and a layout from
3840         FrameLoader::commitProvisionalLoad() caused us to try to register the fixed
3841         position layer before the main scrolling layer, we'd crash trying to dereference
3842         the root node.
3843         
3844         Fix by bailing from ScrollingStateTree::attachNode() if we can't find the parent
3845         node.
3846
3847         Test: platform/mac-wk2/tiled-drawing/null-parent-back-crash.html
3848
3849         * page/scrolling/ScrollingStateTree.cpp:
3850         (WebCore::ScrollingStateTree::attachNode):
3851         (WebCore::ScrollingStateTree::stateNodeForID):
3852         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
3853         (WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):
3854
3855 2013-02-15  Simon Fraser  <simon.fraser@apple.com>
3856
3857         Constrain fixed layers to the viewport, not the document
3858         https://bugs.webkit.org/show_bug.cgi?id=109646
3859
3860         Reviewed by Beth Dakin.
3861         
3862         It's bad to constrain position:fixed compositing layers to the
3863         document rect, because their bounds will change every time the scroll
3864         position changes, and we're not good currently at synchronizing scrolling
3865         thread layer updates with main thread layer updates, so jiggles ensue.
3866         
3867         Fix by constraining position:fixed layers to the viewport.
3868
3869         Test: compositing/geometry/limit-layer-bounds-fixed.html
3870
3871         * rendering/RenderLayerBacking.cpp:
3872         (WebCore::RenderLayerBacking::updateCompositedBounds):
3873
3874 2013-02-13  Jer Noble  <jer.noble@apple.com>
3875
3876         Add a CDMClient class which allows the CDM to query for the currently attached MediaPlayer.
3877         https://bugs.webkit.org/show_bug.cgi?id=109702
3878
3879         Reviewed by Eric Carlson.
3880
3881         Some CDM implementations will need to work closely with an associated
3882         MediaPlayer in order to generate key requests and provide keys. Add a
3883         client protocol to be implemented by the MediaKeys object which can
3884         provide access to the associated MediaPlayer if present.
3885
3886         * Modules/encryptedmedia/CDM.cpp:
3887         (WebCore::CDM::CDM): Initialize the m_client ivar.
3888         (WebCore::CDM::mediaPlayer): Pass to the client, if present.
3889         * Modules/encryptedmedia/CDM.h:
3890         (WebCore::CDM::client): Simple getter.
3891         (WebCore::CDM::setClient): Simple setter.
3892         * Modules/encryptedmedia/MediaKeys.cpp:
3893         (WebCore::MediaKeys::MediaKeys): Initialize the m_mediaElement ivar
3894             and call setClient() on the passed in CDM.
3895         (WebCore::MediaKeys::setMediaElement): Simple setter.
3896         (WebCore::MediaKeys::cdmMediaPlayer): Retrieve the MediaPlayer from
3897             the m_mediaElement if present.
3898         * Modules/encryptedmedia/MediaKeys.h:
3899         * html/HTMLMediaElement.cpp:
3900         (WebCore::HTMLMediaElement::~HTMLMediaElement): Call setMediaKeys(0)
3901             to clear the mediaElement in any associated MediaKeys.
3902         (WebCore::HTMLMediaElement::setMediaKeys): Clear the mediaElement on
3903             any associated MediaKeys, and set the mediaElement on the newly
3904             associated MediaKeys.
3905
3906 2013-02-15  Simon Fraser  <simon.fraser@apple.com>
3907
3908         drop-shadow filter with overflow:hidden child misbehaves
3909         https://bugs.webkit.org/show_bug.cgi?id=109783
3910
3911         Reviewed by Dean Jackson.
3912         
3913         The change in r112745 was not sufficient; it failed to account
3914         for descendant layers that needed to not clipping to avoid artefacts
3915         with filters like drop-shadow.
3916
3917         Test: css3/filters/filter-repaint-shadow-layer-child.html
3918
3919         * rendering/RenderLayer.cpp:
3920         (WebCore::RenderLayer::paintLayerContents): Remove the useClipRect bool.
3921         Replace it with a clipToDirtyRect member on the LayerPaintingInfo, which
3922         gets passed to descendants. Remove some "Restore the clip" comments that added
3923         nothing.
3924         * rendering/RenderLayer.h:
3925         (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
3926         (LayerPaintingInfo):
3927
3928 2013-02-15  Sheriff Bot  <webkit.review.bot@gmail.com>
3929
3930         Unreviewed, rolling out r143066.
3931         http://trac.webkit.org/changeset/143066
3932         https://bugs.webkit.org/show_bug.cgi?id=109986
3933
3934         Broke the Apple Lion build (among others). (Requested by
3935         ddkilzer on #webkit).
3936
3937         * accessibility/mac/AXObjectCacheMac.mm:
3938         (WebCore::AXObjectCache::attachWrapper):
3939         * accessibility/mac/WebAccessibilityObjectWrapper.h:
3940         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
3941         (-[WebAccessibilityObjectWrapper unregisterUniqueIdForUIElement]):
3942         (-[WebAccessibilityObjectWrapper detach]):
3943         (-[WebAccessibilityObjectWrapper accessibilityObject]):
3944         (-[WebAccessibilityObjectWrapper attachmentView]):
3945         (CFAutoreleaseHelper):
3946         (AXObjectIsTextMarker):
3947         (AXObjectIsTextMarkerRange):
3948         (AXTextMarkerRange):
3949         (AXTextMarkerRangeStart):
3950         (AXTextMarkerRangeEnd):
3951         (SearchKeyEntry):
3952         (createAccessibilitySearchKeyMap):
3953         (accessibilitySearchKeyForString):
3954         (textMarkerForVisiblePosition):
3955         (-[WebAccessibilityObjectWrapper textMarkerForVisiblePosition:]):
3956         (visiblePositionForTextMarker):
3957         (-[WebAccessibilityObjectWrapper visiblePositionForTextMarker:]):
3958         (visiblePositionForStartOfTextMarkerRange):
3959         (visiblePositionForEndOfTextMarkerRange):
3960         (textMarkerRangeFromMarkers):
3961         (AXAttributedStringRangeIsValid):
3962         (AXAttributeStringSetFont):
3963         (CreateCGColorIfDifferent):
3964         (AXAttributeStringSetColor):
3965         (AXAttributeStringSetNumber):
3966         (AXAttributeStringSetStyle):
3967         (AXAttributeStringSetBlockquoteLevel):
3968         (AXAttributeStringSetSpelling):
3969         (AXAttributeStringSetHeadingLevel):
3970         (AXAttributeStringSetElement):
3971         (AXAttributedStringAppendText):
3972         (nsStringForReplacedNode):
3973         (-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]):
3974         (textMarkerRangeFromVisiblePositions):
3975         (-[WebAccessibilityObjectWrapper textMarkerRangeFromVisiblePositions:endPosition:]):
3976         (-[WebAccessibilityObjectWrapper accessibilityActionNames]):
3977         (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
3978         (-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
3979         (-[WebAccessibilityObjectWrapper visiblePositionRangeForTextMarkerRange:]):
3980         (-[WebAccessibilityObjectWrapper renderWidgetChildren]):
3981         (-[WebAccessibilityObjectWrapper remoteAccessibilityParentObject]):
3982         (convertToVector):
3983         (convertToNSArray):
3984         (-[WebAccessibilityObjectWrapper textMarkerRangeForSelection]):
3985         (-[WebAccessibilityObjectWrapper position]):
3986         (createAccessibilityRoleMap):
3987         (roleValueToNSString):
3988         (-[WebAccessibilityObjectWrapper role]):
3989         (-[WebAccessibilityObjectWrapper subrole]):