Incorrect embedded SVG image sizing on first load
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-10-22  Florin Malita  <fmalita@chromium.org>
2
3         Incorrect embedded SVG image sizing on first load
4         https://bugs.webkit.org/show_bug.cgi?id=99489
5
6         Reviewed by Nikolas Zimmermann.
7
8         RenderSVGImage::updateImageViewport() must be called after the image loader is finished,
9         to ensure that a SVGImageCache::SizeAndScalesMap entry is created even if layout has
10         already been performed.
11
12         Test: svg/custom/svg-image-initial-size.html
13
14         * rendering/svg/RenderSVGImage.cpp:
15         (WebCore::RenderSVGImage::imageChanged):
16
17 2012-10-22  Keishi Hattori  <keishi@webkit.org>
18
19         Remove monthFormatInLDML
20         https://bugs.webkit.org/show_bug.cgi?id=99971
21
22         Reviewed by Kent Tamura.
23
24         Removing monthFormatInLDML from localized strings because Localizer class now provides the same functionality.
25
26         No new tests. Just removing unused code.
27
28         * platform/LocalizedStrings.h:
29         (WebCore):
30
31 2012-10-22  Zan Dobersek  <zandobersek@gmail.com>
32
33         [GTK] Enable Microdata DOM API
34         https://bugs.webkit.org/show_bug.cgi?id=99033
35
36         Reviewed by Martin Robinson.
37
38         Enable the Microdata DOM API, but still disable it when the unstable
39         features should be disabled (for instance in release builds).
40
41         No new tests - related tests are being unskipped and are expected to pass.
42
43         * GNUmakefile.am:
44         * GNUmakefile.features.am:
45         * bindings/gobject/GNUmakefile.am: Add the required files so the Microdata
46         API GObject bindings are generated and built.
47
48 2012-10-22  Zan Dobersek  <zandobersek@gmail.com>
49
50         [GTK] Enable CSP 1.1
51         https://bugs.webkit.org/show_bug.cgi?id=99064
52
53         Reviewed by Martin Robinson.
54
55         Enable CSP 1.1 in development builds but keep it disabled when the
56         unstable features should not be enabled (like in stable releases).
57
58         No new tests - they already exist and will be unskipped.
59
60         * GNUmakefile.am:
61         * GNUmakefile.features.am:
62
63 2012-10-22  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
64
65         [Qt] Fix "ASSERTION FAILED: !document->inPageCache()" when loading a page
66         https://bugs.webkit.org/show_bug.cgi?id=98514
67
68         Reviewed by Kenneth Rohde Christiansen.
69
70         The problem is that we call setFixedVisibleContentRect, which triggers
71         a layout, after the document has been put in the page cache and before
72         the load has been actually committed.
73
74         This applies the same trick as with setFixedLayoutSize by passing the rect
75         in Frame::createView and calling setFixedVisibleContentRect before the
76         new FrameView gets attached to the Frame/Document to prevent the layout.
77
78         * WebCore.exp.in:
79         * page/Frame.cpp:
80         (WebCore::Frame::createView): Give a default value to the fixedLayoutSize and
81         useFixedLayout arguments as well since they are used exceptionally.
82         * page/Frame.h:
83         (Frame):
84
85 2012-10-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
86
87         [Qt] Handle GET of blob URLs.
88         https://bugs.webkit.org/show_bug.cgi?id=99053
89
90         Reviewed by Simon Hausmann.
91
92         Let BlobResourceHandle handle Blob request internally.
93
94         * platform/network/qt/ResourceHandleQt.cpp:
95         (WebCore::ResourceHandle::loadResourceSynchronously):
96
97 2012-10-22  Kenichi Ishibashi  <bashi@chromium.org>
98
99         HarfBuzzShaper::shape() should return false when it adds no glyph to GlyphBuffer
100         https://bugs.webkit.org/show_bug.cgi?id=99966
101
102         Reviewed by Kent Tamura.
103
104         If no glyph is added to GlyphBuffer, HarfBuzzShaper::shape() returns false.
105
106         No new tests. Confirmed the fix by using Address Sanitizer.
107
108         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
109         (WebCore::HarfBuzzShaper::shape):
110         (WebCore::HarfBuzzShaper::fillGlyphBuffer): Returns false when glyphBuffer.size() == 0
111         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
112         (HarfBuzzShaper):
113
114 2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
115
116         [Shadow] ASSERT triggered when we try reprojecting fallback elements.
117         https://bugs.webkit.org/show_bug.cgi?id=99815
118
119         Reviewed by Hajime Morita.
120
121         When fallback elements of InsertionPoint is reprojected, they were attached twice.
122         We have to skip attaching them if they are attached. We also add a few ASSERT not to
123         allow attaching twice if not necessary.
124
125         We have confirmed that this patch does not regress the performance. The summary of the
126         performance test is the following:
127
128         Dromaeo/dom-modify.html [runs/s]:
129                                median stdev    min    max
130            without this patch:   3928   184   3655   4361
131            with this patch   :   3925   178   3652   4350
132
133         Parser/html5-full-render.html [s]:
134                                median stdev    min    max
135            without this patch:   3821    17   3811   3850
136            with this patch   :   3838   4.4   3833   3844
137
138         Test: fast/dom/shadow/content-reprojection-fallback-crash.html
139
140         * dom/ContainerNode.cpp:
141         (WebCore):
142         (WebCore::childAttachedAllowedWhenAttachingChildren): If true, children of this node might
143         be attached in advance because of ShadowDOM attaching process.
144         * dom/ContainerNode.h:
145         (ContainerNode):
146         (WebCore):
147         (WebCore::ContainerNode::attachChildren):
148         * dom/Element.cpp:
149         (WebCore::Element::attach):
150         * dom/ShadowRoot.cpp:
151         (WebCore::ShadowRoot::attach):
152
153 2012-10-22  Pavel Feldman  <pfeldman@chromium.org>
154
155         Web Inspector: merge "docked" state into the "dock side" enum.
156         https://bugs.webkit.org/show_bug.cgi?id=99717
157
158         Reviewed by Vsevolod Vlasov.
159
160         Otherwise, it is hard to manage these inter-dependent flags.
161
162         * WebCore.exp.in:
163         * inspector/InspectorFrontendClient.h:
164         (InspectorFrontendClient):
165         * inspector/InspectorFrontendClientLocal.cpp:
166         (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
167         (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
168         * inspector/InspectorFrontendClientLocal.h:
169         (InspectorFrontendClientLocal):
170         * inspector/InspectorFrontendHost.cpp:
171         (WebCore::InspectorFrontendHost::requestSetDockSide):
172         * inspector/InspectorFrontendHost.h:
173         (InspectorFrontendHost):
174         * inspector/InspectorFrontendHost.idl:
175         * inspector/front-end/DockController.js:
176         (WebInspector.DockController):
177         (WebInspector.DockController.prototype._updateUI.get sides):
178         (WebInspector.DockController.prototype._updateUI):
179         (WebInspector.DockController.prototype._toggleDockState):
180         * inspector/front-end/InspectorFrontendAPI.js:
181         (InspectorFrontendAPI.setAttachedWindow):
182         (InspectorFrontendAPI.setDockSide):
183         * inspector/front-end/InspectorFrontendHostStub.js:
184         (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
185         * inspector/front-end/externs.js:
186
187 2012-10-22  MORITA Hajime  <morrita@google.com>
188
189         Unreviewed follow up to update test result after r132033.
190
191         * bindings/scripts/test/V8/V8TestObj.cpp:
192         (WebCore::V8TestObj::installPerContextProperties):
193
194 2012-10-21  MORITA Hajime  <morrita@google.com>
195
196         [V8] V8EnablePerContext shouldn't require document() accessor to the native object.
197         https://bugs.webkit.org/show_bug.cgi?id=99954
198
199         Reviewed by Kentaro Hara.
200
201         It now refers ScriptExecutionContext of the creation context instead of document() of
202         wrapped object.
203
204         No new tests. No behavior change at this time.
205
206         * bindings/scripts/CodeGeneratorV8.pm:
207         (GenerateImplementation):
208
209 2012-10-21  Kent Tamura  <tkent@chromium.org>
210
211         Page popup: Fix crash by events after closing
212         https://bugs.webkit.org/show_bug.cgi?id=99951
213
214         Reviewed by Hajime Morita.
215
216         WebCore should provide a way to uninstall a DOMWindowPagePopup supplement.
217
218         No new tests. The bug is timing-dependent.
219
220         * page/DOMWindowPagePopup.cpp:
221         (WebCore::DOMWindowPagePopup::uninstall):
222         Added. Calls Supplementable::removeSupplement.
223         * page/DOMWindowPagePopup.h:
224         (DOMWindowPagePopup): Declare uninstall.
225         * platform/Supplementable.h:
226         (WebCore::Supplementable::removeSupplement): Added.
227
228 2012-10-21  Keishi Hattori  <keishi@webkit.org>
229
230         Refactor picker tests to fix flakiness and share code
231         https://bugs.webkit.org/show_bug.cgi?id=99671
232
233         Reviewed by Kent Tamura.
234
235         Disable transitions until the picker is fully ready. This should fix flakiness.
236
237         No new tests.
238
239         * Resources/pagepopups/calendarPicker.css:
240         (.preparing .unavailable): Disable transitions.
241         (.preparing .available): Disable transitions.
242         * Resources/pagepopups/calendarPicker.js:
243         (CalendarPicker): Set "preparing" class.
244         (CalendarPicker.prototype._handleWindowResize): Remove the "preparing" class when the window finishes resizing.
245
246 2012-10-21  Shinya Kawanaka  <shinyak@chromium.org>
247
248         Web Inspector: Shadow DOM: Node removal doesn't reflect.
249         https://bugs.webkit.org/show_bug.cgi?id=99567
250
251         Reviewed by Pavel Feldman.
252
253         We have to call InspectorInstrumentation::willRemoveDOMNode() even if a node is in a shadow tree.
254         Otherwise, node won't be removed from the inspector.
255
256         Test: inspector/elements/update-shadowdom.html
257
258         * dom/ContainerNode.cpp:
259         (WebCore::dispatchChildRemovalEvents):
260
261 2012-10-21  Andreas Kling  <kling@webkit.org>
262
263         Remove Page::javaScriptURLsAreAllowed setting.
264         <http://webkit.org/b/99944>
265
266         Reviewed by Anders Carlsson.
267
268         This setting was exposed through internal WebView API in Apple's WebKit1.
269         There are no longer any clients of that API.
270
271         This is a step towards preventing elements from modifying their own attributes
272         below attributeChanged().
273
274         * WebCore.exp.in:
275         * WebCore.order:
276         * bindings/ScriptControllerBase.cpp:
277         (WebCore::ScriptController::executeIfJavaScriptURL):
278         * html/HTMLAnchorElement.cpp:
279         (WebCore::HTMLAnchorElement::parseAttribute):
280         * page/Page.cpp:
281         (WebCore::Page::Page):
282         * page/Page.h:
283         (Page):
284
285 2012-10-21  Hyungchan Kim  <hyungchan2.kim@lge.com>
286
287         Add a separate flag for rgb swizzling whether it can be modified or not
288         https://bugs.webkit.org/show_bug.cgi?id=98728
289
290         BitmapTexture swizzles the source image if the OpenGL driver
291         doesn't support the BGRA extension.
292         In case of directly composited images, the source image should not
293         be modified.
294
295         http://www.satine.org/research/webkit/snowleopard/snowstack.html
296
297         Reviewed by Noam Rosenthal.
298
299         No new tests as this is only testable on specific hardware and
300         currently not avaiable in the bots.
301
302         * platform/graphics/texmap/TextureMapper.h:
303         (BitmapTexture):
304         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
305         (WebCore::TextureMapperTile::updateContents):
306         (WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
307         (WebCore::TextureMapperTiledBackingStore::updateContents):
308         * platform/graphics/texmap/TextureMapperBackingStore.h:
309         (TextureMapperTile):
310         (TextureMapperTiledBackingStore):
311         (WebCore::TextureMapperTiledBackingStore::updateContents):
312         * platform/graphics/texmap/TextureMapperGL.cpp:
313         (WebCore::TextureMapperGL::drawRepaintCounter):
314         (WebCore::BitmapTextureGL::updateContents):
315         * platform/graphics/texmap/TextureMapperGL.h:
316         (BitmapTextureGL):
317         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
318         (WebCore::BitmapTextureImageBuffer::updateContents):
319         * platform/graphics/texmap/TextureMapperImageBuffer.h:
320         (BitmapTextureImageBuffer):
321         * platform/graphics/texmap/TextureMapperLayer.cpp:
322         (WebCore::TextureMapperLayer::updateBackingStore):
323
324 2012-10-21  Antti Koivisto  <antti@apple.com>
325
326         Factor stylesheet invalidation analysis code into a class
327         https://bugs.webkit.org/show_bug.cgi?id=99933
328
329         Reviewed by Sam Weinig.
330
331         Currently the stylesheet analysis code is all over the place. It should be factored into a class to make
332         further progress easier.
333
334         The patch adds StyleInvalidationAnalysis class and moves a bunch of code from SelectorChecker, StyleResolver
335         and DocumentStyleSheetCollection there. No functional changes.
336
337         * CMakeLists.txt:
338         * GNUmakefile.list.am:
339         * Target.pri:
340         * WebCore.gypi:
341         * WebCore.vcproj/WebCore.vcproj:
342         * WebCore.xcodeproj/project.pbxproj:
343         * css/SelectorChecker.cpp:
344         (WebCore):
345         * css/SelectorChecker.h:
346         (WebCore):
347         * css/StyleInvalidationAnalysis.cpp: Added.
348         (WebCore):
349         (WebCore::StyleInvalidationAnalysis::StyleInvalidationAnalysis):
350         (WebCore::StyleInvalidationAnalysis::create):
351         (WebCore::determineSelectorScopes):
352         (WebCore::StyleInvalidationAnalysis::analyzeStyleSheet):
353         (WebCore::elementMatchesSelectorScopes):
354         (WebCore::StyleInvalidationAnalysis::invalidateStyle):
355         * css/StyleInvalidationAnalysis.h: Added.
356         (WebCore):
357         (StyleInvalidationAnalysis):
358         (WebCore::StyleInvalidationAnalysis::dirtiesAllStyle):
359         * css/StyleResolver.cpp:
360         (WebCore::StyleResolver::checkRegionSelector):
361         * css/StyleResolver.h:
362         (StyleResolver):
363         * dom/DocumentStyleSheetCollection.cpp:
364         (WebCore):
365         (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
366         * dom/DocumentStyleSheetCollection.h:
367         (DocumentStyleSheetCollection):
368
369 2012-10-08  Robert Hogan  <robert@webkit.org>
370
371         In some float situations, the original layout is wrong and only corrects itself on repaint
372         https://bugs.webkit.org/show_bug.cgi?id=18939
373
374         Reviewed by Levi Weintraub.
375
376         A <br> that follows collapsing spaces and has clearance set always needs to get a run and a linebox of its own.
377         This allows the line below it to check for clearance from the <br> if it gets dirtied but the line with the <br>
378         does not.
379
380         Test: fast/block/br-with-clearance-after-collapsing-space.html
381
382         * rendering/RenderBlockLineLayout.cpp:
383         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
384
385 2012-10-08  Robert Hogan  <robert@webkit.org>
386
387         floated element with negative margin causes text wrap bug
388         https://bugs.webkit.org/show_bug.cgi?id=94825
389
390         Reviewed by Levi Weintraub.
391
392         Avoid over-estimating the available width on the line by ensuring that the offset taken to avoid
393         floats on the line is at least as much as the offset given by border, margin and padding. This only
394         happens when a negative margin on the float brings its edge back before the offset
395         given by the border, margin and padding of its parents.
396
397         Test: fast/block/float/float-on-line-obeys-container-padding.html
398
399         * rendering/RenderBlockLineLayout.cpp:
400         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
401
402 2012-10-20  Martin Robinson  <mrobinson@igalia.com>
403
404         Fix 'make dist' for the GTK+ port
405
406         * GNUmakefile.am: Add missing files to the source list.
407         * GNUmakefile.list.am: Ditto.
408
409 2012-10-20  Dan Bernstein  <mitz@apple.com>
410
411         <rdar://problem/12512710> [mac] Text with zero font size renders as 12px sometimes
412         https://bugs.webkit.org/show_bug.cgi?id=99918
413
414         Reviewed by Geoff Garen.
415
416         -[NSFont fontWithName:size:] returns an NSFont of size 12 (the default User Font size) when
417         asked for size 0, and this is what Font::drawGlyphs uses to draw the text.
418
419         Test: fast/text/zero-font-size-2.html
420
421         * platform/graphics/mac/FontMac.mm:
422         (WebCore::Font::drawGlyphs): Added an early return if the size is zero.
423
424 2012-10-20  Andreas Kling  <kling@webkit.org>
425
426         Clean up QualifiedName-as-hash-key scenario.
427         <http://webkit.org/b/99394>
428
429         Reviewed by Anders Carlsson.
430
431         Cache the hash on QualifiedNameImpl after the first time it's computed.
432         This grows QualifiedNameImpl by 4 bytes on 32-bit (no change on 64-bit due to base class padding)
433         which I believe is fine, since QualifiedName is a shared object.
434
435         Add a global nullQName() function that returns a QualifiedName(nullAtom, nullAtom, nullAtom)
436         and use this to implement HashTraits<QualifiedName>::emptyValue(). The old implementation would
437         create a new QualifiedName(nullAtom, nullAtom, nullAtom) each time, which had to be hashed,
438         added to  the global QualifiedName cache, etc.
439
440         Finally, don't have SVGAttributeHashTranslator create a temporary QualifiedName just to compute
441         the hash of a (namespace, prefix, localName) tuple, use QualifiedNameComponents and hashComponents()
442         directly instead.
443
444         Altogether this shaves ~100ms off of the RoboHornet svgresize.html benchmark on my MBP.
445
446         * dom/QualifiedName.cpp:
447         (WebCore::nullQName):
448         (WebCore::QualifiedName::QualifiedNameImpl::computeHash):
449         * dom/QualifiedName.h:
450         (QualifiedNameImpl):
451         (WebCore::QualifiedName::QualifiedNameImpl::QualifiedNameImpl):
452         (WebCore::QualifiedNameHash::hash):
453         * svg/SVGElement.h:
454         (WebCore::SVGAttributeHashTranslator::hash):
455
456 2012-10-20  Yael Aharon  <yael.aharon@intel.com>
457
458         [EFL][AC] Build fix after r131933
459         https://bugs.webkit.org/show_bug.cgi?id=99901
460
461         Reviewed by Kentaro Hara.
462
463         Add ArrayBoundsClamper.cpp to WebCore/CMakeLists.txt.
464
465         No new tests.
466
467         * CMakeLists.txt:
468
469 2012-10-19  Adam Barth  <abarth@webkit.org>
470
471         [V8] V8DOMWrapper should avoid using its document parameter (so we can remove it soon)
472         https://bugs.webkit.org/show_bug.cgi?id=99876
473
474         Reviewed by Kentaro Hara.
475
476         We want to remove the document parameter to instantiateV8Object. There
477         isn't always a Document available, so it doesn't make sense to pass it
478         as a parameter. We're just waiting for a V8 API change so we can still
479         construct Node wrappers quickly.
480
481         This patch removes a use of the document that snuck in. Rather than
482         passing the ScriptExecutionContext around, we get it from the
483         CreationContext of the prototype object (and only when we actually need
484         it).
485
486         * Modules/notifications/NotificationCenter.cpp:
487         * Modules/notifications/NotificationCenter.h:
488         (NotificationCenter):
489         * bindings/scripts/CodeGeneratorV8.pm:
490         (GenerateHeader):
491         (GenerateConstructorGetter):
492         (GenerateImplementation):
493         (GenerateToV8Converters):
494         * bindings/v8/V8DOMWindowShell.cpp:
495         (WebCore::V8DOMWindowShell::installDOMWindow):
496         * bindings/v8/V8DOMWrapper.cpp:
497         (WebCore::V8DOMWrapper::instantiateV8Object):
498         * bindings/v8/V8PerContextData.cpp:
499         (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
500         (WebCore::V8PerContextData::constructorForTypeSlowCase):
501         * bindings/v8/V8PerContextData.h:
502         (WebCore::V8PerContextData::createWrapperFromCache):
503         (WebCore::V8PerContextData::constructorForType):
504         (V8PerContextData):
505         * bindings/v8/WorkerContextExecutionProxy.cpp:
506         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
507         * bindings/v8/WrapperTypeInfo.h:
508         (WebCore):
509         (WebCore::WrapperTypeInfo::installPerContextPrototypeProperties):
510
511 2012-10-19  Florin Malita  <fmalita@chromium.org>
512
513         Incorrect pattern scaling
514         https://bugs.webkit.org/show_bug.cgi?id=99870
515
516         Reviewed by Dirk Schulze.
517
518         The pattern space transform scale should reflect the tile_size(user space)
519         to tile_image_size ratio, instead of tile_size to absolute_tile_size.
520
521         Test: svg/custom/pattern-scaling.svg
522
523         * rendering/svg/RenderSVGResourcePattern.cpp:
524         (WebCore::RenderSVGResourcePattern::applyResource):
525
526 2012-10-19  Tony Chang  <tony@chromium.org>
527
528         RenderFlexibleBox::preferredMainAxisContentExtentForChild can return a negative value
529         https://bugs.webkit.org/show_bug.cgi?id=97827
530
531         Reviewed by Ojan Vafai.
532
533         I'm pretty sure this isn't possible (logicalHeight and maxPreferredLogicalWidth should always include
534         border and padding), so just add an assert.
535
536         No new tests, the assert is for code clarity.
537
538         * rendering/RenderFlexibleBox.cpp:
539         (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
540
541 2012-10-19  Tony Chang  <tony@chromium.org>
542
543         Replace calls to updateLogicalHeight with calls to computeLogicalHeight
544         https://bugs.webkit.org/show_bug.cgi?id=99883
545
546         Reviewed by Ojan Vafai.
547
548         In RenderBox and RenderBlock, switch to using computeLogicalHeight instead of
549         saving the old height, calling update logical height, then restoring the old height.
550
551         No new tests, this is just a refactoring.
552
553         * rendering/RenderBlock.cpp:
554         (WebCore::RenderBlock::computeBlockPreferredLogicalWidths): Simple replace.
555         * rendering/RenderBox.cpp:
556         (WebCore::RenderBox::computePercentageLogicalHeight): Adjust for content height.
557         (WebCore::RenderBox::computeReplacedLogicalHeightUsing): Adjust for content height.
558         (WebCore::RenderBox::availableLogicalHeightUsing): Adjust for content height.
559
560 2012-10-19  Pablo Flouret  <pablof@motorola.com>
561
562         Implement setRangeText() on text controls
563         https://bugs.webkit.org/show_bug.cgi?id=91907
564
565         Reviewed by Kent Tamura.
566
567         setRangeText() replaces a range of text with some other text, and
568         adjusts the existing selection according to its parameters.
569
570         Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#dom-textarea/input-setrangetext
571
572         Tests: fast/forms/color/color-setrangetext.html
573                fast/forms/date/date-setrangetext.html
574                fast/forms/datetime/datetime-setrangetext.html
575                fast/forms/datetimelocal/datetimelocal-setrangetext.html
576                fast/forms/file/file-setrangetext.html
577                fast/forms/hidden/hidden-setrangetext.html
578                fast/forms/image/image-setrangetext.html
579                fast/forms/month/month-setrangetext.html
580                fast/forms/number/number-setrangetext.html
581                fast/forms/range/range-setrangetext.html
582                fast/forms/search/search-setrangetext.html
583                fast/forms/setrangetext.html
584                fast/forms/textarea/textarea-setrangetext.html
585                fast/forms/time/time-setrangetext.html
586                fast/forms/week/week-setrangetext.html
587
588
589         * bindings/scripts/CodeGeneratorGObject.pm:
590         (SkipFunction):
591             The GObject generator doesn't support function overloads, so skip the
592             version of setRangeText() that has only one argument, its behavior
593             can be emulated with the four-argument version.
594
595         * html/InputType.cpp:
596         (WebCore::InputType::supportsSelectionAPI):
597         (WebCore):
598         * html/InputType.h:
599         (InputType):
600             Add supportsSelectionAPI() which indicates whether the various
601             selection api functions like setRangeText, setSelectionRange, etc.
602             are supported by this input element.
603
604         * html/BaseTextInputType.cpp:
605         (WebCore::BaseTextInputType::supportsSelectionAPI):
606         (WebCore):
607         * html/BaseTextInputType.h:
608         (BaseTextInputType):
609             Text-based input types support the selection APIs.
610
611         * html/EmailInputType.cpp:
612         (WebCore::EmailInputType::supportsSelectionAPI):
613         (WebCore):
614         * html/EmailInputType.h:
615         (EmailInputType):
616             Email inputs don't support the selection APIs.
617
618         * html/HTMLInputElement.cpp:
619         (WebCore::HTMLInputElement::setRangeText):
620         * html/HTMLInputElement.h:
621         (HTMLInputElement):
622             Add a setRangeText override which checks if it should apply to the
623             input type, and calls the actual implementation on the parent class.
624         * html/HTMLInputElement.idl:
625         * html/HTMLTextAreaElement.idl:
626
627         * html/HTMLTextFormControlElement.cpp:
628         (WebCore::HTMLTextFormControlElement::setRangeText):
629         * html/HTMLTextFormControlElement.h:
630         (HTMLTextFormControlElement):
631             setRangeText implementation.
632
633
634 2012-10-19  Luke Macpherson   <macpherson@chromium.org>
635
636         Remove HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro in StyleResolver.
637         https://bugs.webkit.org/show_bug.cgi?id=99782
638
639         Reviewed by Sam Weinig.
640
641         Removes last usage of HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro, so that in future there will be no temptation
642         to use it instead of adding a line to StyleBuilder.
643         Also removes redundant checks for inital and inherit (HANDLE_INHERIT_AND_INTIAL already returns in those cases).
644         I don't want to move this code into StyleBuilder until the FIXME that is already there is fixed.
645
646         Covered by many existing writing mode tests (eg. fast/html/details-writing-mode.html)
647
648         * css/StyleResolver.cpp:
649         (WebCore):
650         (WebCore::StyleResolver::applyProperty):
651
652 2012-10-19  Joshua Bell  <jsbell@chromium.org>
653
654         IndexedDB: Hidden indexing events are visible to script via bubbling/capture
655         https://bugs.webkit.org/show_bug.cgi?id=96566
656
657         Reviewed by Tony Chang.
658
659         Stop propagation of error events fired at internal indexing requests as a result of
660         aborting, as they should not be visible to scripts.
661
662         Test: storage/indexeddb/index-population.html
663
664         * Modules/indexeddb/IDBObjectStore.cpp:
665         (WebCore::IDBObjectStore::createIndex):
666         * Modules/indexeddb/IDBRequest.cpp:
667         (WebCore::IDBRequest::IDBRequest):
668         (WebCore::IDBRequest::dispatchEvent):
669         * Modules/indexeddb/IDBRequest.h:
670         (WebCore::IDBRequest::preventPropagation):
671         (IDBRequest):
672
673 2012-10-19  Simon Fraser  <simon.fraser@apple.com>
674
675         Remove .get() calls in assertions as suggested by Darin Adler.
676         
677         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
678         (PlatformCALayer::appendSublayer):
679         (PlatformCALayer::insertSublayer):
680         (PlatformCALayer::replaceSublayer):
681
682 2012-10-19  Simon Fraser  <simon.fraser@apple.com>
683
684         Fix a hang when combining tile cache layers with preserve-3d or reflections
685         https://bugs.webkit.org/show_bug.cgi?id=99890
686         <rdar://problem/12539560>
687
688         Reviewed by Dean Jackson.
689
690         The new tile cache code added an updateSublayers() call when switching to/from
691         tiled layers. This confused later sublayer rebuilding, causing us to attempt to
692         add a layer as a child of itself, causing a hang in CA.
693         
694         Fix by removing all the explicit calls to updateFoo when updating the structural
695         layer and switching to/from tiled layers. Instead, we set dirty flags, and rely
696         on the fact that these flag-dirtying functions get called before the later functions
697         that process those dirty flags. This is assured by some reordering of the update
698         function calls.
699         
700         A final wrinkle is that ensureStructuralLayer() can change the layer that our
701         parent GraphicsLayer put in its sublayer list. Rather than diddle with that sublayer
702         list directly like we used to, just call noteSublayersChanged() on the parent, and have
703         commitLayerChangesAfterSublayers() check the ChildrenChanged and do a second update
704         of sublayers if necessary (we clear the flag in commitLayerChangesBeforeSublayers(), so
705         only do this work if a sublayer requested it).
706         
707         Tests: compositing/tiling/preserve3d-tiled.html
708                compositing/tiling/reflected-tiled.html
709
710         * platform/graphics/ca/GraphicsLayerCA.cpp:
711         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
712         (WebCore::GraphicsLayerCA::commitLayerChangesAfterSublayers):
713         (WebCore::GraphicsLayerCA::ensureStructuralLayer):
714         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
715         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
716         (PlatformCALayer::appendSublayer): Add assertion about adding a layer to itself.
717         (PlatformCALayer::insertSublayer): Ditto.
718         (PlatformCALayer::replaceSublayer): Ditto.
719
720 2012-10-19  Chris Fleizach  <cfleizach@apple.com>
721
722         AX: aria-hidden=false does not work as expected
723         https://bugs.webkit.org/show_bug.cgi?id=98787
724
725         Reviewed by Beth Dakin.
726
727         ARIA requires that aria-hidden=false override an element's native visibility and include that
728         node in the AX hierarchy.
729
730         To accomplish this we have to allow invisible items to be included, as well as items that
731         have no renderers associated with them.
732
733         Test: accessibility/aria-hidden-negates-no-visibility.html
734
735         * accessibility/AXObjectCache.cpp:
736         (WebCore::AXObjectCache::getOrCreate):
737         * accessibility/AccessibilityARIAGrid.cpp:
738         (WebCore::AccessibilityARIAGrid::addTableCellChild):
739         (WebCore::AccessibilityARIAGrid::addChildren):
740         * accessibility/AccessibilityARIAGrid.h:
741         (AccessibilityARIAGrid):
742         * accessibility/AccessibilityNodeObject.cpp:
743         (WebCore):
744        (WebCore::AccessibilityNodeObject::boundingBoxRect):
745         (WebCore::AccessibilityNodeObject::insertChild):
746         (WebCore::AccessibilityNodeObject::addChild):
747         (WebCore::AccessibilityNodeObject::addChildren):
748         (WebCore::AccessibilityNodeObject::textUnderElement):
749         * accessibility/AccessibilityNodeObject.h:
750         (AccessibilityNodeObject):
751         * accessibility/AccessibilityObject.cpp:
752         (WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
753         (WebCore):
754         * accessibility/AccessibilityObject.h:
755         (AccessibilityObject):
756         (WebCore::AccessibilityObject::addChild):
757         (WebCore::AccessibilityObject::insertChild):
758         * accessibility/AccessibilityRenderObject.cpp:
759         (WebCore):
760         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
761         (WebCore::AccessibilityRenderObject::addHiddenChildren):
762         (WebCore::AccessibilityRenderObject::addChildren):
763         * accessibility/AccessibilityRenderObject.h:
764         (AccessibilityRenderObject):
765
766 2012-10-19  Michael Saboff  <msaboff@apple.com>
767
768         Add String version of visitedLinkHash() to properly handle 8-bit URL Strings.
769         https://bugs.webkit.org/show_bug.cgi?id=99735
770
771         Reviewed by Filip Pizlo.
772
773         Added String version of visitedLinkHash().  Made speculative addition of visitedLinkHash()
774         to chromium platform version of LinkHashChromium.cpp.
775         Changed calls in the form of visitedLinkHash(string.characters(), string.length()) to use the
776         new form.
777
778         No changes to functionality, so no new tests.
779
780         * WebCore.exp.in:
781         * loader/HistoryController.cpp:
782         (WebCore::addVisitedLink):
783         * page/PageGroup.cpp:
784         (WebCore::PageGroup::addVisitedLink):
785         * platform/LinkHash.cpp:
786         (WebCore::visitedLinkHashInline):
787         (WebCore::visitedLinkHash):
788         * platform/LinkHash.h:
789         * platform/chromium/LinkHashChromium.cpp:
790         (WebCore::visitedLinkHash):
791
792 2012-10-19  Michael Saboff  <msaboff@apple.com>
793
794         String(CFStringRef) should try to converting to an 8 bit string before converting to  16 bit string
795         https://bugs.webkit.org/show_bug.cgi?id=99794
796
797         Reviewed by Filip Pizlo.
798
799         Try getting a Latin1 byte string before getting a UTF16 (UChar*) string.
800
801         No new test, added 8 bit path.
802
803         * platform/text/cf/StringCF.cpp:
804         (WTF::String::String):
805
806 2012-10-19  Dima Gorbik  <dgorbik@apple.com>
807
808         Page should be removed from the cache right after restore was called.
809         https://bugs.webkit.org/show_bug.cgi?id=99737
810
811         Reviewed by Brady Eidson.
812
813         The pageCache was inconsistent after the restoration for a period of time because the cachedFrame is being nulled,
814         but the page is still in the Cache. Now the page is being removed from the cache right after the restoration.
815         This issue was spotted in a custom built application using WebKit and unfortunately there is no way to test this
816         behavior in LayoutTests. All the current tests that exercise the page cache do pass.
817
818         No new tests.
819
820         * loader/FrameLoader.cpp:
821         (WebCore::FrameLoader::commitProvisionalLoad):
822
823 2012-10-19  Max Vujovic  <mvujovic@adobe.com>
824
825         [WebGL] getUniformLocation fails for uniform array name without array brackets
826         https://bugs.webkit.org/show_bug.cgi?id=99854
827
828         Reviewed by Dean Jackson.
829
830         Before this patch, gl.getUniformLocation(program, "array[0]") would return the array
831         location, but gl.getUniformLocation(program, "array") would not. Now, the latter also
832         returns the array location.
833
834         In the process of adding a check to the following Khronos WebGL conformance test:
835         conformance/glsl/misc/glsl-long-variable-names.html
836
837         * platform/graphics/ANGLEWebKitBridge.cpp:
838         (WebCore::getSymbolInfo):
839             Before, we used to check that the symbol size was greater than one to determine that the
840             symbol was an array. However, this doesn't identify arrays of length one. Now, we check
841             if the symbol name ends in "[0]", since ANGLE appends this suffix to array symbol
842             names.
843             If the symbol is an array, we strip off the "[0]" and add a symbol with just the base
844             name. We set the isArray flag on the symbol, so we don't lose the information that it is
845             an array.
846             Then, we create symbols for each array element like before. However, instead of
847             replacing the "0" in array[0]" with each index, we take the base name "array" and
848             append array brackets containing each index (e.g. "array" + "[7]").
849         * platform/graphics/ANGLEWebKitBridge.h:
850         (ANGLEShaderSymbol):
851             Add isArray boolean to ANGLEShaderSymbol. Since array symbols don't end in "[0]"
852             anymore, this is the only way to identify arrays.
853
854 2012-10-19  Csaba Osztrogonác  <ossy@webkit.org>
855
856         Unreviewed, rolling out r131915.
857         http://trac.webkit.org/changeset/131915
858         https://bugs.webkit.org/show_bug.cgi?id=98787
859
860         It broke the build on platforms with \!HAVE(ACCESSIBILITY)
861
862         * accessibility/AXObjectCache.cpp:
863         (WebCore::AXObjectCache::getOrCreate):
864         (WebCore::AXObjectCache::nodeIsTextControl):
865         * accessibility/AXObjectCache.h:
866         (WebCore):
867         * accessibility/AccessibilityARIAGrid.cpp:
868         (WebCore::AccessibilityARIAGrid::addChild):
869         (WebCore::AccessibilityARIAGrid::addChildren):
870         * accessibility/AccessibilityARIAGrid.h:
871         (AccessibilityARIAGrid):
872         * accessibility/AccessibilityNodeObject.cpp:
873         (WebCore::AccessibilityNodeObject::elementRect):
874         (WebCore::AccessibilityNodeObject::addChildren):
875         (WebCore::AccessibilityNodeObject::textUnderElement):
876         * accessibility/AccessibilityNodeObject.h:
877         (AccessibilityNodeObject):
878         * accessibility/AccessibilityObject.cpp:
879         * accessibility/AccessibilityObject.h:
880         (AccessibilityObject):
881         * accessibility/AccessibilityRenderObject.cpp:
882         (WebCore::textIteratorBehaviorForTextRange):
883         (WebCore):
884         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
885         (WebCore::AccessibilityRenderObject::addChildren):
886         * accessibility/AccessibilityRenderObject.h:
887         (AccessibilityRenderObject):
888
889 2012-10-19  Tony Chang  <tony@chromium.org>
890
891         Unreviewed, rolling out r131936.
892         http://trac.webkit.org/changeset/131936
893         https://bugs.webkit.org/show_bug.cgi?id=99717
894
895         Broke the clang build
896
897         * WebCore.exp.in:
898         * inspector/InspectorFrontendClient.h:
899         (InspectorFrontendClient):
900         * inspector/InspectorFrontendClientLocal.cpp:
901         (WebCore::InspectorFrontendClientLocal::requestAttachWindow):
902         (WebCore):
903         (WebCore::InspectorFrontendClientLocal::requestDetachWindow):
904         (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
905         * inspector/InspectorFrontendClientLocal.h:
906         (InspectorFrontendClientLocal):
907         (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
908         * inspector/InspectorFrontendHost.cpp:
909         (WebCore::InspectorFrontendHost::requestAttachWindow):
910         (WebCore):
911         (WebCore::InspectorFrontendHost::requestDetachWindow):
912         (WebCore::InspectorFrontendHost::requestSetDockSide):
913         * inspector/InspectorFrontendHost.h:
914         (InspectorFrontendHost):
915         * inspector/InspectorFrontendHost.idl:
916         * inspector/front-end/DockController.js:
917         (WebInspector.DockController):
918         (WebInspector.DockController.prototype.setDocked):
919         (WebInspector.DockController.prototype._innerSetDocked.set if):
920         (WebInspector.DockController.prototype._innerSetDocked):
921         (WebInspector.DockController.prototype._updateUI.get states):
922         (WebInspector.DockController.prototype._updateUI):
923         (WebInspector.DockController.prototype._toggleDockState):
924         * inspector/front-end/InspectorFrontendAPI.js:
925         (InspectorFrontendAPI.setAttachedWindow):
926         (InspectorFrontendAPI.setDockSide):
927         * inspector/front-end/InspectorFrontendHostStub.js:
928         (.WebInspector.InspectorFrontendHostStub.prototype.requestAttachWindow):
929         (.WebInspector.InspectorFrontendHostStub.prototype.requestDetachWindow):
930         (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
931         * inspector/front-end/externs.js:
932         (InspectorFrontendHostAPI.prototype.requestAttachWindow):
933         (InspectorFrontendHostAPI.prototype.requestDetachWindow):
934
935 2012-10-09  Martin Robinson  <mrobinson@igalia.com>
936
937         REGRESSION (r130699): 5 various fast/ tests started failing
938         https://bugs.webkit.org/show_bug.cgi?id=98729
939
940         Reviewed by Xan Lopez.
941
942         Do not try to remove the URL fragment for data URLs. This will likely
943         just corrupt the URL.
944
945         No new tests. This unskips some previously failing tests.
946
947         * platform/network/soup/ResourceRequestSoup.cpp:
948         (WebCore::ResourceRequest::urlStringForSoup): Do nothing for data URLs.
949
950 2012-10-19  Simon Fraser  <simon.fraser@apple.com>
951
952         Use tile caches in place of CATiledLayer
953         https://bugs.webkit.org/show_bug.cgi?id=99806
954         <rdar://problem/6474145>
955
956         Reviewed by Tim Horton.
957
958         Have GraphicsLayerCA use TileCaches instead of CATiledLayer now for
959         layers that exceed the 2000px size threshold.
960
961         * platform/graphics/TiledBacking.h:
962         (TiledBacking): Have normal getter and setter for the visible rect.
963         * platform/graphics/ca/GraphicsLayerCA.cpp:
964         (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly): We need
965         to pass in an old visibleRect to commitLayerChangesBeforeSublayers(). Just use
966         our current visible rect, which result in no tile area work.
967         (WebCore::GraphicsLayerCA::computeVisibleRect): Make this const and have it
968         return the rect, for clarity.
969         (WebCore::GraphicsLayerCA::recursiveCommitChanges): Keep track of the old
970         visible rect, and use the change flags mechanism to ensure that we recompute
971         tile areas later.
972         When calling commitLayerChangesBeforeSublayers() on the mask layer, just pass
973         its own visible rect as the old visible rect.
974         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Pass in the
975         oldVisibleRect so that updateVisibleRect() can use this to see how the
976         visibleRect is changing.
977         (WebCore::GraphicsLayerCA::adjustTiledLayerVisibleRect): This member function
978         compares the old and new visible rects, and extends the tile coverage area
979         in directions where more content is being exposed. It takes care to avoid
980         "jitter" in the visible rect deltas causing edge tiles to get created then
981         destroyed by keeping any extra padding that already exists in a direction
982         where more content is being exposed.
983         (WebCore::GraphicsLayerCA::updateVisibleRect): Call adjustTiledLayerVisibleRect()
984         and use the result to update the TiledBacking's visibleRect.
985         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Create layers of type
986         LayerTypeTileCacheLayer instead of LayerTypeWebTiledLayer. Because tile
987         cache layers involve adding an extra layer to the hierarchy (the tile container),
988         we call updateSublayerList() when changing layer type.
989         * platform/graphics/ca/GraphicsLayerCA.h: New m_sizeAtLastVisibleRectUpdate member
990         that is used to prevent the adjustTiledLayerVisibleRect() logic being confused by
991         size changes.
992         (WebCore::GraphicsLayerCA::visibleRect):
993         * platform/graphics/ca/mac/TileCache.h: Have normal getter and setter for the visible rect.
994         * platform/graphics/ca/mac/TileCache.mm:
995         (WebCore::TileCache::setVisibleRect): Renamed to setVisibleRect().
996         * rendering/RenderLayerCompositor.cpp:
997         (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Avoid doing work
998         for pages in the page cache, for which the root layer is unattached.
999         (WebCore::RenderLayerCompositor::frameViewDidScroll): visibleRectChanged() was renamed
1000         to setVisibleRect().
1001
1002 2012-10-19  Beth Dakin  <bdakin@apple.com>
1003
1004         https://bugs.webkit.org/show_bug.cgi?id=99768
1005         We should limit the tile cache coverage when a page can't take 
1006         advantage of fast tile scrolling anyway
1007
1008         Reviewed by Simon Fraser.
1009
1010         When sites can't use fast-scrolling, there is no need to inflate the 
1011         tile cache. In fact, we get a performance boost by keeping it small 
1012         on painting-intensive sites. 
1013
1014         Instead of just looking a whether or not the FrameView 
1015         canHaveScrollbar(), consult 
1016         shouldUpdateScrollLayerPositionOnMainThread().
1017         * page/FrameView.cpp:
1018         (WebCore::FrameView::performPostLayoutTasks):
1019         * rendering/RenderLayerBacking.cpp:
1020         (WebCore::RenderLayerBacking::RenderLayerBacking):
1021         
1022         Expose shouldUpdateScrollLayerPositionOnMainThread().
1023         * page/scrolling/ScrollingCoordinator.cpp:
1024         (WebCore::ScrollingCoordinator::hasNonLayerFixedObjects):
1025         (WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionOnMainThread):
1026         (WebCore):
1027         (WebCore::ScrollingCoordinator::updateShouldUpdateScrollLayerPositionOnMainThread):
1028         * page/scrolling/ScrollingCoordinator.h:
1029         (ScrollingCoordinator):
1030
1031         Bug fix. Should be bitwise and.
1032         * platform/graphics/ca/mac/TileCache.mm:
1033         (WebCore::TileCache::tileCoverageRect):
1034
1035 2012-10-19  Mark Lam  <mark.lam@apple.com>
1036
1037         Added WTF::StackStats mechanism.
1038         https://bugs.webkit.org/show_bug.cgi?id=99805.
1039
1040         Reviewed by Geoffrey Garen.
1041
1042         Added StackStats probes in layout methods.
1043
1044         * dom/Document.cpp:
1045         (WebCore::Document::updateLayout):
1046         * rendering/RenderBlock.cpp:
1047         (WebCore::RenderBlock::layout):
1048         * rendering/RenderBox.cpp:
1049         (WebCore::RenderBox::layout):
1050         * rendering/RenderDialog.cpp:
1051         (WebCore::RenderDialog::layout):
1052         * rendering/RenderEmbeddedObject.cpp:
1053         (WebCore::RenderEmbeddedObject::layout):
1054         * rendering/RenderFlowThread.cpp:
1055         (WebCore::RenderFlowThread::layout):
1056         * rendering/RenderFrameSet.cpp:
1057         (WebCore::RenderFrameSet::layout):
1058         * rendering/RenderIFrame.cpp:
1059         (WebCore::RenderIFrame::layout):
1060         * rendering/RenderImage.cpp:
1061         (WebCore::RenderImage::layout):
1062         * rendering/RenderListBox.cpp:
1063         (WebCore::RenderListBox::layout):
1064         * rendering/RenderListItem.cpp:
1065         (WebCore::RenderListItem::layout):
1066         * rendering/RenderListMarker.cpp:
1067         (WebCore::RenderListMarker::layout):
1068         * rendering/RenderMedia.cpp:
1069         (WebCore::RenderMedia::layout):
1070         * rendering/RenderObject.cpp:
1071         (WebCore::RenderObject::layout):
1072         * rendering/RenderObject.h:
1073         * rendering/RenderRegion.cpp:
1074         (WebCore::RenderRegion::layout):
1075         * rendering/RenderReplaced.cpp:
1076         (WebCore::RenderReplaced::layout):
1077         * rendering/RenderReplica.cpp:
1078         (WebCore::RenderReplica::layout):
1079         * rendering/RenderRubyRun.cpp:
1080         (WebCore::RenderRubyRun::layoutSpecialExcludedChild):
1081         * rendering/RenderScrollbarPart.cpp:
1082         (WebCore::RenderScrollbarPart::layout):
1083         * rendering/RenderSlider.cpp:
1084         (WebCore::RenderSlider::layout):
1085         * rendering/RenderTable.cpp:
1086         (WebCore::RenderTable::layout):
1087         * rendering/RenderTableCell.cpp:
1088         (WebCore::RenderTableCell::layout):
1089         * rendering/RenderTableRow.cpp:
1090         (WebCore::RenderTableRow::layout):
1091         * rendering/RenderTableSection.cpp:
1092         (WebCore::RenderTableSection::layout):
1093         * rendering/RenderTextControlSingleLine.cpp:
1094         (WebCore::RenderTextControlSingleLine::layout):
1095         * rendering/RenderTextTrackCue.cpp:
1096         (WebCore::RenderTextTrackCue::layout):
1097         * rendering/RenderVideo.cpp:
1098         (WebCore::RenderVideo::layout):
1099         * rendering/RenderView.cpp:
1100         (WebCore::RenderView::layout):
1101         * rendering/RenderWidget.cpp:
1102         (WebCore::RenderWidget::layout):
1103         * rendering/svg/RenderSVGContainer.cpp:
1104         (WebCore::RenderSVGContainer::layout):
1105         * rendering/svg/RenderSVGForeignObject.cpp:
1106         (WebCore::RenderSVGForeignObject::layout):
1107         * rendering/svg/RenderSVGGradientStop.cpp:
1108         (WebCore::RenderSVGGradientStop::layout):
1109         * rendering/svg/RenderSVGHiddenContainer.cpp:
1110         (WebCore::RenderSVGHiddenContainer::layout):
1111         * rendering/svg/RenderSVGImage.cpp:
1112         (WebCore::RenderSVGImage::layout):
1113         * rendering/svg/RenderSVGResourceContainer.cpp:
1114         (WebCore::RenderSVGResourceContainer::layout):
1115         * rendering/svg/RenderSVGResourceMarker.cpp:
1116         (WebCore::RenderSVGResourceMarker::layout):
1117         * rendering/svg/RenderSVGRoot.cpp:
1118         (WebCore::RenderSVGRoot::layout):
1119         * rendering/svg/RenderSVGShape.cpp:
1120         (WebCore::RenderSVGShape::layout):
1121         * rendering/svg/RenderSVGText.cpp:
1122         (WebCore::RenderSVGText::layout):
1123
1124 2012-10-19  Pavel Feldman  <pfeldman@chromium.org>
1125
1126         Web Inspector: merge "docked" state into the "dock side" enum.
1127         https://bugs.webkit.org/show_bug.cgi?id=99717
1128
1129         Reviewed by Vsevolod Vlasov.
1130
1131         Otherwise, it is hard to manage these inter-dependent flags.
1132
1133         * inspector/InspectorFrontendClient.h:
1134         (InspectorFrontendClient):
1135         * inspector/InspectorFrontendClientLocal.cpp:
1136         (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
1137         (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
1138         * inspector/InspectorFrontendClientLocal.h:
1139         (InspectorFrontendClientLocal):
1140         * inspector/InspectorFrontendHost.cpp:
1141         (WebCore::InspectorFrontendHost::requestSetDockSide):
1142         * inspector/InspectorFrontendHost.h:
1143         (InspectorFrontendHost):
1144         * inspector/InspectorFrontendHost.idl:
1145         * inspector/front-end/DockController.js:
1146         (WebInspector.DockController):
1147         (WebInspector.DockController.prototype._updateUI.get sides):
1148         (WebInspector.DockController.prototype._updateUI):
1149         (WebInspector.DockController.prototype._toggleDockState):
1150         * inspector/front-end/InspectorFrontendAPI.js:
1151         (InspectorFrontendAPI.setAttachedWindow):
1152         * inspector/front-end/InspectorFrontendHostStub.js:
1153         (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
1154
1155 2012-10-19  Joshua Bell  <jsbell@chromium.org>
1156
1157         [V8] IndexedDB: Crash when lazy-indexing Date keys
1158         https://bugs.webkit.org/show_bug.cgi?id=99860
1159
1160         Reviewed by Adam Barth.
1161
1162         Missing a scope/context needed when digging values out of Date objects
1163         in an indexing callback.
1164
1165         Test: storage/indexeddb/lazy-index-types.html
1166
1167         * bindings/v8/IDBBindingUtilities.cpp:
1168         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
1169
1170 2012-10-18  Dean Jackson  <dino@apple.com>
1171
1172         Shader translator needs option to clamp uniform array accesses in vertex shaders
1173         https://bugs.webkit.org/show_bug.cgi?id=98977
1174         https://code.google.com/p/angleproject/issues/detail?id=49
1175
1176         Reviewed by Alok Priyadarshi and Ken Russell.
1177
1178         WebGL forbids out-of-bounds array access in shaders. Rewrite any shaders to
1179         ensure that non-direct array indexing is clamped to the bounds of the array.
1180
1181         Test: fast/canvas/webgl/array-bounds-clamping.html
1182
1183         * platform/graphics/ANGLEWebKitBridge.cpp:
1184         (WebCore::ANGLEWebKitBridge::compileShaderSource): Pass new compiler option SH_CLAMP_INDIRECT_ARRAY_BOUNDS
1185
1186 2012-10-19  Justin Novosad  <junov@chromium.org>
1187
1188         [Chromium] Reduce memory footprint of canvas pattern object with deferred rendering
1189         https://bugs.webkit.org/show_bug.cgi?id=99856
1190
1191         Reviewed by Stephen White.
1192
1193         Marking internal bitmap copy as immutable to prevent it from being
1194         unnecessarily duplicated in skia by SkBitmapHeap.
1195
1196         No new tests: code path already well covered by existing layout tests 
1197         fast/canvas/canvas-pattern-*
1198
1199         * platform/graphics/skia/PatternSkia.cpp:
1200         (WebCore::Pattern::platformPattern):
1201
1202 2012-10-19  Antti Koivisto  <antti@apple.com>
1203
1204         Maintain a list of active CSS stylesheets
1205         https://bugs.webkit.org/show_bug.cgi?id=99843
1206
1207         Reviewed by Andreas Kling.
1208
1209         Currently we maintain a per-document list of stylesheets that matches what is returned by the StyleSheetList DOM API. 
1210         This list contains both CSS and XSLT stylesheets which internally have basically nothing in common. Maintaining 
1211         a list of active CSS stylesheets separately simplifies code in number of places.
1212
1213         * css/StyleResolver.cpp:
1214         (WebCore::StyleResolver::StyleResolver):
1215         (WebCore::StyleResolver::addStylesheetsFromSeamlessParents):
1216         (WebCore::StyleResolver::appendAuthorStyleSheets):
1217         (WebCore::collectCSSOMWrappers):
1218         * css/StyleResolver.h:
1219         (StyleResolver):
1220         * css/StyleSheetList.cpp:
1221         (WebCore::StyleSheetList::styleSheets):
1222         (WebCore::StyleSheetList::detachFromDocument):
1223         * dom/Document.cpp:
1224         (WebCore::Document::setCompatibilityMode):
1225         * dom/DocumentStyleSheetCollection.cpp:
1226         (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
1227         (WebCore::styleSheetsUseRemUnits):
1228         (WebCore::filterEnabledCSSStyleSheets):
1229         (WebCore):
1230         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
1231         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
1232         * dom/DocumentStyleSheetCollection.h:
1233         (WebCore::DocumentStyleSheetCollection::styleSheetsForStyleSheetList):
1234         (DocumentStyleSheetCollection):
1235         (WebCore::DocumentStyleSheetCollection::activeAuthorStyleSheets):
1236
1237 2012-09-08  Alpha Lam  <hclam@chromium.org>
1238
1239         [chromium] Implement deferred image decoding
1240         https://bugs.webkit.org/show_bug.cgi?id=94240
1241
1242         Reviewed by Stephen White.
1243
1244         Objectives:
1245
1246         To record image decoding operations during painting and to defer
1247         decoding operations until rasterization.
1248
1249         Rationale:
1250
1251         This is a key feature that enables impl-side painting which requires
1252         fast recording of drawing operations. The existing decode-on-draw
1253         restricts that recording has to block on expensive decoding operations.
1254         This change allows recording of image decoding operations during paint
1255         time.
1256
1257         Design:
1258
1259         Image decoding happens when a BitmapImage is drawn into a
1260         GraphicsContext. When per-tile painting is enabled GraphicsContext
1261         is backed by SkCanvas in recording mode. This SkCanvas records drawing
1262         and image decoding operations to minimize recording time.
1263
1264         An image decoding operation is recorded as a SkPixelRef object
1265         implemented by LazyDecodingPixelRef. This object references raw encoded
1266         data, regions to be decoded and scaling information.
1267
1268         When used in conjunction with per-tile painting this feature defers
1269         image decoding until the SkCanvas referencing the image is rasterized.
1270
1271         Both recording and rasterization happen on the main thread.
1272
1273         Performance Impact:
1274
1275         This feature is enabled by WebKit::setDeferredImageDecodingEnabled()
1276         and does not have an impact when disabled.
1277
1278         This feature is disabled by default.
1279
1280         Upcoming Changes:
1281
1282         1. Implement a full-featured image cache in ImageDecodingStore.
1283         2. Allow rasterization and decoding on impl thread.
1284
1285         Classes Involved:
1286
1287         BitmapImage
1288
1289         BitmapImage is the entry point for deferred image decoding. When
1290         drawing a BitmapImage into a GraphicsContext it makes a request to
1291         create a NativeImageSkia. We substitute the content in NativeImageSkia
1292         such that it is lazily decoded.
1293
1294         DeferredImageDecoder
1295
1296         This is the platform implementation of a image decoder for Chromium.
1297         This is a bridge layer that either delegates calls to the actual
1298         ImageDecoder or create a lazily-decoded SkBitmap and delegates calls
1299         to ImageDecodingStore.
1300
1301         ImageDecodingStore
1302
1303         This object manages all encoded images. It keeps track of encoded
1304         data and the corresponding ImageDecoder for doing actual decoding. It
1305         is also responsible for generating lazily decoded SkBitmaps. This
1306         SkBitmap contains a LazyDecodingPixelRef object which references to an
1307         image entry in ImageDecodingStore.
1308
1309         ScaledImageFragment
1310
1311         A container for a scaled image fragment. In addition to bitmap pixels
1312         it contains information about the ID of the image, scale and clipping.
1313
1314         ImageFrameGenerator
1315
1316         This object is responsible for generating decoded pixels. It is also
1317         a container for encoded image data and corresponding image decoder.
1318
1319         LazyDecodingPixelRef
1320
1321         This object is embedded in a SkBitmap to enable lazy decoding. When
1322         SkBitmap needs to access pixels LazyDecodingPixelRef is locked. It
1323         contains information to locate an image and scaling info, these
1324         information is submitted to ImageDecodingStore to access actual pixels.
1325
1326         Layout tests. There are about 80 tests in this virtual test suite
1327         running this feature in this directory:
1328
1329         platform/chromium/virtual/deferred/fast/images
1330
1331         Unit tests. Added DeferredImageDecoderTest to verify deferred
1332         image decoding behavior.
1333
1334         * WebCore.gypi:
1335         * platform/graphics/ImageSource.cpp:
1336         (WebCore::ImageSource::setData):
1337         * platform/graphics/ImageSource.h:
1338         (WebCore):
1339         (ImageSource):
1340         * platform/graphics/chromium/DeferredImageDecoder.cpp: Added.
1341         (WebCore):
1342         (WebCore::DeferredImageDecoder::DeferredImageDecoder):
1343         (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
1344         (WebCore::DeferredImageDecoder::create):
1345         (WebCore::DeferredImageDecoder::createForTesting):
1346         (WebCore::DeferredImageDecoder::filenameExtension):
1347         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
1348         (WebCore::DeferredImageDecoder::setData):
1349         (WebCore::DeferredImageDecoder::isSizeAvailable):
1350         (WebCore::DeferredImageDecoder::size):
1351         (WebCore::DeferredImageDecoder::frameSizeAtIndex):
1352         (WebCore::DeferredImageDecoder::frameCount):
1353         (WebCore::DeferredImageDecoder::repetitionCount):
1354         (WebCore::DeferredImageDecoder::clearFrameBufferCache):
1355         (WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
1356         (WebCore::DeferredImageDecoder::frameBytesAtIndex):
1357         * platform/graphics/chromium/DeferredImageDecoder.h: Added.
1358         (WebCore):
1359         (DeferredImageDecoder):
1360         * platform/graphics/chromium/ImageDecodingStore.cpp: Added.
1361         (WebCore::ImageDecodingStore::ImageDecodingStore):
1362         (WebCore):
1363         (WebCore::ImageDecodingStore::~ImageDecodingStore):
1364         (WebCore::ImageDecodingStore::instanceOnMainThread):
1365         (WebCore::ImageDecodingStore::initializeOnMainThread):
1366         (WebCore::ImageDecodingStore::shutdown):
1367         (WebCore::ImageDecodingStore::isLazyDecoded):
1368         (WebCore::ImageDecodingStore::createLazyDecodedSkBitmap):
1369         (WebCore::ImageDecodingStore::resizeLazyDecodedSkBitmap):
1370         (WebCore::ImageDecodingStore::setData):
1371         (WebCore::ImageDecodingStore::lockPixels):
1372         (WebCore::ImageDecodingStore::unlockPixels):
1373         (WebCore::ImageDecodingStore::frameGeneratorBeingDestroyed):
1374         (WebCore::ImageDecodingStore::calledOnValidThread):
1375         (WebCore::ImageDecodingStore::lookupFrameCache):
1376         (WebCore::ImageDecodingStore::deleteFrameCache):
1377         * platform/graphics/chromium/ImageDecodingStore.h: Added.
1378         (WebCore):
1379         (ImageDecodingStore):
1380         (WebCore::ImageDecodingStore::create):
1381         * platform/graphics/chromium/ScaledImageFragment.cpp: Added.
1382         (WebCore):
1383         (WebCore::ScaledImageFragment::~ScaledImageFragment):
1384         (WebCore::ScaledImageFragment::ScaledImageFragment):
1385         (WebCore::ScaledImageFragment::isEqual):
1386         * platform/graphics/chromium/ScaledImageFragment.h: Added.
1387         (WebCore):
1388         (ScaledImageFragment):
1389         (WebCore::ScaledImageFragment::create):
1390         (WebCore::ScaledImageFragment::bitmap):
1391         (WebCore::ScaledImageFragment::isComplete):
1392         * platform/graphics/chromium/ImageFrameGenerator.cpp: Added.
1393         (WebCore):
1394         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
1395         (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
1396         (WebCore::ImageFrameGenerator::decoder):
1397         (WebCore::ImageFrameGenerator::setData):
1398         * platform/graphics/chromium/ImageFrameGenerator.h: Added.
1399         (WebCore):
1400         (ImageFrameGenerator):
1401         (WebCore::ImageFrameGenerator::create):
1402         (WebCore::ImageFrameGenerator::size):
1403         (WebCore::ImageFrameGenerator::imageId):
1404         * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Added.
1405         (WebCore):
1406         (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
1407         (WebCore::LazyDecodingPixelRef::~LazyDecodingPixelRef):
1408         (WebCore::LazyDecodingPixelRef::isScaled):
1409         (WebCore::LazyDecodingPixelRef::isClipped):
1410         (WebCore::LazyDecodingPixelRef::onLockPixels):
1411         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
1412         (WebCore::LazyDecodingPixelRef::onLockPixelsAreWritable):
1413         * platform/graphics/chromium/LazyDecodingPixelRef.h: Added.
1414         (WebCore):
1415         (LazyDecodingPixelRef):
1416         (WebCore::LazyDecodingPixelRef::frameGenerator):
1417         * platform/graphics/skia/NativeImageSkia.cpp:
1418         (WebCore::NativeImageSkia::resizedBitmap):
1419         * platform/image-decoders/ImageDecoder.h:
1420         (ImageFrame):
1421         (WebCore::ImageFrame::setSkBitmap):
1422         (WebCore::ImageFrame::getSkBitmap):
1423
1424 2012-10-18  Yael Aharon  <yael.aharon@intel.com>
1425
1426         [EFL] GraphicsContext3D::m_renderStyle is not initialized
1427         https://bugs.webkit.org/show_bug.cgi?id=99721
1428
1429         Reviewed by Antonio Gomes.
1430
1431         Initialize GraphicsContext3D::m_renderStyle.
1432
1433         No new tests, no new functionality.
1434
1435         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
1436         (WebCore::GraphicsContext3D::GraphicsContext3D):
1437
1438 2012-10-19  Dongwoo Joshua Im  <dw.im@samsung.com>
1439
1440         Rename ENABLE_CSS3_TEXT_DECORATION to ENABLE_CSS3_TEXT
1441         https://bugs.webkit.org/show_bug.cgi?id=99804
1442
1443         Reviewed by Julien Chaffraix.
1444
1445         CSS3 text related properties will be implemented under this flag,
1446         including text decoration, text-align-last, and text-justify.
1447
1448         No new functionality, no new test.
1449
1450         * Configurations/FeatureDefines.xcconfig:
1451         * GNUmakefile.am:
1452         * GNUmakefile.features.am:
1453         * css/CSSComputedStyleDeclaration.cpp:
1454         (WebCore):
1455         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1456         * css/CSSParser.cpp:
1457         (WebCore::CSSParser::parseValue):
1458         (WebCore::CSSParser::addTextDecorationProperty):
1459         (WebCore::CSSParser::parseTextDecoration):
1460         * css/CSSPrimitiveValueMappings.h:
1461         (WebCore):
1462         * css/CSSProperty.cpp:
1463         (WebCore::CSSProperty::isInheritedProperty):
1464         * css/CSSPropertyNames.in:
1465         * css/CSSValueKeywords.in:
1466         * css/StyleBuilder.cpp:
1467         (WebCore::StyleBuilder::StyleBuilder):
1468         * css/StyleResolver.cpp:
1469         (WebCore::StyleResolver::applyProperty):
1470         * rendering/style/RenderStyle.cpp:
1471         (WebCore::RenderStyle::diff):
1472         * rendering/style/RenderStyle.h:
1473         * rendering/style/RenderStyleConstants.h:
1474         (WebCore):
1475         * rendering/style/StyleRareNonInheritedData.cpp:
1476         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
1477         (WebCore::StyleRareNonInheritedData::operator==):
1478         * rendering/style/StyleRareNonInheritedData.h:
1479         (StyleRareNonInheritedData):
1480
1481 2012-10-19  Nate Chapin  <japhet@chromium.org>
1482
1483         Reorder some functions in SubresourceLoader to permit main resources
1484         https://bugs.webkit.org/show_bug.cgi?id=99769
1485
1486         Reviewed by Adam Barth.
1487
1488         Most resource types that go through the memory cache (and therefore
1489         through SubresourceLoader) are not sensitive to the exact ordering of
1490         the callbacks they receive, particularly as it relates to ResourceLoadNotifier
1491         calls.  Main resources are not so lenient.  For main resources to be cacheable
1492         and maintain the current behavior as precisely as possible, we will need to
1493         rearrange SubresourceLoader's willSendRequest() and didReceiveData().
1494
1495         No new tests, refactor only.
1496
1497         * loader/SubresourceLoader.cpp:
1498         (WebCore::SubresourceLoader::willSendRequest): There are a series of checks that can result
1499             in the request being canceled, plus calls to CachedResource::willSendRequest() and
1500             ResourceLoader::willSendRequest().  MainResourceLoader (which will be a
1501             CachedResourceClient) has work it expects to do before ResourceLoader::willSendRequest()
1502             is called, but the calls are out of order for that, so swap those.
1503         (WebCore::SubresourceLoader::didReceiveData): We need to populate ResourceLoader::m_resourceData
1504             before notifying CachedResource of new data, but we also want to do CachedResourceClients calls
1505             before calling ResourceLoadNotifier. This means we can't delegate to ResourceLoader.
1506
1507 2012-10-19  Chris Fleizach  <cfleizach@apple.com>
1508
1509         AX: aria-hidden=false does not work as expected
1510         https://bugs.webkit.org/show_bug.cgi?id=98787
1511
1512         Reviewed by Beth Dakin.
1513
1514         ARIA requires that aria-hidden=false override an element's native visibility and include that
1515         node in the AX hierarchy.
1516  
1517         To accomplish this we have to allow invisible items to be included, as well as items that
1518         have no renderers associated with them.
1519
1520         Test: accessibility/aria-hidden-negates-no-visibility.html
1521
1522         * accessibility/AXObjectCache.cpp:
1523         (WebCore::AXObjectCache::getOrCreate):
1524         * accessibility/AccessibilityARIAGrid.cpp:
1525         (WebCore::AccessibilityARIAGrid::addTableCellChild):
1526         (WebCore::AccessibilityARIAGrid::addChildren):
1527         * accessibility/AccessibilityARIAGrid.h:
1528         (AccessibilityARIAGrid):
1529         * accessibility/AccessibilityNodeObject.cpp:
1530         (WebCore):
1531         (WebCore::AccessibilityNodeObject::boundingBoxRect):
1532         (WebCore::AccessibilityNodeObject::insertChild):
1533         (WebCore::AccessibilityNodeObject::addChild):
1534         (WebCore::AccessibilityNodeObject::addChildren):
1535         (WebCore::AccessibilityNodeObject::textUnderElement):
1536         * accessibility/AccessibilityNodeObject.h:
1537         (AccessibilityNodeObject):
1538         * accessibility/AccessibilityObject.cpp:
1539         (WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
1540         (WebCore):
1541         * accessibility/AccessibilityObject.h:
1542         (AccessibilityObject):
1543         (WebCore::AccessibilityObject::addChild):
1544         (WebCore::AccessibilityObject::insertChild):
1545         * accessibility/AccessibilityRenderObject.cpp:
1546         (WebCore):
1547         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
1548         (WebCore::AccessibilityRenderObject::addHiddenChildren):
1549         (WebCore::AccessibilityRenderObject::addChildren):
1550         * accessibility/AccessibilityRenderObject.h:
1551         (AccessibilityRenderObject):
1552
1553 2012-10-19  Tommy Widenflycht  <tommyw@google.com>
1554
1555         MediaStream API: Rename owner to client in MediaStreamDescriptor
1556         https://bugs.webkit.org/show_bug.cgi?id=99593
1557
1558         Reviewed by Adam Barth.
1559
1560         This patch renames owner to client in MediaStreamDescriptor as discussed in #99080.
1561
1562         No new tests needed, covered by existing tests.
1563
1564         * Modules/mediastream/MediaStream.cpp:
1565         (WebCore::MediaStream::MediaStream):
1566         (WebCore::MediaStream::~MediaStream):
1567         * Modules/mediastream/MediaStream.h:
1568         (MediaStream):
1569         * Modules/mediastream/PeerConnection00.cpp:
1570         (WebCore::PeerConnection00::didRemoveRemoteStream):
1571         * Modules/mediastream/RTCPeerConnection.cpp:
1572         (WebCore::RTCPeerConnection::didRemoveRemoteStream):
1573         * platform/mediastream/MediaStreamCenter.cpp:
1574         (WebCore::MediaStreamCenter::endLocalMediaStream):
1575         (WebCore::MediaStreamCenter::addMediaStreamTrack):
1576         (WebCore::MediaStreamCenter::removeMediaStreamTrack):
1577         * platform/mediastream/MediaStreamDescriptor.h:
1578         (WebCore::MediaStreamDescriptorClient::~MediaStreamDescriptorClient):
1579         (WebCore::MediaStreamDescriptor::client):
1580         (WebCore::MediaStreamDescriptor::setClient):
1581         (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
1582         (MediaStreamDescriptor):
1583
1584 2012-10-19  Shinya Kawanaka  <shinyak@chromium.org>
1585
1586         Elements assigned to <shadow> should not be reprojected.
1587         https://bugs.webkit.org/show_bug.cgi?id=99680
1588
1589         Reviewed by Dimitri Glazkov.
1590
1591         In the current spec, we don't have shadow reprojection, i.e. elements assigned to <shadow> should not be
1592         reprojected to content. However, we can select them by <shadow>.
1593
1594         Tests: fast/dom/shadow/content-reprojection-complex.html
1595                fast/dom/shadow/content-reprojection-shadow.html
1596                fast/dom/shadow/shadow-reprojection-prohibited.html
1597
1598         * html/shadow/ContentDistributor.cpp:
1599         (WebCore::ContentDistributor::distribute): When a node is <shadow>, we should not add elements assigned to <shadow>
1600         to POOL. Instead, <shadow> itself should be added to POOL.
1601         * html/shadow/HTMLContentElement.h:
1602         (WebCore::isHTMLContentElement):
1603         (WebCore):
1604
1605 2012-10-19  Chris Fleizach  <cfleizach@apple.com>
1606
1607         VO issues with hidden <legend> and last explicitly labelled element within a group <fieldset>
1608         https://bugs.webkit.org/show_bug.cgi?id=96325
1609
1610         Reviewed by Beth Dakin.
1611
1612          When finding a <legend> for accessibility, we need to consider those that are offscreen. This patch
1613          modifies the original findLegend method to take a parameter to determine what should be done.
1614
1615         Test: accessibility/hidden-legend.html
1616
1617         * accessibility/AccessibilityRenderObject.cpp:
1618         (WebCore::AccessibilityRenderObject::titleUIElement):
1619         * rendering/RenderFieldset.cpp:
1620         (WebCore::RenderFieldset::findLegend):
1621         * rendering/RenderFieldset.h:
1622
1623 2012-10-17  Chris Fleizach  <cfleizach@apple.com>
1624
1625         AX: Refactor accessibility name computation so it's more platform independent
1626         https://bugs.webkit.org/show_bug.cgi?id=99502
1627
1628         Reviewed by Beth Dakin.
1629
1630         The current model of determining the accessible text for an object has a lot of Mac biases built in
1631         due to legacy implementation. 
1632
1633         This change categorizes and orders accessibility text based on WAI-ARIA text computation rules and then
1634         allows the platform (only Mac right now) to decide how best to apply that text to its own AX API.
1635         http://www.w3.org/TR/wai-aria/roles#textalternativecomputation
1636
1637         This change tried very hard not to change any test behavior, even though it exposed a number of weird
1638         edge cases where we were treating attributes differently based on element type. 
1639
1640         Future patches will resolve those discrepancies.
1641
1642         * accessibility/AccessibilityImageMapLink.cpp:
1643         (WebCore::AccessibilityImageMapLink::accessibilityText):
1644         * accessibility/AccessibilityImageMapLink.h:
1645         (AccessibilityImageMapLink):
1646         * accessibility/AccessibilityMediaControls.cpp:
1647         (WebCore::AccessibilityMediaControl::accessibilityText):
1648         * accessibility/AccessibilityMediaControls.h:
1649         (AccessibilityMediaControl):
1650         (WebCore::AccessibilityMediaTimeDisplay::isMediaControlLabel):
1651         * accessibility/AccessibilityNodeObject.cpp:
1652         (WebCore::AccessibilityNodeObject::titleElementText):
1653         (WebCore::AccessibilityNodeObject::accessibilityText):
1654         (WebCore::AccessibilityNodeObject::ariaLabeledByText):
1655         (WebCore::AccessibilityNodeObject::alternativeText):
1656         (WebCore::AccessibilityNodeObject::alternativeTextForWebArea):
1657         (WebCore::AccessibilityNodeObject::visibleText):
1658         (WebCore::AccessibilityNodeObject::helpText):
1659         (WebCore::AccessibilityNodeObject::ariaDescribedByAttribute):
1660         * accessibility/AccessibilityNodeObject.h:
1661         (AccessibilityNodeObject):
1662         * accessibility/AccessibilityObject.h:
1663         (AccessibilityText):
1664         (WebCore::AccessibilityText::AccessibilityText):
1665         (WebCore::AccessibilityObject::isMediaControlLabel):
1666         (AccessibilityObject):
1667         (WebCore::AccessibilityObject::accessibilityText):
1668         (WebCore::AccessibilityObject::setAccessibleName):
1669         (WebCore::AccessibilityObject::accessibilityDescription):
1670         (WebCore::AccessibilityObject::title):
1671         (WebCore::AccessibilityObject::helpText):
1672         (WebCore::AccessibilityObject::stringValue):
1673         (WebCore::AccessibilityObject::textUnderElement):
1674         (WebCore::AccessibilityObject::text):
1675         (WebCore::AccessibilityObject::textLength):
1676         (WebCore::AccessibilityObject::setRoleValue):
1677         (WebCore::AccessibilityObject::roleValue):
1678         (WebCore::AccessibilityObject::selection):
1679         (WebCore::AccessibilityObject::hierarchicalLevel):
1680         * accessibility/AccessibilityRenderObject.cpp:
1681         * accessibility/AccessibilityRenderObject.h:
1682         (AccessibilityRenderObject):
1683         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
1684         (-[WebAccessibilityObjectWrapper titleTagShouldBeUsedInDescriptionField]):
1685         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
1686         (-[WebAccessibilityObjectWrapper accessibilityDescription]):
1687         (-[WebAccessibilityObjectWrapper accessibilityHelpText]):
1688         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
1689         * platform/LocalizedStrings.cpp:
1690         (WebCore::localizedMediaControlElementHelpText):
1691
1692 2012-10-19  Kent Tamura  <tkent@chromium.org>
1693
1694         Use Localizer::monthFormat to construct input[type=month] UI
1695         https://bugs.webkit.org/show_bug.cgi?id=99818
1696
1697         Reviewed by Kentaro Hara.
1698
1699         Use an LDML format returned by Localizer::monthFormat for
1700         input[type=month] UI.
1701
1702         Because the format may contain symbolic month names and symbolic
1703         stand-alone month names, we need to add:
1704          - Symbolic/numeric detection in DateTimeEditBuilder
1705          - Normal/stand-alone detection in DateTimeEditBuilder
1706          - Symbolic edit field for months
1707
1708         Test: fast/forms/month-multiple-fields/month-multiple-fields-appearance-l10n.html,
1709               fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events.html
1710
1711         * html/MonthInputType.cpp:
1712         (WebCore::MonthInputType::setupLayoutParameters):
1713         Use Localizer::monthFormat.
1714
1715         * html/shadow/DateTimeEditElement.cpp:
1716         (WebCore::DateTimeEditBuilder::visitField):
1717         - If the number of continuous field character is greater than 2, use
1718         DateTimeSymbolicMonthFieldElement.
1719         - Supports stand-alone month field.
1720
1721         * html/shadow/DateTimeFieldElements.h:
1722         (DateTimeSymbolicMonthFieldElement): Added. A subclass of DateTimeSymbolicFieldElement.
1723         * html/shadow/DateTimeFieldElements.cpp:
1724         (WebCore::DateTimeSymbolicMonthFieldElement::DateTimeSymbolicMonthFieldElement):
1725         Added.
1726         (WebCore::DateTimeSymbolicMonthFieldElement::create): Added.
1727         (WebCore::DateTimeSymbolicMonthFieldElement::populateDateTimeFieldsState):
1728         We need to add 1 because the internal integer representation is 0-based
1729         and DateTimeFieldsState uses 1-based month.
1730         (WebCore::DateTimeSymbolicMonthFieldElement::setValueAsDate):
1731         DateComponents::month is 0-based.
1732         (WebCore::DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState):
1733         We need to subtract 1 because the internal integer representation is 0-based
1734         and DateTimeFieldsState uses 1-based month.
1735
1736         * html/shadow/DateTimeSymbolicFieldElement.h:
1737         (WebCore::DateTimeSymbolicFieldElement::symbolsSize):
1738         Added for DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState.
1739
1740 2012-10-19  Vsevolod Vlasov  <vsevik@chromium.org>
1741
1742         Web Inspector: inspector/styles/styles-history.html is failing Text on Windows and Linux
1743         https://bugs.webkit.org/show_bug.cgi?id=99519
1744
1745         Reviewed by Alexander Pavlov.
1746
1747         Extracted _styleContentSet callback in a class method to make it sniffable by tests.
1748
1749         * inspector/front-end/StylesSourceMapping.js:
1750         (WebInspector.StyleFile.prototype._commitIncrementalEdit):
1751         (WebInspector.StyleFile.prototype._styleContentSet):
1752
1753 2012-10-19  Pavel Feldman  <pfeldman@chromium.org>
1754
1755         Web Inspector: add object-src 'none' to the inspector.html
1756         https://bugs.webkit.org/show_bug.cgi?id=99728
1757
1758         Reviewed by Vsevolod Vlasov.
1759
1760         * inspector/front-end/inspector.html:
1761
1762 2012-10-19  Vsevolod Vlasov  <vsevik@chromium.org>
1763
1764         Web Inspector: Get rid of isSnippetEvaluation flag on UISourceCode
1765         https://bugs.webkit.org/show_bug.cgi?id=99823
1766
1767         Reviewed by Yury Semikhatsky.
1768
1769         Replaced isSnippetEvaluation flag with a pair of isSnippet and isTemporary set.
1770
1771         * inspector/front-end/ResourceScriptMapping.js:
1772         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
1773         * inspector/front-end/ScriptSnippetModel.js:
1774         (WebInspector.ScriptSnippetModel.prototype._releasedUISourceCodes):
1775         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
1776         * inspector/front-end/ScriptsNavigator.js:
1777         (WebInspector.ScriptsNavigator.prototype._snippetsNavigatorViewForUISourceCode):
1778         (WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
1779         * inspector/front-end/ScriptsPanel.js:
1780         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
1781         * inspector/front-end/Workspace.js:
1782         (WebInspector.Project.prototype.addTemporaryUISourceCode):
1783
1784 2012-10-19  Alexander Pavlov  <apavlov@chromium.org>
1785
1786         Web Inspector: Invalid Regex in SASSSourceMapping/didRequestContent, breaks Support for Sass experiment
1787         https://bugs.webkit.org/show_bug.cgi?id=99729
1788
1789         Reviewed by Vsevolod Vlasov.
1790
1791         Decode only the first line number digit written in a six-character escaped Unicode format.
1792
1793         * inspector/front-end/SASSSourceMapping.js:
1794         (WebInspector.SASSSourceMapping.prototype._resourceAdded.didRequestContent):
1795         (WebInspector.SASSSourceMapping.prototype._resourceAdded):
1796
1797 2012-10-19  Tommy Widenflycht  <tommyw@google.com>
1798
1799         MediaStream API: Update the RuntimeEnabledFeatures flags
1800         https://bugs.webkit.org/show_bug.cgi?id=99714
1801
1802         Reviewed by Adam Barth.
1803
1804         Updating the RuntimeEnabledFeatures flags to match reality:
1805         isMediaStreamEnabled and isPeerConnectionEnabled should be true by default and
1806         isDeprecatedPeerConnectionEnabled false.
1807
1808         Patch covered by existing tests.
1809
1810         * bindings/generic/RuntimeEnabledFeatures.cpp:
1811         (WebCore):
1812
1813 2012-10-19  Adam Barth  <abarth@webkit.org>
1814
1815         [V8] Simplify GCPrologueVisitor
1816         https://bugs.webkit.org/show_bug.cgi?id=99819
1817
1818         Reviewed by Kentaro Hara.
1819
1820         Previously, GCPrologueVisitor used a complicated traits-based template
1821         design. That's not necessary. We can just implement it directly without
1822         template magic.
1823
1824         The one subtly here is that MessagePort is not actually a subclass of
1825         ActiveDOMObject. The next stage of this cleanup is to make MessagePort
1826         inherit from ActiveDOMObject and remove this special case entirely.
1827
1828         * bindings/v8/V8GCController.cpp:
1829         (WebCore::EnsureWeakDOMNodeVisitor::visitDOMWrapper):
1830         (WebCore):
1831         (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
1832         (WebCore::NodeVisitor::visitDOMWrapper):
1833         (WebCore::V8GCController::gcPrologue):
1834
1835 2012-10-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
1836
1837         Web Inspector: Saving HAR, snapshots and timeline data do not work in remote debugging mode
1838         https://bugs.webkit.org/show_bug.cgi?id=99179
1839
1840         Reviewed by Yury Semikhatsky.
1841
1842         Added method "close" to InspectorFrontendHost.
1843         Symantically, this method forces to flush all unsaved buffers for
1844         specified file. In native implementation this turns to be no-op.
1845
1846         In stub implementation "close" causes compilation of blob object an
1847         navigating to blob-schema url.
1848
1849         Removed "canAppend", as appending in now suppurted
1850         by all implementations.
1851
1852         Repaced schema "data" with "blob" in InspectorFrontendHostStub "save"
1853         to avoid out-of-memory errors.
1854
1855         * inspector/InspectorFrontendHost.cpp:
1856         (WebCore::InspectorFrontendHost::close): Compiles blob object and
1857         navigates to blob-object url.
1858         (WebCore):
1859         * inspector/InspectorFrontendHost.h: Added "close" method.
1860         * inspector/InspectorFrontendHost.idl: Ditto.
1861         * inspector/front-end/FileManager.js:
1862         (WebInspector.FileManager.prototype.close): Proxy to InspectorFrontend.
1863         * inspector/front-end/FileUtils.js:
1864         (WebInspector.FileOutputStream.prototype.close):
1865         Invoke "close" on FileManager.
1866         (WebInspector.FileOutputStream.prototype._onAppendDone): Ditto.
1867         * inspector/front-end/HandlerRegistry.js: Added mandatory "close" call.
1868         * inspector/front-end/HeapSnapshotView.js:
1869         (WebInspector.HeapProfileHeader.prototype.canSaveToFile): Fixed check.
1870         * inspector/front-end/InspectorFrontendHostStub.js:
1871         (.WebInspector.InspectorFrontendHostStub):
1872         Added "appendable" behaviour emulation.
1873         * inspector/front-end/SourceFrame.js: Added mandatory "close" call.
1874         * inspector/front-end/externs.js: Replaced "canAppend" with "close"
1875
1876 2012-10-18  Dominic Mazzoni  <dmazzoni@google.com>
1877
1878         AX: labelForElement is slow when there are a lot of DOM elements
1879         https://bugs.webkit.org/show_bug.cgi?id=97825
1880
1881         Reviewed by Ryosuke Niwa.
1882
1883         Adds a DocumentOrderedMap to TreeScope that allows accessibility to
1884         quickly map from an id to the label for that id. This speeds up
1885         AccessibilityNode::labelForElement, which was a bottleneck in Chromium
1886         when accessibility was on.
1887
1888         Tests: accessibility/title-ui-element-correctness.html
1889                perf/accessibility-title-ui-element.html
1890
1891         * accessibility/AccessibilityNodeObject.cpp:
1892         (WebCore::AccessibilityNodeObject::labelForElement):
1893         * dom/DocumentOrderedMap.cpp:
1894         (WebCore::keyMatchesLabelForAttribute):
1895         (WebCore):
1896         (WebCore::DocumentOrderedMap::get):
1897         (WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
1898         * dom/DocumentOrderedMap.h:
1899         (DocumentOrderedMap):
1900         * dom/Element.cpp:
1901         (WebCore::Element::insertedInto):
1902         (WebCore::Element::removedFrom):
1903         (WebCore::Element::updateLabel):
1904         (WebCore):
1905         (WebCore::Element::willModifyAttribute):
1906         * dom/Element.h:
1907         (Element):
1908         * dom/TreeScope.cpp:
1909         (WebCore::TreeScope::TreeScope):
1910         (WebCore::TreeScope::destroyTreeScopeData):
1911         (WebCore::TreeScope::addLabel):
1912         (WebCore):
1913         (WebCore::TreeScope::removeLabel):
1914         (WebCore::TreeScope::labelElementForId):
1915         * dom/TreeScope.h:
1916         (WebCore):
1917         (TreeScope):
1918         (WebCore::TreeScope::shouldCacheLabelsByForAttribute):
1919
1920 2012-10-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
1921
1922         Web Inspector: Update localizedStrings.js
1923         https://bugs.webkit.org/show_bug.cgi?id=99701
1924
1925         Reviewed by Yury Semikhatsky.
1926
1927         Fixed most of missing strings and orphans.
1928
1929         * English.lproj/localizedStrings.js:
1930         * inspector/front-end/SettingsScreen.js:
1931
1932 2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
1933
1934         Web Inspector: NMI provide data for mixing with tcmalloc heap dumps.
1935         https://bugs.webkit.org/show_bug.cgi?id=99457
1936
1937         Reviewed by Yury Semikhatsky.
1938
1939         countObjectSize now accepts ptr as the first argument and saves it into HashMap if the binary was ran with HEAPPROFILE env variable.
1940         getProcessMemoryDistribution does snapshot and calls the downstream code with the map of counted objects.
1941
1942         * inspector/InspectorClient.h:
1943         (WebCore::InspectorClient::dumpUncountedAllocatedObjects):
1944         * inspector/InspectorMemoryAgent.cpp:
1945         (WebCore::reportJSHeapInfo):
1946         (WebCore::reportRenderTreeInfo):
1947         (WebCore):
1948         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
1949         * inspector/MemoryInstrumentationImpl.cpp:
1950         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
1951         (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
1952         * inspector/MemoryInstrumentationImpl.h:
1953         (MemoryInstrumentationClientImpl):
1954         (WebCore::MemoryInstrumentationClientImpl::countedObjects):
1955
1956 2012-10-19  Adam Barth  <abarth@webkit.org>
1957
1958         [V8] DOMObjectVisitor does nothing
1959         https://bugs.webkit.org/show_bug.cgi?id=99812
1960
1961         Reviewed by Kentaro Hara.
1962
1963         This code doesn't do anything, even in Debug! We should just remove it.
1964
1965         * bindings/v8/V8GCController.cpp:
1966         (WebCore):
1967         (WebCore::V8GCController::gcPrologue):
1968         (WebCore::V8GCController::gcEpilogue):
1969
1970 2012-10-19  Adam Barth  <abarth@webkit.org>
1971
1972         [V8] Remove unused typedef from V8GCController.cpp
1973         https://bugs.webkit.org/show_bug.cgi?id=99808
1974
1975         Reviewed by Kentaro Hara.
1976
1977         This typedef is not used.
1978
1979         * bindings/v8/V8GCController.cpp:
1980
1981 2012-10-18  Alexander Pavlov  <apavlov@chromium.org>
1982
1983         Web Inspector: [Styles] Property considered overridden if it is non-inherited important property in inherited style
1984         https://bugs.webkit.org/show_bug.cgi?id=99720
1985
1986         Reviewed by Yury Semikhatsky.
1987
1988         Non-inherited properties are now disregarded in inherited styles.
1989
1990         * inspector/front-end/StylesSidebarPane.js:
1991         (WebInspector.StylesSidebarPane.prototype._refreshStyleRules):
1992         (WebInspector.StylesSidebarPane.prototype._markUsedProperties):
1993
1994 2012-10-18  Adam Barth  <abarth@webkit.org>
1995
1996         [V8] GrouperVisitor is secretly two entirely separate objects
1997         https://bugs.webkit.org/show_bug.cgi?id=99810
1998
1999         Reviewed by Kentaro Hara.
2000
2001         We can separate out the two things that GrouperVisitor is trying to do
2002         because they have nothing to do with each other.
2003
2004         * bindings/v8/V8GCController.cpp:
2005         (ObjectVisitor):
2006         (WebCore::ObjectVisitor::visitDOMWrapper):
2007         (WebCore):
2008         (WebCore::V8GCController::gcPrologue):
2009
2010 2012-10-18  Kiran Muppala  <cmuppala@apple.com>
2011
2012         Automatically start plugins created within a user gesture, skipping snapshotting
2013         https://bugs.webkit.org/show_bug.cgi?id=99778
2014
2015         Reviewed by Alexey Proskuryakov.
2016
2017         If a user gesture is being processed, do not set the display state of
2018         HTMLPluginImageElement to WaitingForSnapshot.
2019
2020         No new tests, since it only affects when plugins switch from snapshot to running
2021         state.  Does not affect rendering of other elements.
2022
2023         * html/HTMLPlugInImageElement.cpp:
2024         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
2025
2026 2012-10-18  Kent Tamura  <tkent@chromium.org>
2027
2028         Add shortMonthLabels and shortStandAloneMonthLabels to Localizer
2029         https://bugs.webkit.org/show_bug.cgi?id=99787
2030
2031         Reviewed by Kentaro Hara.
2032
2033         This is going to be used for input[type=month] UI. This doesn't affect
2034         any bahevior yet.
2035
2036         Tests: Add some tests to Source/WebKit/chromium/tests/, and will add
2037         layout tests later.
2038
2039         * platform/text/Localizer.h:
2040         (Localizer): Add shortMonthLabels and shortStandAloneMonthLabels as pure
2041         virtual member functions.
2042
2043         * platform/text/LocaleICU.h:
2044         (LocaleICU): Declare shortMonthLabels and shortStandAloneMonthLabels.
2045         * platform/text/LocaleICU.cpp:
2046         (WebCore::LocaleICU::shortMonthLabels): Added.
2047         (WebCore::LocaleICU::shortStandAloneMonthLabels): Added.
2048
2049         * platform/text/LocaleNone.cpp:
2050         (LocaleNone): Declare shortMonthLabels and shortStandAloneMonthLabels.
2051         (WebCore::LocaleNone::shortMonthLabels):
2052         Added. Always returns English labels.
2053         (WebCore::LocaleNone::shortStandAloneMonthLabels):
2054         Addes. Just calls shortMonthLabels.
2055
2056         * platform/text/LocaleWin.h:
2057         (LocaleWin): Declare shortMonthLabels and shortStandAloneMonthLabels.
2058         * platform/text/LocaleWin.cpp:
2059         (WebCore::LocaleWin::shortMonthLabels): Added.
2060         (WebCore::LocaleWin::shortStandAloneMonthLabels):
2061         Added. Always returns shortMonthLabels.
2062
2063         * platform/text/mac/LocaleMac.h:
2064         (LocaleMac): Declare shortMonthLabels and shortStandAloneMonthLabels.
2065         * platform/text/mac/LocaleMac.mm:
2066         (WebCore::LocaleMac::shortMonthLabels): Added.
2067         (WebCore::LocaleMac::shortStandAloneMonthLabels): Added.
2068
2069 2012-10-18  Kunihiko Sakamoto  <ksakamoto@chromium.org>
2070
2071         Implement value sanitization algorithm for type=datetime
2072         https://bugs.webkit.org/show_bug.cgi?id=76893
2073
2074         Reviewed by Kent Tamura.
2075
2076         Implement the value sanitization algorithm for type=datetime that adjusts
2077         the value to a valid normalized forced-UTC global date and time string.
2078         See http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#valid-normalized-forced-utc-global-date-and-time-string
2079
2080         Test: fast/forms/datetime/datetime-value-sanitization.html
2081
2082         * html/DateTimeInputType.cpp:
2083         (WebCore::DateTimeInputType::sanitizeValue): Implemented.
2084         (WebCore):
2085         * html/DateTimeInputType.h:
2086         (DateTimeInputType): Add sanitizeValue.
2087         * platform/DateComponents.cpp:
2088         (WebCore::DateComponents::addMinute): Fixed a bug that caused wrong adjustment
2089         of timezone offset (e.g. 2012-10-17T01:00+01:00 -> 2012-10-17T01:-60Z).
2090
2091 2012-10-18  Byungwoo Lee  <bw80.lee@samsung.com>
2092
2093         Fix build warning.
2094         https://bugs.webkit.org/show_bug.cgi?id=99788
2095
2096         Reviewed by Kentaro Hara.
2097
2098         Use UNUSED_PARAM macro for removing -Wunused-parameter.
2099
2100         * rendering/RenderLayer.cpp:
2101         (WebCore::RenderLayer::currentTransform):
2102
2103 2012-10-18  Benjamin Poulain  <bpoulain@apple.com>
2104
2105         [WK2] WebKit2 does not build without PLUGIN_PROCESS on Mac
2106         https://bugs.webkit.org/show_bug.cgi?id=99771
2107
2108         Reviewed by Anders Carlsson.
2109
2110         * WebCore.exp.in: The symbol is used by WebCore Test Support, move it
2111         to the general section.
2112
2113 2012-10-18  Adam Barth  <abarth@webkit.org>
2114
2115         [V8] fast/dom/gc-9.html fails for document.styleSheets
2116         https://bugs.webkit.org/show_bug.cgi?id=99786
2117
2118         Reviewed by Kentaro Hara.
2119
2120         V8 needs to know about this IDL attribute as well.
2121
2122         * css/StyleSheetList.idl:
2123
2124 2012-10-18  Adam Barth  <abarth@webkit.org>
2125
2126         [V8] fast/dom/gc-9.html fails for document.implementation
2127         https://bugs.webkit.org/show_bug.cgi?id=99783
2128
2129         Reviewed by Kentaro Hara.
2130
2131         In order to correctly manage the lifetime of document.implementation,
2132         we need to implement GenerateIsReachable=ImplDocument.
2133
2134         * bindings/scripts/CodeGeneratorV8.pm:
2135         (GenerateVisitDOMWrapper):
2136         * bindings/scripts/IDLAttributes.txt:
2137         * dom/DOMImplementation.idl:
2138
2139 2012-10-18  Chris Fleizach  <cfleizach@apple.com>
2140
2141         AX: Crashes in WebProcess at com.apple.WebCore: -[AccessibilityObjectWrapper remoteAccessibilityParentObject] + 78
2142         https://bugs.webkit.org/show_bug.cgi?id=96443
2143
2144         Reviewed by Beth Dakin.
2145
2146         Separate out the chain of calls so that the number of times document() is called is reduced and it will be easier
2147         to determine which line this crash is happening on.
2148
2149         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
2150         (-[WebAccessibilityObjectWrapper remoteAccessibilityParentObject]):
2151
2152 2012-10-18  Alec Flett  <alecflett@chromium.org>
2153
2154         IndexedDB: Refactor IDBDatabaseBackendImpl to use IDBDatabaseMetadata
2155         https://bugs.webkit.org/show_bug.cgi?id=99773
2156
2157         Reviewed by Tony Chang.
2158
2159         Refactor to begin separating out metadata from stateful backend objects,
2160         in preparation for https://bugs.webkit.org/show_bug.cgi?id=99774.
2161
2162         Also includes some #include dependency cleanup so that the backing store
2163         depends less on the stateful backend objects.
2164
2165         No new tests as this is purely a refactor.
2166
2167         * Modules/indexeddb/IDBBackingStore.h:
2168         (WebCore):
2169         (IDBBackingStore):
2170         * Modules/indexeddb/IDBCursor.h:
2171         * Modules/indexeddb/IDBCursorBackendImpl.h:
2172         (WebCore):
2173         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
2174         (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
2175         (WebCore::IDBDatabaseBackendImpl::openInternal):
2176         (WebCore::IDBDatabaseBackendImpl::metadata):
2177         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
2178         (WebCore::IDBDatabaseBackendImpl::setVersion):
2179         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
2180         (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
2181         (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
2182         (WebCore::IDBDatabaseBackendImpl::openConnection):
2183         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
2184         (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
2185         (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
2186         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
2187         (WebCore::IDBDatabaseBackendImpl::resetVersion):
2188         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
2189         (WebCore::IDBDatabaseBackendImpl::id):
2190         (IDBDatabaseBackendImpl):
2191         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
2192         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
2193         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
2194         * Modules/indexeddb/IDBLevelDBBackingStore.h:
2195         (IDBLevelDBBackingStore):
2196         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
2197         * Modules/indexeddb/IDBTransaction.h:
2198         (WebCore):
2199
2200 2012-10-18  Peter Kasting  <pkasting@google.com>
2201
2202         [Skia] Set m_hasAlpha correctly in ImageFrame::copyBitmapData.
2203         https://bugs.webkit.org/show_bug.cgi?id=99781
2204
2205         Reviewed by Adam Barth.
2206
2207         No tests, since the actual effects of this bug are fickle and it's not
2208         clear how to extract and check particular subframes of an animated GIF.
2209
2210         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
2211         (WebCore::ImageFrame::copyBitmapData):
2212
2213 2012-10-18  Pan Deng  <pan.deng@intel.com>
2214
2215         [Resource Timing]Implementation of resource timing buffer size restriction functionality
2216         https://bugs.webkit.org/show_bug.cgi?id=84885.
2217
2218         Reviewed by Tony Gentilcore.
2219
2220         http://www.w3.org/TR/2012/CR-resource-timing-20120522/
2221         This patch enable functionality of set buffer size(default is 150 as spec). When buffer is full, resourceTimingBufferFull event will be fired. Incoming entries will be dropped if no more space for them. 
2222
2223         Tests: http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_populate_entries.html
2224                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_shrink_buffer_size.html
2225                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_size_restriction.html
2226                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_clear_resource_timing_functionality.html
2227                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_on_shrink_buffer_size.html
2228                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_store_and_clear_during_callback.html
2229
2230         * page/Performance.cpp:
2231         (WebCore):
2232         (WebCore::Performance::Performance):
2233         (WebCore::Performance::webkitSetResourceTimingBufferSize):
2234         (WebCore::Performance::addResourceTiming):
2235         (WebCore::Performance::isResourceTimingBufferFull):
2236         * page/Performance.h:
2237         (Performance):
2238
2239 2012-10-18  Ryosuke Niwa  <rniwa@webkit.org>
2240
2241         REGRESSION(r130411): Copying & pasting the first line of text can move caret to the end of text area
2242         https://bugs.webkit.org/show_bug.cgi?id=99663
2243
2244         Reviewed by Enrica Casucci and Levi Weintraub.
2245
2246         The bug was caused by positionOnlyToBeUpdated's offset not being shifted correctly in
2247         ReplaceSelectionCommand::mergeTextNodesAroundPosition. Suppose we have text nodes t1 and t2 and
2248         positionOnlyToBeUpdated had offset k in t2. When t2 is merged into t1, positionOnlyToBeUpdated should be
2249         moved to (t1, n + k) where n is the ORIGINAL length of t1 before t2 is merged. But we were using
2250         the length after t2 is merged.
2251
2252         Fixed the bug by saving the original length of t1 and using that in the offset adjustment.
2253         Also use the right offset.
2254
2255         Test: editing/pasteboard/copy-paste-first-line-in-textarea.html
2256
2257         * editing/ReplaceSelectionCommand.cpp:
2258         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
2259
2260 2012-10-18  Claudio Saavedra  <csaavedra@igalia.com>
2261
2262         [GTK] Invalid read from WebKit::DOMObjectCache::clearByFrame
2263         https://bugs.webkit.org/show_bug.cgi?id=82882
2264
2265         Reviewed by Xan Lopez.
2266
2267         Based on a patch by Milan Crha <mcrha@redhat.com>
2268
2269         Prevent an invalid access to a pointer while clearing the DOM
2270         object cache.
2271         * bindings/gobject/DOMObjectCache.cpp:
2272         (WebKit::DOMObjectCache::clearByFrame): Prevent an invalid access.
2273
2274 2012-10-18  Sheriff Bot  <webkit.review.bot@gmail.com>
2275
2276         Unreviewed, rolling out r131810.
2277         http://trac.webkit.org/changeset/131810
2278         https://bugs.webkit.org/show_bug.cgi?id=99762
2279
2280         Broke linux debug webkit_unit_tests (Requested by
2281         danakj|gardening on #webkit).
2282
2283         * WebCore.gypi:
2284         * platform/graphics/ImageSource.cpp:
2285         (WebCore::ImageSource::setData):
2286         * platform/graphics/ImageSource.h:
2287         (WebCore):
2288         (ImageSource):
2289         * platform/graphics/chromium/DeferredImageDecoder.cpp: Removed.
2290         * platform/graphics/chromium/DeferredImageDecoder.h: Removed.
2291         * platform/graphics/chromium/ImageDecodingStore.cpp: Removed.
2292         * platform/graphics/chromium/ImageDecodingStore.h: Removed.
2293         * platform/graphics/chromium/ImageFrameGenerator.cpp: Removed.
2294         * platform/graphics/chromium/ImageFrameGenerator.h: Removed.
2295         * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Removed.
2296         * platform/graphics/chromium/LazyDecodingPixelRef.h: Removed.
2297         * platform/graphics/chromium/ScaledImageFragment.cpp: Removed.
2298         * platform/graphics/chromium/ScaledImageFragment.h: Removed.
2299         * platform/graphics/skia/NativeImageSkia.cpp:
2300         (WebCore::NativeImageSkia::resizedBitmap):
2301         * platform/image-decoders/ImageDecoder.h:
2302         (ImageFrame):
2303
2304 2012-10-18  Tommy Widenflycht  <tommyw@google.com>
2305
2306         MediaStream API: Do some cleanup in the chromium WebKit API
2307         https://bugs.webkit.org/show_bug.cgi?id=99713
2308
2309         Reviewed by Adam Barth.
2310
2311         Removing the deprecated version of WebMediaStreamDescriptor::initialize.
2312
2313         No testing needed since only an unused function is removed.
2314
2315         * platform/chromium/support/WebMediaStreamDescriptor.cpp:
2316
2317 2012-10-18  Alpha Lam  <hclam@chromium.org>
2318
2319         [chromium] Implement deferred image decoding
2320         https://bugs.webkit.org/show_bug.cgi?id=94240
2321
2322         Reviewed by Stephen White.
2323
2324         Objectives:
2325
2326         To record image decoding operations during painting and to defer
2327         decoding operations until rasterization.
2328
2329         Rationale:
2330
2331         This is a key feature that enables impl-side painting which requires
2332         fast recording of drawing operations. The existing decode-on-draw
2333         restricts that recording has to block on expensive decoding operations.
2334         This change allows recording of image decoding operations during paint
2335         time.
2336
2337         Design:
2338
2339         Image decoding happens when a BitmapImage is drawn into a
2340         GraphicsContext. When per-tile painting is enabled GraphicsContext
2341         is backed by SkCanvas in recording mode. This SkCanvas records drawing
2342         and image decoding operations to minimize recording time.
2343
2344         An image decoding operation is recorded as a SkPixelRef object
2345         implemented by LazyDecodingPixelRef. This object references raw encoded
2346         data, regions to be decoded and scaling information.
2347
2348         When used in conjunction with per-tile painting this feature defers
2349         image decoding until the SkCanvas referencing the image is rasterized.
2350
2351         Both recording and rasterization happen on the main thread.
2352
2353         Performance Impact:
2354
2355         This feature is enabled by WebKit::setDeferredImageDecodingEnabled()
2356         and does not have an impact when disabled.
2357
2358         This feature is disabled by default.
2359
2360         Upcoming Changes:
2361
2362         1. Implement a full-featured image cache in ImageDecodingStore.
2363         2. Allow rasterization and decoding on impl thread.
2364
2365         Classes Involved:
2366
2367         BitmapImage
2368
2369         BitmapImage is the entry point for deferred image decoding. When
2370         drawing a BitmapImage into a GraphicsContext it makes a request to
2371         create a NativeImageSkia. We substitute the content in NativeImageSkia
2372         such that it is lazily decoded.
2373
2374         DeferredImageDecoder
2375
2376         This is the platform implementation of a image decoder for Chromium.
2377         This is a bridge layer that either delegates calls to the actual
2378         ImageDecoder or create a lazily-decoded SkBitmap and delegates calls
2379         to ImageDecodingStore.
2380
2381         ImageDecodingStore
2382
2383         This object manages all encoded images. It keeps track of encoded
2384         data and the corresponding ImageDecoder for doing actual decoding. It
2385         is also responsible for generating lazily decoded SkBitmaps. This
2386         SkBitmap contains a LazyDecodingPixelRef object which references to an
2387         image entry in ImageDecodingStore.
2388
2389         ScaledImageFragment
2390
2391         A container for a scaled image fragment. In addition to bitmap pixels
2392         it contains information about the ID of the image, scale and clipping.
2393
2394         ImageFrameGenerator
2395
2396         This object is responsible for generating decoded pixels. It is also
2397         a container for encoded image data and corresponding image decoder.
2398
2399         LazyDecodingPixelRef
2400
2401         This object is embedded in a SkBitmap to enable lazy decoding. When
2402         SkBitmap needs to access pixels LazyDecodingPixelRef is locked. It
2403         contains information to locate an image and scaling info, these
2404         information is submitted to ImageDecodingStore to access actual pixels.
2405
2406         Layout tests. There are about 80 tests in this virtual test suite
2407         running this feature in this directory:
2408
2409         platform/chromium/virtual/deferred/fast/images
2410
2411         Unit tests. Added DeferredImageDecoderTest to verify deferred
2412         image decoding behavior.
2413
2414         * WebCore.gypi:
2415         * platform/graphics/ImageSource.cpp:
2416         (WebCore::ImageSource::setData):
2417         * platform/graphics/ImageSource.h:
2418         (WebCore):
2419         (ImageSource):
2420         * platform/graphics/chromium/DeferredImageDecoder.cpp: Added.
2421         (WebCore):
2422         (WebCore::DeferredImageDecoder::DeferredImageDecoder):
2423         (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
2424         (WebCore::DeferredImageDecoder::create):
2425         (WebCore::DeferredImageDecoder::createForTesting):
2426         (WebCore::DeferredImageDecoder::filenameExtension):
2427         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
2428         (WebCore::DeferredImageDecoder::setData):
2429         (WebCore::DeferredImageDecoder::isSizeAvailable):
2430         (WebCore::DeferredImageDecoder::size):
2431         (WebCore::DeferredImageDecoder::frameSizeAtIndex):
2432         (WebCore::DeferredImageDecoder::frameCount):
2433         (WebCore::DeferredImageDecoder::repetitionCount):
2434         (WebCore::DeferredImageDecoder::clearFrameBufferCache):
2435         (WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
2436         (WebCore::DeferredImageDecoder::frameBytesAtIndex):
2437         * platform/graphics/chromium/DeferredImageDecoder.h: Added.
2438         (WebCore):
2439         (DeferredImageDecoder):
2440         * platform/graphics/chromium/ImageDecodingStore.cpp: Added.
2441         (WebCore::ImageDecodingStore::ImageDecodingStore):
2442         (WebCore):
2443         (WebCore::ImageDecodingStore::~ImageDecodingStore):
2444         (WebCore::ImageDecodingStore::instanceOnMainThread):
2445         (WebCore::ImageDecodingStore::initializeOnMainThread):
2446         (WebCore::ImageDecodingStore::shutdown):
2447         (WebCore::ImageDecodingStore::isLazyDecoded):
2448         (WebCore::ImageDecodingStore::createLazyDecodedSkBitmap):
2449         (WebCore::ImageDecodingStore::resizeLazyDecodedSkBitmap):
2450         (WebCore::ImageDecodingStore::setData):
2451         (WebCore::ImageDecodingStore::lockPixels):
2452         (WebCore::ImageDecodingStore::unlockPixels):
2453         (WebCore::ImageDecodingStore::frameGeneratorBeingDestroyed):
2454         (WebCore::ImageDecodingStore::calledOnValidThread):
2455         (WebCore::ImageDecodingStore::lookupFrameCache):
2456         (WebCore::ImageDecodingStore::deleteFrameCache):
2457         * platform/graphics/chromium/ImageDecodingStore.h: Added.
2458         (WebCore):
2459         (ImageDecodingStore):
2460         (WebCore::ImageDecodingStore::create):
2461         * platform/graphics/chromium/ScaledImageFragment.cpp: Added.
2462         (WebCore):
2463         (WebCore::ScaledImageFragment::~ScaledImageFragment):
2464         (WebCore::ScaledImageFragment::ScaledImageFragment):
2465         (WebCore::ScaledImageFragment::isEqual):
2466         * platform/graphics/chromium/ScaledImageFragment.h: Added.
2467         (WebCore):
2468         (ScaledImageFragment):
2469         (WebCore::ScaledImageFragment::create):
2470         (WebCore::ScaledImageFragment::bitmap):
2471         (WebCore::ScaledImageFragment::isComplete):
2472         * platform/graphics/chromium/ImageFrameGenerator.cpp: Added.
2473         (WebCore):
2474         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
2475         (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
2476         (WebCore::ImageFrameGenerator::decoder):
2477         (WebCore::ImageFrameGenerator::setData):
2478         * platform/graphics/chromium/ImageFrameGenerator.h: Added.
2479         (WebCore):
2480         (ImageFrameGenerator):
2481         (WebCore::ImageFrameGenerator::create):
2482         (WebCore::ImageFrameGenerator::size):
2483         (WebCore::ImageFrameGenerator::imageId):
2484         * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Added.
2485         (WebCore):
2486         (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
2487         (WebCore::LazyDecodingPixelRef::~LazyDecodingPixelRef):
2488         (WebCore::LazyDecodingPixelRef::isScaled):
2489         (WebCore::LazyDecodingPixelRef::isClipped):
2490         (WebCore::LazyDecodingPixelRef::onLockPixels):
2491         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
2492         (WebCore::LazyDecodingPixelRef::onLockPixelsAreWritable):
2493         * platform/graphics/chromium/LazyDecodingPixelRef.h: Added.
2494         (WebCore):
2495         (LazyDecodingPixelRef):
2496         (WebCore::LazyDecodingPixelRef::frameGenerator):
2497         * platform/graphics/skia/NativeImageSkia.cpp:
2498         (WebCore::NativeImageSkia::resizedBitmap):
2499         * platform/image-decoders/ImageDecoder.h:
2500         (ImageFrame):
2501         (WebCore::ImageFrame::setSkBitmap):
2502         (WebCore::ImageFrame::getSkBitmap):
2503
2504 2012-10-18  Yael Aharon  <yael.aharon@intel.com>
2505
2506         [EFL] GraphicsContext3D::m_renderStyle is not initialized
2507         https://bugs.webkit.org/show_bug.cgi?id=99721
2508
2509         Reviewed by Antonio Gomes.
2510
2511         Initialize GraphicsContext3D::m_renderStyle.
2512
2513         No new tests, no new functionality.
2514
2515         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
2516         (WebCore::GraphicsContext3D::GraphicsContext3D):
2517
2518 2012-10-18  Max Vujovic  <mvujovic@adobe.com>
2519
2520         [CSS Shaders] Validate types of built-in vertex attributes
2521         https://bugs.webkit.org/show_bug.cgi?id=98972
2522
2523         Reviewed by Dean Jackson.
2524
2525         Reject custom filters in which the author defined built-in attributes with the wrong type.
2526         For example, the GLSL declaration "attribute float a_position" is incorrect because
2527         a_position should be a vec4, not a float.
2528
2529         Test: css3/filters/custom/invalid-custom-filter-attribute-types.html
2530
2531         * platform/graphics/ANGLEWebKitBridge.h:
2532         (WebCore::ANGLEShaderSymbol::isSampler):
2533             Add const qualifier to isSampler method.
2534         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
2535         (WebCore):
2536         (WebCore::builtInAttributeNameToTypeMap):
2537             New file static function. Returns a map of the CSS Custom Filters built-in attribute
2538             names and their expected types.
2539         (WebCore::validateSymbols):
2540             New file static function. Loop through all of the symbols. Reject the shader if we find
2541             a built-in attribute defined with the wrong type.
2542         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
2543             Call the new validateSymbols function. If it returns false, exit the constructor early,
2544             which rejects the program.
2545             Move the loop that checks if any uniform is a sampler into the the validateSymbols
2546             function.
2547
2548 2012-10-18  Mike Reed  <reed@google.com>
2549
2550         Handle if we fail to allocate nonPlatformCanvas in ImageBuffer constructor
2551         https://bugs.webkit.org/show_bug.cgi?id=99752
2552
2553         Reviewed by Stephen White.
2554
2555         Current code does not check if we were able to allocate the pixels, but still returns the canvas.
2556         However, the caller explicitly is checking for null on failure, so it will continue (and possibly
2557         crash later on).
2558         This change brings the nonPlatformCanvas behavior inline with createAcceleratedCanvas and
2559         TryCreateBitmapCanvas, both of which are also called by ImageBuffer's constructor.
2560
2561         No new tests. Existing tests exercise ImageBuffer constructor.
2562
2563         * platform/graphics/skia/ImageBufferSkia.cpp:
2564         (WebCore::createNonPlatformCanvas):
2565
2566 2012-10-18  Beth Dakin  <bdakin@apple.com>
2567
2568         https://bugs.webkit.org/show_bug.cgi?id=99668
2569         REGRESSION: Crash in 
2570         WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion
2571         -and corresponding-
2572         <rdar://problem/12491901>
2573
2574         Reviewed by Simon Fraser.
2575
2576         http://trac.webkit.org/changeset/130783 changed the lifetime of the 
2577         ScrollingStateTree's rootStateNode. Before that patch, the root state 
2578         node was never destroyed. It was just constantly re-used for 
2579         different RenderLayerBackings. This crash is just one of a few bugs 
2580         that has occurred because of that change. I have fixed the other bugs 
2581         individually, but I think that long-term, it is the safest solution 
2582         to go back to the original ownership model.
2583
2584         So this patch ensures that the state tree will always have a root 
2585         state node. Instead of destroying and re-creating the root node when 
2586         it's scroll ID changes, we just update the ID.
2587
2588         attachToStateTree() now takes an additional ID representing the ID of 
2589         the parent node.
2590         * page/scrolling/ScrollingCoordinator.h:
2591         (WebCore::ScrollingCoordinator::attachToStateTree):
2592
2593         Add a way to set the scrolling node ID.
2594         * page/scrolling/ScrollingStateNode.h:
2595         (WebCore::ScrollingStateNode::setScrollingNodeID):
2596
2597         This code that provided a way to mark all properties as having 
2598         changed was added in http://trac.webkit.org/changeset/130989 as a way 
2599         to ensure we would re-set ScrollingThread's nodes when we destroyed 
2600         and re-created the rootStateNode. Now that we are no longer 
2601         destroying and re-creating the rootStateNode, this code is no longer 
2602         necessary.
2603         * page/scrolling/ScrollingStateScrollingNode.cpp:
2604         * page/scrolling/ScrollingStateScrollingNode.h:
2605
2606         create m_rootStateNode right in the ScrollingStateTree's constructor.
2607         * page/scrolling/ScrollingStateTree.cpp:
2608         (WebCore::ScrollingStateTree::ScrollingStateTree):
2609
2610         Don't let removeNode() destroy m_rootStateNode.
2611         (WebCore::ScrollingStateTree::removeNode):
2612
2613         Also a part of r130989 that is no longer needed.
2614         (WebCore::ScrollingStateTree::rootLayerDidChange():
2615         * page/scrolling/ScrollingStateTree.h:
2616         (WebCore::ScrollingStateTree::rootStateNode):
2617         (ScrollingStateTree):
2618         (WebCore::ScrollingStateTree::setRootStateNode):
2619
2620         attachToStateTree() now takes an additional ID representing the ID of 
2621         the parent node.
2622         * page/scrolling/mac/ScrollingCoordinatorMac.h:
2623         (ScrollingCoordinatorMac):
2624
2625         We no longer need ScrollingStateTree::rootLayerDidChange()
2626         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
2627         (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
2628
2629         Do not destroy and re-create the state node. Just update its ID. When 
2630         we support child nodes soon, we will create them in this function.
2631         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
2632
2633         No need to null-check the rootStateNode.
2634         (WebCore::ScrollingCoordinatorMac::clearStateTree):
2635
2636         Send 0 as the parent node ID to attachToStateTree() to represent the 
2637         root node.
2638         (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
2639         * rendering/RenderLayerBacking.cpp:
2640
2641         RenderLayerBacking::attachToScrollingCoordinator() now takes a parent 
2642         layer.
2643         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
2644         * rendering/RenderLayerBacking.h:
2645         (RenderLayerBacking):
2646
2647         Since this is the root, send 0 to represent the parent layer.
2648         * rendering/RenderLayerCompositor.cpp:
2649         (WebCore::RenderLayerCompositor::updateBacking):
2650
2651 2012-10-18  Yael Aharon  <yael.aharon@intel.com>
2652
2653         [EFL] GraphicsContext3D::m_renderStyle is not initialized
2654         https://bugs.webkit.org/show_bug.cgi?id=99721
2655
2656         Reviewed by Antonio Gomes.
2657
2658         Initialize GraphicsContext3D::m_renderStyle.
2659
2660         No new tests, no new functionality.
2661
2662         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
2663         (WebCore::GraphicsContext3D::GraphicsContext3D):
2664
2665 2012-10-18  Brian White  <bcwhite@chromium.org>
2666
2667         WebKit Doesn't Recognize Content-Language HTTP Header
2668         https://bugs.webkit.org/show_bug.cgi?id=97929
2669
2670         Reviewed by Alexey Proskuryakov.
2671
2672         The HTTP "Content-Language" header may be present and include the
2673         language of the page contents (as opposed to an embedded meta tag).
2674
2675         * loader/FrameLoader.cpp:
2676         (WebCore::FrameLoader::didBeginDocument):
2677
2678 2012-10-18  Jer Noble  <jer.noble@apple.com>
2679
2680         Crash in WebCore::Document::webkitExitFullscreen + 618
2681         https://bugs.webkit.org/show_bug.cgi?id=99496
2682
2683         Reviewed by Eric Carlson.
2684
2685         Prospective fix for null-dereference crash in Document::webkitExitFullscreen().
2686
2687         * dom/Document.cpp:
2688         (WebCore::Document::webkitExitFullscreen): Null check page() before calling page()->chrome.
2689
2690 2012-10-18  Pablo Flouret  <pablof@motorola.com>
2691
2692         Implement css3-conditional's @supports rule
2693         https://bugs.webkit.org/show_bug.cgi?id=86146
2694
2695         Reviewed by Antti Koivisto.
2696
2697         The "@supports" rule is a conditional group rule whose condition tests
2698         whether the user agent supports CSS property:value pairs.
2699
2700         http://dev.w3.org/csswg/css3-conditional/#at-supports
2701
2702         Test: css3/supports.html
2703
2704         * Configurations/FeatureDefines.xcconfig:
2705         * GNUmakefile.am:
2706         * GNUmakefile.features.am:
2707             Add an ENABLE_CSS3_CONDITIONAL_RULES flag.
2708
2709         * css/CSSGrammar.y.in:
2710         * css/CSSParser.cpp:
2711         (WebCore):
2712         (WebCore::CSSParser::detectSupportsToken): Tries to find 'and', 'not' and 'or' tokens.
2713         (WebCore::CSSParser::detectAtToken): Enter SupportsMode if @supports is detected.
2714         (WebCore::CSSParser::realLex): Try to detect supports tokens when in SupportsMode.
2715         * css/CSSParser.h: Added new SupportsMode parsing mode.
2716         (CSSParser):
2717
2718 2012-10-18  Marja Hölttä  <marja@chromium.org>
2719
2720         Fix: CachedResourceLoader::requestSVGDocument was passing an URL as charset
2721         https://bugs.webkit.org/show_bug.cgi?id=99730
2722
2723         Reviewed by Jochen Eisinger.
2724
2725         * loader/cache/CachedResourceLoader.cpp:
2726         (WebCore::CachedResourceLoader::requestSVGDocument):
2727
2728 2012-10-18  Jer Noble  <jer.noble@apple.com>
2729
2730         Fullscreen movie controls behave incorrectly when clicked (and dragged)
2731         https://bugs.webkit.org/show_bug.cgi?id=99610
2732
2733         Reviewed by Eric Carlson.
2734
2735         Do not reset the relative drag position to 0,0 at the beginning of every drag.  Instead,
2736         store the cumulative drag offset and accumulate during each additional drag.
2737
2738         No new tests; modified the fullscreen/video-controls-drag.html test.
2739
2740         * html/shadow/MediaControlElements.cpp:
2741         (WebCore::MediaControlPanelElement::startDrag): Reset m_lastDragEventLocation.
2742         (WebCore::MediaControlPanelElement::continueDrag): Accumulate drag distance in m_cumulativeDragOffset.
2743         (WebCore::MediaControlPanelElement::resetPosition): Reset m_cumulativeDragOffset.
2744         * html/shadow/MediaControlElements.h:
2745
2746 2012-10-18  Brandon Jones  <bajones@google.com>
2747
2748         Implement OES_element_index_uint / WEBKIT_OES_element_index_uint
2749         https://bugs.webkit.org/show_bug.cgi?id=97400
2750
2751         Reviewed by Kenneth Russell.
2752
2753         Implemented OES_element_index_uint WebGL extension
2754
2755         Test: fast/canvas/webgl/oes-element-index-uint.html
2756
2757         * CMakeLists.txt:
2758         * DerivedSources.make:
2759         * DerivedSources.pri:
2760         * GNUmakefile.list.am:
2761         * Target.pri:
2762         * WebCore.gypi:
2763         * WebCore.xcodeproj/project.pbxproj:
2764         * bindings/js/JSWebGLRenderingContextCustom.cpp:
2765         (WebCore::toJS):
2766         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
2767         (WebCore::toV8Object):
2768         * html/canvas/OESElementIndexUint.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
2769         (WebCore):
2770         (WebCore::OESElementIndexUint::OESElementIndexUint):
2771         (WebCore::OESElementIndexUint::~OESElementIndexUint):
2772         (WebCore::OESElementIndexUint::getName):
2773         (WebCore::OESElementIndexUint::create):
2774         * html/canvas/OESElementIndexUint.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
2775         (WebCore):
2776         (OESElementIndexUint):
2777         * html/canvas/OESElementIndexUint.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
2778         * html/canvas/WebGLExtension.h:
2779         * html/canvas/WebGLRenderingContext.cpp:
2780         (WebCore):
2781         (WebCore::WebGLRenderingContext::validateElementArraySize):
2782         (WebCore::WebGLRenderingContext::validateIndexArrayConservative):
2783         (WebCore::WebGLRenderingContext::validateIndexArrayPrecise):
2784         (WebCore::WebGLRenderingContext::validateRenderingState):
2785         (WebCore::WebGLRenderingContext::drawElements):
2786         (WebCore::WebGLRenderingContext::getExtension):
2787         (WebCore::WebGLRenderingContext::getSupportedExtensions):
2788         * html/canvas/WebGLRenderingContext.h:
2789         (WebCore):
2790         (WebGLRenderingContext):
2791         * platform/graphics/Extensions3D.h:
2792         (Extensions3D):
2793         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
2794         (WebCore::Extensions3DOpenGL::supportsExtension):
2795
2796 2012-10-18  Jer Noble  <jer.noble@apple.com>
2797
2798         Add diagnostic logging to track per-page media engine usage.
2799         https://bugs.webkit.org/show_bug.cgi?id=99615
2800         <rdar://problem/12476473>
2801
2802         Reviewed by Eric Carlson.
2803
2804         Add diagnostic logging triggered only once-per-page and once-per-page-per-engine.
2805
2806         * html/HTMLMediaElement.cpp:
2807         (WebCore::logMediaLoadRequest): Encapsulate diagnostic logging into single static method.
2808         (WebCore::HTMLMediaElement::mediaLoadingFailed): Call logMediaLoadRequest.
2809         (WebCore::HTMLMediaElement::setReadyState): Ditto.
2810         * loader/FrameLoader.cpp:
2811         (WebCore::FrameLoader::dispatchDidCommitLoad): Reset the set of seen media engines.
2812
2813         Add new methods to Page to track per-page media engine diagnostic info, similar to plugin diagnostic info.
2814         * page/Page.cpp:
2815         (WebCore::Page::hasSeenAnyMediaEngine):
2816         (WebCore::Page::hasSeenMediaEngine):
2817         (WebCore::Page::sawMediaEngine):
2818         (WebCore::Page::resetSeenMediaEngines):
2819         * page/Page.h:
2820
2821         Add new static logging key definitions:
2822         * page/DiagnosticLoggingKeys.cpp:
2823         (WebCore::DiagnosticLoggingKeys::pageContainsMediaEngineKey):
2824         (WebCore::DiagnosticLoggingKeys::pageContainsAtLeastOneMediaEngineKey):
2825         * page/DiagnosticLoggingKeys.h:
2826
2827 2012-10-18  Michael Saboff  <msaboff@apple.com>
2828
2829         Add 8-bit path to RenderBlock::handleTrailingSpaces()
2830         https://bugs.webkit.org/show_bug.cgi?id=99731
2831
2832         Reviewed by Dan Bernstein.
2833
2834         Factored out and added findFirstTrailingSpace() templated helper function that is called with the 
2835         approriate character pointer type.
2836
2837         No tests needed, change covered by existing tests.
2838
2839         * rendering/RenderBlockLineLayout.cpp:
2840         (WebCore::findFirstTrailingSpace):
2841         (WebCore::RenderBlock::handleTrailingSpaces):
2842
2843 2012-10-18  Hans Muller  <hmuller@adobe.com>
2844
2845         [CSS Exclusions] Add ExclusionShape::shapeBoundingBox() method
2846         https://bugs.webkit.org/show_bug.cgi?id=99216
2847
2848         Reviewed by Dirk Schulze.
2849
2850         Added a FloatRect::extend() method which simplifies writing loops that
2851         accumulate the bounding box for a sequence of FloatPoints. The new method
2852         is used by ExclusionPolygon to initialize the shape's logical and physical
2853         bounding boxes. This a clean-up, not a change in functionality. It's already
2854         covered by the existing fast/exclusions LayoutTests.
2855
2856         * platform/graphics/FloatRect.cpp:
2857         (WebCore::FloatRect::extend): Extend the FloatRect's bounds to include a FloatPoint.
2858         (WebCore):
2859         * platform/graphics/FloatRect.h:
2860         (FloatRect): Added extend() method.
2861         * rendering/ExclusionPolygon.cpp:
2862         (WebCore::ExclusionPolygon::ExclusionPolygon): Use FloatRect::extend() to compute the polygon's internal bounding box.
2863         * rendering/ExclusionShape.cpp:
2864         (WebCore::ExclusionShape::createExclusionShape): Use FloatRect::extend() to compute the polygon's physical bounding box.
2865         * rendering/ExclusionShape.h:
2866         (WebCore::ExclusionShape::shapeBoundingBox): Return the shape's bounding box in physical coordinates.
2867         (ExclusionShape):
2868
2869 2012-10-18  Hans Muller  <hmuller@adobe.com>
2870
2871         [CSS Exclusions] Handle special case "empty" shapes
2872         https://bugs.webkit.org/show_bug.cgi?id=99342
2873
2874         Reviewed by Dirk Schulze.
2875
2876         Provide expclit coverage of the simple "empty" shape-inside shapes.
2877         Shapes will be considered "empty" in the sense that ExclusionShape::getIncludedIntervals()
2878         and ExclusionShape::getExcludedIntervals() will always return empty lists of intervals.
2879         This patch covers rectangles of zero width or height, circles with 0 radius, ellipses
2880         with 0 radiusX or radiusY, polygons with less than 3 vertices.
2881
2882         Test: fast/exclusions/shape-inside/shape-inside-empty.html
2883
2884         * rendering/ExclusionPolygon.cpp:
2885         (WebCore::ExclusionPolygon::ExclusionPolygon): Initialize the m_empty flag.
2886         (WebCore::ExclusionPolygon::getExcludedIntervals): Added short-circuit return when the polygon is empty.
2887         (WebCore::ExclusionPolygon::getIncludedIntervals): Added short-circuit return when the polygon is empty.
2888         * rendering/ExclusionPolygon.h: Added the isEmpty() method.
2889         * rendering/ExclusionRectangle.cpp:
2890         (WebCore::ExclusionRectangle::getExcludedIntervals): Added short-circuit return when the rectangle is empty.
2891         (WebCore::ExclusionRectangle::getIncludedIntervals): Added short-circuit return when the rectangle is empty.
2892         * rendering/ExclusionRectangle.h: Added the isEmpty() method.
2893         * rendering/ExclusionShape.h: Added a virtual isEmpty() ExclusionShape method.
2894         (ExclusionShape):
2895
2896 2012-10-18  Takashi Sakamoto  <tasak@google.com>
2897
2898         REGRESSION(r131464): Null-pointer crash in StyleResolver::styleForElement
2899         https://bugs.webkit.org/show_bug.cgi?id=99587
2900
2901         Reviewed by Dimitri Glazkov.
2902
2903         Since contents in datalist are not shown, summary in datalist is not
2904         shown either. So the summary has no render style. On the other hand,
2905         the summary is implemented by shadow DOM and it has some insertion
2906         point. Its child, e.g. title in the below test, is distributed.
2907         To solve the child's user-modify, looking at shadow host(=summary)'s
2908         style causes null-pointer crash.
2909
2910         Test: fast/dom/shadow/user-modify-in-datalist-crash.html
2911
2912         * css/StyleResolver.cpp:
2913         (WebCore::StyleResolver::styleForElement):
2914         Added a code to check whether the shadow host has any style or not.
2915
2916 2012-10-17  Philippe Normand  <pnormand@igalia.com>
2917
2918         [GTK] AudioBusGtk sometimes fails to load the HRTF database
2919         https://bugs.webkit.org/show_bug.cgi?id=99601
2920
2921         Reviewed by Martin Robinson.
2922
2923         AudioBusGtk now first lookup for the uninstalled resource files,
2924         if the AUDIO_RESOURCES_PATH environment variable is
2925         set. Additionally the audio file reader is now better dealing with
2926         errors, returning an empty AudioBus in such cases and issuing
2927         warnings on the console output. The cleanup of some member
2928         variables was also moved to the destructor.
2929
2930         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
2931         (AudioFileReader):
2932         (WebCore::AudioFileReader::AudioFileReader):
2933         (WebCore::AudioFileReader::~AudioFileReader): Clear and free
2934         member variables. This was done in createBus before.
2935         (WebCore::AudioFileReader::handleMessage): Issue warnings in case
2936         of error and exit from the main loop so the pipeline is not
2937         forever stuck.
2938         (WebCore::AudioFileReader::createBus): Return an empty bus in case
2939         of error.
2940         * platform/audio/gtk/AudioBusGtk.cpp:
2941         (WebCore::AudioBus::loadPlatformResource): Load uninstalled
2942         resources first if AUDIO_RESOURCES_PATH is set.
2943
2944 2012-10-18  Pavel Feldman  <pfeldman@chromium.org>
2945
2946         Web Inspector: provisional change for merging "doced" state into the "dock side" enum.
2947         https://bugs.webkit.org/show_bug.cgi?id=99718
2948
2949         Reviewed by Vsevolod Vlasov.
2950
2951         Adds stub method that could be executed from the embedder.
2952
2953         * inspector/front-end/InspectorFrontendAPI.js:
2954         (InspectorFrontendAPI.setDockSide):
2955
2956 2012-10-18  Kent Tamura  <tkent@chromium.org>
2957
2958         Add Localizer::monthFormat and implementations
2959         https://bugs.webkit.org/show_bug.cgi?id=99704
2960
2961         Reviewed by Kentaro Hara.
2962
2963         Localizer::monthFormat will be used for constructing input[type=month] UI.
2964
2965         Tests: Add unit tests to Source/WebKit/chromium/tests/.
2966
2967         * platform/text/Localizer.h:
2968         (Localizer): Declare pure virtual monthFormat function.
2969
2970         * platform/text/LocaleNone.cpp:
2971         (LocaleNone): Declare monthFormat.
2972         (WebCore::LocaleNone::monthFormat):
2973         Added. Always reutrns an ISO-8601 format, "yyyy-MM"
2974
2975         * platform/text/LocaleICU.h:
2976         (LocaleICU): Declare monthFormat.
2977         * platform/text/LocaleICU.cpp:
2978         (WebCore::getFormatForSkeleton):
2979         A helper to get a format for the specified skeleton.
2980         The overflow-allocalte-try-again pattern is similar to
2981         LocaleICU::decimalSymbol and LocaleICU::decimalTextAttribute.
2982         (WebCore::LocaleICU::monthFormat):
2983         Added. Calls getFormatForSkeleton with "yyyyMMM".
2984
2985         * platform/text/mac/LocaleMac.h:
2986         (LocaleMac): Declare monthFormat.
2987         * platform/text/mac/LocaleMac.mm:
2988         (WebCore::LocaleMac::monthFormat):
2989         Added. Calls NSDateFormatter::dateFormatFromTemplate with "yyyyMMM".
2990
2991         * platform/text/LocaleWin.h:
2992         (LocaleWin): Declare monthFormat.
2993         * platform/text/LocaleWin.cpp:
2994         (WebCore::LocaleWin::monthFormat):
2995         Get a format by LOCALE_SYEARMONTH, and convert it to an LDML format.
2996
2997 2012-10-18  Pavel Feldman  <pfeldman@chromium.org>
2998
2999         Web Inspector: add X-WebKit-CSP header into inspector.html
3000         https://bugs.webkit.org/show_bug.cgi?id=99710
3001
3002         Reviewed by Vsevolod Vlasov.
3003
3004         A simple sanity measure.
3005
3006         * inspector/front-end/inspector.html:
3007
3008 2012-10-18  Huang Dongsung  <luxtella@company100.net>
3009
3010         [WK2] Add CustomFilterOperation serialization in ArgumentCoder.
3011         https://bugs.webkit.org/show_bug.cgi?id=98733
3012
3013         Reviewed by Noam Rosenthal.
3014
3015         Change CustomFilterOperation::parameters() to const function, because
3016         this method is a getter and a const instance needs to call this method.
3017
3018         No new tests because there is no change in behavior.
3019
3020         * platform/graphics/filters/CustomFilterOperation.h:
3021         (WebCore::CustomFilterOperation::parameters):
3022
3023 2012-10-18  Hayato Ito  <hayato@chromium.org>
3024
3025         treeScopeOfParent doesn't return the TreeScope of the parent
3026         https://bugs.webkit.org/show_bug.cgi?id=98207
3027
3028         Reviewed by Hajime Morita.
3029
3030         A minor clean up. Remove treeScopeOfParent() in Element.cpp.
3031
3032         No tests needed, this is just a clean up.
3033
3034         * dom/Element.cpp:
3035         (WebCore::Element::removedFrom):
3036
3037 2012-10-18  Alexander Pavlov  <apavlov@chromium.org>
3038
3039         Web Inspector: [Styles] Forcibly invoke property names suggestion box for empty prefix
3040         https://bugs.webkit.org/show_bug.cgi?id=99711
3041
3042         Reviewed by Vsevolod Vlasov.
3043
3044         Suggestions should be returned unconditionally for CSS property names, regardless of the prefix.
3045
3046         * inspector/front-end/CSSCompletions.js:
3047         (WebInspector.CSSCompletions):
3048         (WebInspector.CSSCompletions.requestCSSNameCompletions):
3049         (WebInspector.CSSCompletions.prototype._firstIndexOfPrefix):
3050         * inspector/front-end/CSSKeywordCompletions.js:
3051         (WebInspector.CSSKeywordCompletions.forProperty):
3052
3053 2012-10-18  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
3054
3055         Unreviewed, do not make UseV8.cmake executable.
3056
3057         * UseV8.cmake: Removed property svn:executable.
3058
3059 2012-10-18  Tommy Widenflycht  <tommyw@google.com>
3060
3061         MediaStream API: Add better RTCPeerConnectionHandler creation logic
3062         https://bugs.webkit.org/show_bug.cgi?id=99308
3063
3064         Reviewed by Adam Barth.
3065
3066         This patch makes sure that if the RTCPeerConnectionHandler can't be fully initialized/created
3067         the RTCPeerConnection constructor throws an exception.
3068
3069         Not full testable, existing tests cover the normal case though.
3070
3071         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
3072         (WebCore::RTCPeerConnectionHandler::create):
3073         (WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
3074         (WebCore::RTCPeerConnectionHandlerChromium::createWebHandler):
3075         (WebCore::RTCPeerConnectionHandlerChromium::initialize):
3076         (WebCore::RTCPeerConnectionHandlerChromium::createOffer):
3077         (WebCore::RTCPeerConnectionHandlerChromium::createAnswer):
3078         (WebCore::RTCPeerConnectionHandlerChromium::setLocalDescription):
3079         (WebCore::RTCPeerConnectionHandlerChromium::setRemoteDescription):
3080         (WebCore::RTCPeerConnectionHandlerChromium::updateIce):
3081         (WebCore::RTCPeerConnectionHandlerChromium::addIceCandidate):
3082         (WebCore::RTCPeerConnectionHandlerChromium::localDescription):
3083         (WebCore::RTCPeerConnectionHandlerChromium::remoteDescription):
3084         (WebCore::RTCPeerConnectionHandlerChromium::addStream):
3085         (WebCore::RTCPeerConnectionHandlerChromium::removeStream):
3086         (WebCore::RTCPeerConnectionHandlerChromium::getStats):
3087         (WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
3088         (WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
3089         (WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
3090         (WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
3091         (WebCore::RTCPeerConnectionHandlerChromium::stop):
3092         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
3093         (RTCPeerConnectionHandlerChromium):
3094
3095 2012-10-19  Zeno Albisser  <zeno@webkit.org>
3096
3097         Temporarily disable use of QCocoaNativeInterface in GraphicsSurfaceMac.
3098         https://bugs.webkit.org/show_bug.cgi?id=99320
3099
3100         The current version of Qt5 deployed on the buildbots does not yet have
3101         an implementation for QCocoaNativeInterface::nativeResourceForContext().
3102         Therefore we disable this code path until Qt5/qtbase has been updated to
3103         a revision above Change-Id: Id00efc88a73d7df04a68c022f19d9d1c4f6d386b.
3104
3105         Once Qt5 has been updated, this patch must be reverted.
3106
3107         Reviewed by Noam Rosenthal.
3108
3109         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
3110         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
3111
3112 2012-10-18  Zeno Albisser  <zeno@webkit.org>
3113
3114         GraphicsSurface should not modify the current GL context.
3115         https://bugs.webkit.org/show_bug.cgi?id=99320
3116
3117         Instead of reusing the currently bound GL context for drawing
3118         the texture onto the GraphicsSurface, GraphicsSurface should
3119         create a new context that shares the texture names with a context
3120         provided by the caller.
3121         This way the OpenGL states are clearly separated and we do not
3122         risk interfeering with the currently bound GL context.
3123
3124         Reviewed by Noam Rosenthal.
3125
3126         * platform/graphics/qt/GraphicsContext3DQt.cpp:
3127         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
3128             When creating a GraphicsSurface pass the platform GL context
3129             as a parameter, so it can be used for sharing textures with.
3130         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
3131             Pass the texture instead of the FBO. A Texture can be drawn
3132             directly or bound to another FBO, where a framebuffer
3133             always needs to be blit onto the surface.
3134         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
3135             Pass the platform GL context as a parameter.
3136         * platform/graphics/surfaces/GraphicsSurface.cpp:
3137         (WebCore::GraphicsSurface::create):
3138         (WebCore::GraphicsSurface::copyFromTexture):
3139         * platform/graphics/surfaces/GraphicsSurface.h:
3140         (GraphicsSurface):
3141         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
3142         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
3143             Create a new GL context that shares the textures with the
3144             context provided by the caller.
3145         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
3146         (WebCore::GraphicsSurfacePrivate::makeCurrent):
3147             Add a convenience function to make the context that
3148             belongs to the surface current.
3149         (GraphicsSurfacePrivate):
3150         (WebCore::GraphicsSurfacePrivate::doneCurrent):
3151             Add a convenience function to make the previously
3152             bound context current again.
3153         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
3154             Move blitting of the texture onto the surface
3155             into a separate function within GraphicsSurfacePrivate.
3156         (WebCore::GraphicsSurface::platformCopyFromTexture):
3157             Rename function platformCopyFromFramebuffer to
3158             platformCopyFromTexture, as we are now passing the texture only.
3159         (WebCore::GraphicsSurface::platformCreate):
3160         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
3161         (WebCore):
3162         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
3163         (WebCore::GraphicsSurfacePrivate::makeCurrent):
3164             Add a convenience function to make the context that
3165             belongs to the surface current.
3166         (GraphicsSurfacePrivate):
3167         (WebCore::GraphicsSurfacePrivate::doneCurrent):
3168             Add a convenience function to make the previously
3169         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
3170             Move blitting of the texture onto the surface
3171             into a separate function within GraphicsSurfacePrivate.
3172         (WebCore::resolveGLMethods):
3173             Resolve additional GL methods necessary for this change.
3174         (WebCore::GraphicsSurface::platformCopyFromTexture):
3175             Rename function platformCopyFromFramebuffer to
3176             platformCopyFromTexture, as we are now passing the texture only.
3177         (WebCore::GraphicsSurface::platformCreate):
3178
3179 2012-10-18  Kent Tamura  <tkent@chromium.org>
3180
3181         Set min-width property instead of width property for date/time fields
3182         https://bugs.webkit.org/show_bug.cgi?id=99673
3183
3184         Reviewed by Hajime Morita.
3185
3186         A field can have a text wider than pre-computed width because of
3187         :first-letter property. So, we should set min-width, not width.
3188
3189         Tests: Covered by fast/forms/*-multiple-fields/*-multipe-fields-appearance-style.html
3190
3191         * html/shadow/DateTimeNumericFieldElement.cpp:
3192         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
3193         Set min-width instead of width.
3194         * html/shadow/DateTimeSymbolicFieldElement.cpp:
3195         (WebCore::DateTimeSymbolicFieldElement::customStyleForRenderer): Ditto.
3196
3197 2012-10-18  MORITA Hajime  <morrita@google.com>
3198
3199         Assertion failure at TreeScopeAdopter::moveNodeToNewDocument()
3200         https://bugs.webkit.org/show_bug.cgi?id=99510
3201
3202         Reviewed by Kent Tamura.
3203
3204         Shadow DOM notification call didn't have checks for mutation detection.
3205         This change adds such checks.
3206
3207         Test: fast/forms/textarea/textarea-autofocus-removal-while-focusing-with-style.html
3208
3209         * dom/ContainerNodeAlgorithms.cpp:
3210         (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
3211         (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
3212
3213 2012-10-17  Kentaro Hara  <haraken@chromium.org>
3214
3215         Unreviewed. Rebaselined run-bindings-tests.
3216
3217         * bindings/scripts/test/V8/V8Float64Array.h:
3218         (V8Float64Array):
3219         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
3220         (V8TestActiveDOMObject):
3221         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
3222         (V8TestCustomNamedGetter):
3223         * bindings/scripts/test/V8/V8TestEventConstructor.h:
3224         (V8TestEventConstructor):
3225         * bindings/scripts/test/V8/V8TestEventTarget.h:
3226         (V8TestEventTarget):
3227         * bindings/scripts/test/V8/V8TestException.h:
3228         (V8TestException):
3229         * bindings/scripts/test/V8/V8TestInterface.h:
3230         (V8TestInterface):
3231         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
3232         (V8TestMediaQueryListListener):
3233         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
3234         (V8TestNamedConstructor):
3235         * bindings/scripts/test/V8/V8TestNode.h:
3236         (V8TestNode):
3237         * bindings/scripts/test/V8/V8TestObj.h:
3238         (V8TestObj):
3239         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
3240         (V8TestSerializedScriptValueInterface):
3241
3242 2012-10-17  Mike West  <mkwst@chromium.org>
3243
3244         Move mixed content logic out of FrameLoader
3245         https://bugs.webkit.org/show_bug.cgi?id=45638
3246
3247         Reviewed by Eric Seidel.
3248
3249         This change moves checks for mixed content out of FrameLoader, and into
3250         a new MixedContentChecker object. It's a pretty straightforward
3251         refactoring with no change to the overall logic, and only minor changes
3252         to the code to reduce repetition.
3253
3254         The only substantive change is renaming the methods from 'checkIf*' to
3255         'can*' to reflect the value of the boolean they return.
3256
3257         The visible functionality shouldn't change; this change should be
3258         covered by existing tests in http/tests/security/mixedContent.
3259
3260         This patch is mostly a revitalization of Eric Sidel's original
3261         patch: https://bugs.webkit.org/attachment.cgi?id=67432&action=prettypatch
3262
3263         * CMakeLists.txt:
3264         * GNUmakefile.list.am:
3265         * Target.pri:
3266         * WebCore.gypi:
3267         * WebCore.vcproj/WebCore.vcproj:
3268         * WebCore.xcodeproj/project.pbxproj:
3269             Hey, look! A new file!
3270         * loader/FrameLoader.cpp:
3271         (WebCore::FrameLoader::FrameLoader):
3272         * loader/FrameLoader.h:
3273         (WebCore::FrameLoader::mixedContentChecker):
3274         (FrameLoader):
3275         * loader/MixedContentChecker.cpp: Added.
3276         (WebCore):
3277         (WebCore::MixedContentChecker::MixedContentChecker):
3278         (WebCore::MixedContentChecker::client):
3279         (WebCore::asUTF8):
3280         (WebCore::MixedContentChecker::isMixedContent):
3281         (WebCore::MixedContentChecker::canDisplayInsecureContent):
3282         (WebCore::MixedContentChecker::canRunInsecureContent):
3283         (WebCore::MixedContentChecker::logWarning):
3284         * loader/MixedContentChecker.h: Added.
3285         (WebCore):
3286         (MixedContentChecker):
3287             Migrate functionality from FrameLoader::checkIf* to
3288             MixedContentChecker::can*.
3289         * loader/MainResourceLoader.cpp:
3290         (WebCore::MainResourceLoader::willSendRequest):
3291         * loader/SubframeLoader.cpp:
3292         (WebCore::SubframeLoader::pluginIsLoadable):
3293         (WebCore::SubframeLoader::loadMediaPlayerProxyPlugin):
3294         * loader/cache/CachedResourceLoader.cpp:
3295         (WebCore::CachedResourceLoader::checkInsecureContent):
3296             Use the new method locations.
3297
3298 2012-10-17  Dan Bernstein  <mitz@apple.com>
3299
3300         REGRESSION (r95391): ComplexTextController is unnecessarily slow with characters with combining marks when the base character is not covered by any font
3301         https://bugs.webkit.org/show_bug.cgi?id=99654
3302
3303         Reviewed by Adele Peterson.
3304
3305         When the base character of a combining character sequence is not covered by any one of the
3306         available fonts, there is no point looking for a font that covers the entire sequence, nor
3307         to try to use a combination of fallback fonts for the entire sequence.
3308
3309         * platform/graphics/SimpleFontData.h:
3310         (WebCore::SimpleFontData::systemFallback): Moved ComplexTextController::systemFallbackFontData
3311         here and renamed it.
3312         * platform/graphics/mac/ComplexTextController.cpp:
3313         (WebCore::ComplexTextController::collectComplexTextRuns): This function used to use
3314         systemFallbackFontData() whenever Font::fontDataForCombiningCharacterSequence returned 0
3315         for a base character with combining marks, regardless of whether the base character was
3316         covered by any font. Changed it to preserve the return value of
3317         fontDataForCombiningCharacterSequence, which is now 0 only if the base charcater is not in
3318         any font, while systemFallbackFontData() is used to indicate that no single font in the
3319         fallback list covers all characters in the sequence, but the base character is in some font.
3320         * platform/graphics/mac/ComplexTextController.h:
3321         (ComplexTextController): Moved systemFallbackFontData from here to SimpleFontData.
3322         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
3323         (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Updated for the above
3324         move.
3325         * platform/graphics/mac/FontComplexTextMac.cpp:
3326         (WebCore::Font::fontDataForCombiningCharacterSequence): Changed to return
3327         systemFallbackFontData() if no single font in the fallback list covers all characters in the
3328         sequence, while using 0 to signal the base character does not exist in any font.
3329
3330 2012-10-17  Dan Bernstein  <mitz@apple.com>
3331
3332         Try to fix the build after r131701.
3333
3334         * WebCore.exp.in:
3335
3336 2012-10-17  Hayato Ito  <hayato@chromium.org>
3337
3338         Content element does not expose distributedNodes property.
3339         https://bugs.webkit.org/show_bug.cgi?id=99232
3340
3341         Reviewed by Dimitri Glazkov.
3342
3343         Add getDistributedNodes() to HTMLContentElement's IDL, which returns a
3344         static NodeList whose node are distributed to the content element.
3345
3346         Test: fast/dom/shadow/content-element-distributed-nodes.html
3347
3348         * html/shadow/HTMLContentElement.idl:
3349         * html/shadow/InsertionPoint.cpp:
3350         (WebCore::InsertionPoint::getDistributedNodes):
3351         * html/shadow/InsertionPoint.h:
3352         (InsertionPoint):
3353         * testing/Internals.cpp:
3354         * testing/Internals.h:
3355         (Internals):
3356         * testing/Internals.idl:
3357
3358 2012-10-17  Pan Deng  <pan.deng@intel.com>
3359
3360         [User Timing] implement main interface in of User Timing, according to http://www.w3.org/TR/2012/CR-user-timing-20120726/
3361         https://bugs.webkit.org/show_bug.cgi?id=90963
3362
3363         Reviewed by Tony Gentilcore.
3364
3365         This patch implemented mark(), measure(), clearMarks() and clearMeasures() interface of User Timing. Getters are not exposed by Performance Timeline yet, it will be future patch.
3366
3367         Tests: http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMarks.html
3368                http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMeasures.html
3369                http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark.html
3370                http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark_exception.html
3371                http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure.html
3372                http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_associate_with_navigation_timing.html
3373                http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_exception.html
3374                http/tests/w3c/webperf/submission/user-timing/test_user_timing_method_exist.html
3375
3376         * GNUmakefile.list.am:
3377         * WebCore.gypi:
3378         * page/Performance.cpp:
3379         (WebCore::Performance::webkitGetEntries):
3380         (WebCore::Performance::webkitGetEntriesByType):
3381         (WebCore::Performance::webkitGetEntriesByName):
3382         (WebCore):
3383         (WebCore::Performance::webkitMark):
3384         (WebCore::Performance::webkitClearMarks):
3385         (WebCore::Performance::webkitMeasure):
3386         (WebCore::Performance::webkitClearMeasures):
3387         * page/Performance.h:
3388         (WebCore):
3389         (Performance):
3390         * page/Performance.idl:
3391         * page/PerformanceMark.h: Added.
3392         (WebCore):
3393         (PerformanceMark):
3394         (WebCore::PerformanceMark::create):
3395         (WebCore::PerformanceMark::PerformanceMark):
3396         (WebCore::PerformanceMark::~PerformanceMark):
3397         * page/PerformanceMark.idl: Added.
3398         * page/PerformanceMeasure.h: Added.
3399         (WebCore):
3400         (PerformanceMeasure):
3401         (WebCore::PerformanceMeasure::create):
3402         (WebCore::PerformanceMeasure::PerformanceMeasure):
3403         (WebCore::PerformanceMeasure::~PerformanceMeasure):
3404         * page/PerformanceMeasure.idl: Added.
3405         * page/PerformanceUserTiming.cpp: Added.
3406         (WebCore):
3407         (WebCore::UserTiming::UserTiming):
3408         (WebCore::insertPerformanceEntry):
3409         (WebCore::clearPeformanceEntries):
3410         (WebCore::UserTiming::mark):
3411         (WebCore::UserTiming::clearMarks):
3412         (WebCore::UserTiming::findExistingMarkStartTime):
3413         (WebCore::UserTiming::measure):
3414         (WebCore::UserTiming::clearMeasures):
3415         * page/PerformanceUserTiming.h: Added.
3416         (WebCore):
3417         (UserTiming):
3418         (WebCore::UserTiming::create):
3419
3420 2012-10-17  James Robinson  <jamesr@chromium.org>
3421
3422         Unreviewed clang compile fix - GraphicsLayerUpdater needs a virtual destructor.
3423
3424         * platform/graphics/GraphicsLayerUpdater.h:
3425         (GraphicsLayerUpdater):
3426
3427 2012-10-17  Ryuan Choi  <ryuan.choi@samsung.com>
3428
3429         Attempt to fix the build after r131680.
3430
3431         Unreviewed build fix.
3432
3433         * dom/Document.cpp: Guard ACCELERATED_COMPOSITING for RenderLayerCompositor.h
3434
3435 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
3436
3437         StyleRareNonInheritedData::contentDataEquivalent only looks at the first ContentData
3438         https://bugs.webkit.org/show_bug.cgi?id=99560
3439
3440         Reviewed by Eric Seidel.
3441
3442         Previously we only compared the first ContentData in the linked
3443         list of ContentData's which meant that if the resolved style
3444         for content had the same prefix we wouldn't update the content.
3445
3446         This patch adds a loop to compare each of the ContentData objects
3447         in the linked list.
3448
3449         Test: fast/css-generated-content/content-property-change.html
3450
3451         * rendering/style/StyleRareNonInheritedData.cpp:
3452         (WebCore::StyleRareNonInheritedData::contentDataEquivalent):
3453
3454 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
3455
3456         Remove StyleContentType since it's not used anymore
3457         https://bugs.webkit.org/show_bug.cgi?id=99659
3458
3459         Reviewed by Eric Seidel.
3460
3461         Remove StyleContentType enum since it's not used anymore and
3462         make the is*() type checking methods on ContentData public.
3463
3464         No new tests needed, this is just deleting dead code.
3465
3466         * rendering/style/ContentData.h:
3467         (ContentData):
3468         * rendering/style/RenderStyleConstants.h:
3469
3470 2012-10-17  Simon Fraser  <simon.fraser@apple.com>
3471
3472