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