5385cb6733e77872af12729def920627a059cf94
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-05-25  Nat Duca  <nduca@chromium.org>
2
3         [chromium] Instrument V8 GC with TraceEvent
4         https://bugs.webkit.org/show_bug.cgi?id=87530
5
6         Reviewed by Kentaro Hara.
7
8         We sometimes get performance issues where performance stalls can
9         be attributed to badly timed GC operations, especially ones that
10         happen just before a frame running. This adds tracing calls around
11         GC so that we can better understand these kinds of hangs.
12
13         * bindings/v8/V8GCController.cpp:
14         (WebCore::V8GCController::gcPrologue):
15         (WebCore::V8GCController::gcEpilogue):
16
17 2012-05-25  Garrett Casto  <gcasto@chromium.org>
18
19         Allow WebTextFieldDecoratorClient to see applied decorations.
20         https://bugs.webkit.org/show_bug.cgi?id=86557
21
22         Reviewed by Kent Tamura.
23
24         * html/shadow/TextFieldDecorationElement.cpp:
25         (WebCore::TextFieldDecorationElement::fromShadowRoot): A function
26         that will extract a TextFielDecorationElement from a ShadowRoot, if
27         there is one.
28         * html/shadow/TextFieldDecorationElement.h:
29         (WebCore):
30         (TextFieldDecorator):
31
32 2012-05-25  Tony Chang  <tony@chromium.org>
33
34         implement new negative flexing algorithm
35         https://bugs.webkit.org/show_bug.cgi?id=86528
36
37         Reviewed by Ojan Vafai.
38
39         Rather than just scale by the negative flexibility, we also take the
40         flex-basis (preferred size) into consideration.  That means items with
41         a larger preferred size will shrink faster.
42
43         Test: css3/flexbox/flex-algorithm.html (new test cases added)
44
45         * rendering/RenderFlexibleBox.cpp:
46         (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild): Handle overflow.
47         (WebCore::RenderFlexibleBox::layoutFlexItems):
48         (WebCore::RenderFlexibleBox::computeNextFlexLine): Sum weighted negative flex.
49         (WebCore::RenderFlexibleBox::freezeViolations):
50         (WebCore::RenderFlexibleBox::resolveFlexibleLengths): Shrink by weighted amount.
51         Also handle large values by making sure the flex values are finite.
52         * rendering/RenderFlexibleBox.h:
53
54 2012-05-25  Mihai Parparita  <mihaip@chromium.org>
55
56         Allow synchronous XHRs to be disabled in documents
57         https://bugs.webkit.org/show_bug.cgi?id=87540
58
59         Reviewed by Eric Seidel.
60
61         Test: fast/xmlhttprequest/xmlhttprequest-sync-disabled.html
62
63         Synchronous XMLHttpRequests are a problematic API, since they result
64         in blocked UI threads. Some clients may wish to always disable them;
65         give them a setting to do so (see also r103629 for other cases where
66         synchronous XHRs are disabled).
67
68         * page/Settings.cpp:
69         (WebCore):
70         (WebCore::Settings::Settings):
71         * page/Settings.h:
72         (Settings):
73         (WebCore::Settings::setSyncXHRInDocumentsEnabled):
74         (WebCore::Settings::syncXHRInDocumentsEnabled):
75         * testing/InternalSettings.cpp:
76         (WebCore::InternalSettings::InternalSettings):
77         (WebCore::InternalSettings::restoreTo):
78         (WebCore::InternalSettings::setSyncXHRInDocumentsEnabled):
79         (WebCore):
80         * testing/InternalSettings.h:
81         (InternalSettings):
82         * testing/InternalSettings.idl:
83         * xml/XMLHttpRequest.cpp:
84         (WebCore::XMLHttpRequest::open):
85
86 2012-05-25  Kinuko Yasuda  <kinuko@chromium.org>
87
88         [chromium] Deprecate FileUtilities::getFileSize and getFileModifiedTime in favor of getFileMetadata
89         https://bugs.webkit.org/show_bug.cgi?id=87492
90
91         Reviewed by Adam Barth.
92
93         No new tests: existing tests (http/tests/local/fileapi/* and fast/files/*) should pass.
94
95         * platform/chromium/FileSystemChromium.cpp:
96         (WebCore::getFileSize):
97         (WebCore::getFileModificationTime):
98         (WebCore::getFileMetadata):
99         * platform/chromium/PlatformSupport.h:
100         (PlatformSupport):
101
102 2012-05-25  Abhishek Arya  <inferno@chromium.org>
103
104         Crash in RenderTableSection::paintCell.
105         https://bugs.webkit.org/show_bug.cgi?id=87445
106
107         Reviewed by Eric Seidel and Julien Chaffraix.
108
109         Fix the crash by preventing table parts from being set
110         as layout root. This prevents us from accessing removed
111         table cells which can happen if RenderTableSection::layout
112         is called directly without calling RenderTable::layout first
113         (in case of cell recalc).
114
115         Add ASSERTs to RenderTableSection::layout to prevent
116         layout to happen when we are already pending cell recalc
117         or our table is pending section recalc. In those cases,
118         RenderTable::layout should be called first to relayout
119         the entire table.
120
121         Test: tables/table-section-overflow-clip-crash.html
122
123         * rendering/RenderObject.cpp:
124         (WebCore::objectIsRelayoutBoundary):
125         * rendering/RenderTableSection.cpp:
126         (WebCore::RenderTableSection::layout):
127
128 2012-05-25  Philip Rogers  <pdr@google.com>
129
130         Fix for self-closing <use> tags
131         https://bugs.webkit.org/show_bug.cgi?id=87504
132
133         Reviewed by Adam Barth.
134
135         This change causes self-closing non-html tags to behave the same
136         as tags immediately followed by the closing tag.
137
138         Test: svg/custom/svg-self-closing-use.html
139
140         * html/parser/HTMLConstructionSite.cpp:
141         (WebCore::HTMLConstructionSite::attachLater):
142         (WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
143         (WebCore::HTMLConstructionSite::insertForeignElement):
144         * html/parser/HTMLConstructionSite.h:
145         (HTMLConstructionSite):
146
147 2012-05-25  Dan Bernstein  <mitz@apple.com>
148
149         Make the ICU-based implementation of NonSharedCharacterBreakIterator work in configurations
150         that do not have COMPARE_AND_SWAP enabled.
151
152         Reviewed by Jessie Berlin.
153
154         * platform/text/TextBreakIteratorICU.cpp:
155         (WebCore::compareAndSwapNonSharedCharacterBreakIterator): Added this helper. It uses
156         weakCompareAndSwap when COMPARE_AND_SWAP is enabled, and uses a mutex to do the atomic
157         compare and swap otherwise.
158         (WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator): Changed to use
159         compareAndSwapNonSharedCharacterBreakIterator().
160         (WebCore::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator): Ditto.
161
162 2012-05-25  Tommy Widenflycht  <tommyw@google.com>
163
164         MediaStream API: Make sure IceCallback is valid for PeerConnection00
165         https://bugs.webkit.org/show_bug.cgi?id=87480
166
167         Reviewed by Adam Barth.
168
169         Existing tests have been extended to cover this change.
170
171         * Modules/mediastream/PeerConnection00.cpp:
172         (WebCore::PeerConnection00::create):
173         * Modules/mediastream/PeerConnection00.h:
174         * Modules/mediastream/PeerConnection00.idl:
175
176 2012-05-25  Mike West  <mkwst@chromium.org>
177
178         Inline script and style blocked by Content Security Policy should provide more detailed console errors.
179         https://bugs.webkit.org/show_bug.cgi?id=86848
180
181         Reviewed by Adam Barth.
182
183         This change adds a URL and line number for context to each call to
184         `ContentSecurityPolicy::allowInline*`, and pipes it through to the
185         console message generation in `CSPDirectiveList::reportViolation`.
186
187         Line numbers are not added for injected scripts (`document.write(...)`,
188         `document.body.appendChild`, and etc.).
189
190         Tests: http/tests/security/contentSecurityPolicy/injected-inline-script-allowed.html
191                http/tests/security/contentSecurityPolicy/injected-inline-script-blocked.html
192                http/tests/security/contentSecurityPolicy/injected-inline-style-allowed.html
193                http/tests/security/contentSecurityPolicy/injected-inline-style-blocked.html
194
195         * bindings/ScriptControllerBase.cpp:
196         (WebCore::ScriptController::executeIfJavaScriptURL):
197         * bindings/js/JSLazyEventListener.cpp:
198         (WebCore::JSLazyEventListener::initializeJSFunction):
199         * bindings/v8/V8LazyEventListener.cpp:
200         (WebCore::V8LazyEventListener::prepareListenerObject):
201         * dom/ScriptElement.cpp:
202         (WebCore::ScriptElement::ScriptElement):
203         (WebCore::ScriptElement::executeScript):
204         * dom/ScriptElement.h:
205         (ScriptElement):
206         * dom/StyleElement.cpp:
207         (WebCore::StyleElement::StyleElement):
208         (WebCore::StyleElement::createSheet):
209         * dom/StyleElement.h:
210         (StyleElement):
211         * dom/StyledElement.cpp:
212         (WebCore::StyledElement::StyledElement):
213         (WebCore):
214         (WebCore::StyledElement::style):
215         (WebCore::StyledElement::styleAttributeChanged):
216         * dom/StyledElement.h:
217         (StyledElement):
218         * page/ContentSecurityPolicy.cpp:
219         (CSPDirectiveList):
220         (WebCore::CSPDirectiveList::reportViolation):
221         (WebCore::CSPDirectiveList::checkInlineAndReportViolation):
222         (WebCore::CSPDirectiveList::checkEvalAndReportViolation):
223         (WebCore::CSPDirectiveList::allowJavaScriptURLs):
224         (WebCore::CSPDirectiveList::allowInlineEventHandlers):
225         (WebCore::CSPDirectiveList::allowInlineScript):
226         (WebCore::CSPDirectiveList::allowInlineStyle):
227         (WebCore::CSPDirectiveList::allowEval):
228         (WebCore):
229         (WebCore::isAllowedByAllWithCallStack):
230         (WebCore::isAllowedByAllWithContext):
231         (WebCore::ContentSecurityPolicy::allowJavaScriptURLs):
232         (WebCore::ContentSecurityPolicy::allowInlineEventHandlers):
233         (WebCore::ContentSecurityPolicy::allowInlineScript):
234         (WebCore::ContentSecurityPolicy::allowInlineStyle):
235         * page/ContentSecurityPolicy.h:
236         (WTF):
237
238 2012-05-25  Tim Horton  <timothy_horton@apple.com>
239
240         ENABLE_CSS3_FLEXBOX is insufficient to disable all web-facing bits of the feature
241         https://bugs.webkit.org/show_bug.cgi?id=87537
242         <rdar://problem/11524921>
243
244         Reviewed by Simon Fraser.
245
246         Allow the feature flag to disable more web-facing parts of the CSS3 flexbox
247         implementation (primarily fallout from hiding it from computed style).
248
249         * css/CSSComputedStyleDeclaration.cpp:
250         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
251         * css/CSSParser.cpp:
252         (WebCore::isValidKeywordPropertyAndValue):
253         (WebCore::isKeywordPropertyID):
254         (WebCore::CSSParser::parseValue):
255         * css/CSSPrimitiveValueMappings.h:
256         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
257         * css/CSSProperty.cpp:
258         (WebCore::CSSProperty::isInheritedProperty):
259         * css/CSSPropertyNames.in:
260         * css/CSSValueKeywords.in:
261         * css/StyleBuilder.cpp:
262         (WebCore::StyleBuilder::StyleBuilder):
263         * css/StylePropertySet.cpp:
264         (WebCore::StylePropertySet::getPropertyValue):
265         (WebCore::StylePropertySet::asText):
266         * css/StylePropertyShorthand.cpp:
267         (WebCore::shorthandForProperty):
268         * css/StylePropertyShorthand.h:
269         * css/StyleResolver.cpp:
270         (WebCore::StyleResolver::collectMatchingRulesForList):
271         * page/animation/CSSPropertyAnimation.cpp:
272         (WebCore::CSSPropertyAnimation::ensurePropertyMap):
273         * rendering/RenderObject.cpp:
274         (WebCore::RenderObject::createObject):
275         * rendering/style/RenderStyleConstants.h:
276
277 2012-05-25  Adrienne Walker  <enne@google.com>
278
279         [chromium] Add setting for painting debug info onto tiles
280         https://bugs.webkit.org/show_bug.cgi?id=75763
281
282         Reviewed by James Robinson.
283
284         Add a compile-time CCSetting to paint debug information onto tiles. This
285         can help to understand paint counts and layer indices. This setting is
286         off by default.
287
288         * platform/graphics/chromium/ContentLayerChromium.cpp:
289         (WebCore::ContentLayerPainter::create):
290         (WebCore::ContentLayerPainter::paint):
291         (WebCore::ContentLayerPainter::ContentLayerPainter):
292         (WebCore::ContentLayerChromium::createTextureUpdater):
293         * platform/graphics/chromium/TiledLayerChromium.cpp:
294         (WebCore::UpdatableTile::UpdatableTile):
295         (WebCore::UpdatableTile::setUpdateFrame):
296         (WebCore::UpdatableTile::incrementPaintCount):
297         (WebCore::UpdatableTile::updateFrame):
298         (WebCore::UpdatableTile::paintCount):
299         (WebCore::TiledLayerChromium::TiledLayerChromium):
300         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
301         (WebCore::TiledLayerChromium::paintDebugTileInfo):
302         * platform/graphics/chromium/TiledLayerChromium.h:
303         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
304         (WebCore::CCSettings::CCSettings):
305
306 2012-05-25  Ami Fischman  <fischman@chromium.org>
307
308         [chromium] Default media controls should render only the currentTime-containing buffered range
309         https://bugs.webkit.org/show_bug.cgi?id=85925
310
311         Reviewed by Eric Carlson.
312
313         Test: http/tests/media/video-buffered-range-contains-currentTime.html
314
315         * rendering/RenderMediaControlsChromium.cpp:
316         (WebCore::paintMediaSlider):
317
318 2012-05-25  Simon Fraser  <simon.fraser@apple.com>
319
320         Build fix: add TransformationMatrix ctor from an AffineTransform.
321
322         * platform/graphics/transforms/TransformationMatrix.cpp:
323         (WebCore::TransformationMatrix::TransformationMatrix):
324         (WebCore):
325         * platform/graphics/transforms/TransformationMatrix.h:
326         (TransformationMatrix):
327
328 2012-05-24  Ryosuke Niwa  <rniwa@webkit.org>
329
330         createContextualFragment and insertAdjacentHTML should throw syntax error
331         https://bugs.webkit.org/show_bug.cgi?id=87454
332
333         Reviewed by Darin Adler.
334
335         Before this patch, createContextualFragment threw NOT_SUPPORTED_ERR and insertAdjacentHTML didn't throw any errors.
336         Make them throw SYNTAX_ERR to be consistent with the spec and Firefox:
337         http://html5.org/specs/dom-parsing.html#parsing
338         http://www.whatwg.org/specs/web-apps/current-work/multipage/the-xhtml-syntax.html#xml-fragment-parsing-algorithm
339
340         Also reduced the code duplication.
341
342         Test: fast/dom/xhtml-fragment-parsing-exceptions.xhtml
343
344         * dom/Range.cpp:
345         (WebCore::Range::createContextualFragment):
346         * dom/ShadowRoot.cpp:
347         (WebCore::ShadowRoot::setInnerHTML): Explicitly pass AllowScriptingContent. 
348         * editing/markup.cpp:
349         (WebCore::createFragmentFromMarkup):
350         (WebCore::createFragmentForInnerOuterHTML): Takes ExceptionCode now.
351         (WebCore::createContextualFragment): Share code with createFragmentForInnerOuterHTML
352         and propagate the exception code.
353         * editing/markup.h:
354         * html/HTMLElement.cpp:
355         (WebCore::HTMLElement::setInnerHTML): Explicitly pass AllowScriptingContent.
356         (WebCore::HTMLElement::setOuterHTML): Ditto.
357         (WebCore::HTMLElement::insertAdjacentHTML): Ditto; also rename ignoredEc to ignoredEC
358         per Darin's comment on the bug 87339.
359
360 2012-05-25  John Knottenbelt  <jknotten@chromium.org>
361
362         Body scrollWidth() and scrollHeight() should be page scale-invariant
363         https://bugs.webkit.org/show_bug.cgi?id=87494
364
365         RenderView::documentRect() is calculating the "scaled" document rect by applying
366         the current transformation matrix to the unscaledDocumentRect() and then
367         returning the rounded-out IntRect result.
368
369         This rounding out is incorrect because it allows the scaled rectangle to
370         represent an area that is not actually covered by the document.
371
372         We fix this by applying the current transform to the document rect
373         as a FloatRect and then explicitly converting to IntRect, which
374         takes the floor of the resulting rectangle coordinates instead of
375         rounding them out.
376
377         This is evidenced by the document.body.scrollWidth() and
378         document.body.scrollHeight() changing under page scale factor when
379         they are expected to remain invariant.
380
381         Reviewed by James Robinson.
382
383         Test: fast/dom/window-scroll-scaling.html
384
385         * rendering/RenderView.cpp:
386         (WebCore::RenderView::documentRect):
387
388 2012-05-25  Dan Bernstein  <mitz@apple.com>
389
390         characterBreakIterator() is not safe to use reentrantly or from multiple threads
391         https://bugs.webkit.org/show_bug.cgi?id=87521
392
393         Reviewed by Darin Adler.
394
395         Replaced characterBreakIterator() with a NonSharedCharacterBreakIterator class, which
396         obtains a unique TextBreakIterator. Replaced the global shared instance with a single-entry
397         cache.
398
399         * dom/CharacterData.cpp:
400         (WebCore::CharacterData::parserAppendData): Changed to use NonSharedCharacterBreakIterator.
401
402         * platform/graphics/StringTruncator.cpp:
403         (WebCore::centerTruncateToBuffer): Ditto.
404         (WebCore::rightTruncateToBuffer): Ditto.
405
406         * platform/text/String.cpp:
407         (WebCore::numGraphemeClusters): Ditto.
408         (WebCore::numCharactersInGraphemeClusters): Ditto.
409
410         * platform/text/TextBreakIterator.h: Removed the declaration of characterBreakIterator().
411         (NonSharedCharacterBreakIterator): Added. An instance of this class has a character break
412         iterator instance that is unique to it for the lifetime of the instance.
413         (WebCore::NonSharedCharacterBreakIterator::operator TextBreakIterator*): Added.
414
415         * platform/text/TextBreakIteratorICU.cpp:
416         (WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator): Added. Tries
417         to swap the m_iterator member variable with the cached instance. If that fails, initializes
418         m_iterator to a new character break iterator.
419         (WebCore::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator): Added. Tries
420         to put the m_iterator member variable back in the cache. If that fails, meaning there is
421         already something in the cache, destroys m_iterator.
422
423         * platform/text/gtk/TextBreakIteratorGtk.cpp:
424         (WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator): Same as in
425         TextBreakIteratorICU.cpp.
426         (WebCore::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator): Ditto.
427         (WebCore::cursorMovementIterator): Moved the old implementation of characterBreakIterator()
428         here.
429
430         * platform/text/qt/TextBreakIteratorQt.cpp:
431         (WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator): Same as in
432         TextBreakIteratorICU.cpp.
433         (WebCore::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator): Ditto.
434         (WebCore::cursorMovementIterator): Moved the old implementation of characterBreakIterator()
435         here.
436
437         * platform/text/wince/TextBreakIteratorWinCE.cpp:
438         (WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator): Same as in
439         TextBreakIteratorICU.cpp.
440         (WebCore::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator): Ditto.
441         (WebCore::cursorMovementIterator): Moved the old implementation of characterBreakIterator()
442         here.
443
444 2012-05-25  Simon Fraser  <simon.fraser@apple.com>
445
446         Terrible performance on http://alliances.commandandconquer.com/ and http://www.lordofultima.com/
447         https://bugs.webkit.org/show_bug.cgi?id=84410
448
449         Reviewed by Dave Hyatt.
450         
451         First part of fixing O(N^2) issues when walking the RenderLayer tree
452         for computeCompositingRequirements().
453         
454         For each layer that goes into the OverlapMap, we were computing an absolute
455         layer bounds, which requires walking back to the root of the tree.
456         Optimize this when possible by storing a stack of offsets as we walk
457         the tree, and using this stack to do the mapping.
458         
459         The stack of offsets and transforms is managed by RenderGeometryMap.
460         When visiting a RenderLayer, RenderLayerCompositor pushes onto
461         the geometry map stack data about offsets and transforms between
462         the current layer and its stacking-parent. RenderGeometryMap handles
463         the case where the previous renderer pushed is between the current
464         renderer and its container. RenderGeometryMap can also handle callers
465         pushing renderers with multiple containers between them.
466         
467         RenderGeometryMap stores some flags about whether the set of mapping
468         steps in the stack involve transforms, fixed position, or special non-uniform
469         mappings like CSS columns. In some cases, it falls back to mapping via
470         renderers.
471
472         Once constructed, the RenderGeometryMap stack can be used to map multiple
473         rects or points efficiently. Stacks consisting of simple offsets are
474         collapsed to a single offset.
475         
476         Mappings between renderers and their containers are pushed by pushMappingToContainer()
477         methods, which are similar to mapLocalToContainer() methods. Having this code
478         in RenderObjects was deemed preferable to handling columns, transforms etc. all in
479         RenderLayer code.
480
481         Tested by assertions in RenderGeometryMap code that its mapping matches
482         mapping via localToAbsolute() calls.
483         
484         RenderLayerCompositor::updateCompositingLayers() creates a RenderGeometryMap,
485         and pushes and pops layer renderers as it visits them. The geometry map is used
486         by RenderLayerCompositor::addToOverlapMap() when computing absolute layer bounds.
487         
488         Futher optimizations in RenderGeometryMap are possible, especially with stacks that
489         have many offsets and a few transforms.
490
491         Tests: compositing/geometry/composited-in-columns.html
492                compositing/geometry/flipped-writing-mode.html
493
494         * CMakeLists.txt: Add RenderGeometryMap
495         * GNUmakefile.list.am: Ditt
496         * Target.pri: Ditto
497         * WebCore.gypi: Ditto
498         * WebCore.vcproj/WebCore.vcproj: Ditto
499         * WebCore.xcodeproj/project.pbxproj: Ditto
500         * rendering/RenderBox.cpp:
501         (WebCore::RenderBox::absoluteContentBox):
502         (WebCore::RenderBox::pushMappingToContainer):
503         (WebCore::RenderBox::offsetFromContainer):
504         * rendering/RenderBox.h:
505         * rendering/RenderGeometryMap.cpp: Added.
506         (RenderGeometryMapStep):
507         (WebCore::RenderGeometryMapStep::RenderGeometryMapStep):
508         (WebCore::RenderGeometryMapStep::mapPoint):
509         (WebCore::RenderGeometryMapStep::mapQuad):
510         (WebCore::RenderGeometryMap::RenderGeometryMap):
511         (WebCore::RenderGeometryMap::~RenderGeometryMap):
512         (WebCore::RenderGeometryMap::absolutePoint):
513         (WebCore::RenderGeometryMap::absoluteRect):
514         (WebCore::RenderGeometryMap::mapToAbsolute):
515         (WebCore::RenderGeometryMap::pushMappingsToAncestor):
516         (WebCore::RenderGeometryMap::push):
517         (WebCore::RenderGeometryMap::pushView):
518         (WebCore::RenderGeometryMap::popMappingsToAncestor):
519         (WebCore::RenderGeometryMap::stepInserted):
520         (WebCore::RenderGeometryMap::stepRemoved):
521         * rendering/RenderGeometryMap.h: Added.
522         (RenderGeometryMap):
523         (WebCore::RenderGeometryMap::hasNonUniformStep):
524         (WebCore::RenderGeometryMap::hasTransformStep):
525         (WebCore::RenderGeometryMap::hasFixedPositionStep):
526         * rendering/RenderInline.cpp:
527         (WebCore::RenderInline::offsetFromContainer):
528         (WebCore::RenderInline::pushMappingToContainer):
529         * rendering/RenderInline.h:
530         (RenderInline):
531         * rendering/RenderLayerCompositor.cpp:
532         (WebCore::RenderLayerCompositor::updateCompositingLayers):
533         (WebCore::RenderLayerCompositor::addToOverlapMap):
534         (WebCore::RenderLayerCompositor::addToOverlapMapRecursive):
535         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
536         * rendering/RenderLayerCompositor.h:
537         (RenderLayerCompositor):
538         * rendering/RenderObject.cpp:
539         (WebCore::RenderObject::mapLocalToContainer):
540         (WebCore::RenderObject::pushMappingToContainer):
541         (WebCore::RenderObject::offsetFromContainer):
542         (WebCore::RenderObject::container):
543         * rendering/RenderObject.h:
544         * rendering/RenderTableCell.cpp:
545         (WebCore::RenderTableCell::offsetFromContainer):
546         * rendering/RenderTableCell.h:
547         (RenderTableCell):
548         * rendering/RenderView.cpp:
549         (WebCore::RenderView::pushMappingToContainer):
550         * rendering/RenderView.h:
551         * rendering/svg/RenderSVGForeignObject.cpp:
552         (WebCore::RenderSVGForeignObject::pushMappingToContainer):
553         * rendering/svg/RenderSVGForeignObject.h:
554         (RenderSVGForeignObject):
555         * rendering/svg/RenderSVGInline.cpp:
556         (WebCore::RenderSVGInline::pushMappingToContainer):
557         * rendering/svg/RenderSVGInline.h:
558         (RenderSVGInline):
559         * rendering/svg/RenderSVGModelObject.cpp:
560         (WebCore::RenderSVGModelObject::pushMappingToContainer):
561         * rendering/svg/RenderSVGModelObject.h:
562         (RenderSVGModelObject):
563         * rendering/svg/RenderSVGRoot.cpp:
564         (WebCore::RenderSVGRoot::pushMappingToContainer):
565         * rendering/svg/RenderSVGRoot.h:
566         (RenderSVGRoot):
567         * rendering/svg/RenderSVGText.cpp:
568         (WebCore::RenderSVGText::pushMappingToContainer):
569         * rendering/svg/RenderSVGText.h:
570         (RenderSVGText):
571         * rendering/svg/SVGRenderSupport.cpp:
572         (WebCore::SVGRenderSupport::pushMappingToContainer):
573         * rendering/svg/SVGRenderSupport.h:
574         (SVGRenderSupport):
575
576 2012-05-25  Simon Fraser  <simon.fraser@apple.com>
577
578         Cache absolute clip rects on RenderLayer for compositing overlap testing
579         https://bugs.webkit.org/show_bug.cgi?id=87212
580
581         Reviewed by Dave Hyatt.
582         
583         Enhance the cache of ClipRects on RenderLayers to store three
584         different types of ClipRects, rather than just one.
585         
586         We need to compute clip rects relative to different layers
587         for different purposes. For painting, we compute relative to
588         the compositing layer which is acting as a painting root.
589         For hit testing, we compute relative to the root, except
590         for transformed layers. For composting overlap testing, we
591         compute relative to the root ("absolute"). At other times, we do one-off
592         computation which we never want to cache ("temporary clip rects").
593         
594         This change allows us to cache rects for hit testing, and for
595         compositing overlap testing. This has huge performance benefits
596         on some pages (bug 84410).
597         
598         This change also makes ClipRects not arena-allocated, so we
599         can use RefPtr<ClipRect>.
600
601         No testable behavior change.
602
603         * rendering/RenderBoxModelObject.cpp:
604         (WebCore::RenderBoxModelObject::willBeDestroyed): No need for the
605         explicit clipRects teardown, since clipRects don't need a live
606         RenderObject for arena-based destruction.
607
608         * rendering/RenderLayer.cpp: Remove arena-related new and delete.
609         (WebCore::RenderLayer::RenderLayer): No need to explicitly initialize m_clipRects,
610         since it's an OwnPtr now.
611         (WebCore::RenderLayer::~RenderLayer): No explicit clipRect teardown required.
612         (WebCore::RenderLayer::clippingRootForPainting): Renamed to make its purpose
613         more obvious.
614         (WebCore::RenderLayer::paintLayer): Use the TemporaryClipRects type when necessary.
615         (WebCore::RenderLayer::paintLayerContents): Ditto
616         (WebCore::RenderLayer::hitTestLayer): No longer need to use temporary clipRects when
617         hit testing since we cache clip rects for hit testing.
618         (WebCore::RenderLayer::updateClipRects): Take a ClipRectsType and pass it through.
619         (WebCore::RenderLayer::calculateClipRects): Ditto
620         (WebCore::RenderLayer::parentClipRects): Ditto
621         (WebCore::RenderLayer::backgroundClipRect): Ditto
622         (WebCore::RenderLayer::calculateRects): Take ClipRectsType, which obviates temporaryClipRects.
623         (WebCore::RenderLayer::childrenClipRect): Use clippingRootForPainting().
624         (WebCore::RenderLayer::selfClipRect): Ditto
625         (WebCore::RenderLayer::localClipRect): Ditto
626         (WebCore::RenderLayer::clearClipRectsIncludingDescendants): Take a type of clip rect to clear
627         (include all). Allows us to just clear painting clip rects.
628         (WebCore::RenderLayer::clearClipRects):
629
630         * rendering/RenderLayer.h:
631         (WebCore::ClipRects::create): We don't use RefCounted<> in order to use a bit in
632         the refCount for a flag. Add create() method.
633         (WebCore::ClipRects::deref): No longer arena-allocated.
634         (WebCore::ClipRectsCache::ClipRectsCache): Struct that holds a small
635         array of the 3 types of clipRects (and, in debug, the layer relative
636         to which they were computed).
637         (WebCore::RenderLayer::clipRects):
638
639         * rendering/RenderLayerBacking.cpp:
640         (WebCore::RenderLayerBacking::updateCompositedBounds): Use AbsoluteClipRects; rootLayer
641         is always the RenderView's layer here.
642         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Use TemporaryClipRects.
643         (WebCore::RenderLayerBacking::setRequiresOwnBackingStore): When this variable changes,
644         we need to invalidate painting clipRects, since it affects the ancestor relative to which
645         those rects are computed.
646
647         * rendering/RenderLayerBacking.h:
648         * rendering/RenderLayerCompositor.cpp:
649         (WebCore::RenderLayerCompositor::updateBacking): When the composited state
650         of a layer changes, we have to clear all descendant clip rects, since this
651         can affect the layers relative to which clip rects are computed.
652         (WebCore::RenderLayerCompositor::addToOverlapMap): Use AbsoluteClipRects.
653         (WebCore::RenderLayerCompositor::computeCompositingRequirements): No need
654         to call updateLayerPosition(), since that should have always happened after
655         layout. That call cleared clip rects, so removing it is very beneficial.
656         (WebCore::RenderLayerCompositor::clippedByAncestor): Use TemporaryClipRects.
657
658         * rendering/RenderTreeAsText.cpp:
659         (WebCore::writeLayers): Use TemporaryClipRects.
660
661 2012-05-25  Dean Jackson  <dino@apple.com>
662
663         Unreviewed, rolling out r112155.
664         http://trac.webkit.org/changeset/112155
665         https://bugs.webkit.org/show_bug.cgi?id=79389
666         Hitch (due to style recalc?) when starting CSS3 animation
667
668         This caused a number of issues, including:
669         https://bugs.webkit.org/show_bug.cgi?id=87146
670         https://bugs.webkit.org/show_bug.cgi?id=84194
671         <rdar://problem/11506629>
672         <rdar://problem/11267408>
673         <rdar://problem/11531859>
674
675         * dom/Element.cpp:
676         (WebCore::Element::recalcStyle):
677
678 2012-05-25  David Hyatt  <hyatt@apple.com>
679
680         https://bugs.webkit.org/show_bug.cgi?id=87525
681         
682         For the new multi-column layout, create a flow thread and make sure the children get put inside it.
683
684         Reviewed by Eric Seidel.
685
686         * rendering/RenderMultiColumnBlock.cpp:
687         (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
688         (WebCore::RenderMultiColumnBlock::addChild):
689         (WebCore):
690         * rendering/RenderMultiColumnBlock.h:
691         (WebCore):
692         (RenderMultiColumnBlock):
693         (WebCore::RenderMultiColumnBlock::flowThread):
694         * rendering/RenderMultiColumnFlowThread.cpp:
695         (WebCore::RenderMultiColumnFlowThread::~RenderMultiColumnFlowThread):
696         (WebCore):
697         * rendering/RenderMultiColumnFlowThread.h:
698         (RenderMultiColumnFlowThread):
699         * rendering/RenderMultiColumnSet.h:
700         * rendering/RenderObject.h:
701         (RenderObject):
702         (WebCore::RenderObject::isRenderMultiColumnSet):
703
704 2012-05-25  Emil A Eklund  <eae@chromium.org>
705
706         Change RenderBoxModelObject to compute relativePositionOffset as size
707         https://bugs.webkit.org/show_bug.cgi?id=87447
708
709         Reviewed by Eric Seidel.
710
711         Compute relativePositionOffset as size instead of doing one axis at a
712         time as all call sites uses the size version of the method. This avoids
713         having to walk the DOM twice to accumulate the offsets.
714
715         Also remove the relativePositionOffsetX and Y methods as they are no
716         longer used.
717
718         No new tests, covered by existing tests.
719
720         * rendering/RenderBox.cpp:
721         (WebCore::RenderBox::layoutOverflowRectForPropagation):
722         * rendering/RenderBoxModelObject.cpp:
723         (WebCore::accumulateRelativePositionOffsets):
724         (WebCore::RenderBoxModelObject::relativePositionOffset):
725         * rendering/RenderBoxModelObject.h:
726         (RenderBoxModelObject):
727
728 2012-05-25  Sheriff Bot  <webkit.review.bot@gmail.com>
729
730         Unreviewed, rolling out r118395.
731         http://trac.webkit.org/changeset/118395
732         https://bugs.webkit.org/show_bug.cgi?id=87526
733
734         Breaking sites including GMail and Yahoo mail (Requested by
735         jsbell on #webkit).
736
737         * rendering/RenderBlock.cpp:
738         (WebCore::RenderBlock::collapseMargins):
739
740 2012-05-25  Ken Buchanan  <kenrb@chromium.org>
741
742         Layout root not getting cleared for anonymous renderers geting destroyed
743         https://bugs.webkit.org/show_bug.cgi?id=84002
744
745         Reviewed by Abhishek Arya.
746
747         This is a follow-up to r109406, which added a check to clear layout
748         roots when they point to a renderer that is being destroyed. The
749         thinking was that layout roots would never be anonymous renderers,
750         but there are some cases where this is not true (in particular,
751         generated content containers with overflow clips can be layout roots).
752
753         As in r109406, this patch has no layout test. This is because any test
754         that exercises this behavior is caused by an existing layout bug where
755         a child is not properly getting layout (or a renderer is getting dirtied
756         out of order during layout) and will fail multiple ASSERTs:
757         in particular, ASSERT(!m_layoutRoot->container() || !m_layoutRoot->
758         container()->needsLayout()) in FrameView::scheduleRelayoutOfSubtree(),
759         and ASSERT_NOT_REACHED() in RenderObject::clearLayoutRootIfNeeded().
760         We are preventing those bugs from manifesting as security issues with
761         this patch.
762
763         This also removes an ASSERT from the RenderObject destructor. This is
764         redundant with the condition in RenderObject::clearLayoutRootIfNeeded()
765         which is always called in RenderObject::willBeDestroyed(), so the check 
766         is not needed. It had to be removed because it fails when I try to
767         adjust the ASSERT condition by removing the !node()
768         check, due to RenderWidget clearing its node() during destruction.
769
770         * rendering/RenderObject.cpp:
771         (WebCore::RenderObject::~RenderObject):
772         (WebCore::RenderObject::willBeDestroyed):
773
774 2012-05-25  Alexander Pavlov  <apavlov@chromium.org>
775
776         Web Inspector: Hangup when continuously changing a css width value in Inspector
777         https://bugs.webkit.org/show_bug.cgi?id=85802
778
779         Reviewed by Vsevolod Vlasov.
780
781         An error in the property whitespace prefix detection algorithm would append the previous line trailing whitespace,
782         thereby enormously increasing the actual prefix during multiple incremental property changes.
783
784         * inspector/InspectorStyleSheet.cpp:
785         (WebCore::InspectorStyle::newLineAndWhitespaceDelimiters):
786
787 2012-05-25  Alexander Pavlov  <apavlov@chromium.org>
788
789         Web Inspector: Clean up Inspector.json after r118367
790         https://bugs.webkit.org/show_bug.cgi?id=87499
791
792         Reviewed by Yury Semikhatsky.
793
794         This cleans up the semantic inconsistencies introduced into type/field names r118367.
795
796         No new tests, as this is a refactoring.
797
798         * inspector/Inspector.json:
799         * inspector/InspectorCSSAgent.cpp:
800         (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
801         (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
802         (WebCore::InspectorCSSAgent::detectOrigin):
803         * inspector/InspectorCSSAgent.h:
804         (InspectorCSSAgent):
805         * inspector/InspectorStyleSheet.cpp:
806         (WebCore::InspectorStyleSheet::create):
807         (WebCore::InspectorStyleSheet::InspectorStyleSheet):
808         (WebCore::InspectorStyleSheet::buildObjectForRule):
809         (WebCore::InspectorStyleSheet::resourceStyleSheetText):
810         (WebCore::InspectorStyleSheetForInlineStyle::create):
811         (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
812         * inspector/InspectorStyleSheet.h:
813         (InspectorStyleSheet):
814         (WebCore::InspectorStyleSheet::canBind):
815         (InspectorStyleSheetForInlineStyle):
816
817 2012-05-25  Ilya Tikhonovsky  <loislo@chromium.org>
818
819         Web Inspector: speed-up HeapSnapshot._bfs method.
820         https://bugs.webkit.org/show_bug.cgi?id=87502
821
822         It had containmentEdges.length call in the loop that forced deoptimization.
823
824         Reviewed by Yury Semikhatsky.
825
826         * inspector/front-end/HeapSnapshot.js:
827         (WebInspector.HeapSnapshot.prototype._calculateObjectToWindowDistance):
828         (WebInspector.HeapSnapshot.prototype._bfs):
829
830 2012-05-25  Alexei Filippov  <alexeif@chromium.org>
831
832         Web Inspector: Speed up edges iteration in heap profiler
833         https://bugs.webkit.org/show_bug.cgi?id=87286
834
835         Add an extra node to nodes array that points to the end of edges array.
836         It allows to eliminate a check for the last node in iteration code.
837
838         Reviewed by Yury Semikhatsky.
839
840         * inspector/front-end/HeapSnapshot.js:
841         (WebInspector.HeapSnapshotNode.prototype._edgeIndexesStart):
842         (WebInspector.HeapSnapshotNode.prototype._edgeIndexesEnd):
843         (WebInspector.HeapSnapshotNodeIterator):
844         (WebInspector.HeapSnapshot.prototype._buildRetainers):
845         (WebInspector.HeapSnapshot.prototype._bfs):
846         (WebInspector.HeapSnapshot.prototype._buildAggregates):
847         (WebInspector.HeapSnapshot.prototype._buildPostOrderIndex):
848         (WebInspector.HeapSnapshot.prototype._buildDominatorTree):
849         (WebInspector.HeapSnapshot.prototype._markQueriableHeapObjects):
850
851 2012-05-25  Andrey Kosyakov  <caseq@chromium.org>
852
853         Web Inspector: put paint and compositing timeline events in a new category of their own
854         https://bugs.webkit.org/show_bug.cgi?id=86852
855
856         Reviewed by Pavel Feldman.
857
858         - add forth timeline category, "Painting"; make it light-purple;
859         - assign paint and compositing events to Painting category;
860
861         * WebCore.gypi: added timelineBarLightPurple.png;
862         * inspector/front-end/Images/timelineBarLightPurple.png: Added.
863         * inspector/front-end/Images/timelineCheckmarks.png: added light-purple icon;
864         * inspector/front-end/Images/timelineDots.png: ditto.
865         * inspector/front-end/TimelineOverviewPane.js:
866         (WebInspector.TimelineCategoryStrips.prototype.update.appendRecord): do not merge bars in same raw if these are from different categories;
867         (WebInspector.TimelineCategoryStrips.prototype.update):
868         * inspector/front-end/TimelinePresentationModel.js:
869         (WebInspector.TimelinePresentationModel.categories):
870         (WebInspector.TimelinePresentationModel.recordStyle):
871         * inspector/front-end/WebKit.qrc: added timelineBarLightPurple.png;
872         * inspector/front-end/timelinePanel.css: added styles for painting category;
873         (.timeline-category-statusbar-item.timeline-category-painting .timeline-category-checkbox):
874         (.timeline-category-painting .timeline-graph-bar):
875         (.popover .timeline-painting):
876         (.timeline-category-scripting .timeline-tree-icon):
877         (.timeline-category-rendering .timeline-tree-icon):
878         (.timeline-category-painting .timeline-tree-icon):
879
880 2012-05-25  W. James MacLean  <wjmaclean@chromium.org>
881
882         [chromium] LayerChromium should recognise existing layer active animations when the layer is added.
883         https://bugs.webkit.org/show_bug.cgi?id=87166
884
885         Reviewed by Adrienne Walker.
886
887         Unit test added.
888
889         LayerChromium needs to correctly recognize if a newly added layer has an existing
890         active animation.
891
892         * platform/graphics/chromium/LayerChromium.cpp:
893         (WebCore::LayerChromium::setLayerTreeHost):
894         (WebCore::LayerChromium::notifyAnimationFinished):
895         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
896         (CCLayerTreeHost):
897
898 2012-05-25  Ilya Tikhonovsky  <loislo@chromium.org>
899
900         Web Inspector: HeapSnapshot: introduce performance counter for HeapSnapshotConstructorsDataGrid._aggregatesReceived method.
901         https://bugs.webkit.org/show_bug.cgi?id=87393
902
903         Reviewed by Yury Semikhatsky.
904
905         * inspector/front-end/HeapSnapshotDataGrids.js:
906         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._aggregatesReceived):
907         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._populateChildren):
908
909 2012-05-25  Ilya Tikhonovsky  <loislo@chromium.org>
910
911         Web Inspector: drop obsolete WebInspector.Uint32Array and adjust snapshot chunk size for better transfer-snapshot metric.
912         https://bugs.webkit.org/show_bug.cgi?id=87490
913
914         Originally WebInspector.Uint32Array was used for dynamic array
915         reallocation because we had no information about expected arrays sizes.
916         Now we have these sizes and allocates array precisely.
917
918         Reviewed by Yury Semikhatsky.
919
920         * bindings/v8/ScriptHeapSnapshot.cpp:
921         (WebCore):
922         * inspector/front-end/HeapSnapshot.js:
923         * inspector/front-end/HeapSnapshotLoader.js:
924         (WebInspector.HeapSnapshotLoader.prototype._parseUintArray):
925         (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk):
926
927 2012-05-25  Ilya Tikhonovsky  <loislo@chromium.org>
928
929         Web Inspector: drop obsolete WebInspector.Uint32Array and adjust snapshot chunk size for better transfer-snapshot metric.
930         https://bugs.webkit.org/show_bug.cgi?id=87490
931
932         Originally WebInspector.Uint32Array was used for dynamic array
933         reallocation because we had no information about expected arrays sizes.
934         Now we have these sizes and allocates array precisely.
935
936         Reviewed by Yury Semikhatsky.
937
938         * bindings/v8/ScriptHeapSnapshot.cpp:
939         (WebCore):
940         * inspector/front-end/HeapSnapshot.js:
941         * inspector/front-end/HeapSnapshotLoader.js:
942         (WebInspector.HeapSnapshotLoader.prototype._parseUintArray):
943         (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk):
944
945 2012-05-25  Alexander Pavlov  <apavlov@chromium.org>
946
947         Web Inspector: cmd-[ shortcut navigates page and is fr-keyboard incompatible
948         https://bugs.webkit.org/show_bug.cgi?id=85312
949
950         Reviewed by Vsevolod Vlasov.
951
952         Suppress the handling of panel history navigation events if the corresponding keyboard activities produce
953         the "keypress" event (which is the case on French keyboards, where AltGr+[ is translated into Ctrl+Alt+[ on Windows).
954         The event is also told to preventDefault() to avoid browser history navigation on Mac while traversing the Inspector panel history.
955
956         * inspector/front-end/InspectorView.js:
957         (WebInspector.InspectorView):
958         (WebInspector.InspectorView.prototype._keyPress):
959         (WebInspector.InspectorView.prototype._keyDown):
960         (WebInspector.InspectorView.prototype._keyDownInternal):
961         * inspector/front-end/UIUtils.js:
962         (WebInspector.isWin):
963
964 2012-05-25  Yury Semikhatsky  <yurys@google.com>
965
966         Unreviewed. Fixed closure compiler warnings.
967
968         * inspector/front-end/NativeMemorySnapshotView.js:
969         (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
970         (WebInspector.NativeMemoryProfileHeader.prototype.createView):
971
972 2012-05-25  Lu Guanqun  <guanqun.lu@intel.com>
973
974         [GTK] fix compilation warning in GtkInputMethodFilter.cpp
975         https://bugs.webkit.org/show_bug.cgi?id=87475
976
977         Reviewed by Martin Robinson.
978
979         * platform/gtk/GtkInputMethodFilter.cpp:
980         (WebCore::GtkInputMethodFilter::setWidget):
981
982 2012-05-25  Zalan Bujtas  <zbujtas@gmail.com>
983
984         [Qt] Broken controls rendering when transform is applied.
985         https://bugs.webkit.org/show_bug.cgi?id=87483
986
987         Reviewed by Simon Hausmann.
988
989         Use only the scaling transform value to determine the size of
990         the control to be drawn. When other transforms present such as
991         rotate or skew, ignore them, unless scaling also involved. In
992         that case, calculate the scaling value out of the transformation.
993
994         * ManualTests/qt/control_paiting_with_transforms.html: Added.
995
996         * platform/qt/RenderThemeQtMobile.cpp:
997         (WebCore::painterScale):
998         (WebCore):
999         (WebCore::StylePainterMobile::sizeForPainterScale):
1000
1001 2012-05-17  Andrey Kosyakov  <caseq@chromium.org>
1002
1003         [chromium] add instrumentation for compositing
1004         https://bugs.webkit.org/show_bug.cgi?id=83928
1005
1006         Reviewed by James Robinson.
1007
1008         - plumb willCommit() and didBeginFrame() from CCSingleThreadProxy and CCThreadProxy to inspector instrumentation;
1009         - note for threaded case, didBeginFrame() is invoked upon unblocking of main thread;
1010
1011         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1012         (CCLayerTreeHostClient):
1013         (WebCore::CCLayerTreeHost::didBeginFrame):
1014         (WebCore::CCLayerTreeHost::willCommit):
1015         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1016         (WebCore::CCSingleThreadProxy::commitAndComposite):
1017         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1018         (WebCore::CCThreadProxy::beginFrame):
1019
1020 2012-05-25  Taiju Tsuiki  <tzik@chromium.org>
1021
1022         Web Inspector: Drop InspectorFileSystemInstrumentation
1023         https://bugs.webkit.org/show_bug.cgi?id=87460
1024
1025         Inspector does not need to track DOMFileSystem object now. So we can
1026         drop InspectorFileSystemInstrumentation.
1027
1028         Reviewed by Vsevolod Vlasov.
1029
1030         * GNUmakefile.list.am:
1031         * Modules/filesystem/DOMFileSystem.cpp:
1032         (WebCore::DOMFileSystem::create):
1033         * WebCore.gypi:
1034         * WebCore.vcproj/WebCore.vcproj:
1035         * WebCore.xcodeproj/project.pbxproj:
1036         * inspector/InspectorFileSystemAgent.cpp:
1037         (WebCore::InspectorFileSystemAgent::enable):
1038         * inspector/InspectorFileSystemAgent.h:
1039         (InspectorFileSystemAgent):
1040         * inspector/InspectorFileSystemInstrumentation.h: Removed.
1041         * inspector/InspectorInstrumentation.cpp:
1042         (WebCore):
1043         * inspector/InspectorInstrumentation.h:
1044         (WebCore):
1045         (InspectorInstrumentation):
1046
1047 2012-05-25  Ilya Tikhonovsky  <loislo@chromium.org>
1048
1049         Web Inspector: HeapProfiler: speed-up _calculateClassesRetainedSize and _buildAggregates.
1050         https://bugs.webkit.org/show_bug.cgi?id=87482
1051
1052         Engine didn't inline node's classIndex method because the switch statement in it wasn't inlineable.
1053
1054         Reviewed by Yury Semikhatsky.
1055
1056         * inspector/front-end/HeapSnapshot.js:
1057         (WebInspector.HeapSnapshotNode.prototype.classIndex):
1058
1059 2012-05-24  Andreas Kling  <kling@webkit.org>
1060
1061         Dodge style recalc when id attribute is overwritten with same value.
1062         <http://webkit.org/b/87211>
1063
1064         Reviewed by Eric Seidel.
1065
1066         Don't force style recalc when the id attribute is set to the same value it already had.
1067         ~3.5% improvement on Dromaeo's "dom-attr" locally.
1068
1069         * dom/Element.cpp:
1070         (WebCore::Element::attributeChanged):
1071
1072 2012-05-24  Yury Semikhatsky  <yurys@chromium.org>
1073
1074         Web Inspector: add profile type for native memory snapshots
1075         https://bugs.webkit.org/show_bug.cgi?id=87400
1076
1077         Reviewed by Vsevolod Vlasov.
1078
1079         Introduced new profile type and view classes for native memory snapshots.
1080         All the stuff is hidden behind an experimental setting.
1081
1082         * WebCore.gypi:
1083         * WebCore.vcproj/WebCore.vcproj:
1084         * inspector/compile-front-end.py:
1085         * inspector/front-end/NativeMemorySnapshotView.js: Added.
1086         (WebInspector.NativeMemorySnapshotView):
1087         (WebInspector.NativeMemorySnapshotView.prototype.dispose):
1088         (WebInspector.NativeMemorySnapshotView.prototype.get statusBarItems):
1089         (WebInspector.NativeMemorySnapshotView.prototype.get profile):
1090         (WebInspector.NativeMemoryProfileType):
1091         (WebInspector.NativeMemoryProfileType.prototype.get buttonTooltip):
1092         (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
1093         (WebInspector.NativeMemoryProfileType.prototype.get treeItemTitle):
1094         (WebInspector.NativeMemoryProfileType.prototype.get description):
1095         (WebInspector.NativeMemoryProfileType.prototype.createTemporaryProfile):
1096         (WebInspector.NativeMemoryProfileType.prototype.createProfile):
1097         (WebInspector.NativeMemoryProfileHeader):
1098         (WebInspector.NativeMemoryProfileHeader.prototype.createSidebarTreeElement):
1099         (WebInspector.NativeMemoryProfileHeader.prototype.createView):
1100         * inspector/front-end/ProfilesPanel.js:
1101         * inspector/front-end/Settings.js:
1102         (WebInspector.ExperimentsSettings):
1103         * inspector/front-end/WebKit.qrc:
1104         * inspector/front-end/inspector.html:
1105
1106 2012-05-25  Yury Semikhatsky  <yurys@chromium.org>
1107
1108         Web Inspector: make some profiler methods private
1109         https://bugs.webkit.org/show_bug.cgi?id=87479
1110
1111         Reviewed by Vsevolod Vlasov.
1112
1113         - Removed unused methods.
1114         - Renamed private methods so that their names start with underscore. 
1115         - ProfileLauncherView methods are called directly from ProfilesPanel instead
1116           of sending events.
1117
1118         * inspector/front-end/CPUProfileView.js:
1119         * inspector/front-end/CSSSelectorProfileView.js:
1120         (WebInspector.CSSSelectorProfileType.prototype.buttonClicked):
1121         (WebInspector.CSSSelectorProfileType.prototype._startRecordingProfile):
1122         (WebInspector.CSSSelectorProfileType.prototype.createTemporaryProfile):
1123         * inspector/front-end/ProfileLauncherView.js:
1124         (WebInspector.ProfileLauncherView.prototype.profileStarted):
1125         (WebInspector.ProfileLauncherView.prototype.profileFinished):
1126         * inspector/front-end/ProfilesPanel.js:
1127         (WebInspector.ProfileType.prototype.createProfile):
1128         (WebInspector.ProfilesPanel.prototype.toggleRecordButton):
1129         (WebInspector.ProfilesPanel.prototype._reset):
1130         (WebInspector.ProfilesPanel.prototype._populateProfiles.populateCallback.var):
1131         (WebInspector.ProfilesPanel.prototype._populateProfiles.populateCallback):
1132         (WebInspector.ProfilesPanel.prototype._populateProfiles):
1133         (WebInspector.ProfilesPanel.prototype.setRecordingProfile):
1134         (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot.done):
1135         (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot):
1136
1137 2012-05-25  Keishi Hattori  <keishi@webkit.org>
1138
1139         Bad checkValidity result on recently "enabled" form fields
1140         https://bugs.webkit.org/show_bug.cgi?id=85704
1141
1142         Reviewed by Kent Tamura.
1143
1144         Test: fast/forms/disabled-attr-checkvalidity.html
1145
1146         We were tripping on the assertion m_isValid == validity()->valid()
1147         inside HTMLFormControlElement::isValidFormControlElement.
1148         m_isValid was becoming stale because setNeedsValidityCheck wasn't called
1149         after m_willValidate changed.
1150
1151         * html/HTMLFormControlElement.cpp:
1152         (WebCore::HTMLFormControlElement::willValidate): We used const_cast
1153         because it was too difficult to remove const. We are checking if the
1154         value from willValidate has changed to avoid an infinite loop.
1155         (WebCore::HTMLFormControlElement::setNeedsWillValidateCheck):
1156
1157 2012-05-24  Kinuko Yasuda  <kinuko@chromium.org>
1158
1159         [chromium] DataTransferItem.webkitGetAsEntry() shouldn't be exposed without flag yet
1160         https://bugs.webkit.org/show_bug.cgi?id=87457
1161
1162         Reviewed by Kent Tamura.
1163
1164         No new tests, marking some tests SKIP as we stop exposing this by default.
1165
1166         * Modules/filesystem/DataTransferItemFileSystem.idl: Removed webkitGetAsEntry
1167
1168 2012-05-25  Rakesh KN  <rakesh.kn@motorola.com>
1169
1170         RadioNodeList does not include a object element
1171         https://bugs.webkit.org/show_bug.cgi?id=87371
1172
1173         Reviewed by Kent Tamura.
1174
1175         As per spec http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#category-listed
1176         Object element should also be listed in RadioNodeList object.
1177
1178         Updated existing test.
1179
1180         * html/RadioNodeList.cpp:
1181         (WebCore::RadioNodeList::checkElementMatchesRadioNodeListFilter):
1182         Compares if test element's name/id  and form matches that of the RadioNodeList filter.
1183         (WebCore::RadioNodeList::nodeMatches):
1184         Added support for Object element, check if object elements name/id matches the RadioNodeList filter.
1185         * html/RadioNodeList.h:
1186         (RadioNodeList): Ditto
1187
1188 2012-05-25  Jan Keromnes  <janx@linux.com>
1189
1190         Web Inspector: Resource object has no methods getContent and setContent
1191         https://bugs.webkit.org/show_bug.cgi?id=87424
1192
1193         This fixes the extension API so that it uses the `new Resource()`
1194         constructor, which adds the missing `getContent` and `setContent`
1195         methods to a `Resource` object.
1196
1197         Reviewed by Vsevolod Vlasov.
1198
1199         The tests were fixed accordingly in:
1200         LayoutTests/inspector/extensions/extensions-resources-expected.txt
1201
1202         * inspector/front-end/ExtensionAPI.js:
1203         (injectedExtensionAPI.Panels.prototype.setOpenResourceHandler.else.callbackWrapper):
1204         (injectedExtensionAPI.Panels.prototype.setOpenResourceHandler):
1205
1206 2012-05-24  Tim Horton  <timothy_horton@apple.com>
1207
1208         Add feature defines for web-facing parts of CSS Regions and Exclusions
1209         https://bugs.webkit.org/show_bug.cgi?id=87442
1210         <rdar://problem/10887709>
1211
1212         Reviewed by Dan Bernstein.
1213
1214         * Configurations/FeatureDefines.xcconfig:
1215         * GNUmakefile.am:
1216         * bindings/generic/RuntimeEnabledFeatures.cpp:
1217         * bindings/generic/RuntimeEnabledFeatures.h:
1218         (RuntimeEnabledFeatures):
1219         (WebCore::RuntimeEnabledFeatures::setCSSExclusionsEnabled):
1220         (WebCore::RuntimeEnabledFeatures::cssExclusionsEnabled):
1221         * bindings/js/JSCSSRuleCustom.cpp:
1222         (WebCore::toJS):
1223         * bindings/objc/DOMCSS.mm:
1224         (kitClass):
1225         * css/CSSComputedStyleDeclaration.cpp:
1226         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1227         * css/CSSParser.cpp:
1228         (WebCore::isSimpleLengthPropertyID):
1229         (WebCore::isValidKeywordPropertyAndValue):
1230         (WebCore::isKeywordPropertyID):
1231         (WebCore::CSSParser::parseValue):
1232         (WebCore::CSSParser::detectAtToken):
1233         * css/CSSProperty.cpp:
1234         (WebCore::CSSProperty::isInheritedProperty):
1235         * css/CSSPropertyNames.in:
1236         * css/CSSRule.cpp:
1237         (WebCore::CSSRule::cssText):
1238         (WebCore::CSSRule::destroy):
1239         (WebCore::CSSRule::reattach):
1240         * css/CSSRule.h:
1241         (WebCore::CSSRule::isRegionRule):
1242         * css/CSSRule.idl:
1243         * css/StyleBuilder.cpp:
1244         (WebCore::StyleBuilder::StyleBuilder):
1245         * css/StylePropertySet.cpp:
1246         (WebCore::StylePropertySet::getPropertyValue):
1247         (WebCore::StylePropertySet::asText):
1248         * css/StylePropertyShorthand.cpp:
1249         (WebCore::shorthandForProperty):
1250         * css/StylePropertyShorthand.h:
1251         * css/StyleResolver.cpp:
1252         (WebCore::StyleResolver::collectMatchingRulesForList):
1253         * css/StyleRule.cpp:
1254         (WebCore::StyleRuleBase::destroy):
1255         (WebCore::StyleRuleBase::copy):
1256         (WebCore::StyleRuleBase::createCSSOMWrapper):
1257         * css/WebKitCSSRegionRule.cpp:
1258         * css/WebKitCSSRegionRule.h:
1259         * css/WebKitCSSRegionRule.idl:
1260         * dom/Document.cpp:
1261         * dom/Document.h:
1262         * dom/Document.idl:
1263         * page/DOMWindow.idl:
1264         * page/Settings.cpp:
1265         (WebCore::Settings::Settings):
1266         * page/Settings.h:
1267         (WebCore::Settings::setCSSRegionsEnabled):
1268         (WebCore::Settings::cssRegionsEnabled):
1269
1270 2012-05-24  Geoffrey Garen  <ggaren@apple.com>
1271
1272         WebKit should be lazy-finalization-safe (esp. the DOM)
1273         https://bugs.webkit.org/show_bug.cgi?id=87456
1274
1275         Reviewed by Filip Pizlo.
1276
1277         * bindings/js/DOMWrapperWorld.cpp:
1278         (WebCore::JSStringOwner::finalize):
1279         * bindings/js/JSDOMBinding.cpp:
1280         (WebCore::jsStringSlowCase):
1281         * bindings/js/JSDOMBinding.h:
1282         (WebCore::cacheWrapper):
1283         (WebCore::uncacheWrapper): Use the new idioms.
1284
1285         (WebCore::jsString): Use get instead of find because get is simpler in
1286         the case of entries that are logically null.
1287
1288         (WebCore::domObjectWrapperMapFor): Removed, since it was unused.
1289
1290         * bindings/js/ScriptWrappable.h:
1291         (WebCore::ScriptWrappable::clearWrapper): Use the new idioms.
1292
1293         * bridge/runtime_root.cpp:
1294         (JSC::Bindings::RootObject::invalidate): Check for null while iterating,
1295         since that's possible now.
1296
1297         (JSC::Bindings::RootObject::addRuntimeObject):
1298         (JSC::Bindings::RootObject::removeRuntimeObject):
1299         (JSC::Bindings::RootObject::finalize): Use the new idioms.
1300
1301         * bridge/runtime_root.h:
1302         (RootObject): Clarified the word "need".
1303
1304 2012-05-24  Kent Tamura  <tkent@chromium.org>
1305
1306         PAGE_POPUP: window.setValueAndClosePopup should be moved to a
1307         per-context property of DOMWindow.
1308         https://bugs.webkit.org/show_bug.cgi?id=87086
1309
1310         Reviewed by Adam Barth.
1311
1312         - Introduce window.pagePagePopupController property as V8EnabledPerContext.
1313         - Move window.setValueAndClosePopup() to window.pagePopupController.
1314         So, we can remove ad-hoc ScriptController::installFunctionsForPagePopup().
1315
1316         No behavior change.
1317
1318         Test: fast/forms/date/no-page-popup-controller.html
1319
1320         * Resources/calendarPicker.js:
1321         (submitValue): Use window.pagePopupController.
1322         (handleCancel): ditto.
1323         * WebCore.gypi: Add new files.
1324         * bindings/generic/ContextEnabledFeatures.cpp:
1325         (WebCore::ContextEnabledFeatures::pagePopupEnabled): Added.
1326         * bindings/generic/ContextEnabledFeatures.h:
1327         (ContextEnabledFeatures): Added.
1328         * bindings/v8/ScriptController.cpp: Remove installFunctionsForPagePopup().
1329         * bindings/v8/ScriptController.h: ditto.
1330         * loader/FrameLoaderClient.h:
1331         (WebCore::FrameLoaderClient::allowPagePopup): Added.
1332         * page/DOMWindowPagePopup.cpp:
1333         (WebCore::DOMWindowPagePopup::DOMWindowPagePopup):
1334         Creates a PagePopupController object for the specified PagePopupClient.
1335         (WebCore::DOMWindowPagePopup::~DOMWindowPagePopup):
1336         Empty destructor to generate the RefPtr<PagePopupController> destructor.
1337         (WebCore::DOMWindowPagePopup::pagePopupController):
1338         * page/DOMWindowPagePopup.h:
1339         (DOMWindowPagePopup):
1340          - Remove setValueAndClosePopup()
1341          - Add pagePopupController()
1342          - Change the data member from PagePopupClient to PagePopupController.
1343         * page/DOMWindowPagePopup.idl: Supply per-context window.pagePopupController.
1344         * page/PagePopupController.cpp: Added. This object is attached to window.
1345         * page/PagePopupController.h: ditto.
1346         * page/PagePopupController.idl: ditto.
1347
1348 2012-05-21  Kinuko Yasuda  <kinuko@chromium.org>
1349
1350         Cleanup: add a file system call which captures the file metadata at once.
1351         https://bugs.webkit.org/show_bug.cgi?id=86995
1352
1353         Reviewed by David Levin.
1354
1355         Current File.slice() (webkitSlice()) implementation calls two separate platform calls,
1356         getFileSize() and getFileModificationTime() [both are defined in platform/FileSystem.h],
1357         to capture the file metadata, but we should have a single file system call to get them at once
1358         for two reasons: 1. save additional system call costs, and 2.  atomically obtain the file metadata.
1359
1360         No new tests: existing tests (http/tests/local/fileapi/* and fast/files/*) should pass.
1361
1362         * fileapi/File.cpp:
1363         (WebCore::File::captureSnapshot):
1364         * platform/FileMetadata.h:
1365         * platform/FileSystem.h:
1366         * platform/chromium/FileSystemChromium.cpp:
1367         (WebCore::getFileMetadata): Added.
1368         * platform/chromium/PlatformSupport.h:
1369         (PlatformSupport):
1370         * platform/gtk/FileSystemGtk.cpp:
1371         (WebCore::getFileMetadata): Added.
1372         * platform/posix/FileSystemPOSIX.cpp:
1373         (WebCore::getFileMetadata): Added.
1374         * platform/qt/FileSystemQt.cpp:
1375         (WebCore::getFileMetadata): Added.
1376         * platform/win/FileSystemWin.cpp:
1377         (WebCore::getFileSizeFromFindData):
1378         (WebCore::getFileModificationTimeFromFindData):
1379         (WebCore::getFileSize):
1380         (WebCore::getFileModificationTime):
1381         (WebCore::getFileMetadata): Added.
1382         * platform/wince/FileSystemWinCE.cpp:
1383         (WebCore::getFileSizeFromFileInfo):
1384         (WebCore::getFileModificationTimeFromFileInfo):
1385         (WebCore::getFileSize):
1386         (WebCore::getFileModificationTime):
1387         (WebCore::getFileMetadata): Added.
1388         * platform/wx/FileSystemWx.cpp:
1389         (WebCore::getFileMetadata): Added.
1390         (WebCore):
1391
1392 2012-05-24  Hironori Bono  <hbono@chromium.org>
1393
1394         Enable grammar checking on Chromium when we paste text (Take 2)
1395         https://bugs.webkit.org/show_bug.cgi?id=74393
1396
1397         Reviewed by Ryosuke Niwa.
1398
1399         This change enables grammar checking on Chromium and implements a mock grammar
1400         checker to fix a failing test.
1401
1402         Test: editing/spelling/grammar-markers.html
1403
1404         * platform/graphics/skia/GraphicsContextSkia.cpp:
1405         (WebCore::GraphicsContext::drawLineForDocumentMarker): render grammar markers in gray on Windows and Linux or in green on Mac.
1406
1407 2012-05-24  Dominic Mazzoni  <dmazzoni@google.com>
1408
1409         Crash in WebCore::AccessibilityTable::isDataTable
1410         https://bugs.webkit.org/show_bug.cgi?id=87409
1411
1412         Reviewed by Abhishek Arya.
1413
1414         Use Node::rendererIsEditable everywhere rather than
1415         Node::isContentEditable because the latter can trigger a layout
1416         and destroy the renderer. New test covers the change to
1417         AccessibilityTable.cpp, changes to AccessibilityRenderObject.cpp
1418         are covered by existing tests.
1419
1420         Test: accessibility/contenteditable-table-check-causes-crash.html
1421
1422         * accessibility/AccessibilityRenderObject.cpp:
1423         (WebCore::AccessibilityRenderObject::isReadOnly):
1424         (WebCore::AccessibilityRenderObject::contentChanged):
1425         * accessibility/AccessibilityTable.cpp:
1426         (WebCore::AccessibilityTable::isDataTable):
1427
1428 2012-05-24  Yoshifumi Inoue  <yosin@chromium.org>
1429
1430         [Forms][TextArea] Too long validation message doesn't count LF as CRLF
1431         https://bugs.webkit.org/show_bug.cgi?id=87458
1432
1433         Reviewed by Kent Tamura.
1434
1435         This patch changes current number of characters in "too long" validation message
1436         parameter to counting newline as 2 characters (CR and LF) as submission data.
1437
1438         No new tests. To have test for this change, we need to change localization
1439         text handling during DRT. We'll try.
1440
1441         * html/HTMLTextAreaElement.cpp:
1442         (WebCore::HTMLTextAreaElement::validationMessage): Use computeLengthForSubmission instead of numGraphmeClusters.
1443
1444 2012-05-24  Hayato Ito  <hayato@chromium.org>
1445
1446         Fix crashes caused by a DOMCharacterDataModified event on a text node.
1447         https://bugs.webkit.org/show_bug.cgi?id=86953
1448
1449         Reviewed by Dimitri Glazkov.
1450
1451         TextNode can be released while CharacterData::setData() will dispatch a mutation event.
1452         So protect it.
1453
1454         Mutation event itself should not be dispatched on the test case.
1455         This is being tracked by webkit bug https://bugs.webkit.org/show_bug.cgi?id=87372.
1456
1457         Test: fast/events/dom-character-data-modified-textarea-crash.html
1458
1459         * dom/CharacterData.cpp:
1460         (WebCore::CharacterData::setData):
1461
1462 2012-05-24  Philippe Normand  <pnormand@igalia.com>
1463
1464         [GTK] Add --enable-css3-flexbox configure option after r118304.
1465         https://bugs.webkit.org/show_bug.cgi?id=87455
1466
1467         Reviewed by Xan Lopez.
1468
1469         * GNUmakefile.am:
1470
1471 2012-05-24  MORITA Hajime  <morrita@google.com>
1472
1473         Scoped stylesheet should be per-document-configurable.
1474         https://bugs.webkit.org/show_bug.cgi?id=86985
1475
1476         Reviewed by Kent Tamura.
1477
1478         This change replaced RuntimeEnabledFeatures::styleScopedEnabled() callsites
1479         with newly introduced ContextEnabledFeatures::styleScopedEnabled().
1480         Clients can override the decision by implementing FrameLoaderClient::allowStyleScoped().
1481
1482         No new tests. This isn't testable on DRT.
1483
1484         * bindings/generic/ContextEnabledFeatures.cpp:
1485         (WebCore):
1486         (WebCore::ContextEnabledFeatures::styleScopedEnabled):
1487         * bindings/generic/ContextEnabledFeatures.h:
1488         (WebCore):
1489         (ContextEnabledFeatures):
1490         * css/StyleResolver.cpp:
1491         (WebCore::StyleResolver::determineScope):
1492         * css/StyleResolver.h:
1493         (StyleResolver):
1494         * html/HTMLStyleElement.cpp:
1495         (WebCore::HTMLStyleElement::registerWithScopingNode):
1496         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
1497         * loader/FrameLoaderClient.h:
1498         (WebCore::FrameLoaderClient::allowStyleScoped):
1499
1500 2012-05-24  Sheriff Bot  <webkit.review.bot@gmail.com>
1501
1502         Unreviewed, rolling out r118452.
1503         http://trac.webkit.org/changeset/118452
1504         https://bugs.webkit.org/show_bug.cgi?id=87446
1505
1506         Causes many tests to assert on Mac, NRWT bails out (Requested
1507         by sundiamonde on #webkit).
1508
1509         * rendering/RenderObject.cpp:
1510         (WebCore::RenderObject::~RenderObject):
1511         (WebCore::RenderObject::clearLayoutRootIfNeeded):
1512
1513 2012-05-24  Kevin Ollivier  <kevino@theolliviers.com>
1514
1515         [wx] Unreviewed build fix. Add contextMenuItemVector stub.
1516
1517         * platform/wx/ContextMenuWx.cpp:
1518         (WebCore):
1519         (WebCore::contextMenuItemVector):
1520
1521 2012-05-24  Raymond Toy  <rtoy@google.com>
1522
1523         Use 32-byte alignment in AudioArray if using WEBAUDIO_FFMPEG
1524         https://bugs.webkit.org/show_bug.cgi?id=87430
1525
1526         Reviewed by Chris Rogers.
1527
1528         Covered by existing tests.
1529
1530         * platform/audio/AudioArray.h:
1531         (WebCore::AudioArray::allocate):
1532
1533 2012-05-24  Antoine Labour  <piman@chromium.org>
1534
1535         [chromium] Add a setForceRenderSurface to WebLayer for test/bench purpose
1536         https://bugs.webkit.org/show_bug.cgi?id=87436
1537
1538         Reviewed by James Robinson.
1539
1540         Tested by CCLayerTreeHostCommonTest.verifyForceRenderSurface
1541
1542         * platform/graphics/chromium/LayerChromium.cpp:
1543         (WebCore::LayerChromium::LayerChromium):
1544         (WebCore::LayerChromium::setForceRenderSurface):
1545         (WebCore):
1546         (WebCore::LayerChromium::pushPropertiesTo):
1547         * platform/graphics/chromium/LayerChromium.h:
1548         (WebCore::LayerChromium::forceRenderSurface):
1549         (LayerChromium):
1550         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
1551         (WebCore::CCLayerImpl::CCLayerImpl):
1552         * platform/graphics/chromium/cc/CCLayerImpl.h:
1553         (WebCore::CCLayerImpl::forceRenderSurface):
1554         (WebCore::CCLayerImpl::setForceRenderSurface):
1555         (CCLayerImpl):
1556         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
1557         (WebCore::subtreeShouldRenderToSeparateSurface):
1558
1559 2012-05-24  Ken Buchanan  <kenrb@chromium.org>
1560
1561         Layout root not getting cleared for anonymous renderers geting destroyed
1562         https://bugs.webkit.org/show_bug.cgi?id=84002
1563
1564         Reviewed by Abhishek Arya.
1565
1566         This is a follow-up to r109406, which added a check to clear layout
1567         roots when they point to a renderer that is being destroyed. The
1568         thinking was that layout roots would never be anonymous renderers,
1569         but there are some cases where this is not true (in particular,
1570         generated content containers with overflow clips can be layout roots).
1571
1572         As in r109406, this patch has no layout test. This is because any test
1573         that exercises this behavior is caused by an existing layout bug where
1574         a child is not properly getting layout (or a renderer is getting dirtied
1575         out of order during layout) and will fail multiple ASSERTs:
1576         in particular, ASSERT(!m_layoutRoot->container() || !m_layoutRoot->
1577         container()->needsLayout()) in FrameView::scheduleRelayoutOfSubtree(),
1578         and ASSERT_NOT_REACHED() in RenderObject::clearLayoutRootIfNeeded().
1579         We are preventing those bugs from manifesting as security issues with
1580         this patch.
1581
1582         * rendering/RenderObject.cpp:
1583         (WebCore::RenderObject::~RenderObject):
1584         (WebCore::RenderObject::willBeDestroyed):
1585
1586 2012-05-24  Anders Carlsson  <andersca@apple.com>
1587
1588         Corrupted pages rendering when images are zoomed on Google+
1589         https://bugs.webkit.org/show_bug.cgi?id=87439
1590         <rdar://problem/11503078>
1591
1592         Reviewed by Beth Dakin.
1593
1594         The rect that's given to scrollContentsSlowPath is in frame view coordinates, but if we end up
1595         passing them to RenderLayer::setBackingNeedsRepaintInRect we need to account for the frame scale factor.
1596
1597         * page/FrameView.cpp:
1598         (WebCore::FrameView::scrollContentsSlowPath):
1599
1600 2012-05-24  Ryosuke Niwa  <rniwa@webkit.org>
1601
1602         REGRESSION (r112399): insertHTML doesn't respect current selection range and inserts HTML to incorrect position
1603         https://bugs.webkit.org/show_bug.cgi?id=87195
1604
1605         Reviewed by Darin Adler.
1606
1607         The bug was caused by our passing insertionPos.anchorNode() to splitTreeToNode's start node even when
1608         the position's type was an offset in a container. Fixed the bug by passing the node after the insert position
1609         or the container node if the position is at the end of the container.
1610
1611         Test: editing/pasteboard/paste-at-end-of-node-followed-by-inline-element.html
1612
1613         * editing/ReplaceSelectionCommand.cpp:
1614         (WebCore::ReplaceSelectionCommand::doApply):
1615
1616 2012-05-24  Emil A Eklund  <eae@chromium.org>
1617
1618         REGRESSION (115573): Incorrect rounding of margins for floats
1619         https://bugs.webkit.org/show_bug.cgi?id=87319
1620
1621         Reviewed by Eric Seidel.
1622
1623         In RenderBlock::computeInlinePreferredLogicalWidths we used a float to
1624         accumulate margins for floating children while the children themselves
1625         represent their margins as LayoutUnits. Due to lack of rounding this can
1626         cause the block to be too small at certain certain zoom levels, causing
1627         unwanted wrapping. 
1628
1629         This patch changes computeInlinePreferredLogicalWidths to use a
1630         LayoutUnit to accumulate the margins and thus ensures that the margin
1631         values are rounded the same way.
1632
1633         Test: fast/block/float/floats-with-margin-should-not-wrap.html
1634
1635         * rendering/RenderBlock.cpp:
1636         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
1637
1638 2012-05-24  Christophe Dumez  <christophe.dumez@intel.com>
1639
1640         postMessage and webkitPostMessage should behave the same way
1641         https://bugs.webkit.org/show_bug.cgi?id=87384
1642
1643         Reviewed by Adam Barth.
1644
1645         Make postMessage behave the same way as webkitPostMessage, meaning
1646         that it supports transfer of MessagePorts and ArrayBuffers as per
1647         the spec. Both V8 and JSC implementations have been updated.
1648
1649         Test: fast/dom/Window/window-postmessage-args.html
1650
1651         * bindings/js/JSDOMWindowCustom.cpp:
1652         (WebCore::handlePostMessage):
1653         (WebCore::JSDOMWindow::postMessage):
1654         (WebCore::JSDOMWindow::webkitPostMessage):
1655         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1656         (WebCore::handlePostMessageCallback):
1657         (WebCore::V8DOMWindow::postMessageCallback):
1658         (WebCore::V8DOMWindow::webkitPostMessageCallback):
1659         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
1660         (WebCore::handlePostMessageCallback):
1661         (WebCore::V8DedicatedWorkerContext::postMessageCallback):
1662         (WebCore::V8DedicatedWorkerContext::webkitPostMessageCallback):
1663         * bindings/v8/custom/V8MessagePortCustom.cpp:
1664         (WebCore::handlePostMessageCallback):
1665         (WebCore::V8MessagePort::postMessageCallback):
1666         (WebCore::V8MessagePort::webkitPostMessageCallback):
1667         * bindings/v8/custom/V8WorkerCustom.cpp:
1668         (WebCore::handlePostMessageCallback):
1669         (WebCore::V8Worker::postMessageCallback):
1670         (WebCore::V8Worker::webkitPostMessageCallback):
1671
1672 2012-05-24  Pablo Flouret  <pablof@motorola.com>
1673
1674         Submit button doesn't submit the form if the form is wrapped by an anchor tag
1675         https://bugs.webkit.org/show_bug.cgi?id=86719
1676
1677         Reviewed by Ryosuke Niwa.
1678
1679         When a form's button is clicked or activated with the keyboard a
1680         DOMActivate event is dispatched internally and the default handler for
1681         it takes care of processing the form submission, but the underlying
1682         event that prompted it is not set as handled and so it ends up
1683         navigating the anchor, thereby cancelling the form submission.
1684
1685         This patch sets the original click event as handled if the DOMActivate
1686         event was handled. This matches the rest of the browsers for form
1687         controls that submit a form (input type=submit, button type=submit,
1688         input type=image, etc), and matches IE for the rest of the controls
1689         (basically, IE never activates the anchor when clicking on form
1690         controls, Presto and Gecko mostly don't either, except in a few cases.
1691
1692         Test: fast/forms/form-in-anchor-controls-activation.html
1693
1694         * dom/Node.cpp:
1695         (WebCore::Node::dispatchDOMActivateEvent):
1696         (WebCore::Node::defaultEventHandler):
1697         * dom/Node.h:
1698         (Node):
1699         * html/HTMLButtonElement.cpp:
1700         (WebCore::HTMLButtonElement::defaultEventHandler):
1701
1702 2012-05-24  Crystal Zhang  <haizhang@rim.com>
1703
1704         [BlackBerry] Implement select popup and remove old hook to air popup
1705         https://bugs.webkit.org/show_bug.cgi?id=87419
1706
1707         Reviewed by Rob Buis.
1708
1709         Add new files to make file, add css file for select popup.
1710
1711         * PlatformBlackBerry.cmake:
1712         * Resources/blackberry/popupControlBlackBerry.css: Added.
1713         (html):
1714         (body):
1715         (.bottombuttonOK):
1716         (.bottombuttonCancel):
1717         (.tablebutton):
1718
1719 2012-05-24  Levi Weintraub  <leviw@chromium.org>
1720
1721         Avoid creating InlineBoxes for floating and positioned objects in isolates.
1722         https://bugs.webkit.org/show_bug.cgi?id=87277
1723
1724         Reviewed by Eric Seidel.
1725
1726         We currently will create a placeholder run for the first object we encounter inside an isolate. Then
1727         in RenderBlockLineLayout's constructBidiRuns, we replace that run with the contents of the Isolate.
1728         We run into problems when there are no valid contents in the Isolate. We can't simply remove the
1729         placeholder if there's nothing to replace it with since it may be the logically last run, which we
1730         track but can't rebuild by the time we're handling isolates (we've already shuffled the BidiRuns around).
1731
1732         With this change, we avoid creating a placeholder altogether until we hit contents in the isolate
1733         that would warrant a BidiRun in the first place.
1734
1735         Test: fast/text/international/float-as-only-child-of-isolate-crash.html
1736
1737         * rendering/InlineIterator.h:
1738         (WebCore::IsolateTracker::addFakeRunIfNecessary):
1739         * rendering/RenderBlock.h:
1740         (RenderBlock):
1741         (WebCore::RenderBlock::shouldSkipCreatingRunsForObject):
1742         * rendering/RenderBlockLineLayout.cpp:
1743         (WebCore::RenderBlock::appendRunsForObject):
1744
1745 2012-05-24  Ryosuke Niwa  <rniwa@webkit.org>
1746
1747         There are too many poorly named functions to create a fragment from markup
1748         https://bugs.webkit.org/show_bug.cgi?id=87339
1749
1750         Reviewed by Eric Seidel.
1751
1752         Moved all functions that create a fragment from markup to markup.h/cpp.
1753         There should be no behavioral change.
1754
1755         * dom/Range.cpp:
1756         (WebCore::Range::createContextualFragment):
1757         * dom/Range.h: Removed createDocumentFragmentForElement.
1758         * dom/ShadowRoot.cpp:
1759         (WebCore::ShadowRoot::setInnerHTML):
1760         * editing/markup.cpp:
1761         (WebCore::createFragmentFromMarkup):
1762         (WebCore::createFragmentForInnerOuterHTML): Renamed from createFragmentFromSource.
1763         (WebCore::createFragmentForTransformToFragment): Moved from XSLTProcessor.
1764         (WebCore::removeElementPreservingChildren): Moved from Range.
1765         (WebCore::createContextualFragment): Ditto.
1766         * editing/markup.h:
1767         * html/HTMLElement.cpp:
1768         (WebCore::HTMLElement::setInnerHTML):
1769         (WebCore::HTMLElement::setOuterHTML):
1770         (WebCore::HTMLElement::insertAdjacentHTML):
1771         * inspector/DOMPatchSupport.cpp:
1772         (WebCore::DOMPatchSupport::patchNode): Added a FIXME since this code should be using
1773         one of the functions listed in markup.h
1774         * xml/XSLTProcessor.cpp:
1775         (WebCore::XSLTProcessor::transformToFragment):
1776
1777 2012-05-24  Jer Noble  <jer.noble@apple.com>
1778
1779         MediaControlTimelineElement is adjusting time 3 times per click
1780         https://bugs.webkit.org/show_bug.cgi?id=58160
1781
1782         Reviewed by Eric Carlson.
1783
1784         No new tests; we intentionally throttle timeupdate events for the same
1785         movie time, so there is no way to write a layout test for this case.
1786
1787         Only call setCurrentTime() on mousedown or mousemove events.
1788
1789         * html/shadow/MediaControlElements.cpp:
1790         (WebCore::MediaControlTimelineElement::defaultEventHandler):
1791
1792 2012-05-24  John Mellor  <johnme@chromium.org>
1793
1794         Font Boosting: Add compile flag and runtime setting
1795         https://bugs.webkit.org/show_bug.cgi?id=87394
1796
1797         Reviewed by Adam Barth.
1798
1799         Add ENABLE_FONT_BOOSTING compile flag and fontBoostingEnabled runtime setting.
1800
1801         No functionality yet, so no new tests.
1802
1803         * Configurations/FeatureDefines.xcconfig:
1804         * GNUmakefile.am:
1805         * Target.pri:
1806         * page/Settings.cpp:
1807         (WebCore::Settings::Settings):
1808         (WebCore::Settings::setFontBoostingEnabled):
1809         (WebCore):
1810         * page/Settings.h:
1811         (Settings):
1812         (WebCore::Settings::fontBoostingEnabled):
1813
1814 2012-05-24  Greg Spencer  <gspencer@chromium.org>
1815
1816         MHTML files should be loadable from all schemes considered local,
1817         not just "file:"
1818
1819         https://bugs.webkit.org/show_bug.cgi?id=86540
1820
1821         Reviewed by Adam Barth.
1822
1823         Existing tests should verify correct function.
1824
1825         * loader/MainResourceLoader.cpp:
1826         (WebCore::MainResourceLoader::continueAfterContentPolicy):
1827         * loader/archive/mhtml/MHTMLArchive.cpp:
1828         (WebCore::MHTMLArchive::create):
1829
1830 2012-05-24  Dana Jansens  <danakj@chromium.org>
1831
1832         [chromium] Remove some leftover references to LayerTilerChromium
1833         https://bugs.webkit.org/show_bug.cgi?id=87405
1834
1835         Reviewed by James Robinson.
1836
1837         * platform/graphics/chromium/LayerChromium.h:
1838         (LayerChromium):
1839         * platform/graphics/chromium/SolidColorLayerChromium.h:
1840
1841 2012-05-24  Jessie Berlin  <jberlin@apple.com>
1842
1843         REGRESSION(r109663) All the the dom/html/level2/html/HTMLFrameElement* tests crash on Windows
1844         https://bugs.webkit.org/show_bug.cgi?id=87410
1845
1846         Reviewed by Anders Carlsson.
1847
1848         Do not pass a reference type to va_start (see r75435).
1849
1850         * platform/LocalizedStrings.cpp:
1851         (WebCore::formatLocalizedString):
1852
1853 2012-05-24  Yael Aharon  <yael.aharon@nokia.com>
1854
1855         [Qt] Stop using the flag FIXED_POSITION_CREATES_STACKING_CONTEXT
1856         https://bugs.webkit.org/show_bug.cgi?id=87392
1857
1858         Reviewed by Antonio Gomes.
1859
1860         Remove our dependency on a build flag and use the new setting.
1861
1862         No new tests.
1863
1864         * css/StyleResolver.cpp:
1865
1866 2012-05-24  Alexey Proskuryakov  <ap@apple.com>
1867
1868         [WK2] Let the client give local files universal access on a case by case basis
1869         https://bugs.webkit.org/show_bug.cgi?id=87174
1870         <rdar://problem/11024330>
1871
1872         Reviewed by Maciej Stachowiak.
1873
1874         * dom/Document.cpp: (WebCore::Document::initSecurityContext): When settings->allowUniversalAccessFromFileURLs()
1875         is false, also try asking the client for an indulgence.
1876
1877         * loader/FrameLoaderClient.h: (WebCore::FrameLoaderClient::shouldForceUniversalAccessFromLocalURL):
1878         Default implementation doesn't change anything.
1879
1880 2012-05-24  Tony Chang  <tony@chromium.org>
1881
1882         improve StyleRareNonInheritedData bit packing on Windows
1883         https://bugs.webkit.org/show_bug.cgi?id=87322
1884
1885         Reviewed by Eric Seidel.
1886
1887         Accessors for m_runningAcceleratedAnimation and m_hasAspectRatio are on RenderStyle already.
1888
1889         Also reorder the variables in operator== to be consistent with the constructor and header file.
1890         This makes it easier to add or remove values.
1891
1892         No new tests, just refactoring.
1893
1894         * rendering/style/StyleRareNonInheritedData.cpp:
1895         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
1896         (WebCore::StyleRareNonInheritedData::operator==):
1897         * rendering/style/StyleRareNonInheritedData.h:
1898         (StyleRareNonInheritedData):
1899
1900 2012-05-24  Robert Hogan  <robert@webkit.org>
1901
1902         Negative margin block doesn't properly clear a float enclosed by a previous sibling
1903         https://bugs.webkit.org/show_bug.cgi?id=10900
1904
1905         Reviewed by David Hyatt.
1906
1907         Tests: fast/css/clear-float-sibling.html
1908
1909         Parent blocks keep a list of child floats that extend out of the parent block and
1910         by implication overhang into the parent's siblings. But this doesn't work if the
1911         sibling has collapsing margins - it will not find the float in the previous block's
1912         list so will ignore the float and fail to clear it.
1913
1914         RenderBlock:collapseMargins() needs to check if a child's collapsing margin has 
1915         reduced the height of the parent up past the bottom of its previous sibling's lowest float
1916         and add the now overhanging float to the parent's float list if appropriate.
1917         
1918         * rendering/RenderBlock.cpp:
1919         (WebCore::RenderBlock::collapseMargins):
1920
1921 2012-05-24  Kinuko Yasuda  <kinuko@chromium.org>
1922
1923         Cleanup: introduce toFile() to reduce static cast from Blob to File
1924         https://bugs.webkit.org/show_bug.cgi?id=87234
1925
1926         Reviewed by Eric Seidel.
1927
1928         No new tests as this must have no side effect.
1929
1930         * bindings/v8/custom/V8BlobCustom.cpp:
1931         (WebCore::toV8):
1932         * fileapi/Blob.cpp:
1933         (WebCore::Blob::webkitSlice):
1934         * fileapi/Blob.h:
1935         (Blob):
1936         * fileapi/File.h:
1937         (WebCore::toFile): Added.
1938         (WebCore):
1939         * fileapi/FileReader.cpp:
1940         (WebCore::FileReader::readAsArrayBuffer):
1941         (WebCore::FileReader::readAsBinaryString):
1942         (WebCore::FileReader::readAsText):
1943         (WebCore::FileReader::readAsDataURL):
1944         * fileapi/WebKitBlobBuilder.cpp:
1945         (WebCore::WebKitBlobBuilder::append):
1946         * platform/chromium/ClipboardChromium.cpp:
1947         (WebCore::ClipboardChromium::files):
1948         * platform/network/FormData.cpp:
1949         (WebCore::FormData::appendKeyValuePairItems):
1950         * xml/XMLHttpRequest.cpp:
1951         (WebCore::XMLHttpRequest::send):
1952
1953 2012-05-24  Darin Adler  <darin@apple.com>
1954
1955         SVGElement::addEventListener has peculiar RefPtr usage
1956         https://bugs.webkit.org/show_bug.cgi?id=86497
1957
1958         Reviewed by Andy Estes.
1959
1960         * svg/SVGElement.cpp:
1961         (WebCore::SVGElement::addEventListener): Switch to a more-standard style of RefPtr usage,
1962         getting rid of some unneeded reference count churn; also removed an unneeded special case
1963         for zero listeners.
1964
1965 2012-05-24  Raphael Kubo da Costa  <rakuco@webkit.org>
1966
1967         [EFL] Modify keycode conversion functions to return keycodes with location information after r118001.
1968         https://bugs.webkit.org/show_bug.cgi?id=87203
1969
1970         Reviewed by Andreas Kling.
1971
1972         Add the required changes to make
1973         fast/events/keydown-leftright-keys.html pass after r118001.
1974
1975         * platform/efl/EflKeyboardUtilities.cpp:
1976         (WebCore::createWindowsKeyMap): Translate the keycodes for
1977         "{left,right}{Shift,Alt,Control}" into the right windows keyboard
1978         definitions.
1979
1980 2012-05-24  Claudio Saavedra  <csaavedra@igalia.com>
1981
1982         [Gtk] Wrong cursor used for ne-resize
1983         https://bugs.webkit.org/show_bug.cgi?id=87366
1984
1985         Reviewed by Eric Seidel.
1986
1987         * platform/gtk/CursorGtk.cpp:
1988         (WebCore::Cursor::ensurePlatformCursor): Use GDK_TOP_RIGHT_CORNER
1989         for Cursor::NorthEastPanning.
1990
1991 2012-05-24  Gabor Ballabas  <gaborb@inf.u-szeged.hu>
1992
1993         [Qt]  Fix Webkit1 + V8 build.
1994         https://bugs.webkit.org/show_bug.cgi?id=87368
1995
1996         Reviewed by Eric Seidel.
1997
1998         No new tests, because this is a buildfix.
1999
2000         * bindings/scripts/CodeGeneratorV8.pm:
2001         (GenerateImplementation):
2002         * bindings/v8/npruntime_impl.h:
2003         * bindings/v8/npruntime_priv.h:
2004
2005 2012-05-24  Dana Jansens  <danakj@chromium.org>
2006
2007         [chromium] Only display frames created with memory allocations meant to be displayed
2008         https://bugs.webkit.org/show_bug.cgi?id=85108
2009
2010         Reviewed by Adrienne Walker.
2011
2012         In this patch we remove the setVisible() code paths from CCProxy, and
2013         instead commit visiblity state along with a frame. We also commit a
2014         flag with a frame that indicates if the frame is one that can be drawn.
2015
2016         The impl host is set to visible during commit instead of using a
2017         special channel through the proxy, and the scheduler allows
2018         commits when we are waiting to draw our first frame but blocked on
2019         being non-visible.
2020
2021         canDraw is gated on a new flag that indicates if the frame is one meant
2022         for display. A frame is meant for display if the frame was generated
2023         with a memory allocation meant for display. At this time, any non-zero
2024         memory allocation is considered meant for display.
2025
2026         We prevent races by not changing the memory allocation at any time
2027         except during a commit. So we force a commit when the memory
2028         allocation needs to be adjusted and we are not visible. Similarly,
2029         we force a commit when visibility changes so that we are able to
2030         commit the visibility change to the impl tree.
2031
2032         In order to prevent drawing frames that are not meant for display
2033         with a single thread, we prevent compositing when the impl tree
2034         is not visible, with an early out in CCSingleThreadProxy.
2035
2036         Unit tests: CCLayerTreeHostTestVisibilityAndAllocationControlDrawing
2037
2038         * platform/graphics/chromium/LayerChromium.h:
2039         * platform/graphics/chromium/TiledLayerChromium.cpp:
2040         * platform/graphics/chromium/TiledLayerChromium.h:
2041         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2042         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
2043         (WebCore::CCLayerTreeHost::initializeLayerRenderer):
2044         (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
2045         (WebCore::CCLayerTreeHost::setNeedsCommit):
2046         (WebCore):
2047         (WebCore::CCLayerTreeHost::setNeedsForcedCommit):
2048         (WebCore::CCLayerTreeHost::setVisible):
2049         (WebCore::CCLayerTreeHost::setContentsMemoryAllocationLimitBytes):
2050         (WebCore::CCLayerTreeHost::scheduleComposite):
2051         (WebCore::CCLayerTreeHost::updateLayers):
2052         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2053         (CCLayerTreeHost):
2054         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2055         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
2056         (WebCore::CCLayerTreeHostImpl::canDraw):
2057         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2058         (WebCore::CCLayerTreeHostImpl::sourceFrameCanBeDrawn):
2059         (WebCore::CCLayerTreeHostImpl::setSourceFrameCanBeDrawn):
2060         (CCLayerTreeHostImpl):
2061         * platform/graphics/chromium/cc/CCProxy.h:
2062         (CCProxy):
2063         * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
2064         (WebCore::CCSchedulerStateMachine::drawSuspendedUntilCommit):
2065         (WebCore::CCSchedulerStateMachine::scheduledToDraw):
2066         (WebCore::CCSchedulerStateMachine::updateState):
2067         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2068         (WebCore::CCSingleThreadProxy::doCommit):
2069         (WebCore::CCSingleThreadProxy::setNeedsCommit):
2070         (WebCore):
2071         (WebCore::CCSingleThreadProxy::setNeedsForcedCommit):
2072         (WebCore::CCSingleThreadProxy::doComposite):
2073         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
2074         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2075         (WebCore::CCThreadProxy::CCThreadProxy):
2076         (WebCore::CCThreadProxy::setNeedsForcedCommit):
2077         (WebCore):
2078         (WebCore::CCThreadProxy::setNeedsForcedCommitOnImplThread):
2079         (WebCore::CCThreadProxy::forceBeginFrameOnImplThread):
2080         (WebCore::CCThreadProxy::beginFrame):
2081         (WebCore::CCThreadProxy::scheduledActionCommit):
2082         * platform/graphics/chromium/cc/CCThreadProxy.h:
2083         (CCThreadProxy):
2084
2085 2012-05-24  Pavel Feldman  <pfeldman@chromium.org>
2086
2087         Web Inspector: [regression] search in formatted scripts is broken.
2088         https://bugs.webkit.org/show_bug.cgi?id=87377
2089
2090         Reviewed by Vsevolod Vlasov.
2091
2092         Using formatted content in search.
2093
2094         Test: inspector/debugger/script-formatter-search.html
2095
2096         * inspector/front-end/JavaScriptSource.js:
2097         (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
2098         (WebInspector.JavaScriptSource.prototype.searchInContent.callbackWrapper):
2099         (WebInspector.JavaScriptSource.prototype.searchInContent):
2100
2101 2012-05-24  Philip Rogers  <pdr@google.com>
2102
2103         Refactor SVGAnimateTransformElement to avoid expensive determineAnimatedPropertyType call
2104         https://bugs.webkit.org/show_bug.cgi?id=87309
2105
2106         Reviewed by Nikolas Zimmermann.
2107
2108         This is a simple refactor that matches the work done in
2109         https://bugs.webkit.org/show_bug.cgi?id=87309 to avoid an expensive call.
2110
2111         No new tests, no actual effects beyond performance improvement.
2112
2113         * svg/SVGAnimateElement.h:
2114         (SVGAnimateElement):
2115         * svg/SVGAnimateTransformElement.cpp:
2116         (WebCore::SVGAnimateTransformElement::hasValidAttributeType):
2117
2118 2012-05-24  Csaba Osztrogonác  <ossy@webkit.org>
2119
2120         [Qt] Unreviewed trvial fixes.
2121
2122         * Target.pri: Typo fix after r118226.
2123         * WebCore.pri: Warning fix after r117291.
2124
2125 2012-05-24  Antti Koivisto  <antti@apple.com>
2126
2127         Move StyleRuleImport to a file of its own
2128         https://bugs.webkit.org/show_bug.cgi?id=87386
2129
2130         Rubber-stamped by Andreas Kling.
2131
2132         Move StyleRuleImport out from CSSImportRule.cpp/.h
2133
2134         * CMakeLists.txt:
2135         * GNUmakefile.list.am:
2136         * Target.pri:
2137         * WebCore.gypi:
2138         * WebCore.vcproj/WebCore.vcproj:
2139         * WebCore.xcodeproj/project.pbxproj:
2140         * css/CSSImportRule.cpp:
2141         (WebCore):
2142         (WebCore::CSSImportRule::href):
2143         * css/CSSImportRule.h:
2144         (WebCore):
2145         (CSSImportRule):
2146         * css/CSSParser.cpp:
2147         * css/StyleRuleImport.cpp: Copied from Source/WebCore/css/CSSImportRule.cpp.
2148         (WebCore):
2149         * css/StyleRuleImport.h: Copied from Source/WebCore/css/CSSImportRule.h.
2150         (WebCore):
2151         * css/StyleSheetContents.cpp:
2152
2153 2012-05-24  Sheriff Bot  <webkit.review.bot@gmail.com>
2154
2155         Unreviewed, rolling out r118352.
2156         http://trac.webkit.org/changeset/118352
2157         https://bugs.webkit.org/show_bug.cgi?id=87390
2158
2159         Caused 6 editing/spelling tests crash/fail on chromium in
2160         debug. (Requested by vsevik on #webkit).
2161
2162         * platform/graphics/skia/GraphicsContextSkia.cpp:
2163         (WebCore::GraphicsContext::drawLineForDocumentMarker):
2164
2165 2012-05-24  Alexander Pavlov  <apavlov@chromium.org>
2166
2167         Web Inspector: Support hierarchical context menus
2168         https://bugs.webkit.org/show_bug.cgi?id=86847
2169
2170         Reviewed by Pavel Feldman.
2171
2172         This patch makes use of the WebMenuItemInfo SubMenu type to expose the capability of building submenu items
2173         in the Web Inspector's context menu. ContextMenuItems are also passed/stored by reference/value rather than pointer
2174         in order to be consistent with the PlatformMenuDescription typedef.
2175
2176         * bindings/js/JSInspectorFrontendHostCustom.cpp:
2177         (WebCore::populateContextMenuItems): Enable submenu item population.
2178         (WebCore):
2179         (WebCore::JSInspectorFrontendHost::showContextMenu): Extract the menu population part into populateContextMenuItems().
2180         * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
2181         (WebCore::populateContextMenuItems): Enable submenu item population.
2182         (WebCore):
2183         (WebCore::V8InspectorFrontendHost::showContextMenuCallback): Extract the menu population part into populateContextMenuItems().
2184         * inspector/InspectorFrontendHost.cpp:
2185         (WebCore::FrontendMenuProvider::create): Use reference instead of pointer for ContextMenuItems.
2186         (WebCore::FrontendMenuProvider::FrontendMenuProvider): Use reference instead of pointer for ContextMenuItems.
2187         (WebCore::FrontendMenuProvider::populateContextMenu): Use reference instead of pointer for ContextMenuItems.
2188         (WebCore::FrontendMenuProvider::contextMenuCleared):
2189         (FrontendMenuProvider):
2190         (WebCore::InspectorFrontendHost::showContextMenu): Use reference instead of pointer for ContextMenuItems.
2191         * inspector/InspectorFrontendHost.h:
2192         (InspectorFrontendHost):
2193         * inspector/front-end/ContextMenu.js: Support the tree-like structure of context menus.
2194         (WebInspector.ContextMenuItem):
2195         (WebInspector.ContextMenuItem.prototype.id):
2196         (WebInspector.ContextMenuItem.prototype.type):
2197         (WebInspector.ContextMenuItem.prototype._buildDescriptor):
2198         (WebInspector.ContextSubMenuItem):
2199         (WebInspector.ContextSubMenuItem.prototype.appendItem):
2200         (WebInspector.ContextSubMenuItem.prototype.appendSubMenuItem):
2201         (WebInspector.ContextSubMenuItem.prototype.appendCheckboxItem):
2202         (WebInspector.ContextSubMenuItem.prototype.appendSeparator):
2203         (WebInspector.ContextSubMenuItem.prototype._buildDescriptor):
2204         (WebInspector.ContextMenu):
2205         (WebInspector.ContextMenu.prototype.nextId):
2206         (WebInspector.ContextMenu.prototype.show):
2207         (WebInspector.ContextMenu.prototype._setHandler):
2208         (WebInspector.ContextMenu.prototype._buildDescriptor):
2209         * inspector/front-end/SoftContextMenu.js:
2210         (.WebInspector.SoftContextMenu): Support sub-menus.
2211         (.WebInspector.SoftContextMenu.prototype.show):
2212         (.WebInspector.SoftContextMenu.prototype._parentGlassPaneElement):
2213         (.WebInspector.SoftContextMenu.prototype._createMenuItem):
2214         (.WebInspector.SoftContextMenu.prototype._createSubMenu):
2215         (.WebInspector.SoftContextMenu.prototype._createSeparator):
2216         (.WebInspector.SoftContextMenu.prototype._menuItemMouseUp):
2217         (.WebInspector.SoftContextMenu.prototype._focus):
2218         (.WebInspector.SoftContextMenu.prototype._triggerAction):
2219         (.WebInspector.SoftContextMenu.prototype._showSubMenu):
2220         (.WebInspector.SoftContextMenu.prototype._buildMouseEventForSubMenu):
2221         (.WebInspector.SoftContextMenu.prototype._hideSubMenu):
2222         (.WebInspector.SoftContextMenu.prototype._menuItemMouseOut):
2223         (.WebInspector.SoftContextMenu.prototype._highlightMenuItem):
2224         (.WebInspector.SoftContextMenu.prototype._menuKeyDown):
2225         (.WebInspector.SoftContextMenu.prototype._glassPaneMouseUp):
2226         (.WebInspector.SoftContextMenu.prototype._discardMenu):
2227         (.WebInspector.SoftContextMenu.prototype._discardSubMenus):
2228         * inspector/front-end/inspector.css: Support for sub-menus, separator improvement.
2229         (.soft-context-menu-separator):
2230         (.soft-context-menu-separator > .separator-line):
2231         (.soft-context-menu-item-submenu-arrow):
2232         * platform/chromium/ContextMenuChromium.cpp:
2233         (WebCore::contextMenuItemVector): Implemented.
2234         (WebCore):
2235
2236 2012-05-24  Vivek Galatage  <vivekgalatage@gmail.com>
2237
2238         Web Inspector: Breakpoints Pane should not show context menu with no breakpoints
2239         https://bugs.webkit.org/show_bug.cgi?id=87340
2240
2241         Reviewed by Pavel Feldman.
2242
2243         Removed the method _contextMenu as this would be redundant call
2244         because _breakpointContextMenu would take care of showing the remove
2245         all breakpoints option.
2246
2247         * inspector/front-end/BreakpointsSidebarPane.js:
2248         (WebInspector.JavaScriptBreakpointsSidebarPane):
2249         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointContextMenu):
2250
2251 2012-05-24  Yury Semikhatsky  <yurys@chromium.org>
2252
2253         Unreviewed. Chromium Mac build fix after r118357.
2254         Use full name specifier instead of "using" directive.
2255
2256         * inspector/InspectorMemoryAgent.cpp:
2257         (WebCore::jsHeapInfo):
2258         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2259
2260 2012-05-24  Pavel Feldman  <pfeldman@chromium.org>
2261
2262         Web Inspector: introduce virtual resource for inspector stylesheet.
2263         https://bugs.webkit.org/show_bug.cgi?id=87357
2264
2265         Reviewed by Vsevolod Vlasov.
2266
2267         This change introduces virtual resource that represents inspector stylesheet (that is added for styles added via inspector).
2268         New resource has url of form "inspector://<page url folder>/inspector-stylesheet. It enables live editing and revision
2269         history of the inspector stylesheet.
2270
2271         Test: inspector/styles/edit-inspector-stylesheet.html
2272
2273         * inspector/Inspector.json:
2274         * inspector/InspectorCSSAgent.cpp:
2275         (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
2276         (WebCore::InspectorCSSAgent::bindStyleSheet):
2277         (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
2278         (WebCore::InspectorCSSAgent::detectOrigin):
2279         * inspector/InspectorCSSAgent.h:
2280         (InspectorCSSAgent):
2281         * inspector/InspectorDOMAgent.h:
2282         (InspectorDOMAgent):
2283         (WebCore::InspectorDOMAgent::pageAgent):
2284         * inspector/InspectorStyleSheet.cpp:
2285         (WebCore::InspectorStyleSheet::create):
2286         (WebCore::InspectorStyleSheet::InspectorStyleSheet):
2287         (WebCore::InspectorStyleSheet::buildObjectForStyleSheetInfo):
2288         (WebCore::InspectorStyleSheet::buildObjectForRule):
2289         (WebCore::InspectorStyleSheet::resourceStyleSheetText):
2290         (WebCore::InspectorStyleSheetForInlineStyle::create):
2291         (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
2292         * inspector/InspectorStyleSheet.h:
2293         (WebCore):
2294         (InspectorStyleSheet):
2295         (WebCore::InspectorStyleSheet::canBind):
2296         (InspectorStyleSheetForInlineStyle):
2297         * inspector/front-end/CSSStyleModel.js:
2298         (WebInspector.CSSStyleModel):
2299         (WebInspector.CSSStyleModel.prototype._undoRedoCompleted):
2300         (WebInspector.CSSStyleModel.prototype.getViaInspectorResourceForRule):
2301         (WebInspector.CSSStyleModelResourceBinding):
2302         (WebInspector.CSSStyleModelResourceBinding.prototype.setContent):
2303         (WebInspector.CSSStyleModelResourceBinding.prototype._inspectedURLChanged):
2304         (WebInspector.CSSStyleModelResourceBinding.prototype._loadStyleSheetHeaders):
2305         (WebInspector.CSSStyleModelResourceBinding.prototype._innerStyleSheetChanged):
2306         (WebInspector.CSSStyleModelResourceBinding.prototype._getViaInspectorResource.hadersLoaded):
2307         (WebInspector.CSSStyleModelResourceBinding.prototype._getViaInspectorResource):
2308         (WebInspector.CSSStyleModelResourceBinding.prototype._viaInspectorResource.overrideRequestContent.callbackWrapper):
2309         (WebInspector.CSSStyleModelResourceBinding.prototype._viaInspectorResource.overrideRequestContent):
2310         (WebInspector.CSSStyleModelResourceBinding.prototype._viaInspectorResource):
2311         (WebInspector.CSSStyleModelResourceBinding.prototype._viaInspectorResourceURL):
2312         * inspector/front-end/Resource.js:
2313         (WebInspector.Resource):
2314         (WebInspector.Resource.prototype.isHidden):
2315         * inspector/front-end/ResourceTreeModel.js:
2316         (WebInspector.ResourceTreeModel.prototype._onRequestUpdateDropped):
2317         (WebInspector.ResourceTreeModel.prototype._addFramesRecursively):
2318         (WebInspector.ResourceTreeFrame.prototype._navigate):
2319         (WebInspector.ResourceTreeFrame.prototype.addResource):
2320         * inspector/front-end/ResourcesPanel.js:
2321         (WebInspector.FrameTreeElement.prototype.appendResource):
2322         * inspector/front-end/ScriptsPanel.js:
2323         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
2324         * inspector/front-end/StylesPanel.js:
2325         (WebInspector.InspectorStyleSource):
2326         * inspector/front-end/StylesSidebarPane.js:
2327         (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode.callback):
2328         (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode):
2329         (WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted.successCallback):
2330         (WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted):
2331
2332 2012-05-24  Robin Cao  <robin.cao@torchmobile.com.cn>
2333
2334         [BlackBerry] Possible deadlock in the WebGL code path
2335         https://bugs.webkit.org/show_bug.cgi?id=87375
2336
2337         Reviewed by Rob Buis.
2338
2339         Fix a deadlock happening in the WebGL code path. The mutex is locked
2340         but is not unlocked afterword. Also fix a possible double delete,
2341         the mutex m_frontBufferLock will be destroyed in the base class.
2342
2343         Covered by tests in fast/canvas/webgl.
2344
2345         * platform/graphics/blackberry/LayerCompositingThread.cpp:
2346         (WebCore::LayerCompositingThread::releaseTextureResources):
2347         * platform/graphics/blackberry/WebGLLayerWebKitThread.cpp:
2348         (WebCore::WebGLLayerWebKitThread::~WebGLLayerWebKitThread):
2349
2350 2012-05-24  Ian Vollick  <vollick@chromium.org>
2351
2352         [chromium] Forcibly sync running animations in the waiting state when synchronized start times are needed.
2353         https://bugs.webkit.org/show_bug.cgi?id=87153
2354
2355         Reviewed by James Robinson.
2356
2357         Unit test: CCLayerAnimationControllerTest.ForceSyncWhenSynchronizedStartTimeNeeded
2358
2359         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
2360         (WebCore::CCLayerAnimationController::replaceImplThreadAnimations):
2361
2362 2012-05-24  Ilya Tikhonovsky  <loislo@chromium.org>
2363
2364         Web Inspector: convert HeapSnapshotGridNode._provider into getter.
2365         https://bugs.webkit.org/show_bug.cgi?id=87382
2366
2367         I found that we create a provider for child nodes for the each DataGrid node in advance.
2368         It cost us one async call to the HeapSnapshot's worker per each such the node.
2369         I converted the property into the getter which is initializing the provider lazily.
2370
2371         Reviewed by Yury Semikhatsky.
2372
2373         * inspector/front-end/HeapSnapshot.js:
2374         * inspector/front-end/HeapSnapshotGridNodes.js:
2375         (WebInspector.HeapSnapshotGridNode):
2376         (WebInspector.HeapSnapshotGridNode.prototype.createProvider):
2377         (WebInspector.HeapSnapshotGridNode.prototype._provider):
2378         (WebInspector.HeapSnapshotGridNode.prototype.dispose):
2379         (WebInspector.HeapSnapshotGridNode.prototype._populate):
2380         (WebInspector.HeapSnapshotGridNode.prototype.expandWithoutPopulate):
2381         (WebInspector.HeapSnapshotGridNode.prototype._populateChildren.serializeNextChunk):
2382         (WebInspector.HeapSnapshotGridNode.prototype.sort):
2383         (WebInspector.HeapSnapshotGenericObjectNode):
2384         (WebInspector.HeapSnapshotGenericObjectNode.prototype.updateHasChildren):
2385         (WebInspector.HeapSnapshotObjectNode):
2386         (WebInspector.HeapSnapshotInstanceNode):
2387         (WebInspector.HeapSnapshotConstructorNode):
2388         (WebInspector.HeapSnapshotConstructorNode.prototype.createProvider):
2389         (WebInspector.HeapSnapshotConstructorNode.prototype.revealNodeBySnapshotObjectId):
2390         (WebInspector.HeapSnapshotDiffNode):
2391         (WebInspector.HeapSnapshotDiffNode.prototype.createProvider):
2392         (WebInspector.HeapSnapshotDominatorObjectNode):
2393         (WebInspector.HeapSnapshotDominatorObjectNode.prototype.createProvider):
2394         (WebInspector.HeapSnapshotDominatorObjectNode.prototype.retrieveChildBySnapshotObjectId):
2395
2396 2012-05-24  Rakesh KN  <rakesh.kn@motorola.com>
2397
2398         Filter for RadioNodeList should be case sensitive.
2399         https://bugs.webkit.org/show_bug.cgi?id=87369
2400
2401         Reviewed by Kent Tamura.
2402
2403         Element's id/name attribute matching criteria is case sensitive now.
2404
2405         Modified existing test.
2406
2407         * html/RadioNodeList.cpp:
2408         (WebCore::RadioNodeList::nodeMatches):
2409         Element matching criteria is case sensitive.
2410
2411 2012-05-23  Yury Semikhatsky  <yurys@chromium.org>
2412
2413         Web Inspector: add a command to InspectorMemoryAgent for getting process memory break down
2414         https://bugs.webkit.org/show_bug.cgi?id=87263
2415
2416         Reviewed by Pavel Feldman.
2417
2418         Introduced new protocol command Memory.getProcessMemoryDistribution which returns
2419         memory distribution for the inspected process. Currently only JS allocated and used
2420         heap size is included.
2421
2422         * inspector/Inspector.json:
2423         * inspector/InspectorMemoryAgent.cpp:
2424         (WebCore::jsHeapInfo):
2425         (WebCore):
2426         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2427         * inspector/InspectorMemoryAgent.h:
2428         (InspectorMemoryAgent):
2429         * platform/chromium/PlatformSupport.h:
2430         (PlatformSupport):
2431
2432 2012-05-24  Nikolas Zimmermann  <nzimmermann@rim.com>
2433
2434         SVGZoomAndPan constants are missing from window object
2435         https://bugs.webkit.org/show_bug.cgi?id=15494
2436
2437         Reviewed by Rob Buis.
2438
2439         Generate the SVGZoomAndPanConstructor, so that the constants defined in the IDL
2440         can be reached from the bindings. Provide a stub-implementation of ref/deref
2441         that's never used, as we don't actually use JSSVGZoomAndPan which needs this, but
2442         only the JSSVGZoomAndPanConstructor.
2443
2444         Add a new IDL flag "SuppressToJSObject" which disables generation of toJS/toV8
2445         methods for classes that are only used in SVGs interfaces via multiple inheritance.
2446         This affects: SVGFitToViewBox, SVGTests, SVGLangSapce, SVGExternalResourcesRequired, etc.
2447
2448         Unlike those classes SVGZoomAndPan defines constants, and thus needs a generated Constructor.
2449         That requires us to build JSSVGZoomAndPan.* (JSSVGFitToViewBox/etc. is generated, but not built!).
2450         Unfortunately this causes compilation problems on Windows, as it builds all sources in a single-file.
2451         MSVC can't decide whether it should call toJS(Node*) or toJS(SVGZoomAndPan*) for a SVGSVGElement.
2452         To avoid these problems stop generating toJS/toV8 completely for all SVG MI types. They were
2453         never used before, so there's no point in actually generating them, as it's now causing problems.
2454
2455         This is a preparation towards bug 15495, which covers implementing
2456         SVGSVGElement.currentView and the SVGViewSpec interface.
2457
2458         No new tests. The SVGZoomAndPan constructor is covered by existing tests, now that its enabled.
2459
2460         * CMakeLists.txt:
2461         * DerivedSources.cpp:
2462         * DerivedSources.pri:
2463         * GNUmakefile.list.am:
2464         * WebCore.gyp/WebCore.gyp:
2465         * WebCore.vcproj/WebCore.vcproj:
2466         * WebCore.xcodeproj/project.pbxproj:
2467         * bindings/scripts/CodeGeneratorJS.pm:
2468         (ShouldGenerateToJSDeclaration):
2469         (ShouldGenerateToJSImplementation):
2470         (GenerateHeader):
2471         (GenerateImplementation):
2472         * bindings/scripts/CodeGeneratorV8.pm:
2473         (GenerateHeader):
2474         * bindings/scripts/IDLAttributes.txt:
2475         * gyp/WebCore.gyp:
2476         * page/DOMWindow.idl:
2477         * svg/SVGDocument.cpp:
2478         (WebCore::SVGDocument::zoomAndPanEnabled):
2479         * svg/SVGExternalResourcesRequired.idl:
2480         * svg/SVGFitToViewBox.idl:
2481         * svg/SVGLangSpace.idl:
2482         * svg/SVGLocatable.idl:
2483         * svg/SVGRenderingIntent.idl:
2484         * svg/SVGSVGElement.cpp:
2485         (WebCore::SVGSVGElement::SVGSVGElement):
2486         (WebCore::SVGSVGElement::parseAttribute):
2487         (WebCore::SVGSVGElement::viewBoxToViewTransform):
2488         (WebCore::SVGSVGElement::setupInitialView):
2489         (WebCore::SVGSVGElement::inheritViewAttributes):
2490         * svg/SVGSVGElement.h:
2491         (SVGSVGElement):
2492         (WebCore::SVGSVGElement::useCurrentView):
2493         (WebCore::SVGSVGElement::setUseCurrentView):
2494         (WebCore::SVGSVGElement::zoomAndPan):
2495         (WebCore::SVGSVGElement::setZoomAndPan):
2496         * svg/SVGStylable.idl:
2497         * svg/SVGTests.idl:
2498         * svg/SVGURIReference.idl:
2499         * svg/SVGUnitTypes.idl:
2500         * svg/SVGViewElement.cpp:
2501         (WebCore::SVGViewElement::SVGViewElement):
2502         (WebCore::SVGViewElement::parseAttribute):
2503         * svg/SVGViewElement.h:
2504         (SVGViewElement):
2505         (WebCore::SVGViewElement::zoomAndPan):
2506         (WebCore::SVGViewElement::setZoomAndPan):
2507         * svg/SVGViewSpec.cpp:
2508         (WebCore::SVGViewSpec::SVGViewSpec):
2509         (WebCore::SVGViewSpec::setTransformString):
2510         (WebCore::SVGViewSpec::parseViewSpec):
2511         * svg/SVGViewSpec.h:
2512         (SVGViewSpec):
2513         (WebCore::SVGViewSpec::transformBaseValue):
2514         (WebCore::SVGViewSpec::zoomAndPan):
2515         (WebCore::SVGViewSpec::setZoomAndPanBaseValue):
2516         * svg/SVGZoomAndPan.cpp:
2517         (WebCore::SVGZoomAndPan::isKnownAttribute):
2518         (WebCore::SVGZoomAndPan::addSupportedAttributes):
2519         (WebCore):
2520         (WebCore::SVGZoomAndPan::parseZoomAndPan):
2521         (WebCore::SVGZoomAndPan::ref):
2522         (WebCore::SVGZoomAndPan::deref):
2523         (WebCore::SVGZoomAndPan::setZoomAndPan):
2524         * svg/SVGZoomAndPan.h:
2525         (SVGZoomAndPan):
2526         (WebCore::SVGZoomAndPan::parseFromNumber):
2527         (WebCore::SVGZoomAndPan::parseAttribute):
2528         (WebCore::SVGZoomAndPan::zoomAndPan):
2529         * svg/SVGZoomAndPan.idl:
2530
2531 2012-05-24  Hironori Bono  <hbono@chromium.org>
2532
2533         Enable grammar checking on Chromium when we paste text.
2534         https://bugs.webkit.org/show_bug.cgi?id=74393
2535
2536         Reviewed by Hajime Morita.
2537
2538         This change enables grammar checking on Chromium and implements a mock grammar
2539         checker to fix a failing test.
2540
2541         Test: editing/spelling/grammar-markers.html
2542
2543         * platform/graphics/skia/GraphicsContextSkia.cpp:
2544         (WebCore::GraphicsContext::drawLineForDocumentMarker): render grammar markers in gray on Windows and Linux or in green on Mac.
2545
2546 2012-05-17  Andrey Kosyakov  <caseq@chromium.org>
2547
2548         Web Inspector: add inspector instrumentation interface for compositing
2549         https://bugs.webkit.org/show_bug.cgi?id=83842
2550
2551         Reviewed by Pavel Feldman.
2552
2553         - added instrumentation methods to mark start/end of layer compositing;
2554         - added associated timeline record type (CompositeLayers);
2555         - plumbed the calls from instrumentation up to the timeline panel;
2556         - actual call-sites are platform-specific and will come as separate patches.
2557
2558         * inspector/InspectorInstrumentation.cpp:
2559         (WebCore::InspectorInstrumentation::willCompositeImpl):
2560         (WebCore):
2561         (WebCore::InspectorInstrumentation::didCompositeImpl):
2562         * inspector/InspectorInstrumentation.h:
2563         (InspectorInstrumentation):
2564         (WebCore::InspectorInstrumentation::willComposite):
2565         (WebCore):
2566         (WebCore::InspectorInstrumentation::didComposite):
2567         * inspector/InspectorTimelineAgent.cpp:
2568         (TimelineRecordType):
2569         (WebCore::InspectorTimelineAgent::willComposite):
2570         (WebCore):
2571         (WebCore::InspectorTimelineAgent::didComposite):
2572         * inspector/InspectorTimelineAgent.h:
2573         (InspectorTimelineAgent):
2574         * inspector/front-end/TimelineModel.js:
2575         * inspector/front-end/TimelinePresentationModel.js:
2576         (WebInspector.TimelinePresentationModel.recordStyle):
2577
2578 2012-05-24  Ilya Tikhonovsky  <loislo@chromium.org>
2579
2580         Unreviewed Web Inspector: remove obsolete isDetailedSnapshot method from HeapSnapshotView.
2581
2582         * inspector/front-end/HeapSnapshotView.js:
2583
2584 2012-05-24  Vivek Galatage  <vivekgalatage@gmail.com>
2585
2586         Web Inspector: localStorage items are not updated when the storage changes
2587         https://bugs.webkit.org/show_bug.cgi?id=83012
2588
2589         Reviewed by Pavel Feldman.
2590
2591         Renamed the inspector protocol UpdateDOMStorage to domStorageUpdated.
2592         Instrumented StorageEventDispatcher to send the update event to the
2593         front-end. Also removed the way DOM Storage Agent used to listen for
2594         the storage events. Added new test to verify the update notifications.
2595
2596         Test: inspector/storage-panel-dom-storage-update.html
2597
2598         * dom/EventListener.h:
2599         * inspector/Inspector.json:
2600         * inspector/InspectorDOMStorageAgent.cpp:
2601         (WebCore):
2602         (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
2603         (WebCore::InspectorDOMStorageAgent::storageId):
2604         (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
2605         (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
2606         * inspector/InspectorDOMStorageAgent.h:
2607         (InspectorDOMStorageAgent):
2608         * inspector/InspectorDOMStorageResource.cpp:
2609         (WebCore::InspectorDOMStorageResource::InspectorDOMStorageResource):
2610         (WebCore::InspectorDOMStorageResource::isSameHostAndType):
2611         (WebCore::InspectorDOMStorageResource::unbind):
2612         * inspector/InspectorDOMStorageResource.h:
2613         (WebCore):
2614         (InspectorDOMStorageResource):
2615         (WebCore::InspectorDOMStorageResource::create):
2616         (WebCore::InspectorDOMStorageResource::id):
2617         (WebCore::InspectorDOMStorageResource::storageArea):
2618         (WebCore::InspectorDOMStorageResource::frame):
2619         * inspector/InspectorInstrumentation.cpp:
2620         (WebCore::InspectorInstrumentation::didDispatchDOMStorageEventImpl):
2621         (WebCore):
2622         * inspector/InspectorInstrumentation.h:
2623         (InspectorInstrumentation):
2624         (WebCore::InspectorInstrumentation::didUseDOMStorage):
2625         (WebCore):
2626         (WebCore::InspectorInstrumentation::didDispatchDOMStorageEvent):
2627         * inspector/front-end/DOMStorage.js:
2628         (WebInspector.DOMStorageDispatcher.prototype.domStorageUpdated):
2629         * inspector/front-end/ResourcesPanel.js:
2630         (WebInspector.ResourcesPanel.prototype.domStorageUpdated):
2631         * storage/StorageEventDispatcher.cpp:
2632         (WebCore::StorageEventDispatcher::dispatch):
2633
2634 2012-05-23  Ilya Tikhonovsky  <loislo@chromium.org>
2635
2636         Web Inspector: introduce console proxy object for HeapSnapshot worker.
2637         https://bugs.webkit.org/show_bug.cgi?id=87346
2638
2639         There is no console object in html5 workers at the moment.
2640         This makes me sad when I'm troubleshooting the HeapSnapshot stuff.
2641         I wrote a simplest proxy object which sends the log, info and error messages
2642         to the WebInspector window.
2643
2644         Reviewed by Pavel Feldman.
2645
2646         * inspector/front-end/HeapSnapshotProxy.js:
2647         (WebInspector.HeapSnapshotRealWorker.prototype._messageReceived):
2648         * inspector/front-end/HeapSnapshotWorker.js:
2649         (WebInspector.WorkerConsole):
2650         (WebInspector.WorkerConsole.prototype.log):
2651         (WebInspector.WorkerConsole.prototype.error):
2652         (WebInspector.WorkerConsole.prototype.info):
2653         (WebInspector.WorkerConsole.prototype._postMessage):
2654
2655 2012-05-24  Shinya Kawanaka  <shinyak@chromium.org>
2656
2657         Elements in Shadow DOM are not resizable.
2658         https://bugs.webkit.org/show_bug.cgi?id=87342
2659
2660         Reviewed by Ryosuke Niwa.
2661
2662         In RenderLayer::resize(), shadowAncestorNode() was used but if the ancestor node is used,
2663         it is not possible to resize elements in Shadow DOM.
2664
2665         The comments said it is necessary for textarea, however actually it is not necessary now.
2666         Existing test (fast/css/resize-corner-tracking) covers it.
2667
2668         Test: fast/dom/shadow/resize-in-shadow-dom.html
2669
2670         * rendering/RenderLayer.cpp:
2671         (WebCore::RenderLayer::resize):
2672
2673 2012-05-24  Antti Koivisto  <antti@apple.com>
2674
2675         Move StyleSheetContents to a separate file
2676         https://bugs.webkit.org/show_bug.cgi?id=87354
2677
2678         Reviewed by Eric Seidel.
2679
2680         Move StyleSheetContents class to StyleSheetContents.h/cpp.
2681
2682         * CMakeLists.txt:
2683         * GNUmakefile.list.am:
2684         * Target.pri:
2685         * WebCore.gypi:
2686         * WebCore.vcproj/WebCore.vcproj:
2687         * WebCore.xcodeproj/project.pbxproj:
2688         * css/CSSFontFaceSrcValue.cpp:
2689         * css/CSSGrammar.y:
2690         * css/CSSImportRule.cpp:
2691         * css/CSSParser.cpp:
2692         * css/CSSPrimitiveValue.cpp:
2693         * css/CSSRule.cpp:
2694         * css/CSSStyleSheet.cpp:
2695         (WebCore::CSSStyleSheet::create):
2696         (WebCore::CSSStyleSheet::href):
2697         (WebCore):
2698         (WebCore::CSSStyleSheet::baseURL):
2699         (WebCore::CSSStyleSheet::isLoading):
2700         * css/CSSStyleSheet.h:
2701         (WebCore):
2702         (CSSStyleSheet):
2703         * css/StylePropertySet.cpp:
2704         * css/StyleResolver.cpp:
2705         * css/StyleSheetContents.cpp: Copied from css/CSSStyleSheet.cpp.
2706         (WebCore):
2707         * css/StyleSheetContents.h: Copied from css/CSSStyleSheet.h.
2708         (WebCore):
2709         * dom/DOMImplementation.cpp:
2710         (WebCore::XMLMIMETypeRegExp::XMLMIMETypeRegExp):
2711         * dom/Document.cpp:
2712         * dom/ProcessingInstruction.cpp:
2713         * dom/StyleElement.cpp:
2714         * html/HTMLLinkElement.cpp:
2715         * html/HTMLStyleElement.cpp:
2716         * inspector/InspectorStyleSheet.cpp:
2717         * loader/cache/CachedCSSStyleSheet.cpp:
2718         * page/PageSerializer.cpp:
2719
2720 2012-05-24  Kristóf Kosztyó  <kkristof@inf.u-szeged.hu>
2721
2722         [Qt] Buildfix for the minimal build because the r118197 broke it.
2723         https://bugs.webkit.org/show_bug.cgi?id=87096
2724
2725         Reviewed by Csaba Osztrogonác.
2726
2727         * plugins/PluginData.cpp:
2728         (WebCore):
2729         (WebCore::PluginData::refresh):
2730         (WebCore::PluginData::initPlugins):
2731
2732 2012-05-23  Ilya Tikhonovsky  <loislo@chromium.org>
2733
2734         Unreviewed: Web Inspector single line fix for r118162.
2735
2736         * inspector/front-end/HeapSnapshotDataGrids.js:
2737         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._populateChildren):
2738
2739 2012-05-23  Lu Guanqun  <guanqun.lu@intel.com>
2740
2741         sort the array 'non_wrapper_types'
2742         https://bugs.webkit.org/show_bug.cgi?id=87335
2743
2744         Reviewed by Kentaro Hara.
2745
2746         * bindings/scripts/CodeGeneratorV8.pm:
2747
2748 2012-05-23  Shinya Kawanaka  <shinyak@chromium.org>
2749
2750         Document.elementFromPoint exposes inner element of Shadow DOM.
2751         https://bugs.webkit.org/show_bug.cgi?id=87235
2752
2753         Reviewed by Dimitri Glazkov.
2754
2755         Document::elementFromPoint didn't consider nested Shadow DOM.
2756         The container node should be adjusted up to document TreeScope beyond ShadowRoot TreeScope.
2757
2758         Test: fast/dom/shadow/element-from-point-in-nested-shadow.html
2759
2760         * dom/Document.cpp:
2761         (WebCore::Document::elementFromPoint):
2762
2763 2012-05-23  Sheriff Bot  <webkit.review.bot@gmail.com>
2764
2765         Unreviewed, rolling out r118297.
2766         http://trac.webkit.org/changeset/118297
2767         https://bugs.webkit.org/show_bug.cgi?id=87338
2768
2769         It caused several layout failures on Mac (Requested by
2770         sundiamonde on #webkit).
2771
2772         * rendering/RenderBlock.cpp:
2773         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
2774
2775 2012-05-23  Shinya Kawanaka  <shinyak@chromium.org>
2776
2777         Document.caretRangeFromPoint exposes inner elemnet of Shadow DOM.
2778         https://bugs.webkit.org/show_bug.cgi?id=87231
2779
2780         Reviewed by Dimitri Glazkov.
2781
2782         Document::caretRangeFromPoint didn't consider nested Shadow DOM.
2783         The container node should be adjusted up to document TreeScope beyond ShadowRoot TreeScope.
2784
2785         Test: fast/dom/shadow/caret-range-from-point-in-nested-shadow.html
2786
2787         * dom/Document.cpp:
2788         (WebCore::Document::caretRangeFromPoint):
2789
2790 2012-05-23  Julien Chaffraix  <jchaffraix@webkit.org>
2791
2792         Crash in RenderTableCol::nextColumn
2793         https://bugs.webkit.org/show_bug.cgi?id=87314
2794
2795         Reviewed by Abhishek Arya.
2796
2797         Tests: fast/table/canvas-column-in-column-group.html
2798                fast/table/columngroup-inside-columngroup.html
2799
2800         The issue comes from elements not abiding by the display property (e.g. canvas). This means
2801         that any renderer with display: table-column would pass the current isChildAllowed check and
2802         would confuse our algorithm to iterate.
2803
2804         We were getting away with allowing those children as table columns or column groups don't
2805         paint themselves but it's better to just not allow such children in the first place.
2806
2807         * rendering/RenderTableCol.cpp:
2808         (WebCore::RenderTableCol::isChildAllowed):
2809         Fixed the logic to only accept proper column renderer (RenderTableCol with display: column
2810         to ignore column-groups). Also removed an unneeded NULL-check.
2811
2812 2012-05-23  Jer Noble  <jer.noble@apple.com>
2813
2814         REGRESSION: compositing/video/video-poster.html fails on Mac
2815         https://bugs.webkit.org/show_bug.cgi?id=87199
2816
2817         Reviewed by Maciej Stachowiak.
2818
2819         No new tests; fixes failing compositing/video/video-poster.html test.
2820
2821         Instead of creating the video layer directly, simply allow the layer
2822         to be created in updateStates() by changing the definition of
2823         isReadyForVideoSetup() to bypass the m_isAllowedToRender check if
2824         the player reports a video track is present.  This causes the video layer
2825         to be created and for future calls to prepareForRendering() to result
2826         in calls to mediaPlayerRenderingModeChanged().
2827
2828         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
2829         (WebCore::MediaPlayerPrivateAVFoundation::isReadyForVideoSetup):
2830         (WebCore::MediaPlayerPrivateAVFoundation::metadataLoaded):
2831
2832 2012-05-23  Nico Weber  <thakis@chromium.org>
2833
2834         [chromium/mac] Unbreak popup menus.
2835         https://bugs.webkit.org/show_bug.cgi?id=87325
2836
2837         Reviewed by David Levin.
2838
2839         http://svn.webkit.org/repository/webkit/trunk@117607 added this function, but the
2840         Chromium/Mac build doesn't use the file added in that change and hence didn't have
2841         the category method.. Adding it doesn't help, as the category calls a
2842         10.7-only function. Just don't use the category for chromium/mac. Fixes
2843         http://crbug.com/129418
2844
2845         * platform/mac/WebCoreNSCellExtras.h:
2846
2847 2012-05-23  Ojan Vafai  <ojan@chromium.org>
2848
2849         add back the ability to disable flexbox
2850         https://bugs.webkit.org/show_bug.cgi?id=87147
2851
2852         Reviewed by Tony Chang.
2853
2854         * Configurations/FeatureDefines.xcconfig:
2855         * css/CSSParser.cpp:
2856         (WebCore::isValidKeywordPropertyAndValue):
2857
2858 2012-05-23  Shinya Kawanaka  <shinyak@chromium.org>
2859
2860         [Shadow] mousewheel event isn't fired on nodes in Shadow DOM.
2861         https://bugs.webkit.org/show_bug.cgi?id=87218
2862
2863         Reviewed by Dimitri Glazkov.
2864
2865         EventHander::handleWheelEvent re-targets an event to a shadow ancestor node,
2866         however it should be done by adjusting event target. So we don't need to have it.
2867
2868         Tests: fast/dom/shadow/wheel-event-in-shadow-dom.html
2869                fast/dom/shadow/wheel-event-on-input-in-shadow-dom.html
2870
2871         * page/EventHandler.cpp:
2872         (WebCore::EventHandler::handleWheelEvent):
2873
2874 2012-05-23  Huang Dongsung  <luxtella@company100.net>
2875
2876         Remove an unused setter in CachedResource.h.
2877         https://bugs.webkit.org/show_bug.cgi?id=87324
2878
2879         CachedResource::setInLiveDecodedResourcesList was defined in r24925, but it has
2880         been unused.
2881
2882         Reviewed by Darin Adler.
2883
2884         * loader/cache/CachedResource.h:
2885
2886 2012-05-23  Hayato Ito  <hayato@chromium.org>
2887
2888         Adjust a target node of a mouse event correctly when a distributed text node is clicked.
2889         https://bugs.webkit.org/show_bug.cgi?id=86999
2890
2891         Reviewed by Dimitri Glazkov.
2892
2893         Make EventHandler::updateMouseEventTargetNode() be aware of shadow dom subtree
2894         so that an insertion point can receive an event when a distributed text node is clicked.
2895
2896         Tests: fast/dom/shadow/shadow-dom-event-dispatching.html
2897
2898         * page/EventHandler.cpp:
2899         (WebCore::EventHandler::updateMouseEventTargetNode):
2900
2901 2012-05-23  Shinya Kawanaka  <shinyak@chromium.org>
2902
2903         [Shadow] drop event is not fired on nodes in Shadow DOM
2904         https://bugs.webkit.org/show_bug.cgi?id=85774
2905
2906         Reviewed by Dimitri Glazkov.
2907
2908         EventHander::updateDragAndDrop re-targets an event to a shadow ancestor node,
2909         however it should be done by adjusting event target. So we don't need to have it.
2910
2911         Tests: fast/dom/shadow/drop-event-for-input-in-shadow.html
2912                fast/dom/shadow/drop-event-in-shadow.html
2913
2914         * page/EventHandler.cpp:
2915         (WebCore::EventHandler::updateDragAndDrop):
2916
2917 2012-05-23  Emil A Eklund  <eae@chromium.org>
2918
2919         REGRESSION (115573): Incorrect rounding of margins for floats
2920         https://bugs.webkit.org/show_bug.cgi?id=87319
2921
2922         Reviewed by Eric Seidel.
2923
2924         In RenderBlock::computeInlinePreferredLogicalWidths we used a float to
2925         accumulate margins for floating children while the children themselves
2926         represent their margins as LayoutUnits. Due to lack of rounding this can
2927         cause the block to be too small at certain certain zoom levels, causing
2928         unwanted wrapping. 
2929
2930         This patch changes computeInlinePreferredLogicalWidths to use a
2931         LayoutUnit to accumulate the margins and thus ensures that the margin
2932         values are rounded the same way.
2933
2934         Test: fast/block/float/floats-with-margin-should-not-wrap.html
2935
2936         * rendering/RenderBlock.cpp:
2937         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
2938
2939 2012-05-23  Huang Dongsung  <luxtella@company100.net>
2940
2941         Remove unused declarations in MemoryCache.h
2942         https://bugs.webkit.org/show_bug.cgi?id=87323
2943
2944         It is originated from r75912.
2945
2946         Reviewed by Darin Adler.
2947
2948         * loader/cache/MemoryCache.h:
2949
2950 2012-05-23  Eric Seidel  <eric@webkit.org>
2951
2952         Add seamless layout code (and pass most of the remaining seamless tests)
2953         https://bugs.webkit.org/show_bug.cgi?id=86608
2954
2955         Reviewed by Ojan Vafai.
2956
2957         This patch contains almost all the layout changes needed for seamless iframes.
2958         I removed the scroll-bar avoiding code at the last moment, as it didn't
2959         work for platforms other than mac-lion.  I'll add that, as well as the
2960         HTMLIFrameElement.seamless idl attribute in a follow-up patch.
2961
2962         Seamless iframes piggy-back a bit on the existing frame-flattening
2963         logic, however seamless is different from frame-flattening in a few ways:
2964         - Frame flattening can only ever make an iframe larger (seamless just behaves like a normal div).
2965         - Frame flattening disables scrollbars (seamless frames behave like normal overflow: auto divs).
2966         - Seamless only has to work with iframes (flattening works with frame/frameset as well).
2967         - Seamless support shrink-wrap size negotiation when the iframe is inline.
2968
2969         Test: fast/frames/seamless/seamless-percent-height.html
2970
2971         * css/StyleResolver.cpp:
2972         (WebCore::StyleResolver::adjustRenderStyle): map inline -> inline-block for seamless iframes.
2973         * dom/Document.cpp:
2974         (WebCore::Document::scheduleStyleRecalc):
2975          - Seamless iframes don't manage their own style recalc.
2976         (WebCore::Document::recalcStyle):
2977          - We should make sure our parent is resolved before we are, but currently that causes some tests to crash
2978            I don't have a test to demonstrate this need yet, as presumably it's fulfilled through other codepaths atm.
2979         * page/FrameView.cpp:
2980         (WebCore::FrameView::scheduleRelayout): Do the cheaper check first.
2981         (WebCore::FrameView::isInChildFrameWithFrameFlattening): Make frameview layout abort child layouts like how frame flattening does.
2982         * rendering/RenderBox.h:
2983         (WebCore::RenderBox::stretchesToViewport): Disable the stretch-to-viewport quirk for seamless iframes (it makes no sense and breaks the layout code).
2984         * rendering/RenderIFrame.cpp:
2985         (WebCore::RenderIFrame::computeLogicalHeight):
2986          - This function is needed for the child document to participate in the normal block shrink-wrap algorithm.
2987            Thankfully all the shrink-wrap logic is in RenderBox instead of RenderBlock. In the future we may make
2988            RenderIframe a RenderBlock for the seamless case. We may just split RenderIframe into two renderers.
2989         (WebCore::RenderIFrame::computeLogicalWidth):
2990         (WebCore::RenderIFrame::shouldComputeSizeAsReplaced):
2991          - seamless iframes behave like blocks, not inline replaced elements.
2992         (WebCore):
2993         (WebCore::RenderIFrame::isInlineBlockOrInlineTable):
2994          - Behave like an inline-block when marked inline.
2995         (WebCore::RenderIFrame::minPreferredLogicalWidth):
2996          - When asked for our pref widths, return those of our child document.
2997         (WebCore::RenderIFrame::maxPreferredLogicalWidth):
2998         (WebCore::RenderIFrame::isSeamless): helper function
2999         (WebCore::RenderIFrame::contentRootRenderer): helper function
3000         (WebCore::RenderIFrame::flattenFrame): seamless iframes never use the frame-flattening feature.
3001         (WebCore::RenderIFrame::layoutSeamlessly): The guts of seamless layout.
3002         (WebCore::RenderIFrame::layout):
3003         * rendering/RenderIFrame.h:
3004         (WebCore):
3005         (RenderIFrame):
3006
3007 2012-05-23  Rafael Brandao  <rafael.lobo@openbossa.org>
3008
3009         [Qt] GraphicsContext should avoid converting rotation angle to degrees
3010         https://bugs.webkit.org/show_bug.cgi?id=87317
3011
3012         Reviewed by Noam Rosenthal.
3013
3014         The angle for rotate is already in radians, so we should take advantage of it
3015         by using QTransform::rotateRadians, rather than converting it back internally.
3016
3017         * platform/graphics/qt/GraphicsContextQt.cpp:
3018         (WebCore::GraphicsContext::rotate):
3019
3020 2012-05-23  David Tseng  <dtseng@google.com>
3021
3022         AX: Prevents assertion from potentially dereferencing null pointer.
3023         https://bugs.webkit.org/show_bug.cgi?id=87290
3024
3025         Reviewed by Chris Fleizach.
3026
3027         Changes to assertions. Coverage by existing tests.
3028
3029         * accessibility/AccessibilityTable.cpp:
3030         (WebCore::AccessibilityTable::cellForColumnAndRow):
3031
3032 2012-05-23  Tony Chang  <tony@chromium.org>
3033
3034         auto margins on flexbox should allocate space in the cross direction
3035         https://bugs.webkit.org/show_bug.cgi?id=86913
3036
3037         Reviewed by Ojan Vafai.
3038
3039         Test: css3/flexbox/auto-margins.html
3040
3041         * rendering/RenderFlexibleBox.cpp:
3042         (WebCore::RenderFlexibleBox::hasAutoMarginsInCrossAxis):
3043         (WebCore):
3044         (WebCore::RenderFlexibleBox::updateAutoMarginsInCrossAxis):
3045         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): If we have flex-align: baseline and auto margins, we ignore flex-align: baseline.
3046         (WebCore::RenderFlexibleBox::alignChildren): auto margins apply before flex-align.
3047         * rendering/RenderFlexibleBox.h:
3048
3049 2012-05-23  Kentaro Hara  <haraken@chromium.org>
3050
3051         Unreviewed, rolling out r118120.
3052         http://trac.webkit.org/changeset/118120
3053         https://bugs.webkit.org/show_bug.cgi?id=87193
3054
3055         some LayoutTests crash since the patch passes a NULL to
3056         Null(isolate)
3057
3058         * bindings/scripts/CodeGeneratorV8.pm:
3059         (GenerateHeader):
3060         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
3061         (WebCore::toV8):
3062         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
3063         (WebCore::toV8):
3064         * bindings/scripts/test/V8/V8TestEventConstructor.h:
3065         (WebCore::toV8):
3066         * bindings/scripts/test/V8/V8TestEventTarget.h:
3067         (WebCore::toV8):
3068         * bindings/scripts/test/V8/V8TestException.h:
3069         (WebCore::toV8):
3070         * bindings/scripts/test/V8/V8TestInterface.h:
3071         (WebCore::toV8):
3072         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
3073         (WebCore::toV8):
3074         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
3075         (WebCore::toV8):
3076         * bindings/scripts/test/V8/V8TestNode.h:
3077         (WebCore::toV8):
3078         * bindings/scripts/test/V8/V8TestObj.h:
3079         (WebCore::toV8):
3080         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
3081         (WebCore::toV8):
3082
3083 2012-05-23  Kentaro Hara  <haraken@chromium.org>
3084
3085         Unreviewed, rolling out r118129.
3086         http://trac.webkit.org/changeset/118129
3087         https://bugs.webkit.org/show_bug.cgi?id=87202
3088
3089         some LayoutTests crash since the patch passes a NULL to
3090         Null(isolate)
3091
3092         * bindings/scripts/CodeGeneratorV8.pm:
3093         (GenerateNormalAttrGetter):
3094         (GenerateFunctionCallback):
3095         (NativeToJSValue):
3096         * bindings/scripts/test/V8/V8TestObj.cpp:
3097         (WebCore::TestObjV8Internal::contentDocumentAttrGetter):
3098         (WebCore::TestObjV8Internal::getSVGDocumentCallback):
3099         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
3100         (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrGetter):
3101         (WebCore::TestSerializedScriptValueInterfaceV8Internal::readonlyValueAttrGetter):
3102         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
3103         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):
3104
3105 2012-05-23  Kentaro Hara  <haraken@chromium.org>
3106
3107         Unreviewed, rolling out r118133.
3108         http://trac.webkit.org/changeset/118133
3109         https://bugs.webkit.org/show_bug.cgi?id=87207
3110
3111         some LayoutTests crash since the patch passes a NULL to
3112         Null(isolate)
3113
3114         * bindings/v8/custom/V8BlobCustom.cpp:
3115         (WebCore::toV8):
3116         * bindings/v8/custom/V8CSSRuleCustom.cpp:
3117         (WebCore::toV8):
3118         * bindings/v8/custom/V8CSSStyleSheetCustom.cpp:
3119         (WebCore::toV8):
3120         * bindings/v8/custom/V8CSSValueCustom.cpp:
3121         (WebCore::toV8):
3122         * bindings/v8/custom/V8ClipboardCustom.cpp:
3123         (WebCore::V8Clipboard::typesAccessorGetter):
3124         * bindings/v8/custom/V8CoordinatesCustom.cpp:
3125         (WebCore::V8Coordinates::altitudeAccessorGetter):
3126         (WebCore::V8Coordinates::altitudeAccuracyAccessorGetter):
3127         (WebCore::V8Coordinates::headingAccessorGetter):
3128         (WebCore::V8Coordinates::speedAccessorGetter):
3129         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
3130         (WebCore::toV8):
3131         * bindings/v8/custom/V8DOMTokenListCustom.cpp:
3132         (WebCore::toV8):
3133         * bindings/v8/custom/V8DOMWindowCustom.cpp:
3134         (WebCore::toV8):
3135         * bindings/v8/custom/V8DataViewCustom.cpp:
3136         (WebCore::toV8):
3137         * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
3138         (WebCore::V8DeviceMotionEvent::accelerationAccessorGetter):
3139         (WebCore::V8DeviceMotionEvent::accelerationIncludingGravityAccessorGetter):
3140         (WebCore::V8DeviceMotionEvent::rotationRateAccessorGetter):
3141         (WebCore::V8DeviceMotionEvent::intervalAccessorGetter):
3142         * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
3143         (WebCore::V8DeviceOrientationEvent::alphaAccessorGetter):
3144         (WebCore::V8DeviceOrientationEvent::betaAccessorGetter):
3145         (WebCore::V8DeviceOrientationEvent::gammaAccessorGetter):
3146         (WebCore::V8DeviceOrientationEvent::absoluteAccessorGetter):
3147         * bindings/v8/custom/V8DocumentCustom.cpp:
3148         (WebCore::toV8):
3149         * bindings/v8/custom/V8DocumentLocationCustom.cpp:
3150         (WebCore::V8Document::locationAccessorGetter):
3151         * bindings/v8/custom/V8EntryCustom.cpp:
3152         (WebCore::toV8):
3153         * bindings/v8/custom/V8EntrySyncCustom.cpp:
3154         (WebCore::toV8):
3155         * bindings/v8/custom/V8EventCustom.cpp:
3156         (WebCore::toV8):
3157         * bindings/v8/custom/V8Float32ArrayCustom.cpp:
3158         (WebCore::toV8):
3159         * bindings/v8/custom/V8Float64ArrayCustom.cpp:
3160         (WebCore::toV8):
3161         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
3162         (WebCore::V8HTMLCanvasElement::getContextCallback):
3163         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
3164         (WebCore::toV8):
3165
3166 2012-05-23  Kentaro Hara  <haraken@chromium.org>
3167
3168         Unreviewed, rolling out r118134.
3169         http://trac.webkit.org/changeset/118134
3170         https://bugs.webkit.org/show_bug.cgi?id=87209
3171
3172         some LayoutTests crash since the patch passes a NULL to
3173         Null(isolate)
3174
3175         * bindings/v8/custom/V8HTMLElementCustom.cpp:
3176         (WebCore::toV8Object):
3177         (WebCore::toV8):
3178         * bindings/v8/custom/V8HistoryCustom.cpp:
3179         (WebCore::V8History::stateAccessorGetter):
3180         * bindings/v8/custom/V8IDBAnyCustom.cpp:
3181         (WebCore::toV8):
3182         * bindings/v8/custom/V8IDBKeyCustom.cpp:
3183         (WebCore::toV8):
3184         * bindings/v8/custom/V8ImageDataCustom.cpp:
3185         (WebCore::toV8):
3186         * bindings/v8/custom/V8Int16ArrayCustom.cpp:
3187         (WebCore::toV8):
3188         * bindings/v8/custom/V8Int32ArrayCustom.cpp:
3189         (WebCore::toV8):
3190         * bindings/v8/custom/V8Int8ArrayCustom.cpp:
3191         (WebCore::toV8):
3192         * bindings/v8/custom/V8LocationCustom.cpp:
3193         (WebCore::toV8):
3194         * bindings/v8/custom/V8MessageEventCustom.cpp:
3195         (WebCore::V8MessageEvent::dataAccessorGetter):
3196         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
3197         (WebCore::toV8):
3198         * bindings/v8/custom/V8NodeCustom.cpp:
3199         (WebCore::V8Node::insertBeforeCallback):
3200         (WebCore::V8Node::replaceChildCallback):
3201         (WebCore::V8Node::removeChildCallback):
3202         (WebCore::V8Node::appendChildCallback):
3203         (WebCore::toV8Slow):
3204         * bindings/v8/custom/V8PopStateEventCustom.cpp:
3205         (WebCore::V8PopStateEvent::stateAccessorGetter):
3206         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
3207         (WebCore::V8SQLResultSetRowList::itemCallback):
3208         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
3209         (WebCore::toV8):
3210         * bindings/v8/custom/V8SVGElementCustom.cpp:
3211         (WebCore::toV8):
3212         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
3213         (WebCore::toV8):
3214         * bindings/v8/custom/V8ScriptProfileCustom.cpp:
3215         (WebCore::toV8):
3216         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
3217         (WebCore::toV8):
3218         * bindings/v8/custom/V8StyleSheetCustom.cpp:
3219         (WebCore::toV8):
3220         * bindings/v8/custom/V8TrackEventCustom.cpp:
3221         (WebCore::V8TrackEvent::trackAccessorGetter):
3222         * bindings/v8/custom/V8Uint16ArrayCustom.cpp:
3223         (WebCore::toV8):
3224         * bindings/v8/custom/V8Uint32ArrayCustom.cpp:
3225         (WebCore::toV8):
3226         * bindings/v8/custom/V8Uint8ArrayCustom.cpp:
3227         (WebCore::toV8):
3228         * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp:
3229         (WebCore::toV8):
3230         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
3231         (WebCore::toV8Object):
3232         (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
3233         (WebCore::V8WebGLRenderingContext::getSupportedExtensionsCallback):
3234         * bindings/v8/custom/V8WorkerContextCustom.cpp:
3235         (WebCore::toV8):
3236
3237 2012-05-23  James Robinson  <jamesr@chromium.org>
3238
3239         Add a Setting to make position:fixed form a new stacking context
3240         https://bugs.webkit.org/show_bug.cgi?id=87186
3241
3242         Reviewed by Adam Barth.
3243
3244         position:fixed elements form a new stacking context in several mobile WebKit ports and in the Qt port always. To
3245         be consistent across devices, we want to try turning it on everywhere. This will likely cause compatibility
3246         issues, so we need a runtime setting in order to stage the change carefully.
3247
3248         Tests: fast/block/positioning/fixed-position-stacking-context.html
3249                fast/block/positioning/fixed-position-stacking-context2.html
3250
3251         * css/StyleResolver.cpp:
3252         (WebCore::StyleResolver::collectMatchingRulesForList):
3253         * page/Settings.cpp:
3254         (WebCore::Settings::Settings):
3255         * page/Settings.h:
3256         (WebCore::Settings::setFixedPositionCreatesStackingContext):
3257         (WebCore::Settings::fixedPositionCreatesStackingContext):
3258         (Settings):
3259         * testing/InternalSettings.cpp:
3260         (WebCore::InternalSettings::InternalSettings):
3261         (WebCore::InternalSettings::restoreTo):
3262         (WebCore::InternalSettings::setFixedPositionCreatesStackingContext):
3263         (WebCore):
3264         * testing/InternalSettings.h:
3265         (InternalSettings):
3266         * testing/InternalSettings.idl:
3267
3268 2012-05-23  Michael Nordman  <michaeln@google.com>
3269
3270         [chromium] DomStorage events handling needs TLC (3)
3271         https://bugs.webkit.org/show_bug.cgi?id=87031
3272         https://code.google.com/p/chromium/issues/detail?id=128482
3273         Create WebCore::Storage instances as a side effect of attaching storage event handlers.
3274         This allows storage events in chromium to be propagated with less IPC chatter.
3275
3276         Worth noting that in non-chromium ports, creation of the localStorage instance can have
3277         an additional side effect of scheduling a background task to read the area's values
3278         from disk, which given the interest in events is probably a beneficial side effect.
3279
3280         Reviewed by Adam Barth.
3281
3282         No new tests. Existing tests cover this.
3283
3284         * page/DOMWindow.cpp:
3285         (WebCore::didAddStorageEventListener):
3286         (WebCore::DOMWindow::addEventListener):
3287
3288 2012-05-23  Michael Saboff  <msaboff@apple.com>
3289
3290         Crash in fast/files/read tests during Garbage Collection
3291         https://bugs.webkit.org/show_bug.cgi?id=87165
3292
3293         Reviewed by Alexey Proskuryakov.
3294
3295         Changed hasPendingActivity() processing to use ActiveDOMObject::hasPendingActivity()
3296         and associated setPendingActivity() / unsetPendingActivity().
3297
3298         Fixed two existing tests with change.
3299
3300         * Modules/filesystem/FileWriter.cpp:
3301         (WebCore::FileWriter::stop):
3302         (WebCore::FileWriter::write):
3303         (WebCore::FileWriter::truncate):
3304         (WebCore::FileWriter::signalCompletion):
3305         * Modules/filesystem/FileWriter.h:
3306         * fileapi/FileReader.cpp:
3307         (WebCore::FileReader::readInternal):
3308         (WebCore::FileReader::doAbort):
3309         (WebCore::FileReader::didFinishLoading):
3310         (WebCore::FileReader::didFail):
3311         * fileapi/FileReader.h:
3312
3313 2012-05-23  Abhishek Arya  <inferno@chromium.org>
3314
3315         Crash in run-ins with continuations while moving back to original position.
3316         https://bugs.webkit.org/show_bug.cgi?id=87264
3317
3318         Reviewed by Julien Chaffraix.
3319
3320         Run-in that are now placed in sibling block can break up into continuation
3321         chains when new children are added to it. We cannot easily send them back to their
3322         original place since that requires writing integration logic with RenderInline::addChild
3323         and all other places that might cause continuations to be created (without blowing away
3324         |this|). Disabling this feature for now to prevent crashes.
3325
3326         Test: fast/runin/runin-continuations-crash.html
3327
3328         * rendering/RenderBlock.cpp:
3329         (WebCore::RenderBlock::moveRunInToOriginalPosition):
3330
3331 2012-05-23  Abhishek Arya  <inferno@chromium.org>
3332
3333         Crash in RenderInline::linesVisualOverflowBoundingBox.
3334         https://bugs.webkit.org/show_bug.cgi?id=85804
3335
3336         Reviewed by Dave Hyatt.
3337
3338         Defer layout of replaced elements to the next line break function.
3339         We shouldn't do it while we are clearing our inline chilren
3340         lineboxes in full layout mode.
3341
3342         Test: fast/block/inline-children-root-linebox-crash.html
3343
3344         * rendering/RenderBlockLineLayout.cpp:
3345         (WebCore::RenderBlock::layoutInlineChildren):
3346         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
3347
3348 2012-05-23  Chris Rogers  <crogers@google.com>
3349
3350         AudioParam must support fan-in (multiple audio connections) (take 2)
3351         https://bugs.webkit.org/show_bug.cgi?id=83610
3352
3353         Reviewed by Kenneth Russell.
3354         
3355         This re-lands bug: https://bugs.webkit.org/show_bug.cgi?id=83610
3356         Now that a fix has been landed: http://trac.webkit.org/changeset/118099
3357
3358         Test: webaudio/audioparam-summingjunction.html
3359
3360         * Modules/webaudio/AudioParam.cpp:
3361         * Modules/webaudio/AudioParam.h:
3362         (WebCore::AudioParam::calculateSampleAccurateValues):
3363         (WebCore::AudioParam::calculateAudioRateSignalValues):
3364         Sums intrinsic parameter value with all audio-rate connections.
3365         
3366         (WebCore::AudioParam::connect):
3367         (WebCore::AudioParam::disconnect):
3368         Support multiple connections.
3369         
3370         (WebCore::AudioParam::hasSampleAccurateValues):
3371         If we have one or more audio-rate connections.
3372         
3373         (WebCore::AudioParam::AudioParam):
3374         AudioParam now sub-classes AudioSummingJunction.
3375
3376 2012-05-23  Christophe Dumez  <christophe.dumez@intel.com>
3377
3378         [EFL] webintents/web-intents-delivery-reuse.html is failing on EFL port
3379         https://bugs.webkit.org/show_bug.cgi?id=87092
3380
3381         Reviewed by Adam Barth.
3382
3383         Remove readonly keyword from the webkitIntent attribute. This is
3384         needed otherwise the [Replaceable] extended attribute has not effect
3385         with JSC. This is tested by webintents/web-intents-delivery-reuse.html
3386         test case.
3387
3388         * Modules/intents/DOMWindowIntents.idl:
3389
3390 2012-05-23  Abhishek Arya  <inferno@chromium.org>
3391
3392         ASSERT failure toRenderProgress in HTMLProgressElement::didElementStateChange
3393         https://bugs.webkit.org/show_bug.cgi?id=87274
3394
3395         Reviewed by Darin Adler.
3396
3397         Progress bar can't run-in. Prevent it from becoming a run-in, leading to an
3398         unworkable RenderInline.
3399
3400         Test: fast/runin/progress-run-in-crash.html
3401
3402         * html/HTMLProgressElement.cpp:
3403         (WebCore::HTMLProgressElement::didElementStateChange):
3404         * rendering/RenderBlock.cpp:
3405         (WebCore::RenderBlock::moveRunInUnderSiblingBlockIfNeeded):
3406
3407 2012-05-23  Andrew Lo  <anlo@rim.com>
3408
3409         [BlackBerry] UI thread unnecessarily blocks on WebKit thread when servicing requestAnimationFrames
3410         https://bugs.webkit.org/show_bug.cgi?id=87289
3411
3412         Reviewed by Antonio Gomes.
3413
3414         requestAnimationFrame already covered by tests in LayoutTests/fast/animation.
3415
3416         If UI thread cannot acquire DisplayRefreshMonitor mutex immediately,
3417         avoid blocking on the mutex, it can trigger the frame change on the next
3418         animation tick instead.
3419
3420         * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:
3421         (WebCore::DisplayRefreshMonitor::displayLinkFired):
3422
3423 2012-05-23  Alec Flett  <alecflett@chromium.org>
3424
3425         Implement DOM4 DOMError
3426         https://bugs.webkit.org/show_bug.cgi?id=87055
3427
3428         Reviewed by Adam Barth.
3429
3430         Implement the DOMError class and it's IDL interface.
3431
3432         No new tests. Not testable yet, as it's not used.
3433
3434         * WebCore.gypi:
3435         * dom/DOMError.cpp: Added.
3436         (WebCore):
3437         (WebCore::DOMError::DOMError):
3438         * dom/DOMError.h: Added.
3439         (WebCore):
3440         (DOMError):
3441         (WebCore::DOMError::create):
3442         (WebCore::DOMError::name):
3443         * dom/DOMError.idl: Added.
3444
3445 2012-05-23  Kenneth Russell  <kbr@google.com>
3446
3447         REGRESSION(117918) - 4 webgl/tex-iomage-and-sub-image-2d-with-image tests failing on Mac bots.
3448         https://bugs.webkit.org/show_bug.cgi?id=87136
3449
3450         Reviewed by Stephen White.
3451
3452         Fixed longstanding bug in GraphicsContext3D constructor in Mac
3453         port, and logic error in tracking of texture bound to unit 0. Also
3454         fixed up Cairo port's constructor by code inspection. This code is
3455         ripe for cleanup; Bug 87198 filed for this.
3456
3457         Covered by existing tests.
3458
3459         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
3460         (WebCore::GraphicsContext3D::GraphicsContext3D):
3461             Initialize missing members.
3462         * platform/graphics/mac/GraphicsContext3DMac.mm:
3463         (WebCore::GraphicsContext3D::GraphicsContext3D):
3464             Correctly initialize m_activeTexture.
3465         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
3466         (WebCore::GraphicsContext3D::bindTexture):
3467             Fix logic error in tracking of texture bound to unit 0.
3468
3469 2012-05-23  Dana Jansens  <danakj@chromium.org>
3470
3471         [chromium] Layers on main thread should get a RenderSurface for animating transform only if masksToBounds is true also
3472         https://bugs.webkit.org/show_bug.cgi?id=87184
3473
3474         Reviewed by James Robinson.
3475
3476         Layers on main thread get a RenderSurface if their impl counterpart may
3477         have a RenderSurface due to its animating transform. We currently create
3478         a RenderSurface for all layers with an animating transform and
3479         a descendant that drawsContents. But a RenderSurface on impl also
3480         implies that the layer masksToBounds. So only make a RenderSurface on
3481         main thread when the layer also masksToBounds.
3482
3483         Modified unit test CCLayerTreeHostCommonTest.verifyAnimationsForRenderSurfaceHierarchy.
3484
3485         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
3486         (WebCore::subtreeShouldRenderToSeparateSurface):
3487
3488 2012-05-23  Chris Fleizach  <cfleizach@apple.com>
3489
3490         Regression(r112694): Crash in WebCore::AXObjectCache::postNotification 
3491         https://bugs.webkit.org/show_bug.cgi?id=86029
3492
3493         Reviewed by Abhishek Arya.
3494
3495         Test: accessibility/content-changed-notification-causes-crash.html
3496
3497         * accessibility/AccessibilityObject.h:
3498         (WebCore::AccessibilityObject::isDetached):
3499         (AccessibilityObject):
3500         * accessibility/AccessibilityRenderObject.cpp:
3501         (WebCore::AccessibilityRenderObject::contentChanged):
3502
3503 2012-05-23  Robin Dunn  <robin@alldunn.com>
3504
3505         [wx] Fix memory leak in FontHolder.
3506         https://bugs.webkit.org/show_bug.cgi?id=87281
3507
3508         Reviewed by Kevin Ollivier.
3509
3510         * platform/graphics/wx/FontPlatformData.h:
3511
3512 2012-05-23  Robin Dunn  <robin@alldunn.com>
3513
3514         [wx] Make sure we do not create a substitute font if the facename is not found.
3515         https://bugs.webkit.org/show_bug.cgi?id=87280
3516
3517         Reviewed by Kevin Ollivier.
3518
3519         * platform/graphics/wx/FontCacheWx.cpp:
3520         (WebCore::FontCache::createFontPlatformData):
3521
3522 2012-05-23  Robin Dunn  <robin@alldunn.com>
3523
3524         [wx] Implement transparency layer support.
3525         https://bugs.webkit.org/show_bug.cgi?id=87279
3526
3527         Reviewed by Kevin Ollivier.
3528
3529         * platform/graphics/wx/GraphicsContextWx.cpp:
3530         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
3531         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
3532         (WebCore::GraphicsContext::supportsTransparencyLayers):
3533
3534 2012-05-23  Jer Noble  <jer.noble@apple.com>
3535
3536         GenericClock loses precision due to float->double conversion.
3537         https://bugs.webkit.org/show_bug.cgi?id=87227
3538
3539         Reviewed by Darin Adler.
3540
3541         No new tests; fixes media/media-controller-time.html on Chromium.
3542
3543         Only narrow to float after the entire calculation is complete. This requires now() and m_offset
3544         to be double-precision.
3545
3546         * platform/ClockGeneric.cpp:
3547         (ClockGeneric::currentTime): 
3548         (ClockGeneric::now): Make double-precision.
3549         * platform/ClockGeneric.h:
3550         (ClockGeneric): Make m_offset double-precision.
3551
3552 2012-05-22  Jer Noble  <jer.noble@apple.com>
3553
3554         PlatformClockCM has uninitialized m_rate member.
3555         https://bugs.webkit.org/show_bug.cgi?id=87217
3556
3557         Reviewed by Eric Carlson.
3558
3559         Test: media/media-controller-time.html
3560
3561         Initialize the m_rate member to a default of 1 (second-per-second), matching the implementation
3562         of ClockGeneric.
3563
3564         * platform/mac/PlatformClockCM.mm:
3565         (PlatformClockCM::PlatformClockCM):
3566
3567 2012-05-23  Sheriff Bot  <webkit.review.bot@gmail.com>
3568
3569         Unreviewed, rolling out r118096.
3570         http://trac.webkit.org/changeset/118096
3571         https://bugs.webkit.org/show_bug.cgi?id=87285
3572
3573         caused multiple crashes on the mac bots (Requested by
3574         jessieberlin on #webkit).
3575
3576         * dom/ContainerNodeAlgorithms.h:
3577
3578 2012-05-23  Darin Adler  <darin@apple.com>
3579
3580         Speed up traverseNextNode when called on a ContainerNode or Element
3581         https://bugs.webkit.org/show_bug.cgi?id=87224
3582
3583         Reviewed by Geoffrey Garen.
3584
3585         * dom/ContainerNode.h: Added overrides of traverseNextNode for ContainerNode.
3586         That way, when we know at compile time something is ContainerNode, we can
3587         skip a branch at the start of this hot function.
3588
3589 2012-05-23  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
3590
3591         Use PluginDataNone.cpp always when NETSCAPE_PLUGIN_API is OFF
3592         https://bugs.webkit.org/show_bug.cgi?id=87096
3593
3594         Reviewed by Andy Estes.
3595
3596         Fix a build error by adding an extra check in PluginData.cpp to use
3597         PluginStrategy only when NETSCAPE_PLUGIN_API is ON.
3598
3599         No new tests. This is only a build fix.
3600
3601         * plugins/PluginData.cpp:
3602         (WebCore):
3603
3604 2012-05-23  Malcolm MacLeod  <malcolm.macleod@tshwanedje.com>
3605
3606         [wx] Fix scrollbar drawing under wxGTK.
3607         https://bugs.webkit.org/show_bug.cgi?id=87150
3608
3609         Reviewed by Kevin Ollivier.
3610
3611         * platform/wx/wxcode/gtk/scrollbar_render.cpp:
3612         (wxRenderer_DrawScrollbar):
3613
3614 2012-05-23  Antti Koivisto  <antti@apple.com>
3615
3616         Rename StyleSheetInternal to StyleSheetContents
3617         https://bugs.webkit.org/show_bug.cgi?id=87272
3618
3619         Reviewed by Andreas Kling.
3620
3621         The name is more descriptive and the code reads better.
3622         
3623         Plain "StyleSheet" would be good too but that is a CSSOM type and the name can't be used without
3624         changing idl code generation and resolving bunch of other issues.
3625
3626         * css/CSSFontFaceSrcValue.cpp:
3627         (WebCore::CSSFontFaceSrcValue::addSubresourceStyleURLs):
3628         * css/CSSFontFaceSrcValue.h:
3629         (CSSFontFaceSrcValue):
3630         * css/CSSImportRule.cpp:
3631         (WebCore::StyleRuleImport::setCSSStyleSheet):
3632         (WebCore::StyleRuleImport::requestStyleSheet):
3633         * css/CSSImportRule.h:
3634         (WebCore):
3635         (WebCore::StyleRuleImport::parentStyleSheet):
3636         (WebCore::StyleRuleImport::setParentStyleSheet):
3637         (WebCore::StyleRuleImport::styleSheet):
3638         (StyleRuleImport):
3639         * css/CSSMediaRule.cpp:
3640         (WebCore::CSSMediaRule::insertRule):
3641         * css/CSSParser.cpp:
3642         (WebCore::CSSParser::parseSheet):
3643         (WebCore::CSSParser::parseRule):
3644         (WebCore::CSSParser::parseKeyframeRule):
3645         (WebCore::CSSParser::parseValue):
3646         (WebCore::CSSParser::parseSelector):
3647         (WebCore::CSSParser::parseDeclaration):
3648         (WebCore::CSSParser::setStyleSheet):
3649         (WebCore::CSSParser::parseFlowThread):
3650         * css/CSSParser.h:
3651         (WebCore):
3652         (CSSParser):
3653         * css/CSSPrimitiveValue.cpp:
3654         (WebCore::CSSPrimitiveValue::addSubresourceStyleURLs):
3655         * css/CSSPrimitiveValue.h:
3656         (CSSPrimitiveValue):
3657         * css/CSSReflectValue.cpp:
3658         (WebCore::CSSReflectValue::addSubresourceStyleURLs):
3659         * css/CSSReflectValue.h:
3660         (CSSReflectValue):
3661         * css/CSSRule.cpp:
3662         (WebCore::CSSRule::parserContext):
3663         * css/CSSStyleSheet.cpp:
3664         (WebCore::StyleSheetContents::estimatedSizeInBytes):
3665         (WebCore::StyleSheetContents::StyleSheetContents):
3666         (WebCore::StyleSheetContents::~StyleSheetContents):
3667         (WebCore::StyleSheetContents::isCacheable):
3668         (WebCore::StyleSheetContents::parserAppendRule):
3669         (WebCore::StyleSheetContents::ruleAt):
3670         (WebCore::StyleSheetContents::ruleCount):
3671         (WebCore::StyleSheetContents::clearCharsetRule):
3672         (WebCore::StyleSheetContents::clearRules):
3673         (WebCore::StyleSheetContents::parserSetEncodingFromCharsetRule):
3674         (WebCore::StyleSheetContents::wrapperInsertRule):
3675         (WebCore::StyleSheetContents::wrapperDeleteRule):
3676         (WebCore::StyleSheetContents::parserAddNamespace):
3677         (WebCore::StyleSheetContents::determineNamespace):
3678         (WebCore::StyleSheetContents::parseAuthorStyleSheet):
3679         (WebCore::StyleSheetContents::parseString):
3680         (WebCore::StyleSheetContents::parseStringAtLine):
3681         (WebCore::StyleSheetContents::isLoading):
3682         (WebCore::StyleSheetContents::checkLoaded):
3683         (WebCore::StyleSheetContents::notifyLoadedSheet):
3684         (WebCore::StyleSheetContents::startLoadingDynamicSheet):
3685         (WebCore::StyleSheetContents::rootStyleSheet):
3686         (WebCore::StyleSheetContents::singleOwnerNode):
3687         (WebCore::StyleSheetContents::singleOwnerDocument):
3688         (WebCore::StyleSheetContents::completeURL):
3689         (WebCore::StyleSheetContents::addSubresourceStyleURLs):
3690         (WebCore::StyleSheetContents::parentStyleSheet):
3691         (WebCore::StyleSheetContents::registerClient):
3692         (WebCore::StyleSheetContents::unregisterClient):
3693         (WebCore::StyleSheetContents::addedToMemoryCache):
3694         (WebCore::StyleSheetContents::removedFromMemoryCache):
3695         (WebCore::CSSStyleSheet::createInline):
3696         (WebCore::CSSStyleSheet::CSSStyleSheet):
3697         (WebCore::CSSStyleSheet::~CSSStyleSheet):
3698         (WebCore::CSSStyleSheet::willMutateRules):
3699         (WebCore::CSSStyleSheet::didMutateRules):
3700         (WebCore::CSSStyleSheet::reattachChildRuleCSSOMWrappers):
3701         (WebCore::CSSStyleSheet::length):
3702         (WebCore::CSSStyleSheet::item):
3703         (WebCore::CSSStyleSheet::rules):
3704         (WebCore::CSSStyleSheet::insertRule):
3705         (WebCore::CSSStyleSheet::deleteRule):
3706         (WebCore::CSSStyleSheet::cssRules):
3707         * css/CSSStyleSheet.h:
3708         (WebCore::StyleSheetContents::create):
3709         (StyleSheetContents):
3710         (WebCore::StyleSheetContents::copy):
3711         (WebCore::CSSStyleSheet::create):
3712         (WebCore::CSSStyleSheet::contents):
3713         (CSSStyleSheet):
3714         * css/CSSValue.cpp:
3715         (WebCore::CSSValue::addSubresourceStyleURLs):
3716         * css/CSSValue.h:
3717         (WebCore):
3718         (CSSValue):
3719         * css/CSSValueList.cpp:
3720         (WebCore::CSSValueList::addSubresourceStyleURLs):
3721         * css/CSSValueList.h:
3722         (CSSValueList):
3723         * css/PropertySetCSSStyleDeclaration.cpp:
3724         (WebCore::PropertySetCSSStyleDeclaration::contextStyleSheet):
3725         * css/PropertySetCSSStyleDeclaration.h:
3726         (WebCore):
3727         (PropertySetCSSStyleDeclaration):
3728         * css/StylePropertySet.cpp:
3729         (WebCore::StylePropertySet::setProperty):
3730         (WebCore::StylePropertySet::parseDeclaration):
3731         (WebCore::StylePropertySet::addSubresourceStyleURLs):
3732         * css/StylePropertySet.h:
3733         (WebCore):
3734         (StylePropertySet):
3735         * css/StyleResolver.cpp:
3736         (RuleSet):
3737         (WebCore):
3738         (WebCore::StyleResolver::StyleResolver):
3739         (WebCore::StyleResolver::addAuthorRulesAndCollectUserRulesFromSheets):
3740         (WebCore::StyleResolver::appendAuthorStylesheets):
3741         (WebCore::parseUASheet):
3742         (WebCore::StyleResolver::collectMatchingRulesForList):
3743         * css/StyleResolver.h:
3744         (StyleResolver):
3745         * css/WebKitCSSKeyframesRule.cpp:
3746         (WebCore::WebKitCSSKeyframesRule::insertRule):
3747         * dom/DOMImplementation.cpp:
3748         (WebCore::DOMImplementation::createCSSStyleSheet):
3749         * dom/Document.cpp:
3750         (WebCore::Document::recalcStyle):
3751         (WebCore::Document::updateBaseURL):
3752         (WebCore::Document::pageUserSheet):
3753         (WebCore::Document::pageGroupUserSheets):
3754         (WebCore::Document::addUserSheet):
3755         (WebCore::Document::testAddedStylesheetRequiresStyleRecalc):
3756         (WebCore::Document::analyzeStylesheetChange):
3757         (WebCore::styleSheetsUseRemUnits):
3758         * dom/Document.h:
3759         (WebCore):
3760         (Document):
3761         * dom/ElementAttributeData.cpp:
3762         (WebCore::ElementAttributeData::updateInlineStyleAvoidingMutation):
3763         * dom/ProcessingInstruction.cpp:
3764         (WebCore::ProcessingInstruction::setCSSStyleSheet):
3765         (WebCore::ProcessingInstruction::parseStyleSheet):
3766         * dom/StyleElement.cpp:
3767         (WebCore::StyleElement::createSheet):
3768         * dom/StyledElement.cpp:
3769         (WebCore::StyledElement::setInlineStyleProperty):
3770         (WebCore::StyledElement::addSubresourceAttributeURLs):
3771         (WebCore::StyledElement::addPropertyToAttributeStyle):
3772         * html/HTMLLinkElement.cpp:
3773         (WebCore::HTMLLinkElement::setCSSStyleSheet):
3774         (WebCore::HTMLLinkElement::styleSheetIsLoading):
3775         (WebCore::HTMLLinkElement::addSubresourceAttributeURLs):
3776         * html/HTMLStyleElement.cpp:
3777         (WebCore::HTMLStyleElement::addSubresourceAttributeURLs):
3778         * inspector/InspectorStyleSheet.cpp:
3779         (WebCore::fillMediaListChain):
3780         (WebCore::InspectorStyle::setPropertyText):
3781         (WebCore::InspectorStyleSheet::styleSheetURL):
3782         (WebCore::InspectorStyleSheet::reparseStyleSheet):
3783         (WebCore::InspectorStyleSheet::ensureSourceData):
3784         (WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
3785         * loader/cache/CachedCSSStyleSheet.cpp:
3786         (WebCore::CachedCSSStyleSheet::restoreParsedStyleSheet):
3787         (WebCore::CachedCSSStyleSheet::saveParsedStyleSheet):
3788         * loader/cache/CachedCSSStyleSheet.h:
3789         (WebCore):
3790         (CachedCSSStyleSheet):
3791         * page/PageSerializer.cpp:
3792         (WebCore::PageSerializer::serializeCSSStyleSheet):
3793
3794 2012-05-23  Darin Adler  <darin@apple.com>
3795
3796         Use ContainerNode instead of Node where possible
3797         https://bugs.webkit.org/show_bug.cgi?id=87220
3798
3799         Reviewed by Geoffrey Garen.
3800
3801         It's better to use a more specific type; in some cases we even generate
3802         more efficient code if we have a more specific type. Also, we want any
3803         type casts to be as close as possible to the corresponding type checks,
3804         so eliminating these uses of toContainerNode is a plus, also.
3805
3806         * dom/ContainerNodeAlgorithms.h: Changed insertionPoint to be a ContainerNode
3807         instead of a Node. Fixed spelling error "inseretions". Changed
3808         (WebCore::ChildFrameDisconnector::Target::Target): Changed type of frame owner
3809         element to HTMLFrameOwnerElement from Node.
3810
3811         * dom/DocumentType.cpp:
3812         (WebCore::DocumentType::insertedInto):
3813         (WebCore::DocumentType::removedFrom):
3814         * dom/DocumentType.h:
3815         * dom/Element.cpp:
3816         (WebCore::Element::insertedInto):
3817         (WebCore::Element::removedFrom):
3818         * dom/Element.h:
3819         * dom/Node.cpp:
3820         (WebCore::Node::insertedInto):
3821         (WebCore::Node::removedFrom):
3822         * dom/Node.h:
3823         * dom/ProcessingInstruction.cpp:
3824         (WebCore::ProcessingInstruction::insertedInto):
3825         (WebCore::ProcessingInstruction::removedFrom):
3826         * dom/ProcessingInstruction.h:
3827         * dom/ScriptElement.cpp:
3828         (WebCore::ScriptElement::insertedInto):
3829         * dom/ScriptElement.h:
3830         * html/FormAssociatedElement.cpp:
3831         (WebCore::FormAssociatedElement::insertedInto):
3832         (WebCore::FormAssociatedElement::removedFrom):
3833         * html/FormAssociatedElement.h:
3834         * html/HTMLBaseElement.cpp:
3835         (WebCore::HTMLBaseElement::insertedInto):
3836         (WebCore::HTMLBaseElement::removedFrom):
3837         * html/HTMLBaseElement.h:
3838         * html/HTMLBodyElement.cpp:
3839         (WebCore::HTMLBodyElement::insertedInto):
3840         (WebCore::HTMLBodyElement::didNotifyDescendantInsertions):
3841         * html/HTMLBodyElement.h:
3842         * html/HTMLFormControlElement.cpp:
3843         (WebCore::HTMLFormControlElement::insertedInto):
3844         (WebCore::HTMLFormControlElement::removedFrom):
3845         * html/HTMLFormControlElement.h:
3846         * html/HTMLFormElement.cpp:
3847         (WebCore::HTMLFormElement::insertedInto):
3848         (WebCore::HTMLFormElement::didNotifyDescendantInsertions):
3849         (WebCore::HTMLFormElement::removedFrom):
3850         * html/HTMLFormElement.h:
3851         * html/HTMLFrameElementBase.cpp:
3852         (WebCore::HTMLFrameElementBase::insertedInto):
3853         (WebCore::HTMLFrameElementBase::didNotifyDescendantInsertions):
3854         * html/HTMLFrameElementBase.h:
3855         * html/HTMLFrameSetElement.cpp:
3856         (WebCore::HTMLFrameSetElement::insertedInto):
3857         (WebCore::HTMLFrameSetElement::removedFrom):
3858         * html/HTMLFrameSetElement.h:
3859         * html/HTMLIFrameElement.cpp:
3860         (WebCore::HTMLIFrameElement::insertedInto):
3861         (WebCore::HTMLIFrameElement::removedFrom):
3862         * html/HTMLIFrameElement.h:
3863         * html/HTMLImageElement.cpp:
3864         (WebCore::HTMLImageElement::insertedInto):
3865         (WebCore::HTMLImageElement::removedFrom):
3866         * html/HTMLImageElement.h:
3867         * html/HTMLInputElement.cpp:
3868         (WebCore::HTMLInputElement::insertedInto):
3869         (WebCore::HTMLInputElement::removedFrom):
3870         * html/HTMLInputElement.h:
3871         * html/HTMLLinkElement.cpp:
3872         (WebCore::HTMLLinkElement::insertedInto):
3873         (WebCore::HTMLLinkElement::removedFrom):
3874         * html/HTMLLinkElement.h:
3875         * html/HTMLMapElement.cpp:
3876         (WebCore::HTMLMapElement::insertedInto):
3877         (WebCore::HTMLMapElement::removedFrom):
3878         * html/HTMLMapElement.h:
3879         * html/HTMLMediaElement.cpp:
3880         (WebCore::HTMLMediaElement::insertedInto):
3881         (WebCore::HTMLMediaElement::removedFrom):
3882         * html/HTMLMediaElement.h:
3883         * html/HTMLMetaElement.cpp:
3884         (WebCore::HTMLMetaElement::insertedInto):
3885         * html/HTMLMetaElement.h:
3886         * html/HTMLObjectElement.cpp:
3887         (WebCore::HTMLObjectElement::insertedInto):
3888         (WebCore::HTMLObjectElement::removedFrom):
3889         * html/HTMLObjectElement.h:
3890         * html/HTMLOptionElement.cpp:
3891         (WebCore::HTMLOptionElement::insertedInto):
3892         * html/HTMLOptionElement.h:
3893         * html/HTMLQuoteElement.cpp:
3894         (WebCore::HTMLQuoteElement::insertedInto):
3895         * html/HTMLQuoteElement.h:
3896         * html/HTMLScriptElement.cpp:
3897         (WebCore::HTMLScriptElement::insertedInto):
3898         * html/HTMLScriptElement.h:
3899         * html/HTMLSelectElement.cpp:
3900         (WebCore::HTMLSelectElement::insertedInto):
3901         * html/HTMLSelectElement.h:
3902         * html/HTMLSourceElement.cpp:
3903         (WebCore::HTMLSourceElement::insertedInto):
3904         (WebCore::HTMLSourceElement::removedFrom):
3905         * html/HTMLSourceElement.h:
3906         * html/HTMLStyleElement.cpp:
3907         (WebCore::HTMLStyleElement::insertedInto):
3908         (WebCore::HTMLStyleElement::removedFrom):
3909         * html/HTMLStyleElement.h:
3910         * html/HTMLTextFormControlElement.cpp:
3911         (WebCore::HTMLTextFormControlElement::insertedInto):
3912         * html/HTMLTextFormControlElement.h:
3913         * html/HTMLTitleElement.cpp:
3914         (WebCore::HTMLTitleElement::insertedInto):
3915         (WebCore::HTMLTitleElement::removedFrom):
3916         * html/HTMLTitleElement.h:
3917         * html/HTMLTrackElement.cpp:
3918         (WebCore::HTMLTrackElement::insertedInto):
3919         (WebCore::HTMLTrackElement::removedFrom):
3920         * html/HTMLTrackElement.h:
3921         * mathml/MathMLMathElement.cpp:
3922         (WebCore::MathMLMathElement::insertedInto):
3923         * mathml/MathMLMathElement.h:
3924         * svg/SVGElement.cpp:
3925         (WebCore::SVGElement::removedFrom):
3926         * svg/SVGElement.h:
3927         * svg/SVGFEImageElement.cpp:
3928         (WebCore::SVGFEImageElement::insertedInto):
3929         (WebCore::SVGFEImageElement::removedFrom):
3930         * svg/SVGFEImageElement.h:
3931         * svg/SVGFontFaceElement.cpp:
3932         (WebCore::SVGFontFaceElement::insertedInto):
3933         (WebCore::SVGFontFaceElement::removedFrom):
3934         * svg/SVGFontFaceElement.h:
3935         * svg/SVGFontFaceUriElement.cpp:
3936         (WebCore::SVGFontFaceUriElement::insertedInto):
3937         * svg/SVGFontFaceUriElement.h:
3938         * svg/SVGGlyphElement.cpp:
3939         (WebCore::SVGGlyphElement::insertedInto):
3940         (WebCore::SVGGlyphElement::removedFrom):
3941         * svg/SVGGlyphElement.h:
3942         * svg/SVGHKernElement.cpp:
3943         (WebCore::SVGHKernElement::insertedInto):
3944         (WebCore::SVGHKernElement::removedFrom):
3945         * svg/SVGHKernElement.h:
3946         * svg/SVGImageElement.cpp:
3947         (WebCore::SVGImageElement::insertedInto):
3948         * svg/SVGImageElement.h:
3949         * svg/SVGSVGElement.cpp:
3950         (WebCore::SVGSVGElement::insertedInto):
3951         (WebCore::SVGSVGElement::removedFrom):
3952         * svg/SVGSVGElement.h:
3953         * svg/SVGScriptElement.cpp:
3954         (WebCore::SVGScriptElement::insertedInto):
3955         * svg/SVGScriptElement.h:
3956         * svg/SVGStyleElement.cpp:
3957         (WebCore::SVGStyleElement::insertedInto):
3958         (WebCore::SVGStyleElement::removedFrom):
3959         * svg/SVGStyleElement.h:
3960         * svg/SVGStyledElement.cpp:
3961         (WebCore::SVGStyledElement::insertedInto):
3962         (WebCore::SVGStyledElement::removedFrom):
3963         * svg/SVGStyledElement.h:
3964         * svg/SVGTRefElement.cpp:
3965         (WebCore::SVGTRefElement::insertedInto):
3966         (WebCore::SVGTRefElement::removedFrom):
3967         * svg/SVGTRefElement.h:
3968         * svg/SVGTextPathElement.cpp:
3969         (WebCore::SVGTextPathElement::insertedInto):
3970         * svg/SVGTextPathElement.h:
3971         * svg/SVGTitleElement.cpp:
3972         (WebCore::SVGTitleElement::insertedInto):
3973         (WebCore::SVGTitleElement::removedFrom):
3974         * svg/SVGTitleElement.h:
3975         * svg/SVGUseElement.cpp:
3976         (WebCore::SVGUseElement::insertedInto):
3977         (WebCore::SVGUseElement::removedFrom):
3978         * svg/SVGUseElement.h:
3979         * svg/SVGVKernElement.cpp:
3980         (WebCore::SVGVKernElement::insertedInto):
3981         (WebCore::SVGVKernElement::removedFrom):
3982         * svg/SVGVKernElement.h:
3983         * svg/animation/SVGSMILElement.cpp:
3984         (WebCore::SVGSMILElement::insertedInto):
3985         (WebCore::SVGSMILElement::removedFrom):
3986         * svg/animation/SVGSMILElement.h:
3987         Changed arguments of insertedInto and removedFrom to ContainerNode instead of Node.
3988         Did the same with didNotifyDescendantInsertions, while fixing the typo in its name.
3989
3990         * editing/ReplaceSelectionCommand.cpp:
3991         (WebCore::ReplaceSelectionCommand::doApply): Put a typecast toHTMLElement here.
3992         The check for isListElement and isLegacyAppleStyleSpan takes care of the type checking.
3993         (WebCore::ReplaceSelectionCommand::insertAsListItems): Changed this function to take
3994         an HTMLElement instead of a Node, then we can drop use of the toContainerNode function.
3995         * editing/ReplaceSelectionCommand.h:
3996
3997         * editing/TextIterator.cpp: Fixed a typo in a comment.
3998
3999 2012-05-23  Alexei Filippov  <alexeif@chromium.org>
4000
4001         Web Inspector: filter out debugging stuff from the heap class view
4002         https://bugs.webkit.org/show_bug.cgi?id=86723
4003
4004         We mark objects that are accessible from user roots (e.g. Window)
4005         with pageObject attribute. This fix filters out all non-pageObjects
4006         from the classes view.
4007
4008         Reviewed by Yury Semikhatsky.
4009
4010         * inspector/front-end/HeapSnapshot.js:
4011         (WebInspector.HeapSnapshotNode.prototype.isPageObject):
4012         (WebInspector.HeapSnapshot.prototype._buildAggregates):
4013         (WebInspector.HeapSnapshot.prototype._calculateClassesRetainedSize):
4014         (WebInspector.HeapSnapshot.prototype._buildPostOrderIndex):
4015         (WebInspector.HeapSnapshot.prototype._markPageOwnedNodes):
4016         (WebInspector.HeapSnapshot.prototype.createNodesProviderForClass):
4017
4018 2012-05-23  Andrei Bucur  <abucur@adobe.com>
4019
4020         [CSSRegions]Implement NamedFlow::name attribute
4021         https://bugs.webkit.org/show_bug.cgi?id=79645
4022
4023         Implementation for the NamedFlow::name attribute per the CSS Regions WD 3-May-2012 recommendation:
4024         http://www.w3.org/TR/2012/WD-css3-regions-20120503/
4025
4026         Reviewed by Andreas Kling.
4027
4028         Test: fast/regions/webkit-named-flow-name.html
4029
4030         * dom/WebKitNamedFlow.cpp:
4031         (WebCore::WebKitNamedFlow::name):
4032         (WebCore):
4033         * dom/WebKitNamedFlow.h:
4034         (WebKitNamedFlow):
4035         * dom/WebKitNamedFlow.idl:
4036
4037 2012-05-23  Andreas Kling  <kling@webkit.org>
4038
4039         Let the compiler generate FontFamily's copy ctor and assignment operator.
4040
4041         Blindly rubberstamped by the brave Antti Koivisto.
4042
4043         * platform/graphics/FontFamily.cpp:
4044         * platform/graphics/FontFamily.h:
4045
4046 2012-05-23  Andreas Kling  <kling@webkit.org>
4047
4048         CSSParser: Simplify StylePropertySet creation.
4049         <http://webkit.org/b/87259>
4050
4051         Reviewed by Alexis Menard.
4052
4053         Turn CSSParser's filteredProperties() into createStylePropertySet() which filters the parsed
4054         properties and creates a new StylePropertySet, adopting the vector to avoid the Vector copy we
4055         were previously incurring.
4056
4057         Added a StylePropertyVector typedef for Vector<CSSProperty, 4> since we need to pass this type
4058         to the constructor for Vector::swap() to work.
4059
4060         And thus StylePropertySet::create(const Vector<CSSProperty>&, CSSParserMode) became
4061         StylePropertySet::adopt(StylePropertyVector&, CSSParserMode).
4062
4063         * css/CSSComputedStyleDeclaration.cpp:
4064         (WebCore::CSSComputedStyleDeclaration::copyPropertiesInSet):
4065         * css/CSSParser.cpp:
4066         (WebCore::CSSParser::createStylePropertySet):
4067         (WebCore::CSSParser::createStyleRule):
4068         (WebCore::CSSParser::createFontFaceRule):
4069         (WebCore::CSSParser::createPageRule):
4070         (WebCore::CSSParser::createKeyframe):
4071         * css/CSSParser.h:
4072         * css/StylePropertySet.cpp:
4073         (WebCore::StylePropertySet::StylePropertySet):
4074         (WebCore::StylePropertySet::removePropertiesInSet):
4075         (WebCore::StylePropertySet::copyPropertiesInSet):
4076         (SameSizeAsStylePropertySet):
4077         * css/StylePropertySet.h:
4078         (WebCore::StylePropertySet::adopt):
4079         (StylePropertySet):
4080
4081 2012-05-23  Andreas Kling  <kling@webkit.org>
4082
4083         Kill some frivolous null-checking of Element::m_attributeData.
4084         <http://webkit.org/b/87248>
4085
4086         Reviewed by Antti Koivisto.
4087
4088         Replace unnecessary Element::m_attributeData with assertions where it makes sense.
4089         Others are flat out removed because it should be obvious from context that it's non-null.
4090         E.g if an attribute has changed, we're obviously storing it somewhere.
4091
4092         Also added a short-circuit to Element::normalize() if there are no Attr objects
4093         associated with the element.
4094