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