d94d5d35b77e2ae36db28782d795ac024eee9532
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-02-23  Hajime Morrita  <morrita@google.com>
2
3         ShadowRoot needs guardRef() and guardDeref()
4         https://bugs.webkit.org/show_bug.cgi?id=109777
5
6         Reviewed by Dimitri Glazkov.
7
8         This change moves m_guardRefCount from Document to TreeScope,
9         which allows ShadowRoot to be guarded by guardRef() mechanism as
10         Document. After r137524, Node referes TreeScope instead of
11         Document. This is natural consequence of the change: It no longer
12         makes sense to guardRef() Document pointer from Node.
13
14         Detail:
15
16         - Document::m_guardRefCount and related funcdtions are moved to TreeScope
17         - Document::removedLastRef is factored out into TreeScope::removedLastRefToScope(),
18           TreeScope::dispose() and Docuent::dispose(). ShadowRoot also got its own dispose() implementation.
19         - Moved guardRef() and guardDeref() calls to TreeScope and Node.
20           Note that there are two "guarded" TreeScope references. One is
21           Node::m_treeScope and another is TreeScope::m_parentTreeScope.
22           The guarded-ref management is now encapsulated in these two classes.
23
24         No new tests. Covered by existing tests.
25
26         * WebCore.exp.in:
27         * dom/Document.cpp:
28         (WebCore::Document::Document):
29         (WebCore::Document::~Document):
30         (WebCore::Document::dispose): Extracted from removedLastRef()
31         * dom/Document.h:
32         (WebCore::Node::isTreeScope):
33         (WebCore::Node::Node):
34         * dom/DocumentFragment.cpp:
35         (WebCore::DocumentFragment::DocumentFragment): Remove ASSERT() and move it to ...
36         (WebCore::DocumentFragment::create): ... here, to allow NULL document from ShadowRoot.
37         * dom/Node.cpp:
38         (WebCore::Node::~Node):
39         (WebCore::Node::removedLastRef):
40         * dom/Node.h:
41         (WebCore::Node::setTreeScope):
42         * dom/ShadowRoot.cpp:
43         (WebCore::ShadowRoot::ShadowRoot): Passed NULL document to superclass. This aligns what Document is doing.
44         (WebCore::ShadowRoot::dispose): Added.
45         * dom/ShadowRoot.h:
46         (ShadowRoot):
47         * dom/TreeScope.cpp:
48         (SameSizeAsTreeScope):
49         (WebCore::TreeScope::TreeScope):
50         (WebCore::TreeScope::~TreeScope):
51         (WebCore::TreeScope::dispose): Added.
52         (WebCore::TreeScope::setParentTreeScope):
53         (WebCore::TreeScope::deletionHasBegun):
54         (WebCore::TreeScope::beginDeletion):
55         (WebCore::TreeScope::refCount): Added.
56         * dom/TreeScope.h: Turned m_rootNode to Node* from ContainerNode* for Node::isTreeScope to be inlined.
57         (WebCore::TreeScope::guardRef): Pulled up from Document.
58         (WebCore::TreeScope::guardDeref): Ditto.
59         (WebCore::TreeScope::hasGuardRefCount): Added to hide m_guardRefCount.
60         (WebCore::TreeScope::deletionHasBegun): Added.
61         (WebCore::TreeScope::beginDeletion): Added.
62         (WebCore::TreeScope::removedLastRefToScope): Pulled up from Document.
63         * dom/TreeScopeAdopter.cpp:
64         (WebCore::TreeScopeAdopter::moveTreeToNewScope):
65         (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
66
67 2013-02-23  Alexey Proskuryakov  <ap@apple.com>
68
69         Don't include ResourceHandle.h in ResourceLoaderOptions.h
70         https://bugs.webkit.org/show_bug.cgi?id=110662
71
72         Reviewed by Tim Horton.
73
74         * loader/ResourceLoaderOptions.h: Include ResourceHandleTypes.h instead.
75
76 2013-02-23  Jason Anderssen  <janderssen@gmail.com>
77
78         Move setAutofilled from TestRunner to WebCore
79         https://bugs.webkit.org/show_bug.cgi?id=110521
80
81         Reviewed by Benjamin Poulain.
82
83         * testing/Internals.cpp:
84         (WebCore):
85         (WebCore::Internals::setAutofilled):
86         * testing/Internals.h:
87         (Internals):
88         * testing/Internals.idl:
89
90 2013-02-22  Andreas Kling  <akling@apple.com>
91
92         Attr: Simplify modification callbacks.
93         <http://webkit.org/b/110598>
94
95         Reviewed by Antti Koivisto.
96
97         Instead of Attr being a friend of Element and grabbing at various internal storage and callbacks,
98         let Attr simply call Element::setAttribute() when its value is changed, and do all that business
99         from Element.
100
101         * dom/Element.h:
102         * dom/Element.cpp:
103         (WebCore::Element::setAttributeInternal):
104
105             Call Attr::recreateTextChildAfterAttributeValueChanged() after modifying an attribute value instead
106             of doing the modification through the Attr node.
107
108         * dom/Attr.h:
109         * dom/Attr.cpp:
110         (WebCore::Attr::Attr):
111         (WebCore::Attr::childrenChanged):
112
113             Added an m_inChildrenChanged flag so we can prevent infinite callback recursion in childrenChanged().
114
115         (WebCore::Attr::setValue):
116
117             Call Element::setAttribute() instead of modifying the attribute storage directly.
118
119         (WebCore::Attr::recreateTextChildAfterAttributeValueChanged):
120
121             Factored out the "remove all children / create a new text child with attribute value" logic into
122             a separate function.
123
124 2013-02-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
125
126         [EFL] Use EINA_LOG instead of fprintf 
127         https://bugs.webkit.org/show_bug.cgi?id=110313
128
129         Reviewed by Laszlo Gombos.
130
131         Replace fprintf with EINA_LOG.
132
133         * platform/efl/NetworkInfoProviderEfl.cpp:
134         (WebCore::NetworkInfoProviderEfl::startUpdating):
135         * platform/graphics/efl/CairoUtilitiesEfl.cpp:
136         (WebCore::evasObjectFromCairoImageSurface):
137
138 2013-02-22  Tony Gentilcore  <tonyg@chromium.org>
139
140         Threaded HTML parser fails resources/plain-text-unsafe.dat
141         https://bugs.webkit.org/show_bug.cgi?id=110538
142
143         Reviewed by Eric Seidel.
144
145         With this patch, the background HTML parser passes all tests in plain-text-unsafe.dat.
146
147         No new tests because covered by existing tests.
148
149         * html/parser/BackgroundHTMLParser.cpp:
150         (WebCore::tokenExitsSVG):
151         (WebCore):
152         (WebCore::tokenExitsMath):
153         (WebCore::BackgroundHTMLParser::simulateTreeBuilder):
154
155 2013-02-22  Tony Gentilcore  <tonyg@chromium.org>
156
157         Correct InspectorInstrumentation for background HTML parser
158         https://bugs.webkit.org/show_bug.cgi?id=110678
159
160         Reviewed by Adam Barth.
161
162         resumeParsingAfterScriptExecution potentially calls processParsedChunkFromBackgroundParser multiple times
163         without yielding. So it is not correct to count each of those as a separate ParseHTML event.
164
165         This patch moves the instrumentation outside of the loop.
166
167         No new tests because no new functionality.
168
169         * html/parser/HTMLDocumentParser.cpp:
170         (WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
171         (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
172         (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
173
174 2013-02-22  Aaron Colwell  <acolwell@chromium.org>
175
176         Factor MediaSource methods out of MediaPlayer & MediaPlayerPrivate and into a new MediaSourcePrivate interface.
177         https://bugs.webkit.org/show_bug.cgi?id=109857
178
179         Reviewed by Adam Barth.
180
181         This is a simple refactor that moves MediaSource related methods out of MediaPlayer & MediaPlayerPrivate
182         so that the MediaSource implementation can be updated without further polluting these interfaces.
183         MediaSourcePrivate is the new WebCore interface that ports must implement to support the MediaSource API.
184
185         No new tests. No user visible behavior has changed.
186
187         * Modules/mediasource/MediaSource.cpp:
188         (WebCore::MediaSource::MediaSource):
189         (WebCore::MediaSource::duration):
190         (WebCore::MediaSource::setDuration):
191         (WebCore::MediaSource::addSourceBuffer):
192         (WebCore::MediaSource::removeSourceBuffer):
193         (WebCore::MediaSource::setReadyState):
194         (WebCore::MediaSource::endOfStream):
195         (WebCore::MediaSource::buffered):
196         (WebCore::MediaSource::append):
197         (WebCore::MediaSource::abort):
198         (WebCore::MediaSource::setTimestampOffset):
199         (WebCore::MediaSource::setPrivateAndOpen):
200         (WebCore):
201         (WebCore::MediaSource::hasPendingActivity):
202         (WebCore::MediaSource::stop):
203         * Modules/mediasource/MediaSource.h:
204         (MediaSource):
205         * html/HTMLMediaElement.cpp:
206         (WebCore::HTMLMediaElement::HTMLMediaElement):
207         (WebCore::HTMLMediaElement::loadResource):
208         (WebCore::HTMLMediaElement::createMediaPlayer):
209         (WebCore::HTMLMediaElement::reportMemoryUsage):
210         * html/HTMLMediaElement.h:
211         (HTMLMediaElement):
212         * platform/graphics/MediaPlayer.cpp:
213         (NullMediaPlayerPrivate):
214         (WebCore::NullMediaPlayerPrivate::load):
215         (WebCore::MediaPlayer::load):
216         (WebCore):
217         (WebCore::MediaPlayer::loadWithNextMediaEngine):
218         * platform/graphics/MediaPlayer.h:
219         (WebCore):
220         (MediaPlayerClient):
221         (MediaPlayer):
222         * platform/graphics/MediaPlayerPrivate.h:
223         (MediaPlayerPrivateInterface):
224         * platform/graphics/MediaSourcePrivate.h: Added.
225         (WebCore):
226         (MediaSourcePrivate): Contains the MediaSource methods extracted from MediaPlayer.
227         (WebCore::MediaSourcePrivate::MediaSourcePrivate):
228         (WebCore::MediaSourcePrivate::~MediaSourcePrivate):
229
230 2013-02-22  Beth Dakin  <bdakin@apple.com>
231
232         RenderLayer::scrollTo() should call FrameLoaderClient::didChangeScrollOffset()
233         https://bugs.webkit.org/show_bug.cgi?id=110673
234         -and corresponding-
235         <rdar://problem/13258596>
236
237         Reviewed by Sam Weinig.
238
239         FrameLoaderClient::didChangeScrollOffset() doesn't get called for web pages that
240         have overflow on the body. We can easily address this by calling it at the 
241         end of RenderLayer::scrollTo().
242
243         * rendering/RenderLayer.cpp:
244         (WebCore::RenderLayer::scrollTo):
245
246 2013-02-22  Ryosuke Niwa  <rniwa@webkit.org>
247
248         WebKit can erroneously strip font-size CSS property from font element with size attribute
249         https://bugs.webkit.org/show_bug.cgi?id=110657
250
251         Reviewed by Justin Garcia.
252
253         The bug was caused by ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline
254         erroneously removing style attributes even on an element such as font that implicitly adds
255         editing style.
256
257         Fixed the bug by removing these elements or attributes when they conflict with the inline
258         style of the element. This is always safe because implicit style of an element is always
259         overridden by that of inline style.
260
261         Note that when the font element becomes "empty" (i.e. doesn't have any attributes), then
262         we also want to delete this font element as it doesn't contribute anything to the style.
263
264         Test: editing/pasteboard/insert-u-with-text-decoration-none.html
265               editing/pasteboard/insert-font-with-size-and-css.html
266
267         * editing/ApplyStyleCommand.cpp:
268         (WebCore::isEmptyFontTag): Added ShouldStyleAttributeBeEmpty as an argument. This will
269         allow removeRedundantStylesAndKeepStyleSpanInline to ignore style attribute when we know
270         the attribute can be removed.
271
272         * editing/ApplyStyleCommand.h: Expose isEmptyFontTag and ShouldStyleAttributeBeEmpty.
273
274         * editing/ReplaceSelectionCommand.cpp:
275         (WebCore::ReplaceSelectionCommand::InsertedNodes::didReplaceNode): Added.
276         (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline): See above.
277         * editing/ReplaceSelectionCommand.h:
278         (InsertedNodes): Added a declaration of didReplaceNode.
279
280 2013-02-22  Laszlo Gombos  <l.gombos@samsung.com>
281
282         Remove unused make variable from DerivedSources.make
283         https://bugs.webkit.org/show_bug.cgi?id=110306
284
285         Reviewed by Alexey Proskuryakov.
286
287         r107026 removed the last piece of logic that was guarded with
288         ENABLE_DASHBOARD_SUPPORT, so now it can be removed from
289         DerivedSources.make. 
290
291         Also combined the way ENABLE_ORIENTATION_EVENTS is set to 0
292         to make it more readable.
293
294         No new tests, no new functionality.
295
296         * DerivedSources.make:
297
298 2013-02-22  Dimitri Glazkov  <dglazkov@chromium.org>
299
300         REGRESSION(r130089): Scrollbar thumb no longer re-rendered on hover
301         https://bugs.webkit.org/show_bug.cgi?id=109230
302
303         In r130089, I accidentally removed the extra check that made scrollbar
304         parts styles sad. I put it back and made them happy.
305
306         Reviewed by Eric Seidel.
307
308         Test: fast/css/pseudo-element-selector-scrollbar-hover.html
309
310         * css/SelectorChecker.cpp:
311         (WebCore::SelectorChecker::match): Added the check back.
312
313 2013-02-22  Tim Horton  <timothy_horton@apple.com>
314
315         [WK2] The root and page overlay layers should be the size of the view, not the content
316         https://bugs.webkit.org/show_bug.cgi?id=110660
317         <rdar://problem/13096456>
318
319         Reviewed by Simon Fraser.
320
321         * WebCore.exp.in:
322
323 2013-02-22  Anders Carlsson  <andersca@apple.com>
324
325         pluginLoadStrategy should take a WKDictionaryRef for extensibility
326         https://bugs.webkit.org/show_bug.cgi?id=110656
327         <rdar://problem/13265303>
328
329         Reviewed by Jessie Berlin.
330
331         Export a symbol needed by WebKit2.
332
333         * WebCore.exp.in:
334
335 2013-02-22  Levi Weintraub  <leviw@chromium.org>
336
337         Add descriptive names for different addMidpoint use cases
338         https://bugs.webkit.org/show_bug.cgi?id=110644
339
340         Reviewed by Ryosuke Niwa.
341
342         Midpoints are used to delineate ranges where we don't add line boxes for contents (collapsed spaces),
343         and to explicitly split a RenderText into multiple text runs so that text paragraph seperators get
344         their own line boxes. This patch encapsulates the different cases where midpoints are added to
345         lineMidpointState into 4 helper functions to make it clearer what's going on in each case.
346
347         No new tests. No change in functionality.
348
349         * rendering/RenderBlockLineLayout.cpp:
350         (WebCore::deprecatedAddMidpoint): Original function simply adds a midpoint to the lineMidpointState.
351         Renaming to deprecated to discourage callers.
352         (WebCore::startIgnoringSpaces): Adds a midpoint to start collapsing subsequent spaces. Asserts that
353         we have an even number of midpoints.
354         (WebCore::stopIgnoringSpaces): Adds the corresponding midpoint from startIgnoringSpaces and asserts
355         that it's an odd number.
356         (WebCore::ensureLineBoxInsideIgnoredSpaces): When ignoring spaces and we come across a RenderInline
357         that needs a line box, this function adds a pair of midpoints which ensures we'll later add a line
358         box for it.
359         (WebCore::ensureCharacterGetsLineBox): Adds a pair of midpoints in a text renderer to mark that
360         the current character needs its own line box. This is used by svg for absolutely positioned
361         characters, or for text paragraph seperators.
362
363 2013-02-22  Justin Schuh  <jschuh@chromium.org>
364
365         RenderArena masking has low entropy
366         https://bugs.webkit.org/show_bug.cgi?id=110394
367
368         Reviewed by Oliver Hunt.
369
370         No new tests. This is a hardening measure.
371
372         * rendering/RenderArena.cpp:
373         (WebCore::RenderArena::RenderArena):
374
375 2013-02-22  Min Qin  <qinmin@chromium.org>
376
377         Fix the overlay play button position on android
378         https://bugs.webkit.org/show_bug.cgi?id=110638
379
380         Reviewed by Ojan Vafai.
381
382         Because we are using flex box, specifying the height is not necessary.
383         Setting height to 100% will make the enclosure go outside the control panel.
384         There are no media layout test expecations for android, will do that in another patch.
385
386         * css/mediaControlsChromiumAndroid.css:
387         (video::-webkit-media-controls-overlay-enclosure):
388
389 2013-02-22  Kentaro Hara  <haraken@chromium.org>
390
391         Unreviewed build fix. Added missing #if PLATFORM(CHROMIUM).
392
393         * dom/Document.cpp:
394         (WebCore::Document::recalcStyle):
395         * page/FrameView.cpp:
396         (WebCore::FrameView::layout):
397
398 2013-02-22  Kentaro Hara  <haraken@chromium.org>
399
400         Document::styleRecalc() and FrameView::layout() should be traced
401         https://bugs.webkit.org/show_bug.cgi?id=110646
402
403         Reviewed by Ojan Vafai.
404
405         Document::styleRecalc() and FrameView::layout() are key factors
406         for web page rendering performance. We should add TRACE_EVENT()
407         macros to these functions.
408
409         * dom/Document.cpp:
410         (WebCore::Document::recalcStyle):
411         * page/FrameView.cpp:
412         (WebCore::FrameView::layout):
413
414 2013-02-22  Eric Seidel  <eric@webkit.org>
415
416         Teach the html5lib tests how to test the threaded HTML parser
417         https://bugs.webkit.org/show_bug.cgi?id=110643
418
419         Reviewed by Adam Barth.
420
421         This adds a way to force data: url parsing to go through
422         the threaded parser, to enable us to test the threaded parser
423         using the html5lib test harness.
424
425         * html/parser/HTMLParserOptions.cpp:
426         (WebCore::HTMLParserOptions::HTMLParserOptions):
427         * page/Settings.in:
428
429 2013-02-21  Ojan Vafai  <ojan@chromium.org>
430
431         Increase the max preferred width of tables to 1000000
432         https://bugs.webkit.org/show_bug.cgi?id=110545
433
434         Reviewed by Emil A Eklund.
435
436         Test: fast/table/large-shrink-wrapped-width.html
437
438         The old limit of 15000 was picked arbitrarily to avoid overflow.
439         No need to pick such a small number.
440
441         * rendering/AutoTableLayout.cpp:
442         (WebCore::AutoTableLayout::computeInstrinsicLogicalWidths):
443         As best I can tell, this code is just wrong. Removing this makes the
444         new test pass and doesn't cause any test failure. While we have many
445         tests that hit this codepath, this code would only
446         show a difference in the cases where the available container width is
447         greater then 15000, and I don't think we have any tests that hit that case
448         other than this new one.
449         * rendering/TableLayout.h:
450
451 2013-02-22  Adam Barth  <abarth@webkit.org>
452
453         Threaded HTML parser should pass fast/parser/iframe-sets-parent-to-javascript-url.html
454         https://bugs.webkit.org/show_bug.cgi?id=110637
455
456         Reviewed by Eric Seidel.
457
458         With the main thread parser, we always parse the first chunk of content
459         returned as the result of evaluating a JavaScript URL synchronously. In
460         particular, if the first chunk has an inline script, we'll execute it
461         synchronously.
462
463         Previous to this patch, the threaded parser would always parse this
464         content asynchronously. It's conceivable that there could be some
465         content relying on the synchronous behavior, so this patch introduces
466         the notion of "pinning" a parser to the main thread and uses that
467         concept to force the result of JavaScript URLs to be parsed on the main
468         thread (which is probably desirable anyway because they're likely to be
469         quite short).
470
471         This patch fixes fast/parser/iframe-sets-parent-to-javascript-url.html
472         and fast/dom/javascript-url-crash-function.html with the threaded
473         parser with --enable-threaded-html-parser.
474
475         * dom/DocumentParser.h:
476         (WebCore::DocumentParser::pinToMainThread):
477         (DocumentParser):
478         * html/parser/HTMLDocumentParser.cpp:
479         (WebCore::HTMLDocumentParser::HTMLDocumentParser):
480         (WebCore):
481         (WebCore::HTMLDocumentParser::pinToMainThread):
482         * html/parser/HTMLDocumentParser.h:
483         (HTMLDocumentParser):
484         (WebCore::HTMLDocumentParser::shouldUseThreading):
485         * loader/DocumentWriter.cpp:
486         (WebCore::DocumentWriter::replaceDocument):
487
488 2013-02-22  Joe Mason  <jmason@rim.com>
489
490         [BlackBerry] Reread cookies when retrying a request with new auth credentials
491         https://bugs.webkit.org/show_bug.cgi?id=110628
492
493         Reviewed by George Staikos.
494
495         Internal PR: 298805
496         Internally Reviewed By: Leo Yang
497
498         The "isRedirect" parameter of initializePlatformRequest is only used to decide whether to
499         reread cookies. Since we must reread cookies when resending a request with new auth
500         credentials as well, rename this to "rereadCookies".
501
502         The only caller which sets this parameter rather than using the default value is
503         NetworkManager::startJob, which also has other processing on redirect. So add a new
504         "rereadCookies" parameter to startJob and ensure it is always set to true on a redirect, but
505         can also be set to true on a non-redirect. And when startJob is called due to new auth
506         credentials, set it to true.
507
508         * platform/network/blackberry/NetworkJob.cpp:
509         (WebCore::NetworkJob::startNewJobWithRequest): Add rereadCookies parameter, pass it to
510         startJob.
511         (WebCore::NetworkJob::handleRedirect): Set new rereadCookies param of startNewJob to true.
512         (WebCore::NetworkJob::notifyChallengeResult): Set new rereadCookies param of startNewJob to
513         true.
514         * platform/network/blackberry/NetworkJob.h:
515         (NetworkJob): Add rereadCookies parameter to startNewJobWithRequest.
516         * platform/network/blackberry/NetworkManager.cpp:
517         (WebCore::NetworkManager::startJob): Add rereadCookies parameter, pass it instead of
518         redirectCount to initializePlatformRequest.
519         * platform/network/blackberry/NetworkManager.h:
520         (NetworkManager): Add rereadCookies parameter to startJob.
521         * platform/network/blackberry/ResourceRequest.h:
522         (ResourceRequest): Rename isRedirect parameter to rereadCookies.
523         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
524         (WebCore::ResourceRequest::initializePlatformRequest): Rename isRedirect to rereadCookies.
525
526 2013-02-22  Benjamin Poulain  <bpoulain@apple.com>
527
528         Use CFNotificationCenter instead of NSNotificationCenter for SharedTimerIOS
529         https://bugs.webkit.org/show_bug.cgi?id=110544
530
531         Reviewed by Daniel Bates.
532
533         Previously, we were instantiating the Obj-C object WebCoreResumeNotifierIOS
534         with the only purpose of forwarding one notification to a C function.
535
536         This patch updates the code to use CFNotificationCenter to dispatch the notification
537         without the intermediary object.
538
539         * platform/ios/SharedTimerIOS.mm:
540         (WebCore::applicationDidBecomeActive):
541         (WebCore::setSharedTimerFireInterval):
542
543 2013-02-22  Kenneth Russell  <kbr@google.com>
544
545         Uint8ClampedArray constructor is wrong in WorkerContext.idl
546         https://bugs.webkit.org/show_bug.cgi?id=110634
547
548         Reviewed by Adam Barth.
549
550         Tests: fast/canvas/webgl/typed-arrays-in-workers.html
551                webgl/conformance/typedarrays/typed-arrays-in-workers.html
552
553         * workers/WorkerContext.idl:
554
555 2013-02-21  Mark Lam  <mark.lam@apple.com>
556
557         Add some checks to DatabaseTracker::getMaxSizeForDatabase() to ensure
558         that it returns a sane value.
559         https://bugs.webkit.org/show_bug.cgi?id=110557.
560
561         Reviewed by Geoffrey Garen.
562
563         No layout test, but there is a quota-test.html attached to bugzilla.
564         The test is a webpage that can be loaded into multiple tabs to
565         consuming storage space. Once the test webpages are loaded, you will
566         need to monitor the database directory and its files to confirm that
567         growth is bounded. Also try reloading the test in the tabs. At no
568         time should any database file ever exceed the quota.
569
570         * Modules/webdatabase/DatabaseTracker.cpp:
571         (WebCore::DatabaseTracker::getMaxSizeForDatabase):
572
573 2013-02-22  James Simonsen  <simonjam@chromium.org>
574
575         Preloads should be cleared when JavaScript cancels loading prematurely.
576         https://bugs.webkit.org/show_bug.cgi?id=110388
577
578         Reviewed by Antti Koivisto.
579
580         If a page preloads a resource, but JavaScript aborts parsing for any reason (for example, a
581         redirect or document.write()), the resource is forever marked a preload and won't be reloaded
582         even if it's explicitly marked no-cache and the page is reloaded.
583
584         Test: http/tests/cache/preload-cleared-after-parrsing-canceled-by-js.html
585
586         * dom/Document.cpp:
587         (WebCore::Document::implicitClose):
588         (WebCore::Document::finishedParsing):
589
590 2013-02-22  Antoine Quint  <graouts@apple.com>
591
592         Expose a list of all reasons that qualify a RenderLayer to be composited
593         https://bugs.webkit.org/show_bug.cgi?id=110505
594
595         Expose the various reasons that can qualify a RenderLayer to be composited
596         via a new bitmask returned by the reasonForCompositing() method on
597         RenderLayerCompositor. This method already existed and was used for logging
598         purposes, but the previous functionality is now accessed via the
599         logReasonForCompositing() method.
600
601         This will allow the the InspectorLayerTreeAgent to provide this information
602         to the front-end on a per-layer basis as requested by the front-end.
603
604         Reviewed by Simon Fraser.
605
606         No new tests.
607
608         * rendering/RenderLayerCompositor.cpp:
609         (WebCore::RenderLayerCompositor::logLayerInfo):
610         (WebCore::RenderLayerCompositor::reasonsForCompositing):
611         (WebCore):
612         (WebCore::RenderLayerCompositor::logReasonsForCompositing):
613         * rendering/RenderLayerCompositor.h:
614         (RenderLayerCompositor):
615
616 2013-02-22  Beth Dakin  <bdakin@apple.com>
617
618         ScrollingStateTree::rootStateNode() should be null-checked since it can be null
619         https://bugs.webkit.org/show_bug.cgi?id=110631
620
621         Reviewed by Simon Fraser.
622
623         This is a speculative fix for <rdar://problem/13233090> and 
624         <rdar://problem/12519348>. It is totally possible for rootStateNode() to be null, 
625         so we should null-check it.
626
627         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
628         (WebCore::ScrollingCoordinatorMac::setShouldUpdateScrollLayerPositionOnMainThread):
629         (WebCore::ScrollingCoordinatorMac::syncChildPositions):
630
631 2013-02-22  Mike Reed  <reed@google.com>
632
633         Check for null-device when calling createCompatibleDevice
634         https://bugs.webkit.org/show_bug.cgi?id=107981
635
636         Reviewed by James Robinson.
637
638         No new tests. Current tests provided coverage. Site in the wild triggered the failure
639         (cairo failed to allocate a huge surface).
640
641         * platform/graphics/skia/ImageBufferSkia.cpp:
642         (WebCore::ImageBuffer::ImageBuffer):
643
644 2013-02-22  Chris Rogers  <crogers@google.com>
645
646         AudioDestination::create() needs extra device identification information for live/local input streams
647         https://bugs.webkit.org/show_bug.cgi?id=109494
648
649         Reviewed by James Robinson.
650
651         AudioDestination::create() supports live/local audio input.  But, since there may be multiple
652         audio input devices available, an identifier for the requested input device needs to be
653         passed in.  The embedder may then use this information so that the proper audio hardware is
654         accessed.
655
656         * Modules/webaudio/AudioContext.cpp:
657         (WebCore::AudioContext::createMediaStreamSource):
658         * Modules/webaudio/AudioDestinationNode.h:
659         (AudioDestinationNode):
660         * Modules/webaudio/DefaultAudioDestinationNode.cpp:
661         (WebCore::DefaultAudioDestinationNode::initialize):
662         (WebCore::DefaultAudioDestinationNode::createDestination):
663         (WebCore::DefaultAudioDestinationNode::enableInput):
664         * Modules/webaudio/DefaultAudioDestinationNode.h:
665         (DefaultAudioDestinationNode):
666         * Modules/webaudio/OfflineAudioDestinationNode.h:
667         * platform/audio/AudioDestination.h:
668         (AudioDestination):
669         * platform/audio/chromium/AudioDestinationChromium.cpp:
670         (WebCore::AudioDestination::create):
671         (WebCore::AudioDestinationChromium::AudioDestinationChromium):
672         * platform/audio/chromium/AudioDestinationChromium.h:
673         (AudioDestinationChromium):
674         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
675         (WebCore::AudioDestination::create):
676         * platform/audio/mac/AudioDestinationMac.cpp:
677         (WebCore::AudioDestination::create):
678         * platform/chromium/support/WebMediaStreamSource.cpp:
679         (WebKit::WebMediaStreamSource::deviceId):
680         (WebKit):
681         (WebKit::WebMediaStreamSource::setDeviceId):
682         * platform/mediastream/MediaStreamSource.h:
683         (WebCore::MediaStreamSource::deviceId):
684         (WebCore::MediaStreamSource::setDeviceId):
685         (MediaStreamSource):
686
687 2013-02-22  Ryosuke Niwa  <rniwa@webkit.org>
688
689         Binding tests rebaseline after r143737.
690
691         * bindings/scripts/test/V8/V8Float64Array.cpp:
692         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
693         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
694         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
695         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
696         * bindings/scripts/test/V8/V8TestException.cpp:
697         * bindings/scripts/test/V8/V8TestInterface.cpp:
698         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
699         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
700         * bindings/scripts/test/V8/V8TestNode.cpp:
701         * bindings/scripts/test/V8/V8TestObj.cpp:
702         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
703         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
704         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
705
706 2013-02-22  Kunihiko Sakamoto  <ksakamoto@chromium.org>
707
708         INPUT_MULTIPLE_FIELDS_UI: Unable to enter "24" to hour field
709         https://bugs.webkit.org/show_bug.cgi?id=110431
710
711         Reviewed by Kent Tamura.
712
713         Fixed a bug that hour-field does not accept "24" as a valid input when hour format is 1-24.
714         To test <input> against different time formats, added "pattern" attribute to DateTimeEditElement.
715
716         Test: fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html
717
718         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
719         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue): Overwrites layoutParameters.dateTimeFormat by pattern attribute of DateTimeEditElement (if exists).
720         * html/shadow/DateTimeFieldElements.cpp:
721         (WebCore::DateTimeHourFieldElement::populateDateTimeFieldsState): Fixed a bug where AM/PM value was passed to setHour().
722         (WebCore::DateTimeHourFieldElement::setValueAsInteger): Clamps the given value to 0-24 when the range of the field is 1-12 or 1-24. Renamed the parameter as it may not be an hour23 value (0-23).
723
724 2013-02-21  Zoltan Horvath  <zoltan@webkit.org>
725
726         [CSS Regions] Region boxes should respect -shape-inside CSS property
727         https://bugs.webkit.org/show_bug.cgi?id=107880
728
729         Reviewed by David Hyatt.
730
731         The shape-inside CSS property modifies the shape of the inner inline flow content from rectangular content box
732         to an arbitrary geometry. The detailed documentation is located in the CSS-Exclusions specification:
733         http://dev.w3.org/csswg/css3-exclusions/#shape-inside-property. This change adds support for the shape-inside property
734         on CSS Regions.
735
736         Test: fast/regions/shape-inside-on-regions.html
737
738         * rendering/ExclusionShapeInfo.cpp:
739         (WebCore):
740         (WebCore::::logicalTopOffset): Shape dimension should be relative to the current region.
741         * rendering/ExclusionShapeInfo.h:
742         (ExclusionShapeInfo):
743         (WebCore::::logicalTopOffset): Move the implementation to ExclusionShapeInfo.cpp.
744         * rendering/RenderBlockLineLayout.cpp:
745         (WebCore::logicalHeightForLine): Move the function prior to layoutExclusionShapeInsideInfo, since we need to use it there.
746         (WebCore):
747         (WebCore::layoutExclusionShapeInsideInfo): Add support for cases when shape-inside is a region-block property.
748         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Update the exclusion shape information for every line, since the content
749         could flow through several region containers which can have different shape-inside properties.
750
751 2013-02-21  Ojan Vafai  <ojan@chromium.org>
752
753         Add computeInstrinsicLogicalWidths functions to TableLayout subclasses
754         https://bugs.webkit.org/show_bug.cgi?id=110520
755
756         Reviewed by Tony Chang.
757
758         This is just a refactor in preparation for adding RenderTable::computeIntinsicLogicalWidths.
759         No change in behavior.
760
761         Split the computePreferredLogicalWidths functions into a computeIntinsicLogicalWidths
762         and a applyPreferredLogicalWidthQuirks. Also, move the addition of bordersPaddingAndSpacing
763         into RenderTable since both TableLayout subclasses need this.
764
765         This has the added readability benefit of better isolating the quirks that each table layout
766         mode requires.
767
768         * rendering/AutoTableLayout.cpp:
769         (WebCore::AutoTableLayout::computeIntrinsicLogicalWidths):
770         (WebCore::AutoTableLayout::applyPreferredLogicalWidthQuirks):
771         * rendering/AutoTableLayout.h:
772         (AutoTableLayout):
773         * rendering/FixedTableLayout.cpp:
774         (WebCore::FixedTableLayout::computeIntrinsicLogicalWidths):
775         (WebCore::FixedTableLayout::applyPreferredLogicalWidthQuirks):
776         * rendering/FixedTableLayout.h:
777         (FixedTableLayout):
778         * rendering/RenderTable.cpp:
779         (WebCore::RenderTable::computePreferredLogicalWidths):
780         * rendering/TableLayout.h:
781         (TableLayout):
782
783 2013-02-22  David Hyatt  <hyatt@apple.com>
784
785         [New Multicolumn] Correctly track whether or not a layer is paginated.
786         https://bugs.webkit.org/show_bug.cgi?id=110625.
787
788         Taking the first step towards implementing the correct spec-compliant painting
789         model for the new multi-column layout. Add code to make sure the paginated
790         bits in RenderLayer get propagated correctly for the new layout.
791         
792         The main difference in bit propagation between the old multicolumn layout and
793         the new multicolumn layout is that the old layout only tracked pagination "roots",
794         since it has a broken layer painting model. It incorrectly treats a pagination
795         "root" inside a multi-column block as establishing a stacking context in each
796         column. This is incorrect.
797         
798         The new multicolumn code is going to paint each paginated layer individually,
799         and this means the bits can't just be about roots. Instead they have to be set
800         on every layer that may be split across columns, without regard for whether parent
801         layers are also split or not. This is actually a simpler bit propagation model
802         than the old code.
803
804         Reviewed by Beth Dakin.
805
806         * rendering/RenderLayer.cpp:
807         (WebCore::RenderLayer::updateLayerPositions):
808         Add code to set the m_isPaginated bit for in-flow RenderFlowThreads. This includes
809         only RenderMultiColumnFlowThread for now, but eventually it will also include
810         RenderPageFlowThread.
811
812         (WebCore::RenderLayer::useRegionBasedColumns):
813         Add a helper method to check if region-based columns are turned on, since we're
814         not attempting to alter the old column pagination model.
815
816         (WebCore::RenderLayer::updatePagination):
817         Added the code to propagate bits under the new model. Whether or not you're paginated
818         just depends on whether or not your enclosing layer along the containing block chain
819         is paginated.
820
821         (WebCore::RenderLayer::paintList):
822         (WebCore::RenderLayer::hitTestList):
823         Add code that avoids the old multi-column pagination model when the new column model
824         is enabled. For now there is no code in the new model that does anything with the bits,
825         but we're avoiding calling the old code, since it is broken for the new columns.
826
827         * rendering/RenderLayer.h:
828         (RenderLayer):
829         Added the useRegionBasedColumns method to check the Setting.
830
831         * rendering/RenderMultiColumnFlowThread.h:
832         * rendering/RenderObject.h:
833         (WebCore::RenderObject::isInFlowRenderFlowThread):
834         (RenderObject):
835         Implement isInFlowRenderFlowThread, a virtual function for asking if a renderer is
836         an in-flow RenderFlowThread, which means that it is going to need paginated layers
837         because the flow thread has to split across "pages" that do not establish stacking
838         contexts.
839
840 2013-02-22  Bem Jones-Bey  <bjonesbe@adobe.com>
841
842         text-overflow:ellipsis is not applied when the block contains nested blocks
843         https://bugs.webkit.org/show_bug.cgi?id=101879
844
845         Reviewed by Eric Seidel.
846
847         Since text-overflow is not an inherited property, the anonymous blocks
848         don't know they should ellipse. This causes the anonymous blocks
849         created in the nested block situation to check their parent to find
850         out if they should ellipse.
851
852         Test: fast/css/text-overflow-ellipsis-anonymous-blocks.html
853
854         * rendering/RenderBlockLineLayout.cpp:
855         (WebCore::RenderBlock::layoutInlineChildren):
856
857 2013-02-22  Eric Seidel  <eric@webkit.org>
858
859         REGRESSION(r143664, r143681): http/tests/security/feed-urls-from-remote.html fails
860         https://bugs.webkit.org/show_bug.cgi?id=110554
861
862         Reviewed by Adam Barth.
863
864         Will fix http/tests/security/feed-urls-from-remote.html for Mac WK1.
865
866         * loader/DocumentLoader.cpp:
867         (WebCore::DocumentLoader::isLoading):
868
869 2013-02-22  Mark Rowe  <mrowe@apple.com>
870
871         Build fix after r143637.
872
873         * WebCore.exp.in: Unconditionally export ScriptController::javaScriptContext.
874         * bindings/js/ScriptController.h: Unconditionally define javaScriptContext for Mac builds.
875         * bindings/js/ScriptControllerMac.mm:
876         (WebCore::ScriptController::javaScriptContext): Move the #if inside the function, and return 0 when false.
877
878 2013-02-22  Anton Vayvod  <avayvod@chromium.org>
879
880         [TextAutosizing] Refactoring to eliminate boolean parameter.
881         https://bugs.webkit.org/show_bug.cgi?id=110490
882
883         Reviewed by Julien Chaffraix.
884
885         A follow-up to the recent change that introduced a boolean parameter to
886         processClusterInternal method of TextAutosizer. Boolean parameters are discouraged by the
887         WebKit style guide. See http://trac.webkit.org/changeset/142866
888
889         Refactoring so no new tests.
890
891         * rendering/TextAutosizer.cpp:
892         (WebCore::TextAutosizer::clusterMultiplier):
893
894                 Calculates the font size multiplier for the specified cluster.
895
896         (WebCore::TextAutosizer::processClusterInternal):
897
898                 Accepts the font size multiplier instead of |shouldBeAutosized|.
899
900         (WebCore::TextAutosizer::processCluster):
901         (WebCore::TextAutosizer::processCompositeCluster):
902
903                 Both methods above now calculate the multiplier and then pass it to
904                 processClusterInternal.
905
906         * rendering/TextAutosizer.h:
907
908                 Updated method declarations.
909
910 2013-02-22  Carlos Garcia Campos  <cargarcia@rim.com>
911
912         [BlackBerry] Use KURL::protocolIsInHTTPFamily instead of KURL::protocolInHTTPFamily
913         https://bugs.webkit.org/show_bug.cgi?id=110581
914
915         Reviewed by Rob Buis.
916
917         KURL::protocolInHTTPFamily() was removed in r109670.
918
919         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
920         (WebCore::ResourceRequest::clearHTTPContentLength):
921         (WebCore::ResourceRequest::clearHTTPContentType):
922
923 2013-02-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
924
925         Unreviewed build-fix after r143744.
926
927         * dom/Document.cpp:
928         (WebCore::Document::updateHoverActiveState):
929
930 2013-02-22  Andrey Adaikin  <aandrey@chromium.org>
931
932         Web Inspector: [Canvas] throttle replayTraceLog messages to backend
933         https://bugs.webkit.org/show_bug.cgi?id=110591
934
935         Reviewed by Pavel Feldman.
936
937         The replayTraceLog message may be quite expensive. So, while such a request is processed by the
938         backend, user may well generate a dozen of new ones simply by walking through the DataGrid.
939         We should actually send to the backend only the last event from the queue.
940
941         * inspector/front-end/CanvasProfileView.js:
942         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
943         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
944
945 2013-02-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
946
947         Multiple Layout Test crashes (ASSERT) on chromium linux debug after r143727
948         https://bugs.webkit.org/show_bug.cgi?id=110609
949
950         Reviewed by Antonio Gomes.
951
952         Revert r128869. InnerNode may now again be from a child document, 
953         and should be handled and not asserted against.
954
955         * dom/Document.cpp:
956         (WebCore::Document::updateHoverActiveState):
957
958 2013-02-22  Andreas Kling  <akling@apple.com>
959
960         Element: Make updateName/updateId/updateLabel private.
961         <http://webkit.org/b/110603>
962
963         Reviewed by Antti Koivisto.
964
965         These methods are only called from inside Element so make them private and
966         move them to the .cpp file.
967
968         * dom/Element.cpp:
969         (WebCore::Element::updateName):
970         (WebCore::Element::updateId):
971         * dom/Element.h:
972
973 2013-02-21  Zhenyao Mo  <zmo@google.com>
974
975         Roll ANGLE to r1833
976         https://bugs.webkit.org/show_bug.cgi?id=110513
977
978         Reviewed by Kenneth Russell.
979
980         * CMakeLists.txt:
981         * GNUmakefile.list.am:
982
983 2013-02-22  Carlos Garcia Campos  <cargarcia@rim.com>
984
985         [BlackBerry] Rename first/second to key/value in HashMap iterators
986         https://bugs.webkit.org/show_bug.cgi?id=110577
987
988         Reviewed by Rob Buis.
989
990         Iterators were renamed to key/value in r130612.
991
992         * platform/blackberry/AuthenticationChallengeManager.cpp:
993         (WebCore::AuthenticationChallengeManager::pageVisibilityChanged):
994         * platform/network/blackberry/NetworkJob.cpp:
995         (WebCore::NetworkJob::handleNotifyMultipartHeaderReceived):
996
997 2013-02-22  Kentaro Hara  <haraken@chromium.org>
998
999         [V8] Add comments to checkTypeOrDieTrying()
1000         https://bugs.webkit.org/show_bug.cgi?id=110553
1001
1002         Reviewed by Adam Barth.
1003
1004         It is mysterious how the check is helpful. We need comments.
1005
1006         No tests. Just added comments.
1007
1008         * bindings/scripts/CodeGeneratorV8.pm:
1009         (GenerateImplementation):
1010         * bindings/v8/ScriptWrappable.h:
1011         (ScriptWrappable):
1012
1013 2013-02-22  Jessie Berlin  <jberlin@apple.com>
1014
1015         32-bit build fix after r143706
1016
1017         * fileapi/FileReaderLoader.cpp:
1018         (WebCore::FileReaderLoader::didReceiveData):
1019
1020 2013-02-22  Andrey Adaikin  <aandrey@chromium.org>
1021
1022         Web Inspector: [Canvas] do no show a single frame node in data grid
1023         https://bugs.webkit.org/show_bug.cgi?id=110473
1024
1025         Reviewed by Pavel Feldman.
1026
1027         In a single canvas frame capture mode do not show the single "Frame #1" node.
1028         Drive-by: Fix a wrong "this" pointer.
1029
1030         * inspector/front-end/CanvasProfileView.js:
1031         (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
1032         (WebInspector.CanvasProfileView.prototype.appendDrawCallGroup):
1033         (WebInspector.CanvasProfileView.prototype._flattenSingleFrameNode):
1034
1035 2013-02-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1036
1037         Multiple Layout Test crashes (ASSERT) on chromium linux debug after r143727
1038         https://bugs.webkit.org/show_bug.cgi?id=110609
1039
1040         Reviewed by Antonio Gomes.
1041
1042         Point based hit tests should not append but assign HitTestResults.
1043
1044         * rendering/RenderFrameBase.cpp:
1045         (WebCore::RenderFrameBase::nodeAtPoint):
1046
1047 2013-02-22  Andrey Lushnikov  <lushnikov@chromium.org>
1048
1049         Web Inspector: show source location after drawer views
1050         https://bugs.webkit.org/show_bug.cgi?id=110156
1051
1052         Reviewed by Pavel Feldman.
1053
1054         - Add statusBarText method
1055         - Add #drawer-view-anchor, which determines layout position of
1056         drawerView
1057         - Fix layout in #panel-status-bar to avoid floating elements.
1058
1059         No new tests.
1060
1061         * inspector/front-end/Panel.js:
1062         (WebInspector.Panel.prototype.wasShown): Add statusBarItems before
1063         drawer-view-anchor and statusBarText after.
1064         (WebInspector.Panel.prototype.willHide): Remove statusBarText from DOM in the
1065         way it's done for statusBarItems
1066         * inspector/front-end/ScriptsPanel.js:
1067         (WebInspector.ScriptsPanel.prototype.statusBarText): Added.
1068         * inspector/front-end/SourceFrame.js:
1069         (WebInspector.SourceFrame.prototype.statusBarText): Added.
1070         (WebInspector.SourceFrame.prototype.statusBarItems):
1071         * inspector/front-end/TimelinePanel.js:
1072         (WebInspector.TimelinePanel.prototype.get statusBarItems):
1073         * inspector/front-end/View.js:
1074         (WebInspector.View.prototype.statusBarText):
1075         * inspector/front-end/inspector.css:
1076         (#drawer-view-anchor):
1077         (.source-frame-cursor-position):
1078         * inspector/front-end/inspector.html:
1079         * inspector/front-end/inspector.js:
1080         (WebInspector.showViewInDrawer):
1081         * inspector/front-end/timelinePanel.css:
1082         (.timeline-records-stats):
1083         (.timeline-records-stats-container):
1084
1085 2013-02-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1086
1087         Allow child-frame content in hit-tests.
1088         https://bugs.webkit.org/show_bug.cgi?id=95204
1089
1090         Reviewed by Julien Chaffraix.
1091
1092         Refactors how EventHandler::hitTestResultAtPoint handles child-frame content,
1093         it is now handled by the hit test itself controlled by the AllowChildFrameContent
1094         flag in HitTestRequest.
1095
1096         This means that area-based hit-tests can now return elements from all the child frames
1097         they intersect instead of just the one frame containing the center point. The improved
1098         results from area-based hit-tests will among other things also improve touch adjustment
1099         near frame boundaries.
1100
1101         Tests: fast/dom/nodesFromRect/nodesFromRect-child-frame-content.html
1102
1103         * page/EventHandler.cpp:
1104         (WebCore::EventHandler::hitTestResultAtPoint):
1105             Recursion into child-frames have been moved to RenderFrameBase::nodeAtPoint, so
1106             now hitTestResultAtPoint just needs to set AllowChildFrameContent.
1107         * page/TouchAdjustment.cpp:
1108         (WebCore::TouchAdjustment::parentShadowHostOrOwner):
1109             New function to iterate up across frame boundaries.
1110         (WebCore::TouchAdjustment::compileSubtargetList):
1111             We need to iterate up across frame boundaries to avoid iframes competing with their
1112             own content for touch adjustment.
1113         * rendering/HitTestRequest.h:
1114         (WebCore::HitTestRequest::allowsChildFrameContent):
1115         (WebCore::HitTestRequest::isChildFrameHitTest):
1116         * rendering/HitTestResult.cpp:
1117         (WebCore::HitTestResult::HitTestResult):
1118         (WebCore::HitTestResult::operator=):
1119         (WebCore::HitTestResult::append):
1120         (WebCore::HitTestResult::dictationAlternatives):
1121         * rendering/HitTestResult.h:
1122         (WebCore::HitTestResult::pointInMainFrame):
1123         (WebCore::HitTestResult::pointInInnerNodeFrame):
1124         (HitTestResult):
1125             m_hitTestLocation is now in main frame coordinates, which make m_pointInMainFrame
1126             unnecessary, but requires the introduction of m_pointInInnerFrame, to remember
1127             the coordinates of inner-node in its own frame.
1128         * rendering/RenderFrameBase.cpp:
1129         (WebCore::RenderFrameBase::nodeAtPoint):
1130             The recursion into child-frames is now handled here instead of in hitTestResultAtPoint, this
1131             allows us to recurse into multiple frames, instead of just one.
1132         * rendering/RenderFrameBase.h:
1133         (RenderFrameBase):
1134         * rendering/RenderLayer.cpp:
1135         (WebCore::RenderLayer::hitTest):
1136             RenderLayer should not lie about being hit if the request is child-frame request.
1137         * testing/Internals.cpp:
1138         (WebCore::Internals::nodesFromRect):
1139         * testing/Internals.h:
1140         (Internals):
1141         * testing/Internals.idl:
1142             Extended so nodesFromRect with child-frame content can be tested.
1143
1144 2013-02-22  Andreas Kling  <akling@apple.com>
1145
1146         ShareableElementData should use zero-length array for storage.
1147         <http://webkit.org/b/109959>
1148
1149         Reviewed by Anders Carlsson.
1150
1151         Use a zero-length Attribute array instead of always casting from void* to an array.
1152         It was done this way originally because I didn't know we could sidestep the MSVC
1153         build error with some #pragma hackery and a default constructor for Attribute.
1154
1155         * dom/Attribute.cpp:
1156         (WebCore::Attribute::Attribute):
1157         * dom/DocumentSharedObjectPool.cpp:
1158         (WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
1159         * dom/Element.cpp:
1160         (WebCore::sizeForShareableElementDataWithAttributeCount):
1161         (WebCore::ShareableElementData::ShareableElementData):
1162         (WebCore::ShareableElementData::~ShareableElementData):
1163         (WebCore::UniqueElementData::UniqueElementData):
1164         * dom/Element.h:
1165         (ShareableElementData):
1166         (WebCore::ElementData::attributeItem):
1167
1168 2013-02-22  Andreas Kling  <akling@apple.com>
1169
1170         Remove unused declaration: Element::removeCachedHTMLCollection()
1171
1172         Not reviewed by Antti Koivisto.
1173
1174         * dom/Element.h:
1175         (Element):
1176
1177 2013-02-22  Keishi Hattori  <keishi@webkit.org>
1178
1179         Add scroll view for new calendar picker
1180         https://bugs.webkit.org/show_bug.cgi?id=110137
1181
1182         Reviewed by Kent Tamura.
1183
1184         Adding a scroll view class as part of the new calendar picker (Bug 109439).
1185
1186         No new tests. Code not yet used.
1187
1188         * Resources/pagepopups/calendarPicker.js:
1189         (View):
1190         (View.prototype.offsetRelativeTo): Returns the offset position of this view relative to the given ancestor element.
1191         (View.prototype.attachTo): Attaches view to a node or view.
1192         (View.prototype.bindCallbackMethods): Binds all methods starting with "on" to this.
1193         (ScrollView): A custom scroll view that can contain extremely long content. CSS values have a limit. This can go beyond that.
1194         (ScrollView.prototype.setWidth): Sets the view width.
1195         (ScrollView.prototype.width):
1196         (ScrollView.prototype.setHeight):Sets the view height.
1197         (ScrollView.prototype.height):
1198         (ScrollView.prototype.onScrollAnimatorStep): Callback for scroll animator step.
1199         (ScrollView.prototype.scrollTo): Scrolls to a certain offset.
1200         (ScrollView.prototype.scrollBy): Scrolls by a certain amount.
1201         (ScrollView.prototype.contentOffset): Current content offset.
1202         (ScrollView.prototype.onMouseWheel): Scroll with the mouse wheel.
1203         (ScrollView.prototype.setContentOffset): Sets the content offset.
1204         (ScrollView.prototype.contentPositionForContentOffset): Returns where the content element should be positioned.
1205
1206 2013-02-22  Alexander Pavlov  <apavlov@chromium.org>
1207
1208         Web Inspector: InspectorPageAgent::disable() should not update view metrics regardless of the override state
1209         https://bugs.webkit.org/show_bug.cgi?id=110593
1210
1211         Reviewed by Vsevolod Vlasov.
1212
1213         InspectorPageAgent::disable() now checks if the device metrics are overridden before
1214         telling the client to disable the override.
1215
1216         * inspector/InspectorPageAgent.cpp:
1217         (WebCore::InspectorPageAgent::disable):
1218         (WebCore::InspectorPageAgent::setDeviceMetricsOverride):
1219         (WebCore::InspectorPageAgent::deviceMetricsChanged):
1220         * inspector/InspectorPageAgent.h:
1221         (InspectorPageAgent):
1222
1223 2013-02-22  Zan Dobersek  <zdobersek@igalia.com>
1224
1225         Unreviewed, rolling out r143695.
1226         http://trac.webkit.org/changeset/143695
1227         https://bugs.webkit.org/show_bug.cgi?id=110554
1228
1229         Crashes in DocumentLoader::checkLoadComplete on AppleMac WK1, EFL, GTK.
1230
1231         * loader/DocumentLoader.cpp:
1232         (WebCore::DocumentLoader::isLoading):
1233
1234 2013-02-22  Balazs Kelemen  <kbalazs@webkit.org>
1235
1236         [CoordGfx] Minor cleanup in CoordinatedGraphicsScene::paintToGraphicsContext
1237         https://bugs.webkit.org/show_bug.cgi?id=109824
1238
1239         Reviewed by Andreas Kling.
1240
1241         Avoid ugly ifdefs by using PlatformGraphicsContext.
1242
1243         No new tests, only refactoring.
1244
1245         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
1246         (WebCore::CoordinatedGraphicsScene::paintToGraphicsContext):
1247         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
1248         (CoordinatedGraphicsScene):
1249
1250 2013-02-22  Carlos Garcia Campos  <cgarcia@igalia.com>
1251
1252         Unreviewed. Fix make distcheck.
1253
1254         * GNUmakefile.am: Add CodeGeneratorInspectorStrings.py to
1255         EXTRA_DIST.
1256
1257 2013-02-22  Andreas Kling  <akling@apple.com>
1258
1259         GlyphPage: ALWAYS_INLINE all performance-relevant getters.
1260
1261         REGRESSION(r143125): ~5% performance hit on Chromium's intl2 page cycler
1262         <http://webkit.org/b/108835>
1263
1264         Reviewed by Antti Koivisto.
1265
1266         Unreviewed desperate hack. Since I can't reproduce the problem and it's only showing
1267         up on two bots, one Linux and one Snow Leopard, I'm thinking it may be GCC related.
1268         Let's see what happens if we tell it to force inline all the GlyphPage getters.
1269
1270         * platform/graphics/GlyphPage.h:
1271         (WebCore::GlyphPage::indexForCharacter):
1272         (WebCore::GlyphPage::glyphDataForCharacter):
1273         (WebCore::GlyphPage::glyphDataForIndex):
1274         (WebCore::GlyphPage::glyphAt):
1275         (WebCore::GlyphPage::fontDataForCharacter):
1276
1277 2013-02-22  Zach Kuznia  <zork@chromium.org>
1278
1279         Update FileReaderLoader to allow specifying a range and reading as a blob.
1280         https://bugs.webkit.org/show_bug.cgi?id=110556
1281
1282         This is part of a series of patches to implement Stream support.  See:
1283         https://bugs.webkit.org/show_bug.cgi?id=110194
1284
1285         Reviewed by Hajime Morrita.
1286
1287         Tests: will be added when js binding is added.
1288
1289         * fileapi/FileReaderLoader.cpp:
1290         * fileapi/FileReaderLoader.h:
1291
1292 2013-02-22  Kondapally Kalyan  <kalyan.kondapally@intel.com>
1293
1294         [WebGL][EFL] Support for creating surface with alpha disabled.
1295         https://bugs.webkit.org/show_bug.cgi?id=110067
1296
1297         Reviewed by Kenneth Rohde Christiansen.
1298
1299         Covered by compositing/webgl/webgl-no-alpha.html
1300
1301         We currently always create a surface supporting alpha channel. 
1302         With this patch we create the surface with alpha only if
1303         required.
1304
1305         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
1306         (WebCore::GraphicsContext3DPrivate::initialize):
1307         * platform/graphics/efl/GraphicsContext3DPrivate.h:
1308         (GraphicsContext3DPrivate):
1309         * platform/graphics/opengl/GLPlatformSurface.cpp:
1310         (WebCore::GLPlatformSurface::createOffScreenSurface):
1311         (WebCore::GLPlatformSurface::createTransportSurface):
1312         (WebCore::GLPlatformSurface::GLPlatformSurface):
1313         (WebCore::GLPlatformSurface::attributes):
1314         (WebCore):
1315         * platform/graphics/opengl/GLPlatformSurface.h:
1316         * platform/graphics/surfaces/egl/EGLConfigSelector.cpp:
1317         (WebCore):
1318         (WebCore::EGLConfigSelector::EGLConfigSelector):
1319         (WebCore::EGLConfigSelector::pBufferContextConfig):
1320         (WebCore::EGLConfigSelector::surfaceContextConfig):
1321         * platform/graphics/surfaces/egl/EGLConfigSelector.h:
1322         (EGLConfigSelector):
1323         * platform/graphics/surfaces/egl/EGLSurface.cpp:
1324         (WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
1325         * platform/graphics/surfaces/egl/EGLSurface.h:
1326         (EGLWindowTransportSurface):
1327         * platform/graphics/surfaces/glx/GLXConfigSelector.h:
1328         (WebCore):
1329         (WebCore::GLXConfigSelector::GLXConfigSelector):
1330         (WebCore::GLXConfigSelector::pixmapContextConfig):
1331         (WebCore::GLXConfigSelector::surfaceContextConfig):
1332         (WebCore::GLXConfigSelector::surfaceClientConfig):
1333         (WebCore::GLXConfigSelector::validateAttributes):
1334         (WebCore::GLXConfigSelector::findMatchingConfig):
1335         (WebCore::GLXConfigSelector::findMatchingConfigWithVisualId):
1336         (GLXConfigSelector):
1337         * platform/graphics/surfaces/glx/GLXContext.cpp:
1338         (WebCore::GLXOffScreenContext::initialize):
1339         * platform/graphics/surfaces/glx/GLXSurface.cpp:
1340         (WebCore::GLXTransportSurface::GLXTransportSurface):
1341         (WebCore::GLXOffScreenSurface::GLXOffScreenSurface):
1342         (WebCore::GLXOffScreenSurface::initialize):
1343         * platform/graphics/surfaces/glx/GLXSurface.h:
1344         (GLXTransportSurface):
1345         (GLXOffScreenSurface):
1346         * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
1347         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
1348         (WebCore::GraphicsSurfacePrivate::createPixmap):
1349
1350 2013-02-22  Pavel Feldman  <pfeldman@chromium.org>
1351
1352         Web Inspector: allow opting out from vertical split in the dock-to-right mode
1353         https://bugs.webkit.org/show_bug.cgi?id=110564
1354
1355         Reviewed by Vsevolod Vlasov.
1356
1357         * English.lproj/localizedStrings.js:
1358         * inspector/front-end/ElementsPanel.js:
1359         (WebInspector.ElementsPanel.prototype._splitVertically):
1360         * inspector/front-end/ScriptsPanel.js:
1361         * inspector/front-end/Settings.js:
1362         (WebInspector.Settings):
1363         * inspector/front-end/SettingsScreen.js:
1364         (WebInspector.GenericSettingsTab):
1365
1366 2013-02-21  Claudio Saavedra  <csaavedra@igalia.com>
1367
1368         [GTK] Control+Shift+Up/Down selection works backwards
1369         https://bugs.webkit.org/show_bug.cgi?id=110459
1370
1371         Reviewed by Martin Robinson.
1372
1373         * platform/gtk/KeyBindingTranslator.cpp:
1374         (WebCore): The translation table for paragraph selection
1375         commands is backwards, fix it.
1376
1377 2013-02-21  Eric Seidel  <eric@webkit.org>
1378
1379         REGRESSION(r143664, r143681): http/tests/security/feed-urls-from-remote.html fails
1380         https://bugs.webkit.org/show_bug.cgi?id=110554
1381
1382         Reviewed by Ryosuke Niwa.
1383
1384         Will fix http/tests/security/feed-urls-from-remote.html for Mac WK1.
1385
1386         * loader/DocumentLoader.cpp:
1387         (WebCore::DocumentLoader::isLoading):
1388
1389 2013-02-21  Alec Flett  <alecflett@chromium.org>
1390
1391         IndexedDB: Implement SharedBuffer version of put() / onSuccess()
1392         https://bugs.webkit.org/show_bug.cgi?id=110398
1393
1394         Reviewed by Tony Chang.
1395
1396         This avoids all unnecessary data copies within the context of
1397         IndexedDB proper, and removes all references to
1398         SerializedScriptValue from the IndexedDB "backend".
1399
1400         No new tests because this is just a refactor.
1401
1402         * bindings/v8/IDBBindingUtilities.cpp:
1403         (WebCore::deserializeIDBValueBuffer): New version of deserializeIDBValue which takes SharedBuffer.
1404
1405 2013-02-21  Sheriff Bot  <webkit.review.bot@gmail.com>
1406
1407         Unreviewed, rolling out r143691.
1408         http://trac.webkit.org/changeset/143691
1409         https://bugs.webkit.org/show_bug.cgi?id=110559
1410
1411         Breaks compilation on mac. (Requested by vsevik on #webkit).
1412
1413         * rendering/RenderLayerCompositor.cpp:
1414         (WebCore::RenderLayerCompositor::logLayerInfo):
1415         (WebCore):
1416         (WebCore::RenderLayerCompositor::reasonForCompositing):
1417         * rendering/RenderLayerCompositor.h:
1418         (RenderLayerCompositor):
1419
1420 2013-02-21  Philip Rogers  <pdr@google.com>
1421
1422         Remove deep copy of ImageBuffer in tiled SVG backgrounds
1423         https://bugs.webkit.org/show_bug.cgi?id=110549
1424
1425         Reviewed by Dirk Schulze.
1426
1427         SVGImage::drawPatternForContainer creates a temporary ImageBuffer for stamping out tiled
1428         backgrounds. Previously this ImageBuffer was unnecessarily deep-copied! This patch uses a
1429         shallow copy, taking advantage of the fact that the temporary ImageBuffer is never modified.
1430
1431         This patch is covered with existing tests.
1432
1433         * svg/graphics/SVGImage.cpp:
1434         (WebCore::SVGImage::drawPatternForContainer):
1435
1436 2013-02-21  Antoine Quint  <graouts@apple.com>
1437
1438         Expose a list of all reasons that qualify a RenderLayer to be composited
1439         https://bugs.webkit.org/show_bug.cgi?id=110505
1440
1441         Expose the various reasons that can qualify a RenderLayer to be composited
1442         via a new bitmask returned by the reasonForCompositing() method on
1443         RenderLayerCompositor. This method already existed and was used for logging
1444         purposes, but the previous functionality is now accessed via the
1445         logReasonForCompositing() method.
1446
1447         This will allow the the InspectorLayerTreeAgent to provide this information
1448         to the front-end on a per-layer basis as requested by the front-end.
1449
1450         Reviewed by Simon Fraser.
1451
1452         No new tests.
1453
1454         * rendering/RenderLayerCompositor.cpp:
1455         (WebCore::RenderLayerCompositor::logLayerInfo):
1456         (WebCore::RenderLayerCompositor::reasonsForCompositing):
1457         (WebCore):
1458         (WebCore::RenderLayerCompositor::logReasonsForCompositing):
1459         * rendering/RenderLayerCompositor.h:
1460         (RenderLayerCompositor):
1461
1462 2013-02-21  Takashi Sakamoto  <tasak@google.com>
1463
1464         RenderTable::paintBoxDecorations sometimes draws box-shadow twice.
1465         https://bugs.webkit.org/show_bug.cgi?id=110196
1466
1467         Reviewed by Simon Fraser.
1468
1469         When RenderTable::paintBoxDecorations draws box-shadow, paintBackground
1470         should not draw box-shadow. So we have to provide bleedAvoidance
1471         parameter for RenderBox::paintBackground.
1472
1473         Test: fast/css/table-border-radius-with-box-shadow.html
1474
1475         * rendering/RenderTable.cpp:
1476         (WebCore::RenderTable::paintBoxDecorations):
1477         Provide bleedAvoidance, which determineBackgroundBleedAvoidance
1478         returns, for paintBackground.
1479
1480 2013-02-21  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
1481
1482         Allow to retrieve the request data from abstract TextCheckingRequest to be accessible for WK2
1483         https://bugs.webkit.org/show_bug.cgi?id=110208
1484
1485         Reviewed by Hajime Morrita.
1486
1487         The WebCore changes are required to implement asynchronous spell checking in WK2.
1488         The idea of asynchronous spell checking in WK1 is to pass the pointer to the abstract object
1489         to the client who is able to verify the given text and notify the WebCore about results.
1490         WK2 will extract the request data and pass it (with additional information) to the UIProcess.
1491
1492         No new tests, covered by editing/spelling tests.
1493
1494         * editing/Editor.cpp:
1495         (WebCore::Editor::markAndReplaceFor):
1496         Extract the request data as it is the member of 'TextCheckingRequest'.
1497
1498         * editing/SpellChecker.cpp:
1499         (WebCore):
1500         (WebCore::SpellCheckRequest::didCancel):
1501         (WebCore::SpellCheckRequest::setCheckerAndSequence):
1502         (WebCore::SpellChecker::requestCheckingFor):
1503         (WebCore::SpellChecker::enqueueRequest):
1504         (WebCore::SpellChecker::didCheck):
1505         (WebCore::SpellChecker::didCheckSucceed):
1506         * platform/text/TextChecking.h:
1507         (WebCore):
1508         (TextCheckingRequestData):
1509         Introduce a new 'TextCheckingRequestData' class to keep the request data and to
1510         easy extract it from the 'TextCheckingRequest'.
1511
1512         (WebCore::TextCheckingRequestData::TextCheckingRequestData):
1513         (TextCheckingRequest):
1514         (WebCore::TextCheckingRequest::~TextCheckingRequest):
1515
1516 2013-02-21  Brady Eidson  <beidson@apple.com>
1517
1518         Move fastlog2() to WTF/MathExtras.h so it can be used from multiple projects.
1519
1520         Rubberstamped by Geoff Garen.
1521
1522         * loader/cache/MemoryCache.cpp:
1523         (WebCore::MemoryCache::lruListFor): Remove the inline fastlog2 and use WTF::fastlog2.
1524
1525 2013-02-21  Dimitri Glazkov  <dglazkov@chromium.org>
1526
1527         Split SelectorChecker's fast-checking logic into its own class.
1528         https://bugs.webkit.org/show_bug.cgi?id=106860
1529
1530         Reviewed by Antti Koivisto.
1531
1532         No functional changes, covered by existing tests.
1533
1534         * CMakeLists.txt: Added new class to existing build system.
1535         * GNUmakefile.list.am: Ditto.
1536         * Target.pri: Ditto.
1537         * WebCore.gypi: Ditto.
1538         * WebCore.xcodeproj/project.pbxproj: Ditto.
1539         * css/CSSAllInOne.cpp: Ditto.
1540         * css/RuleSet.cpp:
1541         (WebCore::RuleData::RuleData): Changed to use SelectorCheckerFastPath.
1542         * css/SelectorChecker.cpp:
1543         (WebCore::SelectorChecker::matches): Ditto.
1544         * css/SelectorChecker.h:
1545         (SelectorChecker): Move fast path code into SelectorCheckerFastPath.
1546         * css/SelectorCheckerFastPath.cpp: Added.
1547         * css/SelectorCheckerFastPath.h: Added.
1548         * css/StyleResolver.cpp:
1549         (WebCore::StyleResolver::ruleMatches): Changed to use SelectorCheckerFastPath.
1550         * dom/SelectorQuery.cpp:
1551         (WebCore::SelectorDataList::initialize): Ditto.
1552
1553 2013-02-21  Tony Gentilcore  <tonyg@chromium.org>
1554
1555         Invalidate outstanding checkpoints for the background input stream and preload scanner
1556         https://bugs.webkit.org/show_bug.cgi?id=110537
1557
1558         Reviewed by Adam Barth.
1559
1560         fast/tokenizer/write-before-load.html caused duplicate didFailSpeculation() calls for the same checkpoint.
1561         One was triggered by processParsedChunkFromBackgroundParser and the other by resumeParsingAfterScriptExecution.
1562         This change ensures that after we send a checkpoint, it is cleared so it won't be sent again until the next
1563         processParsedChunkFromBackgroundParser().
1564
1565         No new tests because no new functionality.
1566
1567         * html/parser/BackgroundHTMLInputStream.cpp:
1568         (WebCore::BackgroundHTMLInputStream::rewindTo):
1569         * html/parser/HTMLDocumentParser.cpp:
1570         (WebCore::HTMLDocumentParser::didFailSpeculation):
1571         * html/parser/HTMLPreloadScanner.cpp:
1572         (WebCore::TokenPreloadScanner::rewindTo):
1573
1574 2013-02-21  Dean Jackson  <dino@apple.com>
1575
1576         Followup commit for https://bugs.webkit.org/show_bug.cgi?id=110541
1577         from a comment by Jon Lee.
1578
1579         * html/HTMLPlugInImageElement.cpp:
1580         (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Logic
1581         in conditional was unnecessarily complex.
1582
1583 2013-02-21  Ojan Vafai  <ojan@chromium.org>
1584
1585         Clean up computePreferredLogicalWidths functions in TableLayout subclasses
1586         https://bugs.webkit.org/show_bug.cgi?id=110515
1587
1588         Reviewed by Tony Chang.
1589
1590         No change in behavior. This is just a cleanup in preparation for other
1591         refactoring to this code.
1592
1593         * rendering/FixedTableLayout.cpp:
1594         (WebCore::FixedTableLayout::calcWidthArray):
1595         Move a FIXME here from computePreferredLogicalWidths. It makes more sense here.
1596         (WebCore::FixedTableLayout::computePreferredLogicalWidths):
1597         -Remove outdated or unhelpful comments.
1598         -Isolate the fixed width codepath to make it a bit less convoluted.
1599         (WebCore::FixedTableLayout::layout):
1600         * rendering/FixedTableLayout.h:
1601         The argument to calcWidthArray is never used. Remove it.
1602
1603 2013-02-21  Eric Seidel  <eric@webkit.org>
1604
1605         LayoutTests/fast/encoding/parser-tests-*.html timeout with threaded HTML parser
1606         https://bugs.webkit.org/show_bug.cgi?id=109995
1607
1608         Unreviewed speculative fix for Mac WK1.
1609
1610         It appears that m_frame can be null for Mac WK1.
1611
1612         * loader/DocumentLoader.cpp:
1613         (WebCore::DocumentLoader::isLoading):
1614
1615 2013-02-21  Dean Jackson  <dino@apple.com>
1616
1617         Better sizing model for Snapshotted plugins
1618         https://bugs.webkit.org/show_bug.cgi?id=110541
1619
1620         Reviewed by Simon Fraser.
1621
1622         Clarify the way we apply sizing rules to snapshotted plug-ins. In
1623         testing we've found that plug-ins smaller than 40px in either
1624         dimension should never be frozen. Also, larger plugins should
1625         be explicitly marked, because often they are the single dominant
1626         element on the page.
1627
1628         As a drive-by, I removed the flag that indicated whether or not
1629         the label should show automatically. It wasn't being used. This is
1630         all determined from the shadow root and its CSS now.
1631
1632         * html/HTMLPlugInImageElement.cpp:
1633         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): New values for size thresholds.
1634         (WebCore::HTMLPlugInImageElement::createRenderer): Remove call to setShouldShowSnapshotLabelAutomatically.
1635         (WebCore::classNameForShadowRoot): Remove logging and clearly assign sizing classes.
1636         (WebCore::HTMLPlugInImageElement::updateSnapshotInfo): We don't need the page size any more.
1637         (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Use new constant names.
1638         * html/HTMLPlugInImageElement.h:
1639         (HTMLPlugInImageElement): Remove setShouldShowSnapshotLabelAutomatically.
1640
1641 2013-02-21  Benjamin Poulain  <benjamin@webkit.org>
1642
1643         Fix the build after r143664.
1644
1645         Unreviewed.
1646
1647         * WebCore.exp.in:
1648
1649 2013-02-21  Eric Seidel  <eric@webkit.org>
1650
1651         tables/mozilla/bugs/bug8950.html fails with threaded parser due to attribute duplication
1652         https://bugs.webkit.org/show_bug.cgi?id=110532
1653
1654         Reviewed by Adam Barth.
1655
1656         This is a very basic failure which we should have caught earlier with the html5lib parser
1657         tests, except those use document.write and thus avoid the threaded parser.
1658
1659         AtomicHTMLToken expects its attributes to be unique.  We were not doing that for the
1660         CompactHTMLToken path, and this ancient mozilla table test caught that.
1661
1662         Fixes tables/mozilla/bugs/bug8950.html.
1663
1664         * html/parser/AtomicHTMLToken.h:
1665         (WebCore::AtomicHTMLToken::AtomicHTMLToken):
1666         (WebCore::AtomicHTMLToken::initializeAttributes):
1667
1668 2013-02-21  Adam Barth  <abarth@webkit.org>
1669
1670         Threaded HTML Parser fails fast/dom/Document/readystate.html
1671         https://bugs.webkit.org/show_bug.cgi?id=110529
1672
1673         Reviewed by Eric Seidel.
1674
1675         We need to create the tokenizer even when we finish a script-created
1676         parser. Most of the time, the tokenizer has already been created at
1677         this point because it is created by calls to document.write.
1678
1679         Test: fast/parser/body-should-exist-after-open-close.html
1680
1681         * html/parser/HTMLDocumentParser.cpp:
1682         (WebCore::HTMLDocumentParser::finish):
1683
1684 2013-02-21  Emil A Eklund  <eae@chromium.org>
1685
1686         Lots of LayoutUnit assertions when loading a Wikipedia article
1687         https://bugs.webkit.org/show_bug.cgi?id=110270
1688
1689         Reviewed by Levi Weintraub.
1690         
1691         Change RenderBlock::adjustRectForColumns to ensure that the
1692         endColumn calculation does not overflow.
1693
1694         No new tests, covered by existing tests.
1695
1696         * rendering/RenderBlock.cpp:
1697         (WebCore::RenderBlock::adjustRectForColumns):
1698         Make the endOffset value be no less than the beforeBorderPadding
1699         value to ensure that endColumn is not negative.
1700
1701 2013-02-21  Eric Seidel  <eric@webkit.org>
1702
1703         LayoutTests/fast/encoding/parser-tests-*.html timeout with threaded HTML parser
1704         https://bugs.webkit.org/show_bug.cgi?id=109995
1705
1706         Reviewed by Adam Barth.
1707
1708         In the case where during main document onload, we
1709         load a new iframe, and then from within that iframe
1710         we run script to remove the iframe and call testRunner.notifyDone()
1711         the notifyDone() will not correctly dump because
1712         the testRunner does not yet realize that the main resource
1713         has completed loading.
1714
1715         In the main-thread parser, the testRunner does correctly know
1716         that the main thread has completed, because removing the iframe
1717         causes a didFailLoad callback to the embedder, because when
1718         the iframe is being removed, the DocumentLoader for that iframe
1719         is still on the stack and believe's its loading
1720         (because it has a MainResourceLoader which is also on the stack
1721         delivering us the bytes which contain this inline script).
1722
1723         In the threaded-parser case, the DocumentLoader and MainResourceLoader
1724         are no longer on the stack, as we are parsing the iframe asynchronously
1725         after all the bytes have been delivered, and the MainResourceLoader destroyed.
1726         Thus when DocumentLoader::stopLoading() is called, loading() returns
1727         false, and it returns early.  One might argue that we should remove that
1728         early return entirely, but it seemed safer to extend the idea of
1729         when we're loading to include the time when the parser is active.
1730
1731         This patch solves this by teaching the DocumentLoader that it is still
1732         "loading" so long as the parser is still active.
1733
1734         Also added a call to DocumentLoader::checkLoadComplete from
1735         Document::decrementActiveParserCount which seemed to cause
1736         http/tests/multipart/policy-ignore-crash.php to pass.
1737
1738         This causes http/tests/security/feed-urls-from-remote.html to timeout
1739         on chromium (but no other platforms that I'm aware of).  I believe this
1740         is due to a bug in our DRT implementation in the policyDelegate case
1741         (which AFAIK is not a codepath which Chromium actually uses in the wild).
1742         The test already times out on TOT if you remove the setCustomPolicyDelegate calls!
1743
1744         * loader/DocumentLoader.cpp:
1745         (WebCore::DocumentLoader::isLoading):
1746         (WebCore):
1747         * loader/DocumentLoader.h:
1748         (DocumentLoader):
1749
1750 2013-02-21  Erik Arvidsson  <arv@chromium.org>
1751
1752         Nodes should not have attributes property
1753         https://bugs.webkit.org/show_bug.cgi?id=110510
1754
1755         Reviewed by Adam Barth.
1756
1757         According to http://dom.spec.whatwg.org/ attributes and hasAttributes
1758         should be defined on Element and not on Node.
1759
1760         Test: fast/dom/Text/text-should-not-have-attributes.html
1761
1762         * dom/Element.idl:
1763         * dom/Node.idl:
1764
1765 2013-02-21  Tony Gentilcore  <tonyg@chromium.org>
1766
1767         Make BackgroundHTMLParser rewind the preload scanner instead of clear it
1768         https://bugs.webkit.org/show_bug.cgi?id=110517
1769
1770         Reviewed by Adam Barth.
1771
1772         No new tests becuase no new functionality.
1773
1774         * html/parser/BackgroundHTMLParser.cpp:
1775         (WebCore::BackgroundHTMLParser::resumeFrom):
1776         (WebCore::BackgroundHTMLParser::pumpTokenizer):
1777         (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
1778         * html/parser/BackgroundHTMLParser.h:
1779         (Checkpoint):
1780         * html/parser/HTMLDocumentParser.cpp:
1781         (WebCore::HTMLDocumentParser::didFailSpeculation):
1782         * html/parser/HTMLDocumentParser.h:
1783         (ParsedChunk):
1784         * html/parser/HTMLPreloadScanner.cpp:
1785         (WebCore::TokenPreloadScanner::createCheckpoint):
1786         (WebCore):
1787         (WebCore::TokenPreloadScanner::rewindTo):
1788         * html/parser/HTMLPreloadScanner.h:
1789         (WebCore):
1790         (TokenPreloadScanner):
1791         (WebCore::TokenPreloadScanner::Checkpoint::Checkpoint):
1792         (Checkpoint):
1793
1794 2013-02-21  Sheriff Bot  <webkit.review.bot@gmail.com>
1795
1796         Unreviewed, rolling out r143536.
1797         http://trac.webkit.org/changeset/143536
1798         https://bugs.webkit.org/show_bug.cgi?id=110523
1799
1800         Causing a bunch of tests to fail on Windows, requires
1801         rebaselining (Requested by rfong on #webkit).
1802
1803         * config.h:
1804         * page/Settings.cpp:
1805         (WebCore):
1806         (WebCore::Settings::setShouldPaintNativeControls):
1807         * page/Settings.h:
1808         (Settings):
1809         (WebCore::Settings::shouldPaintNativeControls):
1810         * platform/win/ScrollbarThemeWin.cpp:
1811         (WebCore):
1812         * rendering/RenderThemeWin.cpp:
1813         (WebCore):
1814
1815 2013-02-21  Simon Fraser  <simon.fraser@apple.com>
1816
1817         Don't make an overhang shadow layer when the WKView has a transparent background
1818         https://bugs.webkit.org/show_bug.cgi?id=110429
1819
1820         Reviewed by Anders Carlsson.
1821
1822         When in coordinated scrolling mode, RenderLayerCompositor makes a layer to show
1823         the shadow around the content when rubber-banding. However, if the view is
1824         transparent, we don't want to make this layer, since it darkens the entire view.
1825
1826         * rendering/RenderLayerBacking.cpp:
1827         (WebCore::RenderLayerBacking::updateRootLayerConfiguration): Code was moved
1828         into viewHasTransparentBackground(), so just call that here.
1829         * rendering/RenderLayerCompositor.cpp:
1830         (WebCore::RenderLayerCompositor::requiresContentShadowLayer): Don't make
1831         a shadow layer when the view is transparent.
1832         (WebCore::RenderLayerCompositor::viewHasTransparentBackground): Return
1833         true if the view is transparent or has a non-opaque background color,
1834         and optionally return that color.
1835         * rendering/RenderLayerCompositor.h:
1836
1837 2013-02-21  Simon Fraser  <simon.fraser@apple.com>
1838
1839         [Safari] Crash with opacity + drop shadow filter + child element extending beyond filter outsets
1840         https://bugs.webkit.org/show_bug.cgi?id=107467
1841
1842         Reviewed by Dean Jackson.
1843         
1844         The filter code plays games with the current GraphicsContext, replacing the current
1845         context with one which will get filtered.
1846         
1847         This doesn't play nicely with the RenderLayer code which lazily starts transparency
1848         layers. If we don't start a transparency layer until painting a child of the filtered
1849         layer, then the transparency layer is started using the wrong context.
1850         
1851         Fix by eagerly starting transparency layers if we have both a filter and opacity.
1852
1853         Test: css3/filters/filter-with-opacity-and-children.html
1854
1855         * rendering/RenderLayer.cpp:
1856         (WebCore::RenderLayer::paintLayerContents):
1857
1858 2013-02-21  Tony Chang  <tony@chromium.org>
1859
1860         Autogenerate Settings that call setNeedsRecalcStyleInAllFrames when set
1861         https://bugs.webkit.org/show_bug.cgi?id=109989
1862
1863         Reviewed by Ryosuke Niwa.
1864
1865         Start generating the code for settings that call m_page->setNeedsRecalcStyleInAllFrames()
1866         when the value is changed. This allows us to generate 10 more settings. As a follow up, we
1867         can remove some methods from DRT/WTR after this.
1868
1869         No new tests, this is a build refactor and should not impact any test results.
1870
1871         * page/Settings.cpp:
1872         (WebCore::Settings::Settings): Remove member variables. Add SETTINGS_SETTER_BODIES macro that
1873         has the generated setter bodies.
1874         * page/Settings.h:
1875         (Settings): Remove code that is now generated.
1876         * page/Settings.in: Add new entries with setNeedsStyleRecalcWhenSetting=1
1877         * page/make_settings.pl:
1878         (defaultItemFactory): Add setNeedsStyleRecalcWhenSetting flag.
1879         (generateSettingsMacrosHeader): Print macro for setter bodies.
1880         (printConditionalMacros): Add setter body code.
1881         (printGettersAndSetters): Pass in setNeedsStyleRecalcWhenSetting so we know whether to inline the
1882         setter in the header or not.
1883         (printGetterAndSetter): Ditto.
1884         (printSetterBodies): Print macro for setter bodies.
1885         (printSetterBody): Print setter body for a single setting.
1886
1887 2013-02-21  Dean Jackson  <dino@apple.com>
1888
1889         Plug-in snapshotting code always accepts first snapshot
1890         https://bugs.webkit.org/show_bug.cgi?id=110495
1891
1892         Reviewed by Tim Horton.
1893
1894         When we detect a plugin that can be snapshotted we start capturing
1895         images until we find one that we believe isn't blank, or we timeout.
1896         I introduced a regression recently where we swap renderers as
1897         soon as the snapshot arrives, whether or not is is blank.
1898
1899         The fix was to have the embedder (currently only WK2) be the one
1900         who tells the HTMLPlugInElement to start displaying snapshots.
1901
1902         I also reduced the number of snapshot attempts we will make before
1903         giving up. We don't want to sit around for 66 seconds displaying nothing.
1904
1905         * html/HTMLPlugInElement.h:
1906         (WebCore::HTMLPlugInElement::setDisplayState): Make this a virtual function.
1907         * html/HTMLPlugInImageElement.cpp:
1908         (WebCore::HTMLPlugInImageElement::setDisplayState): Override to call the
1909             base class version, but swap renderers if we should move to the snapshot.
1910         (WebCore::HTMLPlugInImageElement::updateSnapshot): Don't swap renderers here any more.
1911         * html/HTMLPlugInImageElement.h: New virtual version of setDisplayState.
1912
1913 2013-02-21  Tony Gentilcore  <tonyg@chromium.org>
1914
1915         Tune BackgroundHTMLParser's pendingTokenLimit based on a benchmark
1916         https://bugs.webkit.org/show_bug.cgi?id=110408
1917
1918         Reviewed by Adam Barth.
1919
1920         This constant was tuned by running the top 25 sites in Telemetry on a Nexus 7 device.
1921         The new value decreases the maximum time spent parsing by 40% without significantly impacting total parse time or DOMContentLoaded.
1922
1923         No new tests because no new functionality.
1924
1925         * html/parser/BackgroundHTMLParser.cpp:
1926         (WebCore):
1927
1928 2013-02-21  Sheriff Bot  <webkit.review.bot@gmail.com>
1929
1930         Unreviewed, rolling out r143419.
1931         http://trac.webkit.org/changeset/143419
1932         https://bugs.webkit.org/show_bug.cgi?id=110507
1933
1934         Broke border-image on Mac (Requested by jpfau on #webkit).
1935
1936         * platform/graphics/GraphicsContext.cpp:
1937         (WebCore::GraphicsContext::drawTiledImage):
1938         * platform/graphics/GraphicsContext.h:
1939         (GraphicsContext):
1940         * platform/graphics/Image.cpp:
1941         (WebCore::Image::drawTiled):
1942         * platform/graphics/Image.h:
1943         (Image):
1944         * rendering/RenderBoxModelObject.cpp:
1945         (WebCore::RenderBoxModelObject::paintNinePieceImage):
1946
1947 2013-02-21  Tom Sepez  <tsepez@chromium.org>
1948
1949         XSSAuditor should block pages by redirecting to a sandboxed data: URL.
1950         https://bugs.webkit.org/show_bug.cgi?id=110406
1951
1952         Reviewed by Adam Barth.
1953
1954         Patch originally by mkwst@chromium.org. 
1955         Tests: http/tests/security/xssAuditor/block-does-not-leak-location.html
1956                http/tests/security/xssAuditor/block-does-not-leak-referrer.html
1957                http/tests/security/xssAuditor/full-block-script-tag-cross-domain.html
1958
1959         * html/parser/XSSAuditorDelegate.cpp:
1960         (WebCore::XSSAuditorDelegate::didBlockScript):
1961             When blocking entire pages via the XSSAuditor, redirect to a data:
1962             URL to ensure that requests for properties don't leak information.
1963         
1964 2013-02-21  Christian Biesinger  <cbiesinger@chromium.org>
1965
1966         Convert buttons from DeprecatedFlexBox to nondeprecated FlexibleBox
1967         https://bugs.webkit.org/show_bug.cgi?id=109994
1968
1969         Reviewed by Ojan Vafai.
1970
1971         Covered by existing tests for <button> and <input
1972         type="button|submit|reset">
1973
1974         * css/html.css:
1975         (input[type="button"], input[type="submit"], input[type="reset"], input[type="file"]::-webkit-file-upload-button, button):
1976         Convert from box-align to align-items. We are using flex-start here in
1977         conjunction with an auto margin for correct centering. See
1978         RenderButton.cpp below for the margin & more explanation.
1979
1980         * rendering/RenderBlock.cpp:
1981         (WebCore::RenderBlock::createAnonymousWithParentRendererAndDisplay):
1982         Add a case for creating a non-deprecated flex box.
1983
1984         * rendering/RenderButton.cpp:
1985         (WebCore::RenderButton::RenderButton):
1986         (WebCore::RenderButton::addChild):
1987         (WebCore::RenderButton::removeChild):
1988         Forward to new base class
1989         (WebCore::RenderButton::styleWillChange):
1990         (WebCore::RenderButton::setupInnerStyle):
1991         We are now using flexbox properties.
1992         - min-width is needed for correct shrinking of the contents
1993         - margin-top and margin-bottom are used for correct centering. We
1994         can't use align-items: center because results are incorrect when the
1995         content overflows. See LayoutTests/fast/forms/control-clip.html
1996
1997         * rendering/RenderButton.h:
1998         Inherit from RenderFlexibleBox
1999
2000         * rendering/RenderFlexibleBox.cpp:
2001         (WebCore::RenderFlexibleBox::createAnonymous):
2002         (WebCore):
2003         * rendering/RenderFlexibleBox.h:
2004         (RenderFlexibleBox):
2005         Add a createAnonymous function to RenderFlexibleBox.
2006
2007 2013-02-21  John Mellor  <johnme@chromium.org>
2008
2009         [chromium] Simplify computation of screenRect/windowRect.
2010         https://bugs.webkit.org/show_bug.cgi?id=110456
2011
2012         Reviewed by Adam Barth.
2013
2014         This patch removes applyDeviceScaleFactorInCompositor checks
2015         added by http://trac.webkit.org/changeset/139356 because
2016         Chrome for Android now sizes its screen and window in DIP
2017         units (like other platforms), so they are no longer necessary.
2018
2019         No new tests, since this is just removing an unused codepath.
2020
2021         * platform/chromium/PlatformScreenChromium.cpp:
2022         (WebCore::screenRect):
2023         (WebCore::screenAvailableRect):
2024         * rendering/TextAutosizer.cpp:
2025         (WebCore::TextAutosizer::processSubtree):
2026
2027 2013-02-21  Beth Dakin  <bdakin@apple.com>
2028
2029         Out-of-view fixed position check should not be affected by page scale at all on Mac
2030         https://bugs.webkit.org/show_bug.cgi?id=110294
2031         -and corresponding-
2032         <rdar://problem/13247582>
2033
2034         Reviewed by Simon Fraser.
2035
2036         Don't scale the layerBounds. Generally, the layerBounds should be relative to the 
2037         viewBounds which are also unscaled. Chromium used to want this behavior, but it is 
2038         covered by their pageScaleFactorAppliedInCompositor implementation now.
2039
2040         * rendering/RenderLayerCompositor.cpp:
2041         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
2042
2043 2013-02-21  Philip Rogers  <pdr@google.com>
2044
2045         Stop starting animations when leaving a page
2046         https://bugs.webkit.org/show_bug.cgi?id=110257
2047
2048         Reviewed by Stephen Chenney.
2049
2050         SVGImage::resetAnimation() incorrectly started animations which could cause a crash
2051         when leaving the page. This patch fixes resetAnimation to only stop the animation,
2052         similar to BitmapImage::resetAnimation().
2053
2054         Additionally, this patch removes an unneeded call to Document::updateStyleForAllDocuments()
2055         that was present in the animation loop. This makes the animation code more resistant to
2056         similar bugs in the future.
2057
2058         Both of these changes are functionally covered with existing tests.
2059
2060         Test: svg/animations/reset-animation-crash.html
2061
2062         * svg/animation/SMILTimeContainer.cpp:
2063         (WebCore::SMILTimeContainer::updateAnimations):
2064         * svg/graphics/SVGImage.cpp:
2065         (WebCore::SVGImage::resetAnimation):
2066
2067 2013-02-19  Mark Hahnenberg  <mhahnenberg@apple.com>
2068
2069         Objective-C API: Need a way to use the Objective-C JavaScript API with WebKit
2070         https://bugs.webkit.org/show_bug.cgi?id=106059
2071
2072         Reviewed by Geoffrey Garen.
2073
2074         * WebCore.exp.in:
2075         * bindings/js/JSDOMWindowShell.cpp:
2076         (WebCore::JSDOMWindowShell::setWindow): Since we're basically abandoning a JSDOMWindow here, we call
2077         garbageCollectSoon().
2078         * bindings/js/JSDOMWindowShell.h:
2079         * bindings/js/ScriptController.h: New function to get the JSContext for the global object of the current main world.
2080         * bindings/js/ScriptControllerMac.mm: 
2081         (WebCore::ScriptController::javaScriptContext): Ditto.
2082         * bindings/objc/WebScriptObject.h: Added ifdef guards. Also new convenience conversion function for the JSC Obj-C API.
2083         * bindings/objc/WebScriptObject.mm: JSC::JSValue and JSValue conflict with one another, so we have to be more specific.
2084         (-[WebScriptObject _globalContextRef]): Useful helper function for getting the JSGlobalContextRef of a particular WebScriptObject.
2085         (-[WebScriptObject callWebScriptMethod:withArguments:]):
2086         (-[WebScriptObject evaluateWebScript:]):
2087         (-[WebScriptObject valueForKey:]):
2088         (-[WebScriptObject webScriptValueAtIndex:]):
2089         (+[WebScriptObject _convertValueToObjcValue:JSC::originRootObject:rootObject:]):
2090         (-[WebScriptObject JSValue]): Implementation of convenience WebScriptObject conversion function to new Objective-C API.
2091         * bindings/objc/WebScriptObjectPrivate.h:
2092
2093 2013-02-21  Kentaro Hara  <haraken@chromium.org>
2094
2095         [V8] Rename add{Node,Object}ToGroup() to add{Node,Object}WrapperToGroup()
2096         https://bugs.webkit.org/show_bug.cgi?id=110404
2097
2098         Reviewed by Adam Barth.
2099
2100         The current function name is confusing
2101         (See discussion in bug 110396). We should rename the functions
2102         so that it becomes clear that "Node"/"Object" refers to a type
2103         of a wrapper in the second argument.
2104
2105         No tests. No change in behavior.
2106
2107         * bindings/v8/V8GCController.cpp:
2108         (WebCore::WrapperGrouper::addObjectWrapperToGroup):
2109         (WebCore::WrapperGrouper::addNodeWrapperToGroup):
2110
2111 2013-02-21  Vivek Galatage  <vivek.vg@samsung.com>
2112
2113         [JS Binding] ScriptObject default constructor should initialize the Script State to 0
2114         https://bugs.webkit.org/show_bug.cgi?id=110177
2115
2116         Reviewed by Geoffrey Garen.
2117
2118         Adding the initialization of ScriptState to 0.
2119
2120         * bindings/js/ScriptObject.h:
2121         (WebCore::ScriptObject::ScriptObject):
2122
2123 2013-02-21  Nate Chapin  <japhet@chromium.org>
2124
2125         REGRESSION: Crash in MainResourceLoader::setDataBufferingPolicy when sharing an html5 video via email
2126         https://bugs.webkit.org/show_bug.cgi?id=110075
2127
2128         Reviewed by Alexey Proskuryakov.
2129
2130         Test: webarchive/loading/video-in-webarchive.html
2131
2132         * loader/MainResourceLoader.cpp:
2133         (WebCore::MainResourceLoader::continueAfterContentPolicy): isStopping()
2134             isn't accurate to determine whether a SubstituteData load should
2135             continue, as this point in the code shouldn't be reachable from any point
2136             where isStopping() would return true. DocumentLoader might have completely
2137             stopped and believe that MainResourceLoader is complete, though. Don't
2138             continue in that case. 
2139         (WebCore::MainResourceLoader::setDataBufferingPolicy): m_resource can be null
2140             in a reasonable case, handle it rather \1athan asserting that it can't be null.
2141
2142 2013-02-21  Sheriff Bot  <webkit.review.bot@gmail.com>
2143
2144         Unreviewed, rolling out r143616.
2145         http://trac.webkit.org/changeset/143616
2146         https://bugs.webkit.org/show_bug.cgi?id=110491
2147
2148         Caused a test failure on Chromium Mac. (Requested by vollick
2149         on #webkit).
2150
2151         * page/FrameView.cpp:
2152         (WebCore::FrameView::visibleContentsResized):
2153         * page/FrameView.h:
2154         (FrameView):
2155         * page/Page.cpp:
2156         (WebCore::Page::setPageScaleFactor):
2157
2158 2013-02-21  Robert Hogan  <robert@webkit.org>
2159
2160         Overflow can be cleared just before it is computed
2161         https://bugs.webkit.org/show_bug.cgi?id=110361
2162
2163         Reviewed by David Hyatt.
2164
2165         Overflow can be cleared just before it is computed in a lot of places because overflow computation happens all at once
2166         now rather than cumulatively during layout. Any object that doesn't use computeOverflow() will still need to clear it manually
2167         though.
2168
2169         No new tests, refactoring.
2170
2171         * rendering/RenderBlock.cpp:
2172         (WebCore::RenderBlock::layoutBlock):
2173         (WebCore::RenderBlock::computeOverflow):
2174         (WebCore::RenderBlock::simplifiedLayout):
2175         * rendering/RenderBlockLineLayout.cpp:
2176         (WebCore::RenderBlock::layoutInlineChildren):
2177         * rendering/RenderDeprecatedFlexibleBox.cpp:
2178         (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
2179         * rendering/RenderFlexibleBox.cpp:
2180         (WebCore::RenderFlexibleBox::layoutBlock):
2181         * rendering/RenderGrid.cpp:
2182         (WebCore::RenderGrid::layoutBlock):
2183         * rendering/RenderRubyRun.cpp:
2184         (WebCore::RenderRubyRun::layout):
2185         * rendering/RenderTable.cpp:
2186         (WebCore::RenderTable::layout):
2187         * rendering/RenderTextControlSingleLine.cpp:
2188         (WebCore::RenderTextControlSingleLine::layout):
2189
2190 2013-02-21  Alok Priyadarshi  <alokp@chromium.org>
2191
2192         Mark GraphicsLayers as opaque when possible
2193         https://bugs.webkit.org/show_bug.cgi?id=70634
2194
2195         Reviewed by Simon Fraser.
2196
2197         Mark layers as opaque in a very simple case - the main renderer has an
2198         opaque background and covers the entire composited bounds.
2199         RenderLayer::contentsOpaqueInRect has been implemented conservatively,
2200         i.e. it errs towards returning false negative.
2201
2202         Tests: compositing/contents-opaque/contents-opaque-background-clip.html
2203                compositing/contents-opaque/contents-opaque-background-color.html
2204                compositing/contents-opaque/contents-opaque-layer-opacity.html
2205                compositing/contents-opaque/contents-opaque-layer-transform.html
2206
2207         * rendering/RenderBox.cpp:
2208         (WebCore::RenderBox::backgroundIsOpaqueInRect):
2209         (WebCore):
2210         * rendering/RenderBox.h:
2211         (RenderBox):
2212         * rendering/RenderBoxModelObject.h:
2213         (WebCore::RenderBoxModelObject::backgroundIsOpaqueInRect):
2214         (WebCore::RenderBoxModelObject::foregroundIsOpaqueInRect):
2215         (RenderBoxModelObject):
2216         * rendering/RenderLayer.cpp:
2217         (WebCore::RenderLayer::contentsOpaqueInRect):
2218         (WebCore):
2219         (WebCore::RenderLayer::listContentsOpaqueInRect):
2220         * rendering/RenderLayer.h:
2221         (RenderLayer):
2222         * rendering/RenderLayerBacking.cpp:
2223         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
2224         * rendering/RenderLayerModelObject.h:
2225         (RenderLayerModelObject):
2226
2227 2013-02-21  Julien Chaffraix  <jchaffraix@webkit.org>
2228
2229         [CSS Grid Layout] Implement grid growth during auto placement
2230         https://bugs.webkit.org/show_bug.cgi?id=110418
2231
2232         Reviewed by Ojan Vafai.
2233
2234         This change implements the last remaining piece of the auto placement algorithm:
2235         growing the grid mid-placement. With that landed, we should handle all cases properly.
2236
2237         Change covered by : fast/css-grid-layout/grid-item-addition-auto-placement.html
2238                             fast/css-grid-layout/grid-item-removal-auto-placement.html
2239
2240
2241         * rendering/RenderGrid.cpp:
2242         (WebCore::RenderGrid::growGrid):
2243         Added this helper function to grow the grid one item in a direction.
2244
2245         (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
2246         Updated this function to grow in the minor axis direction and insert in the
2247         newly created grid area.
2248
2249         (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
2250         Updated this function to grow in the major axis direction and insert in the
2251         newly create grid area. Unfortunately this code cannot use the iterator to find
2252         the new position as the (auto, auto) case iterates orthogonally to the major axis
2253         direction, which we just grew.
2254
2255         * rendering/RenderGrid.h:
2256         Added growGrid.
2257
2258 2013-02-21  Martin Robinson  <mrobinson@igalia.com>
2259
2260         A couple more 'make dist' fixes for WebKitGTK+.
2261
2262         * GNUmakefile.list.am: Add a missing file to the source list.
2263
2264 2013-02-21  Andrei Bucur  <abucur@adobe.com>
2265
2266         -webkit-margin-collapse: separate doesn't work correctly for before margins
2267         https://bugs.webkit.org/show_bug.cgi?id=109956
2268
2269         Reviewed by David Hyatt.
2270
2271         The collapsing code for "-webkit-margin-collapse: separate" assumed the margin value inside
2272         marginInfo always contributes to the position of the child. This is valid only if the collapse
2273         doesn't happen at the before side of the container. In that case, the child needs to be positioned 
2274         at the margin value specified in the style sheet.
2275
2276         Test: fast/block/margin-collapse/webkit-margin-collapse-separate-position.html
2277
2278         * rendering/RenderBlock.cpp:
2279         (WebCore::RenderBlock::collapseMargins):
2280
2281 2013-02-21  Tien-Ren Chen  <trchen@chromium.org>
2282
2283         Need to re-layout fixed position elements after scale when using settings()->fixedElementsLayoutRelativeToFrame()
2284         https://bugs.webkit.org/show_bug.cgi?id=105486
2285
2286         Reviewed by James Robinson.
2287
2288         In settings()->fixedElementsLayoutRelativeToFrame() mode, fixed-position
2289         elements are layout relative to the current visible viewport, which can
2290         be different from the layout viewport when using fixed-layout mode.
2291         We need to re-layout fixed-position elements in case of visible content
2292         size changes.
2293
2294         The test is currently chromium-specific due to difficulties to make this
2295         test works on Mac. The mac port seems to work very differently with
2296         visible content size when a page is scaled. And there is no reliable way
2297         to hide scrollbars in mac-wk1 that doesn't cause a side effect.
2298
2299         Test: platform/chromium/fast/repaint/relayout-fixed-position-after-scale.html
2300
2301         * page/FrameView.cpp:
2302         (WebCore::FrameView::visibleContentsResized):
2303         * page/FrameView.h:
2304         (FrameView):
2305         * page/Page.cpp:
2306         (WebCore::Page::setPageScaleFactor):
2307
2308 2013-02-21  Xan Lopez  <xlopez@rim.com>
2309
2310         [BlackBerry] LayerFilterRenderer: fix inclusion of Vector.h
2311         https://bugs.webkit.org/show_bug.cgi?id=110476
2312
2313         Reviewed by Rob Buis.
2314
2315         Added in r124242. The include line should be wtf/Vector.h
2316
2317         * platform/graphics/blackberry/LayerFilterRenderer.cpp:
2318
2319 2013-02-21  David Hyatt  <hyatt@apple.com>
2320
2321         [New Multicolumn] Remove unneeded layout method in RenderMultiColumnFlowThread.
2322         https://bugs.webkit.org/show_bug.cgi?id=110477.
2323
2324         Reviewed by Antti Koivisto.
2325
2326         I forgot that both the sets and the flow thread lay out before the containing
2327         RenderMultiColumnBlock has finished. That means it hasn't computed its overflow yet.
2328         Therefore there is no need to force it to compute its overflow from inside
2329         RenderMultiColumnFlowThread::layout, because the minute RenderMultiColumnFlowThread
2330         finishes its layout, the block will compute its overflow anyway.
2331
2332         * rendering/RenderMultiColumnFlowThread.cpp:
2333         (WebCore):
2334         * rendering/RenderMultiColumnFlowThread.h:
2335         (RenderMultiColumnFlowThread):
2336
2337 2013-02-21  Martin Robinson  <mrobinson@igalia.com>
2338
2339         [GTK] Move feature overriding to the configure phase
2340         https://bugs.webkit.org/show_bug.cgi?id=110293
2341
2342         Reviewed by Gustavo Noronha Silva.
2343
2344         * GNUmakefile.am: No longer include GNUmakefile.features.am. We don't
2345         have to process the result of this file or do any modification of
2346         feature_defines_override, because this variable is gone.
2347
2348 2013-02-21  Andrey Adaikin  <aandrey@chromium.org>
2349
2350         Unreviewed. Rolling out an unindented change from r143580.
2351
2352         * inspector/Inspector.json:
2353
2354 2013-02-21  Andreas Kling  <akling@apple.com>
2355
2356         GlyphPage: Bake per-glyph font data array into same allocation as GlyphPage.
2357
2358         A hopeful fix for REGRESSION(r143125): ~5% performance hit on Chromium's intl2 page cycler
2359         <http://webkit.org/b/108835>
2360
2361         Reviewed by Antti Koivisto.
2362
2363         Rewire GlyphPage so that we have to decide at creation time whether there will be a per-glyph
2364         array of SimpleFontData* or not. This removes one allocation and one step of indirection for
2365         pages with glyphs from mixed fonts.
2366
2367         * platform/graphics/GlyphPage.h:
2368         (WebCore::GlyphPage::createForMixedFontData):
2369         (WebCore::GlyphPage::createForSingleFontData):
2370         (WebCore::GlyphPage::createCopiedSystemFallbackPage):
2371         (WebCore::GlyphPage::~GlyphPage):
2372         (WebCore::GlyphPage::glyphDataForIndex):
2373         (WebCore::GlyphPage::fontDataForCharacter):
2374         (WebCore::GlyphPage::setGlyphDataForIndex):
2375         (WebCore::GlyphPage::removeFontDataFromSystemFallbackPage):
2376         (WebCore::GlyphPage::GlyphPage):
2377         (WebCore::GlyphPage::hasPerGlyphFontData):
2378         (GlyphPage):
2379         * platform/graphics/GlyphPageTreeNode.cpp:
2380         (WebCore::GlyphPageTreeNode::initializePage):
2381
2382 2013-02-21  Xan Lopez  <xlopez@rim.com>
2383
2384         [BlackBerry] MediaPlayerPrivateBlackBerry: include Logging.h
2385         https://bugs.webkit.org/show_bug.cgi?id=110455
2386
2387         Reviewed by Eric Carlson.
2388
2389         LOG is used in this file, so it is needed.
2390
2391         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
2392
2393 2013-02-21  Keishi Hattori  <keishi@webkit.org>
2394
2395         Add animation class for new calendar picker
2396         https://bugs.webkit.org/show_bug.cgi?id=110132
2397
2398         Reviewed by Kent Tamura.
2399
2400         Adding animation related classes as part of the calendar picker
2401         redesign(Bug 109439).
2402
2403         No new tests. Code is not used yet.
2404
2405         * Resources/pagepopups/calendarPicker.js:
2406         (AnimationTimingFunction.Linear): Parameter t should be a number between 0 and 1.
2407         (AnimationTimingFunction.EaseInOut): Ditto.
2408         (AnimationManager): All animators are managed by this class so we
2409         can dispatch "animationFrameWillFinish" event after all the updates.
2410         (AnimationManager.prototype._startAnimation):
2411         (AnimationManager.prototype._stopAnimation):
2412         (AnimationManager.prototype.add): Adds an animator to the list of running animators.
2413         (AnimationManager.prototype.remove): Removes an animator.
2414         (AnimationManager.prototype._animationFrameCallback): Callback for requestAnimationFrame.
2415         (AnimationManager.prototype._needsAnimationFrame): Returns true if we should request the next animation frame.
2416         (AnimationManager.prototype.on): If we add a callback, request animation frame.
2417         (AnimationManager.prototype.removeListener):
2418         (Animator): Animates between the from value and to value.
2419         (Animator.prototype.setFrom): Sets the from value.
2420         (Animator.prototype.setTo): Sets the to value.
2421         (Animator.prototype.start):
2422         (Animator.prototype.stop):
2423         (Animator.prototype.onAnimationFrame): Called by AnimationManager.
2424
2425 2013-02-21  Andrey Adaikin  <aandrey@chromium.org>
2426
2427         Web Inspector: [Canvas] UI: more intuitive control buttons
2428         https://bugs.webkit.org/show_bug.cgi?id=110327
2429
2430         Reviewed by Pavel Feldman.
2431
2432         Tweaks to the CanvasProfiler replay control buttons.
2433         - NextDrawCall forward button (StepOver) should jump up to the last expanded node, otherwise a noop is not intuitive unless the last node is selected.
2434         - NextDrawCall/PrevDrawCall buttons should not skip draw call nodes themselves.
2435
2436         * inspector/front-end/CanvasProfileView.js:
2437         (WebInspector.CanvasProfileView.prototype._onReplayDrawingCallClick):
2438
2439 2013-02-21  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
2440
2441         Make SpellCheckRequest's constructor private.
2442         https://bugs.webkit.org/show_bug.cgi?id=110462
2443
2444         Reviewed by Antonio Gomes.
2445
2446         It's no need to expose SpellCheckRequest's constructor.
2447         There is SpellCheckRequest::create() method which is
2448         responsible for creating SpellCheckRequest object.
2449
2450         No new tests, no behavior change.
2451
2452         * editing/SpellChecker.h:
2453         (SpellCheckRequest):
2454
2455 2013-02-21  Andrey Adaikin  <aandrey@chromium.org>
2456
2457         Web Inspector: [Canvas] Remove arrays of DataGrid nodes from the View
2458         https://bugs.webkit.org/show_bug.cgi?id=110325
2459
2460         Reviewed by Pavel Feldman.
2461
2462         Remove arrays of DataGrid nodes from the CanvasProfileView and use live DataGrid instead.
2463         This is a prerequisite to support a non-fixed layered tree in the grid (for example, to hide
2464         a single frame group node, or to combine several draw call groups into a pattern group).
2465         Drive-by: added an assert to injected canvas module.
2466
2467         * inspector/InjectedScriptCanvasModuleSource.js:
2468         * inspector/front-end/CanvasProfileView.js:
2469         (WebInspector.CanvasProfileView):
2470         (WebInspector.CanvasProfileView.prototype.dispose):
2471         (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
2472         (WebInspector.CanvasProfileView.prototype._requestTraceLog):
2473         (WebInspector.CanvasProfileView.prototype._selectedCallIndex):
2474         (WebInspector.CanvasProfileView.prototype._peekLastRecursively):
2475         (WebInspector.CanvasProfileView.prototype._appendCallNodes):
2476         (WebInspector.CanvasProfileView.prototype.):
2477         (WebInspector.CanvasProfileView.prototype.splitDrawCallGroup):
2478         (WebInspector.CanvasProfileView.prototype._appendCallNodesToFrameNode):
2479
2480 2013-02-21  Alexander Pavlov  <apavlov@chromium.org>
2481
2482         Web Inspector: Local/session storage tree items in the Resources panel after page refresh are not shown
2483         Re-landing r143581 with a build fix for Windows.
2484         https://bugs.webkit.org/show_bug.cgi?id=109572
2485
2486         Reviewed by Vsevolod Vlasov.
2487
2488         This is a complete rework of the DOMStorage domain of the Web Inspector protocol. The most notable changes:
2489         - Session and local DOM storages are considered to implicitly exist for each SecurityOrigin in the page
2490           (previously, only those that were lazily created by DOMWindow would exist).
2491         - Consequently, the addDOMStorage event is gone.
2492         - StorageId is now an object rather than an opaque numeric identifier.
2493         - DOM storage modifiers no longer return a boolean indicating if the operation was successful.
2494           Clients should rely on the returned error message instead.
2495
2496         Implementation changes:
2497         - InspectorDOMStorageResource would rely on the frame for which it was created throughout its lifetime.
2498           As such, the frame removal from the page would break the respective DOM storage inspection.
2499           Since this concept was entirely flawed, InspectorDOMStorageResource has been removed. Instead, a StorageArea
2500           is retrieved based on the security origin specified by the client.
2501         - DOM storages can now be dynamically removed (upon the respective SecurityOrigin removal) in the frontend.
2502
2503         * CMakeLists.txt: Remove InspectorDOMStorageResource.
2504         * GNUmakefile.list.am: Ditto.
2505         * Target.pri: Ditto.
2506         * WebCore.gypi: Ditto.
2507         * WebCore.order: Ditto.
2508         * WebCore.vcproj/WebCore.vcproj: Ditto.
2509         * WebCore.vcxproj/WebCore.vcxproj: Ditto.
2510         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
2511         * WebCore.xcodeproj/project.pbxproj: Ditto.
2512         * dom/WebCoreMemoryInstrumentation.cpp: Ditto.
2513         * dom/WebCoreMemoryInstrumentation.h: Ditto.
2514         * inspector/InjectedScriptSource.js: Account for the structured StorageId.
2515         * inspector/Inspector.json: Update structures and API methods.
2516           Do not return boolean success flag and make use of the error message instead.
2517         * inspector/InspectorAllInOne.cpp: Remove InspectorDOMStorageResource.
2518         * inspector/InspectorController.cpp:
2519         (WebCore::InspectorController::InspectorController): Add InspectorPageAgent into InspectorDOMStorageAgent.
2520         * inspector/InspectorDOMStorageAgent.cpp: Mostly remove InspectorDOMStorageResource usages.
2521         (WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
2522         (WebCore::InspectorDOMStorageAgent::clearFrontend):
2523         (WebCore::InspectorDOMStorageAgent::isEnabled):
2524         (WebCore::InspectorDOMStorageAgent::enable):
2525         (WebCore::InspectorDOMStorageAgent::disable):
2526         (WebCore::InspectorDOMStorageAgent::getDOMStorageItems): Renamed.
2527         (WebCore::toErrorString): Stringify ExceptionCode.
2528         (WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
2529         (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
2530         (WebCore::InspectorDOMStorageAgent::storageId): Make it structured rather than a plain string.
2531         (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
2532         (WebCore::InspectorDOMStorageAgent::findStorageArea): Added.
2533         (WebCore::InspectorDOMStorageAgent::reportMemoryUsage): Remove InspectorDOMStorageResource map.
2534         * inspector/InspectorDOMStorageAgent.h:
2535         (WebCore::InspectorDOMStorageAgent::create): Update signature.
2536         (InspectorDOMStorageAgent):
2537         * inspector/InspectorDOMStorageResource.cpp: Removed.
2538         * inspector/InspectorDOMStorageResource.h: Removed.
2539         * inspector/InspectorInstrumentation.cpp:
2540         (WebCore::InspectorInstrumentation::didCommitLoadImpl): Do not call the removed clearResources().
2541         * inspector/InspectorInstrumentation.h:
2542         * inspector/InspectorPageAgent.cpp:
2543         (WebCore::InspectorPageAgent::findFrameWithSecurityOrigin): Added.
2544         * inspector/InspectorPageAgent.h:
2545         (InspectorPageAgent):
2546         * inspector/front-end/DOMStorage.js: Entirely reworked to use the SecurityOriginAdded/Removed events.
2547         (WebInspector.DOMStorage):
2548         (WebInspector.DOMStorage.storageId):
2549         (WebInspector.DOMStorage.prototype.get id):
2550         (WebInspector.DOMStorage.prototype.get securityOrigin):
2551         (WebInspector.DOMStorage.prototype.getItems):
2552         (WebInspector.DOMStorage.prototype.setItem):
2553         (WebInspector.DOMStorage.prototype.removeItem):
2554         (WebInspector.DOMStorageModel):
2555         (WebInspector.DOMStorageModel.prototype._securityOriginAdded):
2556         (WebInspector.DOMStorageModel.prototype._securityOriginRemoved):
2557         (WebInspector.DOMStorageModel.prototype._storageKey):
2558         (WebInspector.DOMStorageModel.prototype._domStorageItemsCleared):
2559         (WebInspector.DOMStorageModel.prototype._domStorageItemRemoved):
2560         (WebInspector.DOMStorageModel.prototype._domStorageItemAdded):
2561         (WebInspector.DOMStorageModel.prototype.storageForId):
2562         (WebInspector.DOMStorageModel.prototype.storages):
2563         * inspector/front-end/DOMStorageItemsView.js: Rename Entries -> Items to avoid confusion.
2564         (WebInspector.DOMStorageItemsView.prototype._update):
2565         (WebInspector.DOMStorageItemsView.prototype._showDOMStorageItems):
2566         (WebInspector.DOMStorageItemsView.prototype._dataGridForDOMStorageItems):
2567         * inspector/front-end/ResourcesPanel.js: Follow the updated DOMStorage model.
2568         (WebInspector.ResourcesPanel):
2569         (WebInspector.ResourcesPanel.prototype._initialize):
2570         (WebInspector.ResourcesPanel.prototype._domStorageAdded):
2571         (WebInspector.ResourcesPanel.prototype._domStorageRemoved):
2572         (WebInspector.ResourcesPanel.prototype._populateDOMStorageTree):
2573         (WebInspector.DOMStorageTreeElement):
2574         (WebInspector.DOMStorageTreeElement.prototype.get itemURL):
2575         * page/DOMWindow.cpp: Remove instrumentation calls.
2576         (WebCore::DOMWindow::sessionStorage):
2577         (WebCore::DOMWindow::localStorage):
2578
2579 2013-02-21  Carlos Garcia Campos  <cgarcia@igalia.com>
2580
2581         Unreviewed. Fix make distcheck.
2582
2583         * GNUmakefile.list.am: Add missing files to compilation.
2584
2585 2013-02-21  Alberto Garcia  <albgarcia@rim.com>
2586
2587         [BlackBerry] Fix access to ResourceHandle::context
2588         https://bugs.webkit.org/show_bug.cgi?id=110443
2589
2590         Reviewed by Carlos Garcia Campos.
2591
2592         This changed in r141981.
2593
2594         * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
2595         (WebCore::ResourceHandle::start):
2596
2597 2013-02-21  Alberto Garcia  <albgarcia@rim.com>
2598
2599         [BlackBerry] GraphicsLayerBlackBerry: rename showDebugBorder to isShowingDebugBorder
2600         https://bugs.webkit.org/show_bug.cgi?id=110453
2601
2602         Reviewed by Carlos Garcia Campos.
2603
2604         This changed in r133517.
2605
2606         * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
2607         (WebCore::GraphicsLayerBlackBerry::setupContentsLayer):
2608
2609 2013-02-21  Peter Rybin  <prybin@chromium.org>
2610
2611         Web Inspector: take large strings out of CodeGeneratorInspector.py
2612         https://bugs.webkit.org/show_bug.cgi?id=110159
2613
2614         Reviewed by Yury Semikhatsky.
2615
2616         Python script is refactored.
2617
2618         * inspector/CodeGeneratorInspector.py:
2619         * inspector/CodeGeneratorInspectorStrings.py: Added.
2620         (InspectorFrontend_h):
2621         (InspectorFrontendChannel):
2622         (InspectorArray):
2623         (InspectorObject):
2624         (String):
2625         (InspectorFrontend):
2626         (InspectorBackendDispatcher_h):
2627         (InspectorAgent):
2628         (InspectorBackendDispatcherImpl):
2629         (InspectorBackendDispatcher):
2630         (CallbackBase):
2631         (void):
2632         (HashMap):
2633         (OptOutput):
2634         (ExactlyInt):
2635         (RuntimeCastHelper):
2636         (provides):
2637         (typename):
2638         (Array):
2639         (Builder):
2640
2641 2013-02-21  Sheriff Bot  <webkit.review.bot@gmail.com>
2642
2643         Unreviewed, rolling out r143581.
2644         http://trac.webkit.org/changeset/143581
2645         https://bugs.webkit.org/show_bug.cgi?id=110457
2646
2647         Breaks Windows builds (compile + link) (Requested by apavlov
2648         on #webkit).
2649
2650         * CMakeLists.txt:
2651         * GNUmakefile.list.am:
2652         * Target.pri:
2653         * WebCore.gypi:
2654         * WebCore.order:
2655         * WebCore.vcproj/WebCore.vcproj:
2656         * WebCore.vcxproj/WebCore.vcxproj:
2657         * WebCore.vcxproj/WebCore.vcxproj.filters:
2658         * WebCore.xcodeproj/project.pbxproj:
2659         * dom/WebCoreMemoryInstrumentation.cpp:
2660         (WebCore):
2661         * dom/WebCoreMemoryInstrumentation.h:
2662         (WebCoreMemoryTypes):
2663         * inspector/InjectedScriptSource.js:
2664         (.):
2665         * inspector/Inspector.json:
2666         * inspector/InspectorAllInOne.cpp:
2667         * inspector/InspectorController.cpp:
2668         (WebCore::InspectorController::InspectorController):
2669         * inspector/InspectorDOMStorageAgent.cpp:
2670         (WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
2671         (WebCore::InspectorDOMStorageAgent::clearFrontend):
2672         (WebCore::InspectorDOMStorageAgent::restore):
2673         (WebCore::InspectorDOMStorageAgent::enable):
2674         (WebCore::InspectorDOMStorageAgent::disable):
2675         (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
2676         (WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
2677         (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
2678         (WebCore::InspectorDOMStorageAgent::storageId):
2679         (WebCore::InspectorDOMStorageAgent::getDOMStorageResourceForId):
2680         (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
2681         (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
2682         (WebCore::InspectorDOMStorageAgent::clearResources):
2683         (WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
2684         * inspector/InspectorDOMStorageAgent.h:
2685         (WebCore):
2686         (WebCore::InspectorDOMStorageAgent::create):
2687         (InspectorDOMStorageAgent):
2688         * inspector/InspectorDOMStorageResource.cpp: Added.
2689         (WebCore):
2690         (WebCore::InspectorDOMStorageResource::InspectorDOMStorageResource):
2691         (WebCore::InspectorDOMStorageResource::isSameOriginAndType):
2692         (WebCore::InspectorDOMStorageResource::bind):
2693         (WebCore::InspectorDOMStorageResource::unbind):
2694         (WebCore::InspectorDOMStorageResource::reportMemoryUsage):
2695         * inspector/InspectorDOMStorageResource.h: Added.
2696         (WebCore):
2697         (InspectorDOMStorageResource):
2698         (WebCore::InspectorDOMStorageResource::create):
2699         (WebCore::InspectorDOMStorageResource::id):
2700         (WebCore::InspectorDOMStorageResource::storageArea):
2701         (WebCore::InspectorDOMStorageResource::frame):
2702         * inspector/InspectorInstrumentation.cpp:
2703         (WebCore):
2704         (WebCore::InspectorInstrumentation::didCommitLoadImpl):
2705         (WebCore::InspectorInstrumentation::didUseDOMStorageImpl):
2706         * inspector/InspectorInstrumentation.h:
2707         (InspectorInstrumentation):
2708         (WebCore::InspectorInstrumentation::didUseDOMStorage):
2709         (WebCore):
2710         * inspector/InspectorPageAgent.cpp:
2711         * inspector/InspectorPageAgent.h:
2712         (InspectorPageAgent):
2713         * inspector/front-end/DOMStorage.js:
2714         (WebInspector.DOMStorage):
2715         (WebInspector.DOMStorage.prototype.get id):
2716         (WebInspector.DOMStorage.prototype.get domain):
2717         (WebInspector.DOMStorage.prototype.getEntries):
2718         (WebInspector.DOMStorage.prototype.setItem):
2719         (WebInspector.DOMStorage.prototype.removeItem):
2720         (WebInspector.DOMStorageModel):
2721         (WebInspector.DOMStorageModel.prototype._addDOMStorage):
2722         (WebInspector.DOMStorageModel.prototype._domStorageItemsCleared):
2723         (WebInspector.DOMStorageModel.prototype._domStorageItemRemoved):
2724         (WebInspector.DOMStorageModel.prototype._domStorageItemAdded):
2725         (WebInspector.DOMStorageModel.prototype.storageForId):
2726         (WebInspector.DOMStorageModel.prototype.storages):
2727         (WebInspector.DOMStorageDispatcher.prototype.addDOMStorage):
2728         * inspector/front-end/DOMStorageItemsView.js:
2729         (WebInspector.DOMStorageItemsView.prototype._update):
2730         (WebInspector.DOMStorageItemsView.prototype._showDOMStorageEntries):
2731         (WebInspector.DOMStorageItemsView.prototype._dataGridForDOMStorageEntries):
2732         * inspector/front-end/ResourcesPanel.js:
2733         (WebInspector.ResourcesPanel):
2734         (WebInspector.ResourcesPanel.prototype._initialize):
2735         (WebInspector.ResourcesPanel.prototype._domStorageAdded):
2736         (WebInspector.ResourcesPanel.prototype._addDOMStorage):
2737         (WebInspector.DOMStorageTreeElement):
2738         (WebInspector.DOMStorageTreeElement.prototype.get itemURL):
2739         * page/DOMWindow.cpp:
2740         (WebCore::DOMWindow::sessionStorage):
2741         (WebCore::DOMWindow::localStorage):
2742
2743 2013-02-21  Vsevolod Vlasov  <vsevik@chromium.org>
2744
2745         Web Inspector: Get rid of parsedURL in uiSourceCode, use name and path for displayName instead.
2746         https://bugs.webkit.org/show_bug.cgi?id=110335
2747
2748         Reviewed by Alexander Pavlov.
2749
2750         Replaced UISourceCode.parsedURL with UISourceCode.displayName().
2751
2752         * inspector/front-end/NavigatorView.js:
2753         (WebInspector.NavigatorView.prototype._updateScriptTitle):
2754         (WebInspector.NavigatorView.prototype.getOrCreateFolderTreeElement):
2755         (WebInspector.NavigatorFolderTreeElement):
2756         * inspector/front-end/ResourceUtils.js:
2757         (WebInspector.displayNameForURL):
2758         * inspector/front-end/RevisionHistoryView.js:
2759         (WebInspector.RevisionHistoryView.prototype._createUISourceCodeItem):
2760         * inspector/front-end/UISourceCode.js:
2761         (WebInspector.UISourceCode):
2762         (WebInspector.UISourceCode.prototype.displayName):
2763         (WebInspector.UISourceCode.prototype.urlChanged):
2764
2765 2013-02-21  Alexander Pavlov  <apavlov@chromium.org>
2766
2767         Web Inspector: Local/session storage tree items in the Resources panel after page refresh are not shown
2768         https://bugs.webkit.org/show_bug.cgi?id=109572
2769
2770         Reviewed by Vsevolod Vlasov.
2771
2772         * CMakeLists.txt:
2773         * GNUmakefile.list.am:
2774         * Target.pri:
2775         * WebCore.gypi:
2776         * WebCore.order:
2777         * WebCore.vcproj/WebCore.vcproj:
2778         * WebCore.vcxproj/WebCore.vcxproj:
2779         * WebCore.vcxproj/WebCore.vcxproj.filters:
2780         * WebCore.xcodeproj/project.pbxproj:
2781         * dom/WebCoreMemoryInstrumentation.cpp:
2782         (WebCore):
2783         * dom/WebCoreMemoryInstrumentation.h:
2784         (WebCoreMemoryTypes):
2785         * inspector/InjectedScriptSource.js:
2786         (.):
2787         * inspector/Inspector.json:
2788         * inspector/InspectorAllInOne.cpp:
2789         * inspector/InspectorController.cpp:
2790         (WebCore::InspectorController::InspectorController):
2791         * inspector/InspectorDOMStorageAgent.cpp:
2792         (WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
2793         (WebCore::InspectorDOMStorageAgent::clearFrontend):
2794         (WebCore::InspectorDOMStorageAgent::isEnabled):
2795         (WebCore::InspectorDOMStorageAgent::enable):
2796         (WebCore::InspectorDOMStorageAgent::disable):
2797         (WebCore::InspectorDOMStorageAgent::getDOMStorageItems):
2798         (WebCore::toErrorString):
2799         (WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
2800         (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
2801         (WebCore::InspectorDOMStorageAgent::storageId):
2802         (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
2803         (WebCore::InspectorDOMStorageAgent::findStorageArea):
2804         (WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
2805         * inspector/InspectorDOMStorageAgent.h:
2806         (WebCore):
2807         (WebCore::InspectorDOMStorageAgent::create):
2808         (InspectorDOMStorageAgent):
2809         * inspector/InspectorDOMStorageResource.cpp: Removed.
2810         * inspector/InspectorDOMStorageResource.h: Removed.
2811         * inspector/InspectorInstrumentation.cpp:
2812         (WebCore):
2813         (WebCore::InspectorInstrumentation::didCommitLoadImpl):
2814         * inspector/InspectorInstrumentation.h:
2815         (InspectorInstrumentation):
2816         * inspector/InspectorPageAgent.cpp:
2817         (WebCore::InspectorPageAgent::findFrameWithSecurityOrigin):
2818         (WebCore):
2819         * inspector/InspectorPageAgent.h:
2820         (InspectorPageAgent):
2821         * inspector/front-end/DOMStorage.js:
2822         (WebInspector.DOMStorage):
2823         (WebInspector.DOMStorage.storageId):
2824         (WebInspector.DOMStorage.prototype.get id):
2825         (WebInspector.DOMStorage.prototype.get securityOrigin):
2826         (WebInspector.DOMStorage.prototype.getItems):
2827         (WebInspector.DOMStorage.prototype.setItem):
2828         (WebInspector.DOMStorage.prototype.removeItem):
2829         (WebInspector.DOMStorageModel):
2830         (WebInspector.DOMStorageModel.prototype._securityOriginAdded):
2831         (WebInspector.DOMStorageModel.prototype._securityOriginRemoved):
2832         (WebInspector.DOMStorageModel.prototype._storageKey):
2833         (WebInspector.DOMStorageModel.prototype._domStorageItemsCleared):
2834         (WebInspector.DOMStorageModel.prototype._domStorageItemRemoved):
2835         (WebInspector.DOMStorageModel.prototype._domStorageItemAdded):
2836         (WebInspector.DOMStorageModel.prototype.storageForId):
2837         (WebInspector.DOMStorageModel.prototype.storages):
2838         * inspector/front-end/DOMStorageItemsView.js:
2839         (WebInspector.DOMStorageItemsView.prototype._update):
2840         (WebInspector.DOMStorageItemsView.prototype._showDOMStorageItems):
2841         (WebInspector.DOMStorageItemsView.prototype._dataGridForDOMStorageItems):
2842         * inspector/front-end/ResourcesPanel.js:
2843         (WebInspector.ResourcesPanel):
2844         (WebInspector.ResourcesPanel.prototype._initialize):
2845         (WebInspector.ResourcesPanel.prototype._domStorageAdded):
2846         (WebInspector.ResourcesPanel.prototype._domStorageRemoved):
2847         (WebInspector.ResourcesPanel.prototype._populateDOMStorageTree):
2848         (WebInspector.DOMStorageTreeElement):
2849         (WebInspector.DOMStorageTreeElement.prototype.get itemURL):
2850         * page/DOMWindow.cpp:
2851         (WebCore::DOMWindow::sessionStorage):
2852         (WebCore::DOMWindow::localStorage):
2853
2854 2013-02-19  Eugene Klyuchnikov  <eustas@chromium.org>
2855
2856         Web Inspector: [Console] Add console API message types for profile/profileEnd.
2857         https://bugs.webkit.org/show_bug.cgi?id=109790
2858
2859         Reviewed by Pavel Feldman.
2860
2861         With profile/profileEnd message types we will gain more control over
2862         output messages.
2863
2864         * English.lproj/localizedStrings.js: Added corresponging strings.
2865         * inspector/ConsoleAPITypes.h: Added enum members.
2866         * inspector/Inspector.json: Ditto.
2867         * inspector/front-end/ConsoleModel.js: Ditto.
2868         * inspector/ConsoleMessage.cpp:
2869         (WebCore::messageTypeValue): Added cases.
2870         * inspector/InspectorProfilerAgent.cpp: Adopted changes.
2871         * inspector/front-end/inspector.js: Ditto.
2872         * inspector/front-end/ConsoleMessage.js:
2873         Added message generators for introduced message types.
2874         * inspector/front-end/ProfilesPanel.js:
2875         Turned showProfileForURL(url) to showProfile(typeId, uid).
2876         * inspector/front-end/ProfilesPanelDescriptor.js:
2877         (WebInspector.ProfilesPanelDescriptor.resolveProfileTitle): Added.
2878         * inspector/front-end/ResourceUtils.js: Removed linkifier plugins.
2879
2880 2013-02-21  Tamas Czene  <tczene@inf.u-szeged.hu>
2881
2882         OpenCL implementation of FEMerge filter.
2883         https://bugs.webkit.org/show_bug.cgi?id=110193
2884
2885         Reviewed by Zoltan Herczeg.
2886
2887         In case of odd number of parameters the first parameter is copied to the destination image and
2888         the rest of the parameters are merged in pairs.
2889
2890         * Target.pri:
2891         * platform/graphics/filters/FEMerge.h:
2892         (FEMerge):
2893         * platform/graphics/gpu/opencl/FilterContextOpenCL.h:
2894         (WebCore::FilterContextOpenCL::FilterContextOpenCL):
2895         (FilterContextOpenCL):
2896         * platform/graphics/gpu/opencl/OpenCLFEMerge.cpp: Added.
2897         (WebCore):
2898         (WebCore::FilterContextOpenCL::compileFEMerge):
2899         (WebCore::FilterContextOpenCL::copy): This is a simple copy method.
2900         (WebCore::FilterContextOpenCL::applyFEMerge):
2901         (WebCore::FEMerge::platformApplyOpenCL):
2902
2903 2013-02-21  Keishi Hattori  <keishi@webkit.org>
2904
2905         Add event dispatch class for the new calendar picker
2906         https://bugs.webkit.org/show_bug.cgi?id=110131
2907
2908         Reviewed by Kent Tamura.
2909
2910         Adding event dispatcher class as part of the new calendar picker patch at Bug 109439.
2911
2912         No new tests. Code is not yet used.
2913
2914         * Resources/pagepopups/calendarPicker.js:
2915         (EventEmitter):
2916         (EventEmitter.prototype.on): Adds a callback for an event.
2917         (EventEmitter.prototype.hasListener): Returns true if more than one listeners exist for an event type.
2918         (EventEmitter.prototype.removeListener): Removes an event listener.
2919         (EventEmitter.prototype.dispatchEvent): Dispatches an event to all callbacks. Takes variable number of arguments.
2920
2921 2013-02-21  Ken Kania  <kkania@chromium.org>
2922
2923         Web Inspector: Add command for selecting files for file input element
2924         https://bugs.webkit.org/show_bug.cgi?id=109308
2925
2926         Reviewed by Pavel Feldman.
2927
2928         Test: inspector-protocol/dom/setFileInputFiles.html
2929
2930         * inspector/Inspector.json:
2931         * inspector/InspectorClient.h:
2932         (WebCore::InspectorClient::canSetFileInputFiles):
2933         (InspectorClient):
2934         * inspector/InspectorController.cpp:
2935         (WebCore::InspectorController::InspectorController):
2936         * inspector/InspectorDOMAgent.cpp:
2937         (WebCore::InspectorDOMAgent::InspectorDOMAgent):
2938         (WebCore::InspectorDOMAgent::setFileInputFiles):
2939         (WebCore):
2940         * inspector/InspectorDOMAgent.h:
2941         (WebCore):
2942         (WebCore::InspectorDOMAgent::create):
2943         (InspectorDOMAgent):
2944
2945 2013-02-21  Pan Deng  <pan.deng@intel.com>
2946
2947         [Web Inspector]Add WebSocket networking events in Timeline panel.
2948         https://bugs.webkit.org/show_bug.cgi?id=105527.
2949
2950         Reviewed by Pavel Feldman.
2951
2952         This patch add four WebSocket networking events in Timeline panel. The Events
2953         are CreateWebSocket, SendWebSocketHandshakeRequest, ReceiveWebSocketHandShakeResponse
2954         and DestoryWebSocket. Thanks to Kitamura san's previous work.
2955
2956         Test: http/tests/inspector/websocket/timeline-websocket-event.html
2957
2958         * English.lproj/localizedStrings.js:
2959         * Modules/websockets/WebSocketChannel.cpp: Add protocol information
2960         (WebCore::WebSocketChannel::connect):
2961         * inspector/InspectorInstrumentation.cpp:
2962         (WebCore):
2963         (WebCore::InspectorInstrumentation::didCreateWebSocketImpl): Add Timeline agent instrumentation for websocket
2964         (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequestImpl): Ditto
2965         (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponseImpl): Ditto
2966         (WebCore::InspectorInstrumentation::didCloseWebSocketImpl): Ditto
2967         * inspector/InspectorInstrumentation.h:
2968         (InspectorInstrumentation):
2969         (WebCore::InspectorInstrumentation::didCreateWebSocket):
2970         (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequest):
2971         (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponse):
2972         (WebCore::InspectorInstrumentation::didCloseWebSocket):
2973         * inspector/InspectorTimelineAgent.cpp:
2974         (TimelineRecordType):
2975         (WebCore):
2976         (WebCore::InspectorTimelineAgent::didCreateWebSocket): Add Timeline record for websocket create
2977         (WebCore::InspectorTimelineAgent::addWebSocketRecord): Add general websocket record
2978         (WebCore::InspectorTimelineAgent::willSendWebSocketHandshakeRequest): Add Timeline record for websocket handshake request send
2979         (WebCore::InspectorTimelineAgent::didReceiveWebSocketHandshakeResponse): Add Timeline record for websocket handshake response receive
2980         (WebCore::InspectorTimelineAgent::didDestroyWebSocket): Add Timeline record for websocket destroy
2981         * inspector/InspectorTimelineAgent.h:
2982         (WebCore):
2983         (InspectorTimelineAgent):
2984         * inspector/TimelineRecordFactory.h:
2985         (TimelineRecordFactory):
2986         (WebCore::TimelineRecordFactory::createWebSocketCreateData):
2987         (WebCore::TimelineRecordFactory::createGenericWebSocketData):
2988         * inspector/front-end/TimelineModel.js: Add Timeline record type for websocket
2989         * inspector/front-end/TimelinePresentationModel.js:
2990         (WebInspector.TimelinePresentationModel._initRecordStyles):
2991         (WebInspector.TimelinePresentationModel.prototype.reset): Add slot to store WebSocket Create record
2992         (WebInspector.TimelinePresentationModel.Record):
2993         (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview): Add PopupContent for websocket record, including url and protocol
2994
2995 2013-02-21  Oswald Buddenhagen  <oswald.buddenhagen@digia.com>
2996
2997         [Qt] Fix pkg-config dependencies of QtWebKit itself
2998
2999         Reviewed by Simon Hausmann.
3000
3001         Don't override QMAKE_PKGCONFIG_REQUIRES needlessly.
3002
3003         * WebCore.pri:
3004
3005 2013-02-21  Nils Barth  <nbarth@google.com>
3006
3007         File upload control doesn't apply CSS vertical padding or border to file name
3008         https://bugs.webkit.org/show_bug.cgi?id=109011
3009
3010         Reviewed by Hajime Morrita.
3011
3012         Test: fast/forms/file/file-vertical-padding-border.html
3013
3014         * rendering/RenderFileUploadControl.cpp:
3015             Add borderTop() and paddingTop() when computing position.
3016         (WebCore::RenderFileUploadControl::paintObject):
3017
3018 2013-02-20  Alexey Proskuryakov  <ap@apple.com>
3019
3020         Stop hardcoding knowledge about blob protocol in ResourceHandle
3021         https://bugs.webkit.org/show_bug.cgi?id=110382
3022
3023         Reviewed by Anders Carlsson.
3024
3025         * platform/network/BlobRegistry.h:
3026         * platform/network/chromium/BlobRegistryProxy.h:
3027         Removed loadResourceSynchronously(). Chromium did not even implement it, and
3028         cross-platform code doesn't need it any more either.
3029
3030         * platform/network/BlobRegistryImpl.cpp:
3031         (WebCore::loadResourceSynchronously): A function to load a blob synchronously,
3032         suitable for being in a ResourceHandle map.
3033         (WebCore::registerBlobResourceHandleConstructor): Register loadResourceSynchronously too.
3034         (WebCore::BlobRegistryImpl::createResourceHandle): Don't make policy decisions here,
3035         it's just a registry. Moved code for checking request method down to BlobResourceHandle.
3036
3037         * platform/network/BlobRegistryImpl.h: Removed BlobRegistryImpl::loadResourceSynchronously().
3038         A registry shouldn't load resources, and it already has enough accessors to implement
3039         this externally.
3040
3041         * platform/network/BlobResourceHandle.h:
3042         * platform/network/BlobResourceHandle.cpp:
3043         (WebCore::BlobResourceHandle::createAsync): Renamed from create(), to make it clear
3044         that it's not OK to call from synchronous loader. Moved method check here.
3045         (WebCore::BlobResourceHandle::loadResourceSynchronously): Moved method check here.
3046         We used to fall through to NSURLConnection based loader when method was not GET,
3047         which of course resulted in an error eventually, but was just wrong.
3048
3049         * platform/network/ResourceHandle.cpp:
3050         (WebCore::builtinResourceHandleSynchronousLoaderMap): Added a map for synchronous case.
3051         (WebCore::ResourceHandle::registerBuiltinSynchronousLoader): Ditto.
3052         (WebCore::ResourceHandle::loadResourceSynchronously): We no longer need to hardcode
3053         knowledge about blobRegistry and blobs here.
3054
3055         * platform/network/ResourceHandle.h: Added registerBuiltinSynchronousLoader().
3056
3057         * platform/network/chromium/ResourceHandle.h: Removed loadResourceSynchronously(),
3058         which was not implemented for Chromium.
3059
3060 2013-02-20  Vsevolod Vlasov  <vsevik@chromium.org>
3061
3062         Web Inspector: TabbedEditorContainer and OpenResourceDialog should show uiSourceCode path and name instead of parsedURL
3063         https://bugs.webkit.org/show_bug.cgi?id=110334
3064
3065         Reviewed by Alexander Pavlov.
3066
3067         Introduced uiSourceCode.name() that returns a name based on uiSourceCode path.
3068         OpenResourceDialog now shows uiSourceCode workspace path as a subtitle.
3069         TabbedEditorContainer now shows uiSourceCode name in the tab header.
3070
3071         * inspector/front-end/FilteredItemSelectionDialog.js:
3072         (WebInspector.OpenResourceDialog.filterOutEmptyURLs):
3073         (WebInspector.OpenResourceDialog):
3074         (WebInspector.OpenResourceDialog.prototype.itemTitleAt):
3075         (WebInspector.OpenResourceDialog.prototype.itemSubtitleAt):
3076         (WebInspector.OpenResourceDialog.prototype.itemKeyAt):
3077         * inspector/front-end/NavigatorView.js:
3078         (WebInspector.NavigatorView.prototype._updateScriptTitle):
3079         * inspector/front-end/TabbedEditorContainer.js:
3080         (WebInspector.TabbedEditorContainer.prototype._titleForFile):
3081         * inspector/front-end/UISourceCode.js:
3082         (WebInspector.UISourceCode.prototype.name):
3083
3084 2013-02-20  Pavel Feldman  <pfeldman@chromium.org>
3085
3086         Web Inspector: debugger buttons are scrolled along with the sidebar content.
3087         https://bugs.webkit.org/show_bug.cgi?id=110434
3088
3089         Reviewed by Vsevolod Vlasov.
3090
3091         * inspector/front-end/scriptsPanel.css:
3092         (div.sidebar-pane-stack#scripts-debug-sidebar-contents, #scripts-sidebar-stack-pane):
3093
3094 2013-02-20  Wei James  <james.wei@intel.com>
3095
3096         ChannelMergerNode may need check for deferred updating of output channels
3097         https://bugs.webkit.org/show_bug.cgi?id=108863
3098
3099         There can in rare cases be a slight delay before the output bus is updated
3100         to the new number of channels because of tryLocks() in the context's
3101         updating system. So need to check the channel number before processing.
3102
3103         Reviewed by Chris Rogers.
3104
3105         * Modules/webaudio/ChannelMergerNode.cpp:
3106         (WebCore::ChannelMergerNode::ChannelMergerNode):
3107         (WebCore::ChannelMergerNode::process):
3108         (WebCore::ChannelMergerNode::checkNumberOfChannelsForInput):
3109         * Modules/webaudio/ChannelMergerNode.h:
3110         (ChannelMergerNode):
3111
3112 2013-02-20  Pan Deng  <pan.deng@intel.com>
3113
3114         [Web Inspector] Fix Sort by Initiator functionality of Network Panel.
3115         https://bugs.webkit.org/show_bug.cgi?id=109135.
3116
3117         Reviewed by Pavel Feldman.
3118
3119         A refactor for request initiator types, and the sort by Initiator functionality 
3120         was changed to sort by url and line number that displayed in initiator cell.
3121
3122         No new tests.
3123
3124         * inspector/front-end/NetworkPanel.js:
3125         (WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell): save initiator displayedURL and displayedLineNumber
3126         (WebInspector.NetworkDataGridNode.InitiatorComparator):
3127         * inspector/front-end/NetworkRequest.js:
3128
3129 2013-02-20  Eric Seidel  <eric@webkit.org>
3130
3131         WebVTTParser copies character buffer more often than necessary
3132         https://bugs.webkit.org/show_bug.cgi?id=103319
3133
3134         Reviewed by Eric Carlson.
3135
3136         Previously this codepath was creating a String just to parse the timestamp
3137         and then if the timestamp was valid, was creating a second string.
3138         I've fixed it to only create one string and use it in both places.
3139         I also fixed this codepath to use 8bit strings when possible, per the FIXME.
3140
3141         * html/track/WebVTTParser.cpp:
3142         (WebCore::WebVTTParser::constructTreeFromToken):
3143
3144 2013-02-20  Mike West  <mkwst@chromium.org>
3145
3146         Mouseup event does not fire on Scroll Bar
3147         https://bugs.webkit.org/show_bug.cgi?id=25811
3148
3149         Reviewed by Tony Chang.
3150
3151         Currently, clicking on a scrollbar fires a mousedown event, but not a
3152         mouseup event. This causes problems for code like jQuery UI's
3153         draggable[1], as the drag starts, but is never cancelled. Other use
3154         cases are noted in the slightly old Chromium bug[2].
3155
3156         If a mouseup event is received after a mousedown event on a scrollbar,
3157         this patch dispatches a mouseup event on the same node the mousedown
3158         event dispatched on. This matches Gecko's behavior.
3159
3160         [1]: http://bugs.jqueryui.com/ticket/6925
3161         [2]: http://crbug.com/14204
3162
3163         Tests: fast/scrolling/scrollbar-mousedown-mouseup.html
3164                fast/scrolling/scrollbar-mousedown-move-mouseup.html
3165
3166         * page/EventHandler.cpp:
3167         (WebCore::EventHandler::handleMouseReleaseEvent):
3168             If a mouseup event follow a mousedown event on a scrollbar,
3169             dispatch an event on the same node from which the mousedown event
3170             was triggered.
3171
3172 2013-02-20  Takashi Sakamoto  <tasak@google.com>
3173
3174         [Refactoring] Make m_state an on-stack object
3175         https://bugs.webkit.org/show_bug.cgi?id=109909
3176
3177         Reviewed by Antti Koivisto.
3178
3179         Mode m_state, an instance of StyleResolver::State, an on-stack object.
3180         The state is only required in styleForElement, styleForKeyframe and
3181         so on. No need to keep the state outside of those methods.
3182
3183         No new tests, because just refactoring.
3184
3185         * css/BasicShapeFunctions.cpp:
3186         (WebCore::convertToLength):
3187         (WebCore::basicShapeForValue):
3188         * css/BasicShapeFunctions.h:
3189         (WebCore):
3190         Replaced StyleResolver* with StyleResolver::State&.
3191         * css/CSSGradientValue.cpp:
3192         (WebCore::CSSGradientValue::gradientWithStylesResolved):
3193         * css/CSSGradientValue.h:
3194         (CSSGradientValue):
3195         Replaced StyleResolver* with StyleResolver::State&.
3196         * css/CSSToStyleMap.cpp:
3197         (WebCore::CSSToStyleMap::style):
3198         (WebCore::CSSToStyleMap::rootElementStyle):
3199         (WebCore::CSSToStyleMap::useSVGZoomRules):
3200         (WebCore::CSSToStyleMap::styleImage):
3201         * css/CSSToStyleMap.h:
3202         (WebCore):
3203         (WebCore::CSSToStyleMap::CSSToStyleMap):
3204         (CSSToStyleMap):
3205         Replaced StyleResolver* with StyleResolver::State&.
3206         * css/SVGCSSStyleSelector.cpp:
3207         (WebCore::StyleResolver::applySVGProperty):
3208         Replaced m_state with state which is given as an argument of
3209         applySVGProperty.
3210         * css/StyleBuilder.cpp:
3211         (WebCore::ApplyPropertyExpanding::applyInheritValue):
3212         (WebCore::ApplyPropertyExpanding::applyInitialValue):
3213         (WebCore::ApplyPropertyExpanding::applyValue):
3214         (WebCore::ApplyPropertyDefaultBase::applyInheritValue):
3215         (WebCore::ApplyPropertyDefaultBase::applyInitialValue):
3216         (WebCore::ApplyPropertyDefaultBase::applyValue):
3217         (WebCore::ApplyPropertyDefault::applyValue):
3218         (WebCore::ApplyPropertyNumber::applyValue):
3219         (WebCore::ApplyPropertyStyleImage::applyValue):
3220         (WebCore::ApplyPropertyAuto::applyInheritValue):
3221         (WebCore::ApplyPropertyAuto::applyInitialValue):
3222         (WebCore::ApplyPropertyAuto::applyValue):
3223         (WebCore::ApplyPropertyClip::convertToLength):
3224         (WebCore::ApplyPropertyClip::applyInheritValue):
3225         (WebCore::ApplyPropertyClip::applyInitialValue):
3226         (WebCore::ApplyPropertyClip::applyValue):
3227         (WebCore::ApplyPropertyColor::applyInheritValue):
3228         (WebCore::ApplyPropertyColor::applyInitialValue):
3229         (WebCore::ApplyPropertyColor::applyValue):
3230         (WebCore::ApplyPropertyColor::applyColorValue):
3231         (WebCore::ApplyPropertyDirection::applyValue):
3232         (WebCore::ApplyPropertyLength::applyValue):
3233         (WebCore::ApplyPropertyString::applyValue):
3234         (WebCore::ApplyPropertyBorderRadius::applyValue):
3235         (WebCore::ApplyPropertyFillLayer::applyInheritValue):
3236         (WebCore::ApplyPropertyFillLayer::applyInitialValue):
3237         (WebCore::ApplyPropertyFillLayer::applyValue):
3238         (WebCore::ApplyPropertyComputeLength::applyValue):
3239         (WebCore::ApplyPropertyFont::applyInheritValue):
3240         (WebCore::ApplyPropertyFont::applyInitialValue):
3241         (WebCore::ApplyPropertyFont::applyValue):
3242         (WebCore::ApplyPropertyFontSize::applyInheritValue):
3243         (WebCore::ApplyPropertyFontSize::applyInitialValue):
3244         (WebCore::ApplyPropertyFontSize::applyValue):
3245         (WebCore::ApplyPropertyFontWeight::applyValue):
3246         (WebCore::ApplyPropertyFontVariantLigatures::applyInheritValue):
3247         (WebCore::ApplyPropertyFontVariantLigatures::applyInitialValue):
3248         (WebCore::ApplyPropertyFontVariantLigatures::applyValue):
3249         (WebCore::ApplyPropertyBorderImage::applyValue):
3250         (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue):
3251         (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue):
3252         (WebCore::ApplyPropertyBorderImageModifier::applyValue):
3253         (WebCore::ApplyPropertyBorderImageSource::applyValue):
3254         (WebCore::ApplyPropertyCounter::emptyFunction):
3255         (WebCore::ApplyPropertyCounter::applyInheritValue):
3256         (WebCore::ApplyPropertyCounter::applyValue):
3257         (WebCore::ApplyPropertyCursor::applyInheritValue):
3258         (WebCore::ApplyPropertyCursor::applyInitialValue):
3259         (WebCore::ApplyPropertyCursor::applyValue):
3260         (WebCore::ApplyPropertyTextAlign::applyValue):
3261         (WebCore::ApplyPropertyTextDecoration::applyValue):
3262         (WebCore::ApplyPropertyLineHeight::applyValue):
3263         (WebCore::ApplyPropertyPageSize::applyInheritValue):
3264         (WebCore::ApplyPropertyPageSize::applyInitialValue):
3265         (WebCore::ApplyPropertyPageSize::applyValue):
3266         (WebCore::ApplyPropertyTextEmphasisStyle::applyInheritValue):
3267         (WebCore::ApplyPropertyTextEmphasisStyle::applyInitialValue):
3268         (WebCore::ApplyPropertyTextEmphasisStyle::applyValue):
3269         (WebCore::ApplyPropertyAnimation::map):
3270         (WebCore::ApplyPropertyAnimation::applyInheritValue):
3271         (WebCore::ApplyPropertyAnimation::applyInitialValue):
3272         (WebCore::ApplyPropertyAnimation::applyValue):
3273         (WebCore::ApplyPropertyOutlineStyle::applyInheritValue):
3274         (WebCore::ApplyPropertyOutlineStyle::applyInitialValue):
3275         (WebCore::ApplyPropertyOutlineStyle::applyValue):
3276         (WebCore::ApplyPropertyResize::applyValue):
3277         (WebCore::ApplyPropertyVerticalAlign::applyValue):
3278         (WebCore::ApplyPropertyAspectRatio::applyInheritValue):
3279         (WebCore::ApplyPropertyAspectRatio::applyInitialValue):
3280         (WebCore::ApplyPropertyAspectRatio::applyValue):
3281         (WebCore::ApplyPropertyZoom::resetEffectiveZoom):
3282         (WebCore::ApplyPropertyZoom::applyInheritValue):
3283         (WebCore::ApplyPropertyZoom::applyInitialValue):
3284         (WebCore::ApplyPropertyZoom::applyValue):
3285         (WebCore::ApplyPropertyDisplay::isValidDisplayValue):
3286         (WebCore::ApplyPropertyDisplay::applyInheritValue):
3287         (WebCore::ApplyPropertyDisplay::applyInitialValue):
3288         (WebCore::ApplyPropertyDisplay::applyValue):
3289         (WebCore::ApplyPropertyClipPath::applyValue):
3290         (WebCore::ApplyPropertyExclusionShape::applyValue):
3291         (WebCore::ApplyPropertyImageResolution::applyInheritValue):
3292         (WebCore::ApplyPropertyImageResolution::applyInitialValue):
3293         (WebCore::ApplyPropertyImageResolution::applyValue):
3294         * css/StyleBuilder.h:
3295         (WebCore):
3296         (PropertyHandler):
3297         (WebCore::PropertyHandler::applyInheritValue):
3298         (WebCore::PropertyHandler::applyInitialValue):
3299         (WebCore::PropertyHandler::applyValue):
3300         Replaced StyleResolver* with StyleResolver::State&.
3301         * css/StyleResolver.cpp:
3302         (WebCore):
3303         (WebCore::StyleResolver::StyleResolver):
3304         Removed m_styleMap. Now m_styleMap is an on-stack object.
3305         (WebCore::StyleResolver::collectMatchingRules):
3306         (WebCore::StyleResolver::collectMatchingRulesForRegion):
3307         (WebCore::StyleResolver::sortAndTransferMatchedRules):
3308         (WebCore::StyleResolver::matchScopedAuthorRules):
3309         (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
3310         (WebCore::StyleResolver::matchHostRules):
3311         (WebCore::StyleResolver::matchAuthorRules):
3312         (WebCore::StyleResolver::matchUserRules):
3313         (WebCore::StyleResolver::matchUARules):
3314         (WebCore::StyleResolver::collectMatchingRulesForList):
3315         (WebCore::StyleResolver::sortMatchedRules):
3316         (WebCore::StyleResolver::matchAllRules):
3317         (WebCore::StyleResolver::initElement):
3318         (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
3319         (WebCore::StyleResolver::canShareStyleWithControl):
3320         (WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
3321         (WebCore::StyleResolver::canShareStyleWithElement):
3322         (WebCore::StyleResolver::findSiblingForStyleSharing):
3323         (WebCore::StyleResolver::locateSharedStyle):
3324         (WebCore::StyleResolver::styleForElement):
3325         (WebCore::StyleResolver::styleForKeyframe):
3326         (WebCore::StyleResolver::keyframeStylesForAnimation):
3327         (WebCore::StyleResolver::pseudoStyleForElement):
3328         (WebCore::StyleResolver::styleForPage):
3329         (WebCore::StyleResolver::defaultStyleForElement):
3330         (WebCore::StyleResolver::adjustRenderStyle):
3331         (WebCore::StyleResolver::updateFont):
3332         (WebCore::StyleResolver::pseudoStyleRulesForElement):
3333         (WebCore::StyleResolver::ruleMatches):
3334         (WebCore::StyleResolver::checkRegionSelector):
3335         (WebCore::StyleResolver::applyProperties):
3336         (WebCore::StyleResolver::applyMatchedProperties):
3337         (WebCore::StyleResolver::isLeftPage):
3338         (WebCore::StyleResolver::applyPropertyWithNullCheck):
3339         (WebCore::StyleResolver::applyFontPropertyToStyle):
3340         (WebCore::StyleResolver::resolveVariables):
3341         (WebCore::StyleResolver::applyProperty):
3342         (WebCore::StyleResolver::styleImage):
3343         (WebCore::StyleResolver::cachedOrPendingFromValue):
3344         (WebCore::StyleResolver::generatedOrPendingFromValue):
3345         (WebCore::StyleResolver::setOrPendingFromValue):
3346         (WebCore::StyleResolver::cursorOrPendingFromValue):
3347         (WebCore::StyleResolver::checkForTextSizeAdjust):
3348         (WebCore::StyleResolver::checkForZoomChange):
3349         (WebCore::StyleResolver::checkForGenericFamilyChange):
3350         (WebCore::StyleResolver::initializeFontStyle):
3351         (WebCore::StyleResolver::setFontSize):
3352         (WebCore::StyleResolver::colorFromPrimitiveValue):
3353         (WebCore::StyleResolver::loadPendingSVGDocuments):
3354         (WebCore::StyleResolver::styleShader):
3355         (WebCore::StyleResolver::cachedOrPendingStyleShaderFromValue):
3356         (WebCore::StyleResolver::loadPendingShaders):
3357         (WebCore::StyleResolver::parseCustomFilterTransformParameter):
3358         (WebCore::StyleResolver::parseCustomFilterParameter):
3359         (WebCore::StyleResolver::parseCustomFilterParameterList):
3360         (WebCore::StyleResolver::createCustomFilterOperationWithInlineSyntax):
3361         (WebCore::StyleResolver::createCustomFilterOperation):
3362         (WebCore::StyleResolver::createFilterOperations):
3363         (WebCore::StyleResolver::loadPendingImage):
3364         (WebCore::StyleResolver::loadPendingImages):
3365         (WebCore::StyleResolver::loadPendingResources):
3366         Just replaced m_state with state and added one more parameter to
3367         provide the state.
3368         (WebCore::StyleResolver::reportMemoryUsage):
3369         Since m_state was removed, removed a code for reporting m_state's
3370         memory usage.
3371         * css/StyleResolver.h:
3372         (StyleResolver):
3373         (WebCore::StyleResolver::isRightPage):
3374         (WebCore::StyleResolver::State::State):
3375         (WebCore::StyleResolver::State::document):
3376         Since State::m_element is not always available (sometimes, 0),
3377         added m_document to State and modified to return the m_document.
3378         (WebCore::StyleResolver::State::useSVGZoomRules):
3379         Moved StyleResolver to State.
3380         (State):
3381         * html/canvas/CanvasRenderingContext2D.cpp:
3382         (WebCore::CanvasRenderingContext2D::setFont):
3383         Moved the code, updating a style by using a given StylePropertySet,
3384         to StyleResolver.
3385
3386 2013-02-20  Ojan Vafai  <ojan@chromium.org>
3387
3388         AutoTableLayout applies min-width redundantly with RenderTable
3389         https://bugs.webkit.org/show_bug.cgi?id=110426
3390
3391         Reviewed by Emil A Eklund.
3392
3393         * rendering/AutoTableLayout.cpp:
3394         (WebCore::AutoTableLayout::computePreferredLogicalWidths):
3395         This code used to do something, but has since been superceded by
3396         code in RenderTable::computePreferredLogicalWidths.
3397
3398 2013-02-20  Dirk Schulze  <krit@webkit.org>
3399
3400         Enable CANVAS_PATH flag
3401         https://bugs.webkit.org/show_bug.cgi?id=108508
3402
3403         Uneviewed attempt to fix Qt minimal build.
3404
3405         * html/canvas/DOMPath.h:
3406         (WebCore::DOMPath::DOMPath):
3407
3408 \2013-02-20  Mark Lam  <mark.lam@apple.com>
3409
3410         Rename DatabaseBackendAsync to DatabaseBackend.
3411         https://bugs.webkit.org/show_bug.cgi?id=110422.
3412
3413         Reviewed by Geoffrey Garen.
3414
3415         This is a purely cosmetic change to make the naming consistent with
3416         the front-end Database.
3417
3418         No new tests.
3419
3420         * CMakeLists.txt:
3421         * GNUmakefile.list.am:
3422         * Modules/webdatabase/ChangeVersionWrapper.cpp:
3423         (WebCore::ChangeVersionWrapper::performPreflight):
3424         (WebCore::ChangeVersionWrapper::performPostflight):
3425         * Modules/webdatabase/Database.cpp:
3426         (WebCore::Database::Database):
3427         (WebCore::Database::from):
3428         (WebCore::Database::backend):
3429         * Modules/webdatabase/Database.h:
3430         * Modules/webdatabase/DatabaseBackend.cpp: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackendAsync.cpp.
3431         (WebCore::DatabaseBackend::DatabaseBackend):
3432         (WebCore::DatabaseBackend::openAndVerifyVersion):
3433         (WebCore::DatabaseBackend::performOpenAndVerify):
3434         (WebCore::DatabaseBackend::close):
3435         (WebCore::DatabaseBackend::runTransaction):
3436         (WebCore::DatabaseBackend::inProgressTransactionCompleted):
3437         (WebCore::DatabaseBackend::scheduleTransaction):
3438         (WebCore::DatabaseBackend::scheduleTransactionStep):
3439         (WebCore::DatabaseBackend::transactionClient):
3440         (WebCore::DatabaseBackend::transactionCoordinator):
3441         * Modules/webdatabase/DatabaseBackend.h: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackendAsync.h.
3442         * Modules/webdatabase/DatabaseBackendAsync.cpp: Removed.
3443         * Modules/webdatabase/DatabaseBackendAsync.h: Removed.
3444         * Modules/webdatabase/DatabaseBackendBase.cpp:
3445         (WebCore::DatabaseBackendBase::~DatabaseBackendBase):
3446         * Modules/webdatabase/DatabaseManager.cpp:
3447         * Modules/webdatabase/DatabaseServer.cpp:
3448         * Modules/webdatabase/DatabaseTask.cpp:
3449         (WebCore::DatabaseTask::DatabaseTask):
3450         (WebCore::DatabaseBackend::DatabaseOpenTask::DatabaseOpenTask):
3451         (WebCore::DatabaseBackend::DatabaseOpenTask::doPerformTask):
3452         (WebCore::DatabaseBackend::DatabaseOpenTask::debugTaskName):
3453         (WebCore::DatabaseBackend::DatabaseCloseTask::DatabaseCloseTask):
3454         (WebCore::DatabaseBackend::DatabaseCloseTask::doPerformTask):
3455         (WebCore::DatabaseBackend::DatabaseCloseTask::debugTaskName):
3456         (WebCore::DatabaseBackend::DatabaseTransactionTask::DatabaseTransactionTask):
3457         (WebCore::DatabaseBackend::DatabaseTransactionTask::~DatabaseTransactionTask):
3458         (WebCore::DatabaseBackend::DatabaseTransactionTask::doPerformTask):
3459         (WebCore::DatabaseBackend::DatabaseTransactionTask::debugTaskName):
3460         (WebCore::DatabaseBackend::DatabaseTableNamesTask::DatabaseTableNamesTask):
3461         (WebCore::DatabaseBackend::DatabaseTableNamesTask::doPerformTask):
3462         (WebCore::DatabaseBackend::DatabaseTableNamesTask::debugTaskName):
3463         * Modules/webdatabase/DatabaseTask.h:
3464         (WebCore::DatabaseTask::database):
3465         (DatabaseTask):
3466         (WebCore::DatabaseBackend::DatabaseOpenTask::create):
3467         (DatabaseBackend::DatabaseOpenTask):
3468         (WebCore::DatabaseBackend::DatabaseCloseTask::create):
3469         (DatabaseBackend::DatabaseCloseTask):
3470         (WebCore::DatabaseBackend::DatabaseTableNamesTask::create):
3471         (DatabaseBackend::DatabaseTableNamesTask):
3472         * Modules/webdatabase/DatabaseThread.cpp:
3473         (WebCore::DatabaseThread::recordDatabaseOpen):
3474         (WebCore::DatabaseThread::recordDatabaseClosed):
3475         (WebCore::SameDatabasePredicate::SameDatabasePredicate):
3476         (SameDatabasePredicate):
3477         (WebCore::DatabaseThread::unscheduleDatabaseTasks):
3478         * Modules/webdatabase/DatabaseThread.h:
3479         * Modules/webdatabase/SQLStatementBackend.cpp:
3480         (WebCore::SQLStatementBackend::execute):
3481         (WebCore::SQLStatementBackend::setDatabaseDeletedError):
3482         (WebCore::SQLStatementBackend::setVersionMismatchedError):
3483         (WebCore::SQLStatementBackend::setFailureDueToQuota):
3484         * Modules/webdatabase/SQLStatementBackend.h:
3485         * Modules/webdatabase/SQLTransactionBackend.cpp:
3486         (WebCore::SQLTransactionBackend::create):
3487         (WebCore::SQLTransactionBackend::SQLTransactionBackend):
3488         * Modules/webdatabase/SQLTransactionBackend.h:
3489         (WebCore::SQLTransactionBackend::database):
3490         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
3491         (WebCore::getDatabaseIdentifier):
3492         * Target.pri:
3493         * WebCore.gypi:
3494         * WebCore.vcproj/WebCore.vcproj:
3495         * WebCore.vcxproj/WebCore.vcxproj:
3496         * WebCore.vcxproj/WebCore.vcxproj.filters:
3497         * WebCore.xcodeproj/project.pbxproj:
3498
3499 2013-02-20  David Kilzer  <ddkilzer@apple.com>
3500
3501         Upstream SharedTimerIOS.mm
3502         <http://webkit.org/b/110161>
3503
3504         Reviewed by Benjamin Poulain.
3505
3506         * Configurations/WebCore.xcconfig:
3507         (EXCLUDED_SOURCE_FILE_NAMES_iphoneos): Add SharedTimerMac.mm.
3508         * WebCore.xcodeproj/project.pbxproj: Add SharedTimerIOS.mm.
3509         * platform/ios/SharedTimerIOS.mm: Add.
3510         (WebCore):
3511         (-[WebCoreResumeNotifierIOS init]):
3512         (-[WebCoreResumeNotifierIOS dealloc]):
3513         (-[WebCoreResumeNotifierIOS didWake]):
3514         (WebCore::setSharedTimerFiredFunction):
3515         (WebCore::timerFired):
3516         (WebCore::setSharedTimerFireInterval):
3517         (WebCore::stopSharedTimer):
3518
3519 2013-02-20  Ojan Vafai  <ojan@chromium.org>
3520
3521         Speculative fix for EFL and Windows compilers not realizing
3522         that all possible cases have a return value from this switch.
3523
3524         * rendering/RenderBox.cpp:
3525         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
3526
3527 2013-02-20  David Hyatt  <hyatt@apple.com>
3528
3529         [New Multicolumn] Fix overflow computation for column blocks.
3530         https://bugs.webkit.org/show_bug.cgi?id=110392.
3531
3532         Reviewed by Simon Fraser.
3533
3534         * rendering/RenderBox.cpp:
3535         (WebCore::RenderBox::addOverflowFromChild):
3536         Exclude in-flow RenderFlowThreads from overflow propagation.
3537
3538         * rendering/RenderMultiColumnSet.h:
3539         * rendering/RenderRegion.h:
3540         (WebCore::RenderRegion::shouldHaveAutoLogicalHeight):
3541          * rendering/RenderRegionSet.h:
3542         (RenderRegionSet):
3543         Override shouldHaveAutoLogicalHeight to always be false
3544         for region sets and for columns. Eventually we're going to try
3545         to leverage this code to do column balancing, and that's why
3546         RenderMultiColumnSet has a unique override.
3547
3548 2013-02-20  Brandon Jones  <bajones@google.com>
3549  
3550         Printing WebGL canvases in Chrome uses stale data after first print
3551         https://bugs.webkit.org/show_bug.cgi?id=110003
3552  
3553         Reviewed by Kenneth Russell.
3554  
3555         Unable to validate printed content automatically. No regression in existing WebGL tests.
3556  
3557          * html/canvas/WebGLRenderingContext.cpp:
3558          (WebCore):
3559          (WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
3560
3561 2013-02-20  Christian Biesinger  <cbiesinger@chromium.org>
3562
3563         Incorrect rendering for flex boxes with percentage height in a table cell
3564         https://bugs.webkit.org/show_bug.cgi?id=110389
3565
3566         Reviewed by Tony Chang.
3567
3568         Tests: css3/flexbox/flex-percentage-height-in-table-standards-mode.html
3569                css3/flexbox/flex-percentage-height-in-table.html
3570
3571         * rendering/RenderFlexibleBox.cpp:
3572         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
3573         Always update the logical height of the flex box, not just when it is
3574         auto. If necessary, the later updateLogicalHeight() call will adjust
3575         it.
3576
3577 2013-02-20  Philip Rogers  <pdr@google.com>
3578
3579         Account for transform in SVG background images
3580         https://bugs.webkit.org/show_bug.cgi?id=110295
3581
3582         Reviewed by Dirk Schulze.
3583
3584         Tiled SVG background images are rendererd by drawing the SVG content into a temporary
3585         image buffer, then stamping out a tiled pattern using this buffer. Previously the
3586         image buffer did not account for CSS transforms which could result in pixelated backgrounds.
3587
3588         This patch takes advantage of the context's transform when sizing the temporary tiling
3589         image buffer. Because the context's transform also includes scale, this patch simplifies
3590         the SVG image code to no longer track scale.
3591
3592         Test: svg/as-background-image/svg-transformed-background.html
3593
3594         * loader/cache/CachedImage.cpp:
3595         (WebCore):
3596         (WebCore::CachedImage::imageForRenderer):
3597
3598             CachedImage::lookupOrCreateImageForRenderer no longer creates images so it has been
3599             refactored into just "imageForRenderer". Previously there were two versions of
3600             lookupOrCreateImageForRenderer; these have been folded into imageForRenderer.
3601
3602         * loader/cache/CachedImage.h:
3603         * svg/graphics/SVGImage.cpp:
3604         (WebCore::SVGImage::drawPatternForContainer):
3605
3606             To create the temporary tiling image buffer, the final size in screen coordinates is
3607             needed. This is now computed using the current context's CTM. Because the CTM
3608             already includes the page scale, all page scale tracking can be removed.
3609
3610             The adjustments to srcRect and the pattern transform are the same as before, just
3611             refactored to use imageBufferScale which has x and y components.
3612
3613         * svg/graphics/SVGImage.h:
3614         * svg/graphics/SVGImageCache.cpp:
3615         (WebCore::SVGImageCache::setContainerSizeForRenderer):
3616
3617             Because the page scale needed to be cached between calls to
3618             setContainerSizeForRenderer, this function was written to modify an existing cache
3619             entry. Because the page scale no longer needs to be tracked, this code has been
3620             simplified to re-write any existing cache entry.
3621
3622         (WebCore::SVGImageCache::imageSizeForRenderer):
3623
3624             This function has been simplified by calling SVGImageForContainer::size() instead
3625             of computing this value manually. The value returned remains the same, containing
3626             the container size multiplied by zoom.
3627
3628         (WebCore::SVGImageCache::imageForRenderer):
3629
3630             Previously we set the page scale on every call to imageForRenderer. Because page scale
3631             no longer needs to be tracked, this function has been simplified to simply return
3632             the cached SVGImageForContainer.
3633
3634         * svg/graphics/SVGImageForContainer.cpp:
3635         (WebCore::SVGImageForContainer::drawPattern):
3636         * svg/graphics/SVGImageForContainer.h:
3637         (WebCore::SVGImageForContainer::create):
3638         (WebCore::SVGImageForContainer::SVGImageForContainer):
3639         (SVGImageForContainer):
3640
3641 2013-02-20  Jer Noble  <jer.noble@apple.com>
3642
3643         Crash in com.apple.WebKit2.WebProcessService at com.apple.avfoundation: __73-[AVAssetResourceLoader _attemptDelegateHandlingOfRequestWithDictionary:]_block_invoke + 51
3644         https://bugs.webkit.org/show_bug.cgi?id=110385
3645
3646         Reviewed by Eric Carlson.
3647
3648         Ensure AVFoundation does not attempt to message a dead object by explicitly disassociating
3649         the AVAssetResourceLoaderDelegate on MediaPlayerPrivateAVFoundationObjC destruction.
3650
3651         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
3652         (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
3653
3654 2013-02-20  Ojan Vafai  <ojan@chromium.org>
3655
3656         Positioned, replaced elements with intrinsic width keywords compute the wrong width
3657         https://bugs.webkit.org/show_bug.cgi?id=110393
3658
3659         Reviewed by Emil A Eklund.
3660
3661         Test: fast/css-intrinsic-dimensions/intrinsic-sized-replaced-absolutes.html
3662
3663         * rendering/RenderBox.cpp:
3664         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
3665         Add the intrinsic size keywords to the switch. Confusingly, we have to
3666         subtract the border and padding since the callers expect the content width.
3667
3668         * rendering/RenderReplaced.cpp:
3669         (WebCore::RenderReplaced::computeReplacedLogicalWidth):
3670         Don't do the intrinsic ratio calculation if the width is an
3671         intrinsic width keyword, as per, http://dev.w3.org/csswg/css3-sizing/#replaced-intrinsic.
3672
3673         (WebCore::RenderReplaced::computeIntrinsicLogicalWidths):
3674         (WebCore::RenderReplaced::computePreferredLogicalWidths):
3675         The old code was trying to apply the intrinsic ratio calculation to
3676         the intrinsic width, which is wrong per spec.
3677
3678 2013-02-20  Alec Flett  <alecflett@chromium.org>
3679
3680         LevelDB: Remove excess vector copy
3681         https://bugs.webkit.org/show_bug.cgi?id=110399
3682
3683         Reviewed by Tony Chang.
3684
3685         Remove an extra copy introduced by the makeVector function.
3686
3687         No new tests, this is covered by existing tests.
3688
3689         * platform/leveldb/LevelDBDatabase.cpp:
3690         (WebCore::LevelDBDatabase::safeGet):
3691
3692 2013-02-20  Simon Fraser  <simon.fraser@apple.com>
3693
3694         Zoomed, slow-scrolling pages keep recreating tiles when scrolled
3695         https://bugs.webkit.org/show_bug.cgi?id=110379
3696
3697         Reviewed by Tim Horton.
3698
3699         On slow-scrolling pages the TileCache makes the tiles the size of
3700         the visible rect to minimize per-tile painting overhead. If the size
3701         of that rect changes, the TileCache re-creates all the tiles.
3702         
3703         This was a problem whem zoomed, because mapping the visible rect
3704         through the scale transform and then rounding it would cause the
3705         size to keep changing, causing lots of tile re-creation.
3706         
3707         Fix by carrying the visibleRect around as a FloatRect, and doing
3708         the same for the exposedRect. We then only expand to integers
3709         when computing the tile size. This also fixes an issue where we could
3710         sometimes make extra tiles because of fractional bits of tiles at the edges,
3711         as shown by the test result change.
3712
3713         * platform/graphics/TiledBacking.h:
3714         * platform/graphics/ca/GraphicsLayerCA.cpp:
3715         (WebCore::GraphicsLayerCA::updateVisibleRect):
3716         * platform/graphics/ca/mac/TileCache.h:
3717         * platform/graphics/ca/mac/TileCache.mm:
3718         (WebCore::TileCache::setVisibleRect):
3719         (WebCore::TileCache::setExposedRect):
3720         (WebCore::TileCache::prepopulateRect):
3721         (WebCore::TileCache::computeTileCoverageRect):
3722         (WebCore::TileCache::tileSizeForCoverageRect):
3723         (WebCore::TileCache::blankPixelCountForTiles):
3724         (WebCore::TileCache::revalidateTiles):
3725         (WebCore::TileCache::ensureTilesForRect):
3726         * platform/graphics/ca/mac/WebTileLayer.mm:
3727         (-[WebTileLayer logFilledFreshTile]):
3728
3729 2013-02-20  Julien Chaffraix  <jchaffraix@webkit.org>
3730
3731         [CSS Grid Layout] Implement the auto-placement algorithm without grid growth
3732         https://bugs.webkit.org/show_bug.cgi?id=110277
3733
3734         Reviewed by Tony Chang.
3735
3736         Tests: fast/css-grid-layout/grid-item-addition-auto-placement-update.html
3737                fast/css-grid-layout/grid-item-removal-auto-placement-update.html
3738                fast/css-grid-layout/grid-auto-flow-resolution.html (extended to cover more cases)
3739
3740         This change implements most of the auto-placement algorithm per
3741         http://dev.w3.org/csswg/css3-grid-layout/#auto-placement-algo
3742
3743         To limit the size of the code change, it doesn't implement growing the grid if there
3744         are no empty grid areas. If we don't find any empty grid areas, we just insert in the first
3745         one, like what grid-auto-flow: none would do (which explains the test failures).
3746
3747         * rendering/RenderGrid.cpp:
3748         (WebCore::RenderGrid::GridIterator::nextEmptyGridArea):
3749         Added this function to return the GridCoordinate of the next empty grid area along
3750         the iterator's direction.
3751
3752         (WebCore::RenderGrid::placeItemsOnGrid):
3753         Split this function into the different steps below. For efficiency, collect the auto vs specified
3754         major axis grid items in different Vectors.
3755
3756         (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
3757         Added this function that implements part of step 1 of the algorithm (the grid items without
3758         auto row / column are already handled in placeItemsOnGrid).
3759
3760         (WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid):
3761         Added this function that iterates over the auto grid items and call placeAutoMajorAxisItemOnGrid.
3762
3763         (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
3764         Added this method to handle the step 4 of the algorithm. Based on the minor axis's position,
3765         it either walks along the major axis once or several times until it finds an empty grid area
3766         for the grid item.
3767
3768         (WebCore::RenderGrid::autoPlacementMajorAxisPositionForChild):
3769         (WebCore::RenderGrid::autoPlacementMinorAxisPositionForChild):
3770         (WebCore::RenderGrid::autoPlacementMajorAxisDirection):
3771         (WebCore::RenderGrid::autoPlacementMinorAxisDirection):
3772         Added these helper functions that return minor / major axis positions & direction.
3773
3774         * rendering/RenderGrid.h:
3775         Added the previous new RenderGrid functions.
3776
3777 2013-02-20  Vincent Scheib  <scheib@chromium.org>
3778
3779         Accept 'allowfullscreen' in addition to 'webkitallowfullscreen'.
3780         https://bugs.webkit.org/show_bug.cgi?id=110374
3781
3782         Reviewed by Adam Barth.
3783
3784         The fullscreen API also includes a new HTML attribute for iframes
3785         which permits its use. That attribute, 'allowfullcreen' is now
3786         included in the HTML specification [1] and is stable enough
3787         to remove the webkit prefix.
3788
3789         [1] http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#attr-iframe-allowfullscreen
3790
3791         Tests: fullscreen/full-screen-enabled-prefixed.html
3792                fullscreen/full-screen-iframe-allowed-prefixed.html
3793                fullscreen/full-screen-iframe-with-mixed-allow-webkitallow-attribute.html
3794
3795         * dom/Document.cpp:
3796         (WebCore::isAttributeOnAllOwners):
3797         (WebCore::Document::fullScreenIsAllowedForElement):
3798         (WebCore::Document::webkitFullscreenEnabled):
3799         * html/HTMLAttributeNames.in:
3800
3801 2013-02-20  Roger Fong  <roger_fong@apple.com>
3802
3803         Unreviewed. Remove references to SAFARI_THEME from Windows Solution.
3804         <rdar://problem/13258710>
3805
3806         * config.h:
3807         * page/Settings.cpp:
3808         * page/Settings.h:
3809         * platform/win/ScrollbarThemeWin.cpp:
3810         * rendering/RenderThemeWin.cpp:
3811
3812 2013-02-20  Roger Fong  <roger_fong@apple.com>
3813
3814         Get VS2010 Solution B&I ready.
3815         <rdar://problem/1322988>
3816
3817         Rubberstamped by Timothy Horton.
3818
3819         Add Production configuration. 
3820         Add a WebCore submit solution with a DebugSuffix configuration. 
3821         Modify WebCore.make as necessary.
3822         
3823         * DerivedSources.make:
3824         * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj:
3825         * WebCore.vcxproj/QTMovieWin/QTMovieWinCommon.props:
3826         * WebCore.vcxproj/QTMovieWin/QTMovieWinProduction.props: Added.
3827         * WebCore.vcxproj/QTMovieWin/QTMovieWinRelease.props:
3828         * WebCore.vcxproj/WebCore.make: Added.
3829         * WebCore.vcxproj/WebCore.sln: Removed.
3830         * WebCore.vcxproj/WebCore.submit.sln: Copied from Source/WebCore/WebCore.vcxproj/WebCore.sln.
3831         * WebCore.vcxproj/WebCore.vcxproj:
3832         * WebCore.vcxproj/WebCoreGenerated.vcxproj:
3833         * WebCore.vcxproj/WebCoreGeneratedProduction.props: Added.
3834         * WebCore.vcxproj/WebCoreGeneratedRelease.props:
3835         * WebCore.vcxproj/WebCoreProduction.props: Added.
3836         * WebCore.vcxproj/WebCoreRelease.props:
3837         * WebCore.vcxproj/WebCoreTestSupport.vcxproj:
3838
3839 2013-02-20  Adam Klein  <adamk@chromium.org>
3840
3841         [v8] Fix an erroneous WrapperGrouper call in preparation for refactoring
3842         https://bugs.webkit.org/show_bug.cgi?id=110396
3843
3844         Reviewed by Kentaro Hara.
3845
3846         This is in preparation for a refactor to expose a simplified
3847         WrapperGrouper interface to V8 wrapper classes enabling them to
3848         specify multiple roots per wrapper object. 
3849
3850         * bindings/v8/V8GCController.cpp: Since MutationObservers are not Nodes, the correct call here is addObjectToGroup, as it is for all other non-Node wrappers.
3851
3852 2013-02-20  Levi Weintraub  <leviw@chromium.org>
3853
3854         Line layout (but not pref widths) double-counts word spacing when between inlines
3855         https://bugs.webkit.org/show_bug.cgi?id=110381
3856
3857         Reviewed by Emil A Eklund.
3858
3859         When a word break with a space occurs between inlines and word-spacing is non-zero,
3860         line layout incorrectly committed the word-spacing value to the line twice, causing
3861         wrapping in inline-blocks. To fix this, clear the word-spacing value when between
3862         words and ignoring spaces, as we will already have added the word-spacing to the
3863         line.
3864
3865         Test: fast/text/word-space-between-inlines.html
3866
3867         * rendering/RenderBlockLineLayout.cpp:
3868         (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
3869
3870 2013-02-20  Nate Chapin  <japhet@chromium.org>
3871
3872         Crash in WebCore::FrameLoader::checkCompleted()
3873         https://bugs.webkit.org/show_bug.cgi?id=110237
3874
3875         Reviewed by Abhishek Arya.
3876
3877         Test: http/tests/misc/delete-frame-during-readystatechange.html
3878
3879         * loader/FrameLoader.cpp:
3880         (WebCore::FrameLoader::checkCompleted): Protect before setReadyState() is called.
3881
3882 2013-02-20  David Grogan  <dgrogan@chromium.org>
3883
3884         IndexedDB: Limit LevelDB's max open files
3885         https://bugs.webkit.org/show_bug.cgi?id=109993
3886
3887         Reviewed by Tony Chang.
3888
3889         LevelDB keeps up to 1000 (by default) data files open at a time to
3890         avoid having to open() them. This has caused chromium to hit the
3891         process-wide open file limit. This patch changes max_open_files to 20,
3892         as that's the minimum permitted by LevelDB and we have no reason to
3893         think that performance will suffer because of the extra open calls.
3894
3895         No new tests - a chromium browser test that tracks the open LevelDB
3896         files is plausible but is blocked on http://crbug.com/177249/.
3897
3898         * platform/leveldb/LevelDBDatabase.cpp:
3899         (WebCore::openDB):
3900
3901 2013-02-20  David Hyatt  <hyatt@apple.com>
3902
3903         [New Multicolumn] Resize RenderMultiColumnSets around their columns.
3904         https://bugs.webkit.org/show_bug.cgi?id=110378.
3905
3906         Reviewed by Dirk Schulze.
3907
3908         Test: fast/multicol/newmulticol/positioned-with-constrained-height.html.
3909
3910         * rendering/RenderBlock.h:
3911         (RenderBlock):
3912         Make computeOverflow public so that RenderMultiColumnFlowThread can
3913         access it.
3914
3915         * rendering/RenderMultiColumnFlowThread.cpp:
3916         (WebCore::RenderMultiColumnFlowThread::layout):
3917         Subclass layout to recompute the overflow for RenderMultiColumnBlock
3918         after the flow thread has finished layout. This way it can account
3919         for changes in RenderMultiColumnSets without having to do a second
3920         layout pass.
3921
3922         * rendering/RenderMultiColumnFlowThread.h:
3923         (RenderMultiColumnFlowThread):
3924         Override layout().
3925
3926         * rendering/RenderMultiColumnSet.cpp:
3927         (WebCore::RenderMultiColumnSet::columnCount):
3928         Clean up a comment that referred to portions as region rects still.
3929
3930         (WebCore::RenderMultiColumnSet::setFlowThreadPortionRect):
3931         * rendering/RenderMultiColumnSet.h:
3932         * rendering/RenderRegion.h:
3933         (WebCore::RenderRegion::setFlowThreadPortionRect):
3934         Make setFlowThreadPortionRect virtual and actually mutate the size
3935         and position of RenderMultiColumnSets so that they enclose their
3936         column rects.
3937
3938 2013-02-20  Dirk Schulze  <krit@webkit.org>
3939
3940         Enable CANVAS_PATH flag
3941         https://bugs.webkit.org/show_bug.cgi?id=108508
3942
3943         Reviewed by Simon Fraser.
3944
3945         Enable CANVAS_PATH flag on trunk.
3946
3947         Existing tests cover the feature.
3948
3949         * Configurations/FeatureDefines.xcconfig:
3950
3951 2013-02-20  Sheriff Bot  <webkit.review.bot@gmail.com>
3952
3953         Unreviewed, rolling out r143441.
3954         http://trac.webkit.org/changeset/143441
3955         https://bugs.webkit.org/show_bug.cgi?id=110376
3956
3957         May be causing chromium content_browsertests failures.
3958         (Requested by vollick on #webkit).
3959
3960         * bindings/v8/ScriptValue.cpp:
3961         (WebCore::ScriptValue::serialize):
3962         (WebCore::ScriptValue::getString):
3963         (WebCore::ScriptValue::toString):
3964         (WebCore::ScriptValue::toInspectorValue):
3965         * bindings/v8/ScriptValue.h:
3966         (WebCore::ScriptValue::ScriptValue):
3967         (WebCore::ScriptValue::operator=):
3968         (WebCore::ScriptValue::operator==):
3969         (WebCore::ScriptValue::isEqual):
3970         (WebCore::ScriptValue::isFunction):
3971         (WebCore::ScriptValue::isNull):
3972         (WebCore::ScriptValue::isUndefined):
3973         (WebCore::ScriptValue::isObject):
3974         (WebCore::ScriptValue::hasNoValue):
3975         (WebCore::ScriptValue::clear):
3976         (WebCore::ScriptValue::v8Value):
3977         (ScriptValue):
3978         * bindings/v8/SharedPersistent.h:
3979         (WebCore):
3980         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
3981         (WebCore::InjectedScriptHost::scriptValueAsNode):
3982         * bindings/v8/custom/V8MessageEventCustom.cpp:
3983         (WebCore::V8MessageEvent::dataAttrGetterCustom):
3984
3985 2013-02-15  Dirk Schulze  <krit@webkit.org>
3986
3987         [Chromium] Add runtime flag for CanvasPath
3988         https://bugs.webkit.org/show_bug.cgi?id=109997
3989
3990         Reviewed by Adam Barth.
3991
3992         Add runtime flag for Chromium.
3993
3994         * bindings/generic/RuntimeEnabledFeatures.cpp:
3995         (WebCore):
3996         * bindings/generic/RuntimeEnabledFeatures.h:
3997         (RuntimeEnabledFeatures):
3998         (WebCore::RuntimeEnabledFeatures::setCanvasPathEnabled):
3999         (WebCore::RuntimeEnabledFeatures::canvasPathEnabled):
4000         * html/canvas/DOMPath.idl:
4001         * page/DOMWindow.idl:
4002
4003 2013-02-20  Laszlo Gombos  <l.gombos@samsung.com>
4004
4005         Remove unnecessary includes for Platform.h from headers
4006         https://bugs.webkit.org/show_bug.cgi?id=110300
4007
4008         Reviewed by Alexey Proskuryakov.
4009
4010         wtf/Platform.h only need to be included in a few places directly
4011         as it is included in config.h. Remove the unnecessay duplicate as
4012         it can be confusing.
4013
4014         No new tests, no change in functionality.
4015
4016         * platform/SecureTextInput.h:
4017         * platform/audio/Biquad.h:
4018         * platform/audio/FFTFrame.h:
4019         * platform/graphics/cpu/arm/filters/FEBlendNEON.h:
4020         * platform/graphics/cpu/arm/filters/NEONHelpers.h:
4021         * platform/graphics/filters/FELighting.h:
4022
4023 2013-02-20  Florin Malita  <fmalita@chromium.org>
4024
4025         [SVG] Update of element referenced by multiple 'use' nodes is absurdly slow
4026         https://bugs.webkit.org/show_bug.cgi?id=97905
4027
4028         Reviewed by Dirk Schulze.
4029
4030         Rebuilding the shadow and instance trees of dependent use nodes recursively can be
4031         extremely inefficient with non-trivial dependency graphs (the trees are not constructed
4032         in topological order).
4033
4034         To avoid redundant buildShadowAndInstanceTree() invokations, separate the invalidation
4035         phase from the actual tree (re)building phase, and only descend into the dependency DAG
4036         during the invalidation phase (recursion also stops at nodes that have been previously
4037         invalidated).
4038
4039         No new tests: functional coverage provided by existing tests, perfomance tracked by
4040         PerformanceTests/SVG/SvgNestedUse.html.
4041
4042         * svg/SVGUseElement.cpp:
4043         (WebCore::SVGUseElement::buildPendingResource):
4044         (WebCore::SVGUseElement::buildShadowAndInstanceTree):
4045         (WebCore::SVGUseElement::invalidateShadowTree):
4046         (WebCore):
4047         (WebCore::SVGUseElement::invalidateDependentShadowTrees):
4048         * svg/SVGUseElement.h:
4049         (SVGUseElement):
4050
4051 2013-02-20  Tim Horton  <timothy_horton@apple.com>
4052
4053         RenderLayerBacking should initialize TiledBacking's isInWindow state with Page's isInWindow, not isOnscreen