[CSS Exclusions] SVG shape errors should invalidate exclusion shapes
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-07-23  Bem Jones-Bey  <bjonesbe@adobe.com>
2
3         [CSS Exclusions] SVG shape errors should invalidate exclusion shapes
4         https://bugs.webkit.org/show_bug.cgi?id=91761
5
6         Reviewed by Andreas Kling.
7
8         CSS exclusion shapes that are specified with negative radiuses or
9         height/width are now considered invalid and ignored.
10
11         Tests added to
12         LayoutTests/fast/exclusions/parsing-wrap-shape-lengths.html
13
14         * css/CSSParser.cpp:
15         (WebCore::CSSParser::parseExclusionShapeRectangle):
16         (WebCore::CSSParser::parseExclusionShapeCircle):
17         (WebCore::CSSParser::parseExclusionShapeEllipse):
18
19 2012-07-23  Tien-Ren Chen  <trchen@chromium.org>
20
21         [chromium] Implement scrollbar theme for Android
22         https://bugs.webkit.org/show_bug.cgi?id=91674
23
24         Reviewed by Adam Barth.
25
26         Previously the scrollbar for Android was implemented as an extra
27         drawing pass in the compositor. Now we switch to use the standard
28         ScrollbarTheme mechanism.
29
30         No new tests. We use mock scrollbars during layout test to share
31         pixel results with Linux.
32
33         * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
34         (WebCore::ScrollbarThemeChromiumAndroid::scrollbarThickness):
35         (WebCore::ScrollbarThemeChromiumAndroid::thumbPosition):
36         (WebCore::ScrollbarThemeChromiumAndroid::thumbLength):
37         (WebCore::ScrollbarThemeChromiumAndroid::backButtonRect):
38         (WebCore::ScrollbarThemeChromiumAndroid::forwardButtonRect):
39         (WebCore::ScrollbarThemeChromiumAndroid::trackRect):
40         (WebCore):
41         (WebCore::ScrollbarThemeChromiumAndroid::paintThumb):
42         (WebCore::ScrollbarThemeChromiumAndroid::paintScrollbarBackground):
43         * platform/chromium/ScrollbarThemeChromiumAndroid.h:
44         (WebCore::ScrollbarThemeChromiumAndroid::usesOverlayScrollbars):
45         (ScrollbarThemeChromiumAndroid):
46         (WebCore::ScrollbarThemeChromiumAndroid::hasButtons):
47         (WebCore::ScrollbarThemeChromiumAndroid::hasThumb):
48
49 2012-07-23  Kwang Yul Seo  <skyul@company100.net>
50
51         Use the original token to create an element in "reconstruct the active formatting elements" and "call the adoption agency"
52         https://bugs.webkit.org/show_bug.cgi?id=91703
53
54         Reviewed by Adam Barth.
55
56         The current WebKit HTML5 parser implementation does not hold the original token
57         in the stack of open elements and the active formatting elements. This is
58         problematic because the original token is used to create an element in
59         "reconstruct the active formatting elements" and "call the adoption agency".
60
61         As a workaround, WebKit uses the saved element instead of the original token
62         to create an element. But this causes us to fail examples like this:
63         <b id="1"><p><script>document.getElementById("1").id = "2"</script></p>TEXT</b>
64         reconstructTheActiveFormattingElements calls this method to open a second <b>
65         tag to wrap TEXT, it will have id "2", even though the HTML5 spec implies it
66         should be "1".
67
68         Created a ref-counted container class, HTMLStackItem to hold the original token
69         and the namespace URI as well as the element. Changed HTMLElementStack and
70         HTMLFormattingElementList to use HTMLStackItem.
71         Changed HTMLConstructionSite::reconstructTheActiveFormattingElements and
72         HTMLTreeBuilder::callTheAdoptionAgency to create an element from the saved token
73         instead of the saved element.
74
75         Updated test expectation for html5lib/runner-expected.txt
76         because now resources/scripted/adoption01.dat passes.
77
78         * html/parser/HTMLConstructionSite.cpp:
79         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
80         (WebCore::HTMLConstructionSite::insertHTMLHeadElement):
81         (WebCore::HTMLConstructionSite::insertHTMLBodyElement):
82         (WebCore::HTMLConstructionSite::insertHTMLFormElement):
83         (WebCore::HTMLConstructionSite::insertHTMLElement):
84         (WebCore::HTMLConstructionSite::insertFormattingElement):
85         (WebCore::HTMLConstructionSite::insertScriptElement):
86         (WebCore::HTMLConstructionSite::insertForeignElement):
87         (WebCore::HTMLConstructionSite::createElementFromSavedToken):
88         (WebCore::HTMLConstructionSite::reconstructTheActiveFormattingElements):
89         * html/parser/HTMLConstructionSite.h:
90         (HTMLConstructionSite):
91         (WebCore::HTMLConstructionSite::currentElementRecord):
92         * html/parser/HTMLElementStack.cpp:
93         (WebCore::HTMLElementStack::ElementRecord::ElementRecord):
94         (WebCore::HTMLElementStack::ElementRecord::replaceElement):
95         (WebCore::HTMLElementStack::pushRootNode):
96         (WebCore::HTMLElementStack::pushHTMLHtmlElement):
97         (WebCore::HTMLElementStack::pushRootNodeCommon):
98         (WebCore::HTMLElementStack::pushHTMLHeadElement):
99         (WebCore::HTMLElementStack::pushHTMLBodyElement):
100         (WebCore::HTMLElementStack::push):
101         (WebCore::HTMLElementStack::insertAbove):
102         (WebCore::HTMLElementStack::pushCommon):
103         * html/parser/HTMLElementStack.h:
104         (WebCore::HTMLElementStack::ElementRecord::element):
105         (WebCore::HTMLElementStack::ElementRecord::node):
106         (WebCore::HTMLElementStack::ElementRecord::stackItem):
107         (ElementRecord):
108         (HTMLElementStack):
109         * html/parser/HTMLFormattingElementList.cpp:
110         (WebCore::HTMLFormattingElementList::swapTo):
111         (WebCore::HTMLFormattingElementList::append):
112         * html/parser/HTMLFormattingElementList.h:
113         (WebCore::HTMLFormattingElementList::Entry::Entry):
114         (WebCore::HTMLFormattingElementList::Entry::isMarker):
115         (WebCore::HTMLFormattingElementList::Entry::stackItem):
116         (WebCore::HTMLFormattingElementList::Entry::element):
117         (WebCore::HTMLFormattingElementList::Entry::replaceElement):
118         (WebCore::HTMLFormattingElementList::Entry::operator==):
119         (WebCore::HTMLFormattingElementList::Entry::operator!=):
120         (Entry):
121         (HTMLFormattingElementList):
122         * html/parser/HTMLStackItem.h: Added.
123         (WebCore):
124         (HTMLStackItem):
125         (WebCore::HTMLStackItem::create):
126         (WebCore::HTMLStackItem::element):
127         (WebCore::HTMLStackItem::node):
128         (WebCore::HTMLStackItem::token):
129         (WebCore::HTMLStackItem::namespaceURI):
130         (WebCore::HTMLStackItem::HTMLStackItem):
131         * html/parser/HTMLTreeBuilder.cpp:
132         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
133         (WebCore::HTMLTreeBuilder::processStartTag):
134         (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
135
136 2012-07-23  Andreas Kling  <kling@webkit.org>
137
138         Report the extra memory used by immutable StylePropertySet objects.
139         <http://webkit.org/b/92032>
140
141         Reviewed by Anders Carlsson.
142
143         Add an optional parameter to the MemoryClassInfo constructor for passing in additional base object
144         size on top of sizeof(T).
145
146         Use this in StylePropertySet::reportMemoryUsage() to properly account for the CSSProperty array
147         tacked onto the end of the object when m_isMutable == false.
148
149         * css/StylePropertySet.h:
150         (WebCore::StylePropertySet::reportMemoryUsage):
151         * dom/MemoryInstrumentation.h:
152         (WebCore::MemoryObjectInfo::reportObjectInfo):
153         (WebCore::MemoryClassInfo::MemoryClassInfo):
154
155 2012-07-23  Gregg Tavares  <gman@google.com>
156
157         Fix WebGL texSubImage2D for cube maps
158         https://bugs.webkit.org/show_bug.cgi?id=91927
159
160         Reviewed by Kenneth Russell.
161
162         Fixes texSubImage2D so any size rectangle can be passed in
163         for cube maps.
164
165         Test: fast/canvas/webgl/tex-sub-image-cube-maps.html
166
167         * html/canvas/WebGLRenderingContext.cpp:
168         (WebCore):
169         (WebCore::WebGLRenderingContext::copyTexImage2D):
170         (WebCore::WebGLRenderingContext::texImage2DBase):
171         (WebCore::WebGLRenderingContext::texSubImage2DBase):
172         (WebCore::WebGLRenderingContext::validateTexFuncParameters):
173         * html/canvas/WebGLRenderingContext.h:
174         (WebGLRenderingContext):
175
176 2012-07-23  Sheriff Bot  <webkit.review.bot@gmail.com>
177
178         Unreviewed, rolling out r123387.
179         http://trac.webkit.org/changeset/123387
180         https://bugs.webkit.org/show_bug.cgi?id=92036
181
182         Broke chromium win build (Requested by tony^work on #webkit).
183
184         * WebCore.gyp/WebCore.gyp:
185         * WebCore.gyp/scripts/rule_bison.py:
186         * bindings/scripts/preprocessor.pm:
187         (applyPreprocessor):
188         * make-hash-tools.pl:
189
190 2012-07-23  Kwang Yul Seo  <skyul@company100.net>
191
192         Ref-count AtomicHTMLToken
193         https://bugs.webkit.org/show_bug.cgi?id=91981
194
195         Reviewed by Adam Barth.
196
197         Ref-count AtomicHTMLToken to avoid copying AtomicHTMLToken in Bug 91703.
198
199         No new tests - no functional changes.
200
201         * html/parser/HTMLConstructionSite.cpp:
202         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
203         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
204         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagInBody):
205         (WebCore::HTMLConstructionSite::insertHTMLBodyStartTagInBody):
206         (WebCore::HTMLConstructionSite::insertDoctype):
207         (WebCore::HTMLConstructionSite::insertComment):
208         (WebCore::HTMLConstructionSite::insertCommentOnDocument):
209         (WebCore::HTMLConstructionSite::insertCommentOnHTMLHtmlElement):
210         (WebCore::HTMLConstructionSite::insertHTMLHeadElement):
211         (WebCore::HTMLConstructionSite::insertHTMLBodyElement):
212         (WebCore::HTMLConstructionSite::insertHTMLFormElement):
213         (WebCore::HTMLConstructionSite::insertHTMLElement):
214         (WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
215         (WebCore::HTMLConstructionSite::insertFormattingElement):
216         (WebCore::HTMLConstructionSite::insertScriptElement):
217         (WebCore::HTMLConstructionSite::insertForeignElement):
218         (WebCore::HTMLConstructionSite::createElement):
219         (WebCore::HTMLConstructionSite::createHTMLElement):
220         (WebCore::HTMLConstructionSite::createHTMLElementFromSavedElement):
221         * html/parser/HTMLConstructionSite.h:
222         (HTMLConstructionSite):
223         * html/parser/HTMLToken.h:
224         (WebCore::AtomicHTMLToken::create):
225         (AtomicHTMLToken):
226         (WebCore::AtomicHTMLToken::AtomicHTMLToken):
227         * html/parser/HTMLTreeBuilder.cpp:
228         (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::ExternalCharacterTokenBuffer):
229         (WebCore::HTMLTreeBuilder::constructTreeFromToken):
230         (WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken):
231         (WebCore::HTMLTreeBuilder::processToken):
232         (WebCore::HTMLTreeBuilder::processDoctypeToken):
233         (WebCore::HTMLTreeBuilder::processFakeStartTag):
234         (WebCore::HTMLTreeBuilder::processFakeEndTag):
235         (WebCore::HTMLTreeBuilder::processFakePEndTagIfPInButtonScope):
236         (WebCore::HTMLTreeBuilder::attributesForIsindexInput):
237         (WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody):
238         (WebCore):
239         (WebCore::HTMLTreeBuilder::processCloseWhenNestedTag):
240         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
241         (WebCore::HTMLTreeBuilder::processStartTagForInTable):
242         (WebCore::HTMLTreeBuilder::processStartTag):
243         (WebCore::HTMLTreeBuilder::processHtmlStartTagForInBody):
244         (WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
245         (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
246         (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
247         (WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
248         (WebCore::HTMLTreeBuilder::processEndTagForInRow):
249         (WebCore::HTMLTreeBuilder::processEndTagForInCell):
250         (WebCore::HTMLTreeBuilder::processEndTagForInBody):
251         (WebCore::HTMLTreeBuilder::processEndTagForInTable):
252         (WebCore::HTMLTreeBuilder::processEndTag):
253         (WebCore::HTMLTreeBuilder::processComment):
254         (WebCore::HTMLTreeBuilder::processCharacter):
255         (WebCore::HTMLTreeBuilder::processEndOfFile):
256         (WebCore::HTMLTreeBuilder::defaultForBeforeHTML):
257         (WebCore::HTMLTreeBuilder::defaultForBeforeHead):
258         (WebCore::HTMLTreeBuilder::defaultForInHead):
259         (WebCore::HTMLTreeBuilder::defaultForInHeadNoscript):
260         (WebCore::HTMLTreeBuilder::defaultForAfterHead):
261         (WebCore::HTMLTreeBuilder::processStartTagForInHead):
262         (WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
263         (WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
264         (WebCore::HTMLTreeBuilder::processScriptStartTag):
265         (WebCore::HTMLTreeBuilder::shouldProcessTokenInForeignContent):
266         (WebCore::HTMLTreeBuilder::processTokenInForeignContent):
267         (WebCore::HTMLTreeBuilder::parseError):
268         * html/parser/HTMLTreeBuilder.h:
269         (HTMLTreeBuilder):
270         * html/parser/TextDocumentParser.cpp:
271         (WebCore::TextDocumentParser::insertFakePreElement):
272
273 2012-07-23  Scott Graham  <scottmg@google.com>
274
275         Use native (non-cygwin) binaries for perl, gperf, and bison in Chromium
276         https://bugs.webkit.org/show_bug.cgi?id=91667
277
278         Reviewed by Tony Chang.
279
280         Using native tools instead of cygwin version improves build time
281         performance by roughly 50% (on top of previous cl-instead-of-gcc
282         change).
283
284         Also, use - instead of / for cl flags because a layer of project
285         generator converts them to \ otherwise, which causes the preprocessing
286         to fail (very slowly because of the cygwin-loop with a sleep 1).
287
288         No new tests.
289
290         * WebCore.gyp/WebCore.gyp:
291         * WebCore.gyp/scripts/rule_bison.py:
292         * bindings/scripts/preprocessor.pm:
293         (applyPreprocessor):
294         * make-hash-tools.pl:
295
296 2012-06-12  Jer Noble  <jer.noble@apple.com>
297
298         MediaController.currentTime should be kept stable during script execution.
299         https://bugs.webkit.org/show_bug.cgi?id=88555
300
301         Reviewed by Eric Carlson.
302
303         Test: media/media-controller-time-constant.html
304
305         To keep MediaController.currentTime stable, add a new m_position variable and 
306         a new m_clearPositionTimer timer.  Both must be mutable variables as they will
307         be updated from within const functions.  Calls to currentTime() will result in
308         stable values until the next runloop iteration.
309
310         * html/MediaController.cpp:
311         (MediaController::MediaController):
312         (MediaController::currentTime):
313         (MediaController::setCurrentTime):
314         (MediaController::clearPositionTimerFired):
315         * html/MediaController.h:
316
317 2012-07-23  Huang Dongsung  <luxtella@company100.net>
318
319         Destroy CSS decoded data more eagerly once they become dead caches.
320         https://bugs.webkit.org/show_bug.cgi?id=91733
321
322         Reviewed by Geoffrey Garen.
323
324         Internal review by Kwang Yul Seo.
325
326         There are three CachedResources with decoded data: CachedImage, CachedScript
327         and CachedCSSStyleSheet. In the cases of CachedImage and CachedScript, we
328         eagerly destroy the decoded data using Timer in CacehdResource::allClientsRemoved().
329         We must apply the same policy here in CachedCSSStyleSheet because priority
330         inversion can occur. For example, we can't destroy the decoded data of CachedImages
331         when they are referenced by CachedCSSStyleSheet as background, mask or border
332         images.
333
334         No new tests - no new testable functionality.
335
336         * loader/cache/CachedCSSStyleSheet.cpp:
337         (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
338         (WebCore::CachedCSSStyleSheet::didAddClient):
339         (WebCore::CachedCSSStyleSheet::allClientsRemoved):
340         (WebCore::CachedCSSStyleSheet::destroyDecodedData):
341         (WebCore):
342         (WebCore::CachedCSSStyleSheet::decodedDataDeletionTimerFired):
343         * loader/cache/CachedCSSStyleSheet.h:
344         (CachedCSSStyleSheet):
345
346 2012-07-23  Simon Fraser  <simon.fraser@apple.com>
347
348         Part 2 of: Implement sticky positioning
349         https://bugs.webkit.org/show_bug.cgi?id=90046
350
351         Reviewed by Ojan Vafai.
352
353         Turn on ENABLE_CSS_STICKY_POSITION. Add support for parsing the new '-webkit-sticky'
354         value for position, returning it from getComputedStyle(), and storing it in RenderStyle.
355
356         Test: fast/css/sticky/parsing-position-sticky.html
357
358         * Configurations/FeatureDefines.xcconfig:
359         * css/CSSComputedStyleDeclaration.cpp:
360         (WebCore::getPositionOffsetValue):
361         * css/CSSParser.cpp:
362         (WebCore::isValidKeywordPropertyAndValue):
363         * css/CSSPrimitiveValueMappings.h:
364         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
365         (WebCore::CSSPrimitiveValue::operator EPosition):
366         * css/CSSValueKeywords.in:
367         * rendering/style/RenderStyle.h:
368         * rendering/style/RenderStyleConstants.h:
369
370 2012-07-23  Stephen Chenney  <schenney@chromium.org>
371
372         Crash when setting empty class name on a new element
373         https://bugs.webkit.org/show_bug.cgi?id=92024
374
375         Reviewed by Andreas Kling.
376
377         Add a check for null attributeData() when setting the className to an
378         empty string on a newly created element. New SVG elements have null
379         attributeData() on baseVal upon creation.
380
381         Test: svg/custom/empty-className-baseVal-crash.html
382
383         * dom/StyledElement.cpp:
384         (WebCore::StyledElement::classAttributeChanged): Add check for null attributeData()
385
386 2012-07-23  Shawn Singh  <shawnsingh@chromium.org>
387
388         [chromium] Refactor CCLayerTreeHostCommon: clean up clipRect and drawableContentRect design
389         https://bugs.webkit.org/show_bug.cgi?id=80622
390
391         Reviewed by Adrienne Walker.
392
393         clipRect(), usesLayerClipping(), and drawableContentRect() have been
394         very confusing in CCLayerTreeHostCommon for a while. This patch
395         refactors it so that (1) clipping is only done locally in
396         calcDrawTransforms, and (2) the layer's drawableContentRect value
397         is now meaningful value outside of calcDrawTransforms.
398         Additionally, the layer is now always clipped to the root
399         surface's contentBounds (which are set to the viewport bounds).
400         This refactor not only makes calcDrawTransforms far more readable and intuitive, but
401         this patch enables more upcoming beneficial refactors, including
402         the pending refactor in https://bugs.webkit.org/show_bug.cgi?id=88953.
403
404         Tests are also significantly updated to keep up with this refactoring change.
405
406         * platform/graphics/chromium/LayerChromium.cpp:
407         (WebCore::LayerChromium::LayerChromium):
408         * platform/graphics/chromium/LayerChromium.h:
409         (LayerChromium):
410         Removed m_usesLayerClipping and m_clipRect and associated accessors.
411
412         * platform/graphics/chromium/RenderSurfaceChromium.h:
413         (RenderSurfaceChromium):
414         Updated comment
415
416         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
417         (WebCore::CCLayerImpl::CCLayerImpl):
418         * platform/graphics/chromium/cc/CCLayerImpl.h:
419         (CCLayerImpl):
420         Removed m_usesLayerClipping and m_clipRect and associated accessors.
421
422         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
423         (WebCore::CCLayerTreeHost::updateLayers):
424         removed setClipRect code that no longer applies
425
426         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
427         (WebCore::calculateLayerScissorRect):
428         scissor rect is now a little bit tighter, the intersection between damage and layer's new drawableContentRect.
429
430         (WebCore::calculateSurfaceScissorRect):
431         scissor rect is now a little bit tighter, except when filters are involved.
432
433         (WebCore::layerClipsSubtree):
434         new helper function
435
436         (WebCore):
437         (WebCore::calculateVisibleContentRect):
438         (WebCore::subtreeShouldRenderToSeparateSurface):
439         (WebCore::calculateDrawTransformsInternal):
440            - added drawableContentRectOfSubtree to the function args, it is valid only after recursion returns,
441            - added clipRectFromAncestor and bool ancestorClipsSubtree to function args, this replaces the layer's clipRect and usesLayerClipping.
442            - removed the boolean return value, which was redundant with drawableContentRectOfSubtree.
443            - replaced all the "setDrawableContentRect" logic with more intuitive, clear logic.
444            - now, layer's drawableContentRect represents the clipped bounds of the layer expressed in the target surface space.
445
446         (WebCore::CCLayerTreeHostCommon::calculateDrawTransforms):
447         (WebCore::pointIsClippedBySurfaceOrClipRect):
448         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
449         (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
450         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
451         (WebCore::::layerScissorRectInTargetSurface):
452         Updated this accessor.  It could be removed in the future, but not appropriate for this patch.
453
454         * platform/graphics/chromium/cc/CCRenderSurface.h:
455
456 2012-07-23  Patrick Gansterer  <paroga@webkit.org>
457
458         [CMAKE] Added missing RenderLayerFilterInfo.cpp to build system.
459
460         * CMakeLists.txt:
461
462 2012-07-23  Ryosuke Niwa  <rniwa@webkit.org>
463
464         REGRESSION(r123281): childNodes sometimes returns wrong nodes
465         https://bugs.webkit.org/show_bug.cgi?id=92014
466
467         Reviewed by Anders Carlsson.
468
469         The bug was caused by a typo in itemBeforeOrAfter. Namely, it should have been calling firstNode as
470         firstNode(forward, rootNode(), shouldOnlyIncludeDirectChildren()),
471         NOT firstNode(forward, rootNode(), previous)
472         as evident from the argument list of the function.
473
474         Test: fast/dom/NodeList/childNodes-reverse-iteration.html
475
476         * html/HTMLCollection.cpp:
477         (WebCore::DynamicNodeListCacheBase::itemBeforeOrAfter):
478
479 2012-07-23  Steve VanDeBogart  <vandebo@chromium.org>
480
481         Chrome/Skia: PDF print output does not have clickable links.
482         https://bugs.webkit.org/show_bug.cgi?id=91171
483
484         Reviewed by Stephen White.
485
486         Connect GraphicsContext::setURLForRect to Skia's new API for annotations.
487
488         Printing is not generally testable.
489
490         * platform/graphics/skia/GraphicsContextSkia.cpp:
491         (WebCore::GraphicsContext::setURLForRect):
492
493 2012-07-23  Pierre Rossi  <pierre.rossi@gmail.com>
494
495         Unify numTouchEventHandlersChanged and needTouchEvents in the chrome client
496         https://bugs.webkit.org/show_bug.cgi?id=91006
497
498         Reviewed by Ryosuke Niwa.
499
500         The rationale here is that the client doesn't need to know about the touch
501         event handler count. needTouchEvents was already used for that purpose.
502
503         Test: fast/events/touch/touch-handler-count.html
504
505         * dom/Document.cpp:
506         (WebCore::Document::Document):
507         (WebCore::Document::didAddTouchEventHandler): Only notify the client if needed.
508         (WebCore::Document::didRemoveTouchEventHandler): Ditto. Also unset the TOUCH_LISTENER
509         flag for the document if we reach a count of zero. The rationale being that
510         hasListenerType() is relied upon in other places in combination with TOUCH_LISTENER for
511         the same purpose.
512         * dom/Document.h:
513         (Document):
514         (WebCore::Document::touchEventHandlerCount):
515         * loader/EmptyClients.h:
516         * page/ChromeClient.h:
517         (ChromeClient):
518         * page/Frame.cpp: Removed notifyChromeClientTouchEventHandlerCountChanged.
519         (WebCore::Frame::setDocument): call needsTouchEvents directly.
520         * page/Frame.h: Ditto.
521         (Frame):
522         * testing/Internals.cpp:
523         (WebCore::Internals::hasTouchEventListener): expose Document::hasListenerType indirectly
524         for additional testing.
525         (WebCore):
526         * testing/Internals.h:
527         (Internals):
528         * testing/Internals.idl:
529
530 2012-07-23  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
531
532         [Qt] RenderThemeQtMobile highlight colors are not being used
533         https://bugs.webkit.org/show_bug.cgi?id=92004
534
535         Reviewed by Noam Rosenthal.
536
537         The issue here is that setPaletteFromPageClientIfExists() is being used as a
538         virtual function, but it isn't, so when platformActiveSelectionBackgroundColor()
539         runs, it doesn't pick the right palette.
540
541         Besides fixing this virtual behavior, the patch changes the structure a bit,
542         because setPaletteFromPageClientIfExists() was being "overriden" in mobile theme
543         to set the palette, which isn't exactly what the function name says.
544
545         * platform/qt/RenderThemeQt.cpp:
546         (WebCore::RenderThemeQt::platformActiveSelectionBackgroundColor):
547         (WebCore::RenderThemeQt::platformInactiveSelectionBackgroundColor):
548         (WebCore::RenderThemeQt::platformActiveSelectionForegroundColor):
549         (WebCore::RenderThemeQt::platformInactiveSelectionForegroundColor):
550         (WebCore::RenderThemeQt::platformFocusRingColor):
551         (WebCore::RenderThemeQt::systemColor):
552         (WebCore::RenderThemeQt::getMediaControlForegroundColor):
553         (WebCore::RenderThemeQt::paintMediaVolumeSliderTrack):
554         Use the virtual colorPalette() to get the palette.
555
556         (WebCore::RenderThemeQt::colorPalette):
557         (WebCore): Removed the code for getting the page client from here since it is
558         used only by the QStyle variant.
559
560         * platform/qt/RenderThemeQt.h:
561         (RenderThemeQt):
562         * platform/qt/RenderThemeQtMobile.cpp:
563         (WebCore::RenderThemeQtMobile::colorPalette):
564         (WebCore):
565         * platform/qt/RenderThemeQtMobile.h:
566         (RenderThemeQtMobile):
567
568 2012-07-23  Simon Fraser  <simon.fraser@apple.com>
569
570         Part 1 of: Implement sticky positioning
571         https://bugs.webkit.org/show_bug.cgi?id=90046
572
573         Reviewed by Ojan Vafai.
574
575         Add ENABLE_CSS_STICKY_POSITION, defaulting to off initially.
576         
577         Sort the ENABLE_CSS lines in the file. Make sure all the flags
578         are in FEATURE_DEFINES.
579
580         * Configurations/FeatureDefines.xcconfig:
581
582 2012-07-23  Sheriff Bot  <webkit.review.bot@gmail.com>
583
584         Unreviewed, rolling out r123339.
585         http://trac.webkit.org/changeset/123339
586         https://bugs.webkit.org/show_bug.cgi?id=92006
587
588         massive media tests failure (Requested by philn on #webkit).
589
590         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
591         (WTF::adoptGRef):
592         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
593         (setGstElementClassMetadata):
594         * platform/graphics/gstreamer/GStreamerVersioning.h:
595
596 2012-07-21  Vincent Scheib  <scheib@chromium.org>
597
598         webkitFullscreenElement, webkitCurrentFullScreenElement, webkitPointerLockElement block cross origin access.
599         https://bugs.webkit.org/show_bug.cgi?id=91892
600
601         Reviewed by Adam Barth.
602
603         PointerLockElement only returned when requested from the document that owns it.
604
605         Tests: http/tests/fullscreen/fullscreenelement-different-origin.html
606                http/tests/fullscreen/fullscreenelement-same-origin.html
607                http/tests/pointer-lock/pointerlockelement-different-origin.html
608                http/tests/pointer-lock/pointerlockelement-same-origin.html
609
610         * dom/Document.cpp:
611         (WebCore::Document::webkitPointerLockElement):
612
613 2012-07-23  Philippe Normand  <pnormand@igalia.com>
614
615         [GTK][jhbuild] Switch to GStreamer 0.11 build
616         https://bugs.webkit.org/show_bug.cgi?id=91727
617
618         Reviewed by Gustavo Noronha Silva.
619
620         Add a new function to encapsulate the GStreamer API removal of
621         GST_OBJECT_IS_FLOATING in the upcoming 1.0 release. Use of this
622         macro can now be replaced by calling the g_object_is_floating
623         function.
624
625         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
626         (WTF::adoptGRef):
627         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
628         (gstObjectIsFloating):
629         * platform/graphics/gstreamer/GStreamerVersioning.h:
630
631 2012-07-23  Christophe Dumez  <christophe.dumez@intel.com>
632
633         [EFL] media/controls-styling.html is failing
634         https://bugs.webkit.org/show_bug.cgi?id=91984
635
636         Reviewed by Eric Carlson.
637
638         Make sure that the CSS properties letter-spacing, word-spacing,
639         line-height, text-transform, text-indent, text-shadow,
640         text-decoration and color do not affect the media element controls,
641         that display text.
642
643         No new tests. Already tested by media/controls-styling.html and
644         media/controls-styling-strict.html
645
646         * css/mediaControlsEfl.css:
647         (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
648
649 2012-07-23  Carlos Garcia Campos  <cgarcia@igalia.com>
650
651         Unreviewed. Fix make distcheck.
652
653         * GNUmakefile.list.am: Add missing header files.
654
655 2012-07-23  Kent Tamura  <tkent@chromium.org>
656
657         Replace some instances of shadowAncestorNode() with shadowHost()
658         https://bugs.webkit.org/show_bug.cgi?id=91966
659
660         Reviewed by Hajime Morita.
661
662         shadowAncestorNode() is deprecated. We should use shadowHost().
663         No new tests. This doesn't change any behavior.
664
665         * css/SelectorChecker.cpp:
666         (WebCore::SelectorChecker::checkSelector):
667         * dom/TreeScope.cpp:
668         (WebCore::listTreeScopes):
669         * html/HTMLSummaryElement.cpp:
670         (WebCore::isClickableControl):
671         * html/shadow/DetailsMarkerControl.cpp:
672         (WebCore::DetailsMarkerControl::summaryElement):
673         * html/shadow/MeterShadowElement.cpp:
674         (WebCore::MeterShadowElement::meterElement):
675         * html/shadow/ProgressShadowElement.cpp:
676         (WebCore::ProgressShadowElement::progressElement):
677         * html/shadow/SliderThumbElement.cpp:
678         (WebCore::RenderSliderThumb::layout):
679         (WebCore::RenderSliderContainer::layout):
680         (WebCore::SliderThumbElement::hostInput):
681         (WebCore::TrackLimiterElement::shadowPseudoId):
682         (WebCore::SliderContainerElement::shadowPseudoId):
683         * html/shadow/TextControlInnerElements.cpp:
684         (WebCore::TextControlInnerElement::customStyleForRenderer):
685         (WebCore::TextControlInnerTextElement::defaultEventHandler):
686         (WebCore::TextControlInnerTextElement::createRenderer):
687         (WebCore::TextControlInnerTextElement::customStyleForRenderer):
688         (WebCore::SearchFieldResultsButtonElement::shadowPseudoId):
689         (WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
690         (WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
691         (WebCore::SpinButtonElement::defaultEventHandler):
692         (WebCore::SpinButtonElement::step):
693         (WebCore::InputFieldSpeechButtonElement::defaultEventHandler):
694         (WebCore::InputFieldSpeechButtonElement::setState):
695         (WebCore::InputFieldSpeechButtonElement::setRecognitionResult):
696         (WebCore::InputFieldSpeechButtonElement::startSpeechInput):
697         * rendering/RenderTextControlSingleLine.cpp:
698         (WebCore::RenderTextControlInnerBlock::positionForPoint):
699
700 2012-07-23  Pavel Feldman  <pfeldman@chromium.org>
701
702         [WK2] REGRESSION r122966: Crash when closing tab with Web Inspector open in WebKit::PageOverlay
703         https://bugs.webkit.org/show_bug.cgi?id=91782
704
705         Reviewed by Yury Semikhatsky.
706
707         hideHighlight was never called once user hovered over a node.
708
709         * inspector/DOMNodeHighlighter.cpp:
710         (WebCore::InspectorOverlay::update):
711
712 2012-07-23  Peter Beverloo  <peter@chromium.org>
713
714         [Chromium] Build fix for the Windows builder following r123311
715         https://bugs.webkit.org/show_bug.cgi?id=91979
716
717         Unreviewed build fix.
718
719         Changeset r123311 moved the TextCodecWinCE.{cpp,h} files to the Windows
720         directory. Update Chromium's references to these files to fix the build.
721
722         * WebCore.gypi:
723
724 2012-07-23  Patrick Gansterer  <paroga@webkit.org>
725
726         [WIN] Remove ICU dependencies from UniscribeController
727         https://bugs.webkit.org/show_bug.cgi?id=91921
728
729         Reviewed by Ryosuke Niwa.
730
731         Replace ICU specific functions and macros with the corresponding code from WTF::Unicode.
732         This allows us to use UniscribeController with an other Unicode implementation too.
733
734         * platform/graphics/win/UniscribeController.cpp:
735         (WebCore::UniscribeController::advance):
736
737 2012-07-23  Christophe Dumez  <christophe.dumez@intel.com>
738
739         [EFL] media/controls-styling-strict.html is failing
740         https://bugs.webkit.org/show_bug.cgi?id=91960
741
742         Reviewed by Kenneth Rohde Christiansen.
743
744         Use "display: -webkit-box;" instead of inline-block
745         for current-time control. This is needed because
746         inline-block behaves differently in strict mode.
747
748         No new test, already tested by media/controls-styling-strict.html
749
750         * css/mediaControlsEfl.css:
751         (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
752
753 2012-07-23  Carlos Garcia Campos  <cgarcia@igalia.com>
754
755         Unreviewed. Fix GTK+ build with ENABLE_DATALIST_ELEMENT.
756
757         Add an implementation for virtual pure methods sliderTickSize()
758         and sliderTickOffsetFromTrackCenter() when HTML5 datalist element
759         is enabled.
760
761         * platform/gtk/RenderThemeGtk.cpp:
762         (WebCore):
763         (WebCore::RenderThemeGtk::sliderTickSize):
764         (WebCore::RenderThemeGtk::sliderTickOffsetFromTrackCenter):
765         * platform/gtk/RenderThemeGtk.h:
766
767 2012-07-23  Patrick Gansterer  <paroga@webkit.org>
768
769         Replace getCurrentLocalTime() with GetLocalTime() in LocaleWin.cpp
770         https://bugs.webkit.org/show_bug.cgi?id=91937
771
772         Reviewed by Ryosuke Niwa.
773
774         The windows function returns the required year directly and
775         removes one additonal dependecy on getCurrentLocalTime().
776
777         * platform/text/LocaleWin.cpp:
778         (WebCore::LocaleWin::LocaleWin):
779
780 2012-07-23  Vsevolod Vlasov  <vsevik@chromium.org>
781
782         Web Inspector: Drag and drop should not be started on right mouse click.
783         https://bugs.webkit.org/show_bug.cgi?id=91728
784
785         Reviewed by Pavel Feldman.
786
787         Introduced WebInspector.installDragHandle method to control drag and drop support, checking whichg mouse button is pressed.
788         Simplified WebInspector._elementDragStart, removed "element" parameter.
789         Simplified tab moving support in TabbedPane, removed "mousemove" handler.
790         Removed while loop determining which element was dragged in TimelineOverviewPane, each drag support is now installed independently.
791         Drive-by: fixed TimelineOverviewPane window moving on resources-dividers-label-bar drang-and-drop.
792         Drive-by: fixed CSSStyleModel compilation.
793
794         * inspector/front-end/CSSStyleModel.js:
795         (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
796         * inspector/front-end/DataGrid.js:
797         (WebInspector.DataGrid.prototype._positionResizers):
798         (WebInspector.DataGrid.prototype._startResizerDragging):
799         (WebInspector.DataGrid.prototype._endResizerDragging):
800         * inspector/front-end/Drawer.js:
801         (WebInspector.Drawer):
802         (WebInspector.Drawer.prototype._animationDuration):
803         (WebInspector.Drawer.prototype._startStatusBarDragging):
804         (WebInspector.Drawer.prototype._endStatusBarDragging):
805         * inspector/front-end/HeapSnapshotView.js:
806         (WebInspector.HeapSnapshotView.prototype._startRetainersHeaderDragging):
807         (WebInspector.HeapSnapshotView.prototype._endRetainersHeaderDragging):
808         * inspector/front-end/SidebarOverlay.js:
809         (WebInspector.SidebarOverlay.prototype.set _startResizerDragging):
810         (WebInspector.SidebarOverlay.prototype._endResizerDragging):
811         (WebInspector.SidebarOverlay.prototype._installResizer):
812         * inspector/front-end/Spectrum.js:
813         * inspector/front-end/SplitView.js:
814         (WebInspector.SplitView.prototype._startResizerDragging):
815         (WebInspector.SplitView.prototype._endResizerDragging):
816         (WebInspector.SplitView.prototype.installResizer):
817         * inspector/front-end/TabbedPane.js:
818         (WebInspector.TabbedPaneTab.prototype._createTabElement):
819         (WebInspector.TabbedPaneTab.prototype._tabMouseDown):
820         (WebInspector.TabbedPaneTab.prototype._startTabDragging):
821         (WebInspector.TabbedPaneTab.prototype._endTabDragging):
822         * inspector/front-end/TimelineOverviewPane.js:
823         (WebInspector.TimelineOverviewPane):
824         (WebInspector.TimelineOverviewWindow):
825         (WebInspector.TimelineOverviewWindow.prototype._leftResizeElementDragging):
826         (WebInspector.TimelineOverviewWindow.prototype._rightResizeElementDragging):
827         (WebInspector.TimelineOverviewWindow.prototype._startWindowSelectorDragging):
828         (WebInspector.TimelineOverviewWindow.prototype._endWindowSelectorDragging):
829         (WebInspector.TimelineOverviewWindow.prototype._startWindowDragging):
830         (WebInspector.TimelineOverviewWindow.prototype._windowDragging):
831         (WebInspector.TimelineOverviewWindow.prototype._endWindowDragging):
832         (WebInspector.TimelineOverviewWindow.prototype._moveWindow):
833         (WebInspector.TimelineOverviewWindow.prototype._onMouseWheel):
834         * inspector/front-end/TimelinePanel.js:
835         (WebInspector.TimelinePanel):
836         (WebInspector.TimelinePanel.prototype._startSplitterDragging):
837         (WebInspector.TimelinePanel.prototype._endSplitterDragging):
838         * inspector/front-end/Toolbar.js:
839         (WebInspector.Toolbar):
840         (WebInspector.Toolbar.prototype._toolbarDragStart):
841         (WebInspector.Toolbar.prototype._toolbarDragEnd):
842         * inspector/front-end/UIUtils.js:
843         (WebInspector.installDragHandle):
844         (WebInspector._elementDragStart):
845         (WebInspector._elementDragEnd):
846         * inspector/front-end/timelinePanel.css:
847         (#timeline-overview-grid .resources-dividers-label-bar):
848
849 2012-07-23  Hayato Ito  <hayato@chromium.org>
850
851         ComposedShadowTreeWalker should skip an empty insertion points.
852         https://bugs.webkit.org/show_bug.cgi?id=91826
853
854         Reviewed by Hajime Morita.
855
856         ComposedShadowTreeWalker wrongly returns 'null' if it encounters
857         an insertion point into where no nodes are distributed.  We should
858         skip such an insertion point and continue walking using the next
859         possible node, which might be a next sibling or a next distributed
860         node, and resolve the next node recursively.
861
862         Test: fast/dom/shadow/composed-shadow-tree-walker.html
863
864         * dom/ComposedShadowTreeWalker.cpp:
865         (WebCore::ComposedShadowTreeWalker::traverseLightChildren):
866         (WebCore):
867         (WebCore::ComposedShadowTreeWalker::traverseSiblings):
868         (WebCore::ComposedShadowTreeWalker::traverseNode):
869         (WebCore::ComposedShadowTreeWalker::traverseDistributedeNodes):
870         (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
871         (WebCore::ComposedShadowTreeWalker::traverseSiblingInCurrentTree):
872         (WebCore::ComposedShadowTreeWalker::traverseBackToYoungerShadowRoot):
873         * dom/ComposedShadowTreeWalker.h:
874         (ComposedShadowTreeWalker):
875
876 2012-07-23  Patrick Gansterer  <paroga@webkit.org>
877
878         Rename TextCodecWinCE to TextCodecWin
879         https://bugs.webkit.org/show_bug.cgi?id=91947
880
881         Reviewed by Ryosuke Niwa.
882
883         Since TextCodecWinCE is used by other (non-upstreamed) windows ports too,
884         TextCodecWin is a better name for the implementation.
885         Also remove the dependency on WinCE FontCache to make it more usable.
886
887         * PlatformWinCE.cmake:
888         * platform/text/TextEncodingRegistry.cpp:
889         (WebCore::extendTextCodecMaps):
890         * platform/text/win/TextCodecWin.cpp: Renamed from Source/WebCore/platform/text/wince/TextCodecWinCE.cpp.
891         * platform/text/win/TextCodecWin.h: Renamed from Source/WebCore/platform/text/wince/TextCodecWinCE.h.
892
893 2012-07-22  Kentaro Hara  <haraken@chromium.org>
894
895         [V8] CodeGeneratorV8.pm should support static attributes
896         https://bugs.webkit.org/show_bug.cgi?id=91764
897
898         Reviewed by Adam Barth.
899
900         CodeGeneratorJS.pm already supports static attributes.
901         CodeGeneratorV8.pm should also support them.
902
903         Tests: bindings/scripts/test/TestObj.idl
904                bindings/scripts/test/TestSupplemental.idl
905
906         * bindings/scripts/CodeGeneratorV8.pm:
907         (GenerateNormalAttrGetter):
908         (GenerateNormalAttrSetter):
909
910         * bindings/scripts/test/TestObj.idl: Added defined(TESTING_V8).
911         * bindings/scripts/test/TestSupplemental.idl: Added test cases for static attributes in supplemental IDL files.
912
913         * bindings/scripts/test/JS/JSTestInterface.cpp: Updated run-bindings-tests results.
914         (WebCore):
915         (WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
916         The generated code is wrong since CodeGeneratorJS.pm does not support static attributes for
917         supplemental IDL files. I will fix it in a follow-up patch.
918         (WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
919         (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
920         * bindings/scripts/test/JS/JSTestInterface.h:
921         (WebCore):
922         * bindings/scripts/test/V8/V8TestInterface.cpp: Updated run-bindings-tests results.
923         (WebCore::TestInterfaceV8Internal::supplementalStaticReadOnlyAttrAttrGetter):
924         (TestInterfaceV8Internal):
925         (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrGetter):
926         (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetter):
927         (WebCore):
928         * bindings/scripts/test/V8/V8TestObj.cpp:
929         (WebCore::TestObjV8Internal::staticReadOnlyIntAttrAttrGetter):
930         (TestObjV8Internal):
931         (WebCore::TestObjV8Internal::staticStringAttrAttrGetter):
932         (WebCore::TestObjV8Internal::staticStringAttrAttrSetter):
933         (WebCore):
934
935 2012-07-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
936
937         Missing *explicit* keyword in storage and workers.
938         https://bugs.webkit.org/show_bug.cgi?id=91934
939
940         Reviewed by Kentaro Hara.
941
942         Some constructors missed to use *explicit* keyword. They need to be added
943         *explicit* keyword to contructor which has a parameter in order to avoid
944         implicit type conversion.
945
946         No new tests. Convered by existing tests.
947
948         * storage/StorageAreaImpl.h:
949         (StorageAreaImpl):
950         * storage/StorageMap.h:
951         (StorageMap):
952         * storage/StorageSyncManager.h:
953         (StorageSyncManager):
954         * storage/StorageTask.h:
955         (StorageTask):
956         * storage/StorageTracker.h:
957         (StorageTracker):
958         * workers/SharedWorker.h:
959         (SharedWorker):
960         * workers/Worker.h:
961         (Worker):
962         * workers/WorkerLocation.h:
963         (WebCore::WorkerLocation::WorkerLocation):
964         * workers/WorkerMessagingProxy.h:
965         (WorkerMessagingProxy):
966
967 2012-07-23  Kent Tamura  <tkent@chromium.org>
968
969         Rename ENABLE_METER_TAG and ENABLE_PROGRESS_TAG to ENABLE_METER_ELEMENT and ENABLE_PROGRESS_ELEMENT respectively
970         https://bugs.webkit.org/show_bug.cgi?id=91941
971
972         Reviewed by Kentaro Hara.
973
974         A flag name for an elmement should be ENABLE_*_ELEMENT.
975
976         * Configurations/FeatureDefines.xcconfig:
977         * DerivedSources.make:
978         * GNUmakefile.am:
979         * accessibility/AXObjectCache.cpp:
980         (WebCore::createFromRenderer):
981         * accessibility/AccessibilityProgressIndicator.cpp:
982         * accessibility/AccessibilityProgressIndicator.h:
983         * css/CSSPrimitiveValueMappings.h:
984         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
985         * css/SelectorChecker.cpp:
986         (WebCore::SelectorChecker::checkOneSelector):
987         * css/StyleResolver.cpp:
988         (WebCore::StyleResolver::collectMatchingRulesForList):
989         * css/html.css:
990         * html/HTMLMeterElement.cpp:
991         * html/HTMLMeterElement.h:
992         * html/HTMLMeterElement.idl:
993         * html/HTMLProgressElement.cpp:
994         * html/HTMLProgressElement.h:
995         * html/HTMLProgressElement.idl:
996         * html/HTMLTagNames.in:
997         * html/shadow/MeterShadowElement.cpp:
998         * html/shadow/MeterShadowElement.h: Wrap with #if ENABLE(METER_ELEMENT).
999         * html/shadow/ProgressShadowElement.cpp:
1000         * html/shadow/ProgressShadowElement.h: Wrap with #if ENABLE(PROGRESS_ELEMENT).
1001         * page/DOMWindow.idl:
1002         * platform/efl/RenderThemeEfl.cpp:
1003         (WebCore::RenderThemeEfl::paintThemePart):
1004         (WebCore::RenderThemeEfl::edjeGroupFromFormType):
1005         (WebCore):
1006         * platform/efl/RenderThemeEfl.h:
1007         (RenderThemeEfl):
1008         * platform/gtk/RenderThemeGtk.cpp:
1009         (WebCore):
1010         * platform/gtk/RenderThemeGtk.h:
1011         (RenderThemeGtk):
1012         * platform/gtk/RenderThemeGtk2.cpp:
1013         (WebCore):
1014         * platform/gtk/RenderThemeGtk3.cpp:
1015         (WebCore):
1016         * platform/qt/RenderThemeQt.cpp:
1017         (WebCore):
1018         * platform/qt/RenderThemeQt.h:
1019         (WebCore):
1020         (RenderThemeQt):
1021         * platform/qt/RenderThemeQtMobile.cpp:
1022         (WebCore):
1023         * platform/qt/RenderThemeQtMobile.h:
1024         (RenderThemeQtMobile):
1025         * rendering/RenderMeter.cpp:
1026         * rendering/RenderMeter.h:
1027         * rendering/RenderObject.h:
1028         (RenderObject):
1029         * rendering/RenderProgress.cpp:
1030         * rendering/RenderProgress.h:
1031         * rendering/RenderTheme.cpp:
1032         (WebCore::RenderTheme::adjustStyle):
1033         (WebCore::RenderTheme::paint):
1034         (WebCore::RenderTheme::paintBorderOnly):
1035         (WebCore::RenderTheme::paintDecorations):
1036         (WebCore):
1037         * rendering/RenderTheme.h:
1038         (WebCore):
1039         (RenderTheme):
1040         * rendering/RenderThemeChromiumLinux.cpp:
1041         (WebCore):
1042         * rendering/RenderThemeChromiumLinux.h:
1043         * rendering/RenderThemeChromiumSkia.cpp:
1044         (WebCore):
1045         * rendering/RenderThemeChromiumSkia.h:
1046         (RenderThemeChromiumSkia):
1047         * rendering/RenderThemeChromiumWin.cpp:
1048         (WebCore):
1049         * rendering/RenderThemeChromiumWin.h:
1050         (RenderThemeChromiumWin):
1051         * rendering/RenderThemeMac.h:
1052         (RenderThemeMac):
1053         * rendering/RenderThemeMac.mm:
1054         (WebCore):
1055
1056 2012-07-22  Kent Tamura  <tkent@chromium.org>
1057
1058         Rename ENABLE_DETAILS to ENABLE_DETAILS_ELEMENT
1059         https://bugs.webkit.org/show_bug.cgi?id=91928
1060
1061         Reviewed by Kentaro Hara.
1062
1063         A flag name for an elmement should be ENABLE_*_ELEMENT.
1064
1065         * Configurations/FeatureDefines.xcconfig:
1066         * DerivedSources.make:
1067         * GNUmakefile.am:
1068         * html/HTMLDetailsElement.cpp:
1069         * html/HTMLDetailsElement.idl:
1070         * html/HTMLSummaryElement.cpp:
1071         * html/HTMLTagNames.in:
1072         * html/shadow/DetailsMarkerControl.cpp:
1073         * rendering/RenderDetailsMarker.cpp:
1074         * rendering/RenderDetailsMarker.h:
1075         * rendering/RenderObject.h:
1076         (RenderObject):
1077         * rendering/RenderTreeAsText.cpp:
1078         (WebCore::RenderTreeAsText::writeRenderObject):
1079
1080 2012-07-21  Dan Bernstein  <mitz@apple.com>
1081
1082         <rdar://problem/11928576> SVG-as-image (constrained) intrinsic size calculation is wrong in vertical writing modes
1083         https://bugs.webkit.org/show_bug.cgi?id=91918
1084
1085         Reviewed by Anders Carlsson.
1086
1087         Test: svg/as-image/svg-intrinsic-size-rectangular-vertical.html
1088
1089         * rendering/RenderReplaced.cpp:
1090         (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox): When there is a content
1091         renderer, it returns a physical intrinsic size and aspect ratio. The code was already
1092         accounting for this by taking the reciprocal of the aspect ratio in the vertical case. Made
1093         it also transpose the size itself, turning it from physical to logical. Moved this code
1094         after setting m_intrinsicSize, since that member variable is always physical.
1095
1096 2012-07-21  Patrick Gansterer  <paroga@webkit.org>
1097
1098         Cleanup TextEncoding USE(XXX_UNICODE) macros
1099         https://bugs.webkit.org/show_bug.cgi?id=91923
1100
1101         Reviewed by Andreas Kling.
1102
1103         Replace PLATFORM(QT) with USE(QT4_UNICODE) and OS(WINCE) with USE(WINCE_UNICODE).
1104         This gives us more flexibility in choosing the unicode backend for a port.
1105
1106         * platform/text/TextEncoding.cpp:
1107         (WebCore::TextEncoding::encode):
1108         * platform/text/TextEncodingRegistry.cpp:
1109         (WebCore::extendTextCodecMaps):
1110
1111 2012-07-21  Patrick Gansterer  <paroga@webkit.org>
1112
1113         Remove unnecessary ICU header includes from SimpleFontDataWin.cpp
1114         https://bugs.webkit.org/show_bug.cgi?id=91922
1115
1116         Reviewed by Kentaro Hara.
1117
1118         This allows us to use SimpleFontDataWin with an other Unicode implementation too.
1119
1120         * platform/graphics/win/SimpleFontDataWin.cpp:
1121
1122 2012-07-21  Kwang Yul Seo  <skyul@company100.net>
1123
1124         A start tag whose tag name is "html" in the "in body" insertion mode is a parse error
1125         https://bugs.webkit.org/show_bug.cgi?id=91916
1126
1127         Reviewed by Eric Seidel.
1128
1129         According to the HTML5 spec, a start tag whose tag name is "html" in the "in body"
1130         insertion mode is a parse error.
1131
1132         Added HTMLTreeBuilder::processHtmlStartTagForInBody(AtomicHTMLToken&) to call parseError(token).
1133         Removed "FIXME: parse error" from HTMLConstructionSite::insertHTMLHtmlStartTagInBody and
1134         HTMLConstructionSite::insertHTMLBodyStartTagInBody because we already marked the call sites
1135         of these two methods with parseError(token).
1136
1137         No behavior change because parseError(token) is just a marker.
1138
1139         * html/parser/HTMLConstructionSite.cpp:
1140         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagInBody):
1141         (WebCore::HTMLConstructionSite::insertHTMLBodyStartTagInBody):
1142         * html/parser/HTMLTreeBuilder.cpp:
1143         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
1144         (WebCore::HTMLTreeBuilder::processStartTag):
1145         (WebCore::HTMLTreeBuilder::processHtmlStartTagForInBody):
1146         (WebCore):
1147         (WebCore::HTMLTreeBuilder::processStartTagForInHead):
1148         * html/parser/HTMLTreeBuilder.h:
1149
1150 2012-07-20  Czene Tamás  <tczene@inf.u-szeged.hu>
1151
1152         double data type shoud be changed to float in ColorMatrix
1153         https://bugs.webkit.org/show_bug.cgi?id=91499
1154
1155         Reviewed by Nikolas Zimmermann.
1156
1157         * platform/graphics/filters/FEColorMatrix.cpp:
1158         (WebCore::matrix):
1159         (WebCore::saturate):
1160         (WebCore::huerotate):
1161         (WebCore::luminance):
1162         (WebCore::effectType):
1163
1164 2012-07-20  Stephen White  <senorblanco@chromium.org>
1165
1166         [chromium] Take current transformation matrix into account when
1167         deciding on resize algorithm for drawPattern.
1168         https://bugs.webkit.org/show_bug.cgi?id=90624
1169
1170         Reviewed by Adrienne Walker.
1171
1172         Since the pattern shader uses both the current transformation matrix
1173         and the pattern matrix when transforming pixels, we need to
1174         do the same when computing the resampling mode.  Also removed the
1175         resampling hint code, added in r60658, since it appears to be dead
1176         (caller was removed in r76379).
1177
1178         Covered by existing tests, such as
1179         fast/borders/border-image-scale-transform.html.
1180
1181         * platform/graphics/skia/ImageSkia.cpp:
1182         (WebCore::computeResamplingMode):
1183         Pass in the matrix to be used for computing the destination width and
1184         height (for awesome resampling).  Remove the image resampling hint code.
1185         (WebCore::paintSkBitmap):
1186         Pass in the CTM to computeResamplingMode().
1187         (WebCore::Image::drawPattern):
1188         Concatenate the CTM and the pattern matrix, and pass that to 
1189         computeResamplingMode() and TransformDimensions().  Invert the
1190         CTM's scale and apply it to the pattern transform, so their
1191         concatenation gives identity scale.
1192         * platform/graphics/skia/PlatformContextSkia.cpp:
1193         * platform/graphics/skia/PlatformContextSkia.h:
1194         Remove the image resampling hint (dead code).
1195
1196 2012-07-20  Kwang Yul Seo  <skyul@company100.net>
1197
1198         Anything else in the "in table" insertion mode is a parse error
1199         https://bugs.webkit.org/show_bug.cgi?id=91915
1200
1201         Reviewed by Adam Barth.
1202
1203         According to the HTML5 spec, anything else in the "in table" insertion mode is a parse error.
1204
1205         No behavior change because parseError(token) is just a marker.
1206
1207         * html/parser/HTMLTreeBuilder.cpp:
1208         (WebCore::HTMLTreeBuilder::processEndTagForInTable):
1209
1210 2012-07-20  Kent Tamura  <tkent@chromium.org>
1211
1212         Rename ENABLE_DATALIST to ENABLE_DATALIST_ELEMENT
1213         https://bugs.webkit.org/show_bug.cgi?id=91846
1214
1215         Reviewed by Kentaro Hara.
1216
1217         A flag name for an elmement should be ENABLE_*_ELEMENT.
1218
1219         * Configurations/FeatureDefines.xcconfig:
1220         * DerivedSources.make:
1221         * GNUmakefile.am:
1222         * css/html.css:
1223         * html/HTMLDataListElement.cpp:
1224         * html/HTMLDataListElement.h:
1225         * html/HTMLDataListElement.idl:
1226         * html/HTMLInputElement.cpp:
1227         (WebCore):
1228         (WebCore::HTMLInputElement::parseAttribute):
1229         (WebCore::HTMLInputElement::insertedInto):
1230         (WebCore::HTMLInputElement::removedFrom):
1231         * html/HTMLInputElement.h:
1232         (HTMLInputElement):
1233         * html/HTMLInputElement.idl:
1234         * html/HTMLOptionElement.cpp:
1235         (WebCore::HTMLOptionElement::parseAttribute):
1236         (WebCore::HTMLOptionElement::childrenChanged):
1237         (WebCore):
1238         * html/HTMLOptionElement.h:
1239         (HTMLOptionElement):
1240         * html/HTMLTagNames.in:
1241         * html/InputType.cpp:
1242         (WebCore):
1243         * html/InputType.h:
1244         (InputType):
1245         * html/RangeInputType.cpp:
1246         (WebCore):
1247         * html/RangeInputType.h:
1248         (RangeInputType):
1249         * html/shadow/SliderThumbElement.cpp:
1250         (WebCore::RenderSliderContainer::layout):
1251         * page/DOMWindow.idl:
1252         * platform/efl/RenderThemeEfl.cpp:
1253         (WebCore):
1254         * platform/efl/RenderThemeEfl.h:
1255         (RenderThemeEfl):
1256         * platform/qt/RenderThemeQt.cpp:
1257         (WebCore):
1258         * platform/qt/RenderThemeQt.h:
1259         (RenderThemeQt):
1260         * rendering/RenderTheme.cpp:
1261         (WebCore):
1262         * rendering/RenderTheme.h:
1263         (RenderTheme):
1264         * rendering/RenderThemeChromiumLinux.cpp:
1265         (WebCore):
1266         (WebCore::RenderThemeChromiumLinux::paintSliderTrack):
1267         * rendering/RenderThemeChromiumLinux.h:
1268         (RenderThemeChromiumLinux):
1269         * rendering/RenderThemeChromiumWin.cpp:
1270         (WebCore):
1271         (WebCore::RenderThemeChromiumWin::paintSliderTrack):
1272         * rendering/RenderThemeChromiumWin.h:
1273         (RenderThemeChromiumWin):
1274         * rendering/RenderThemeMac.h:
1275         (RenderThemeMac):
1276         * rendering/RenderThemeMac.mm:
1277         (WebCore::RenderThemeMac::paintSliderTrack):
1278         (WebCore):
1279
1280 2012-07-18  Ryosuke Niwa  <rniwa@webkit.org>
1281
1282         Unify HTMLCollection and DynamicNodeList
1283         https://bugs.webkit.org/show_bug.cgi?id=91335
1284
1285         Reviewed by Anders Carlsson.
1286
1287         This is the grand unification of HTMLCollection and DynamicNodeList.
1288
1289         It merges implementations of item() and length() in ChildNodeList, DynamicNodeList,
1290         and HTMLCollection. The unified implementation is based on the one used for HTMLCollection,
1291         that has been improved over the last few days; see r122660 and r122672 for examples.
1292
1293         There are five key changes:
1294         1. Made itemBeforeOrAfter aware of DynamicNodeList.
1295         2. itemBeforeOrAfter and related functions take and return Node* to support ChildNodeList.
1296         3. Renamed InvalidCollectionType to NodeListCollectionType since DynamicNodeLists need to be
1297         identified itemBeforeOrAfter.
1298         4. Renamed itemAfter to virtualItemAfter in subclasses of HTMLCollection, and devirtualized
1299         itemAfter used in common cases to avoid performance regressions. To make this intent clear,
1300         SupportItemBefore and DoNotSupportItemBefore have been renamed to DoesNotOverrideItemAfter
1301         and OverridesItemAfter. This change also help us detect a subclass of HTMLCollection that
1302         passes in a wrong value to ItemBeforeSupportType by making forward iterations fail (hit an
1303         assertion or doesn't iterate at all) as well as backward iterations.
1304         5. Restricted the use of elementsArrayOffset to subclasses that provide virtualItemAfter.
1305
1306         This patch completes my effort to share code between HTMLCollection and DynamicNodeList.
1307
1308         * dom/ChildNodeList.cpp:
1309         (WebCore::ChildNodeList::ChildNodeList):
1310         (WebCore): Removed length() and item().
1311         (WebCore::ChildNodeList::nodeMatches):
1312         * dom/ChildNodeList.h:
1313         (ChildNodeList):
1314         * dom/ClassNodeList.cpp:
1315         (WebCore::ClassNodeList::ClassNodeList):
1316         * dom/Document.cpp:
1317         (WebCore::Document::registerNodeListCache):
1318         (WebCore::Document::unregisterNodeListCache):
1319         * dom/DynamicNodeList.cpp:
1320         (WebCore::DynamicNodeListCacheBase::invalidateCache):
1321         (WebCore::DynamicNodeList::length):
1322         (WebCore::DynamicNodeList::item):
1323         * dom/DynamicNodeList.h:
1324         (WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase): Takes new boolean argument
1325         shouldOnlyIncludeDirectChildren indicating whether the non-child descendents should be
1326         included or not. This is necessary to identify ChildNodeList in itemBeforeOrAfter.
1327         (WebCore::DynamicNodeListCacheBase::ownerNode): Moved from DynamicNodeListCacheBase and
1328         HTMLCollectionCacheBase.
1329         (WebCore::DynamicNodeListCacheBase::document): Moved from DynamicNodeListCacheBase.
1330         (WebCore::DynamicNodeListCacheBase::rootNode): Ditto.
1331         (WebCore::DynamicNodeListCacheBase::overridesItemAfter): Renamed from supportsItemBefore
1332         and the return value has been negated.
1333         (WebCore::DynamicNodeListCacheBase::shouldOnlyIncludeDirectChildren): Added.
1334         (WebCore::DynamicNodeListCacheBase):
1335         (WebCore::DynamicNodeList::DynamicNodeList): Takes NodeListType to determine the value of
1336         shouldOnlyIncludeDirectChildren.
1337         (DynamicNodeList):
1338         (WebCore::DynamicSubtreeNodeList::~DynamicSubtreeNodeList):
1339         (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):
1340         * dom/MicroDataItemList.cpp:
1341         (WebCore::MicroDataItemList::MicroDataItemList):
1342         * dom/NameNodeList.cpp:
1343         (WebCore::NameNodeList::NameNodeList):
1344         * dom/TagNodeList.cpp:
1345         (WebCore::TagNodeList::TagNodeList):
1346         * html/CollectionType.h:
1347         * html/HTMLAllCollection.cpp:
1348         (WebCore::HTMLAllCollection::HTMLAllCollection):
1349         * html/HTMLCollection.cpp:
1350         (WebCore::shouldOnlyIncludeDirectChildren):
1351         (WebCore::rootTypeFromCollectionType):
1352         (WebCore::invalidationTypeExcludingIdAndNameAttributes):
1353         (WebCore::HTMLCollection::HTMLCollection):
1354         (WebCore::HTMLCollection::create):
1355         (WebCore::HTMLCollection::~HTMLCollection):
1356         (WebCore::isAcceptableElement):
1357         (WebCore::firstNode): Extracted from itemBeforeOrAfter.
1358         (WebCore::DynamicNodeListCacheBase::iterateForNextNode): Ditto.
1359         (WebCore::DynamicNodeListCacheBase::itemBeforeOrAfter): Takes and returns Node*.
1360         Special case ChildNodeList since there is no need to skip any node. When "this" is a
1361         node list, call nodeMatches instead of isAcceptableElement.
1362         (WebCore::DynamicNodeListCacheBase::itemBefore): No longer takes offsetInArray since
1363         the use of elementsArrayOffset has been restricted to HTMLCollections that provides
1364         virtualItemAfter.
1365         (WebCore::DynamicNodeListCacheBase::itemAfter): Calls virtualItemAfter if necessary.
1366         Otherwise assert offsetInArray is zero since we should never be using this variable
1367         when virtualItemAfter is not provided.
1368         (WebCore::DynamicNodeListCacheBase::isLastItemCloserThanLastOrCachedItem):
1369         (WebCore::DynamicNodeListCacheBase::isFirstItemCloserThanCachedItem):
1370         (WebCore::DynamicNodeListCacheBase::setItemCache): Updates m_cachedElementsArrayOffset
1371         in HTMLCollection if and only if virtualItemAfter is provided. This is safe because
1372         node lists never provide virtualItemAfter.
1373         (WebCore::DynamicNodeListCacheBase::cachedElementsArrayOffset): Similarly, returns
1374         m_cachedElementsArrayOffset if virtualItemAfter is provided.
1375         (WebCore::DynamicNodeListCacheBase::lengthCommon):
1376         (WebCore::DynamicNodeListCacheBase::itemCommon): Note that supportsItemBefore() is
1377         equivalent to !overridesItemAfter() here.
1378         (WebCore::DynamicNodeListCacheBase::itemBeforeOrAfterCachedItem): Uses Node* through
1379         out the function. Since itemBefore never uses offsetInArray, always sets 0 for that.
1380         Note that we never call itemBefore and virtualItemAfter on the same object.
1381         (WebCore::HTMLCollection::virtualItemAfter): Added only to make the class "concrete".
1382         (WebCore::HTMLCollection::namedItem):
1383         (WebCore::HTMLCollection::updateNameCache):
1384         (WebCore::HTMLCollection::tags):
1385         * html/HTMLCollection.h:
1386         (WebCore::HTMLCollectionCacheBase::HTMLCollectionCacheBase):
1387         (HTMLCollectionCacheBase):
1388         (WebCore::HTMLCollection::length):
1389         (WebCore::HTMLCollection::item):
1390         (WebCore::HTMLCollection::base):
1391         (HTMLCollection):
1392         * html/HTMLFormCollection.cpp:
1393         (WebCore::HTMLFormCollection::HTMLFormCollection):
1394         (WebCore::HTMLFormCollection::virtualItemAfter):
1395         * html/HTMLFormCollection.h:
1396         (HTMLFormCollection):
1397         * html/HTMLNameCollection.cpp:
1398         (WebCore::HTMLNameCollection::HTMLNameCollection):
1399         (WebCore::HTMLNameCollection::virtualItemAfter):
1400         * html/HTMLNameCollection.h:
1401         (HTMLNameCollection):
1402         * html/HTMLOptionsCollection.cpp:
1403         (WebCore::HTMLOptionsCollection::HTMLOptionsCollection):
1404         * html/HTMLPropertiesCollection.cpp:
1405         (WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
1406         (WebCore::HTMLPropertiesCollection::virtualItemAfter):
1407         (WebCore::HTMLPropertiesCollection::updateNameCache):
1408         * html/HTMLPropertiesCollection.h:
1409         (HTMLPropertiesCollection):
1410         * html/HTMLTableRowsCollection.cpp:
1411         (WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection):
1412         (WebCore::HTMLTableRowsCollection::virtualItemAfter):
1413         * html/HTMLTableRowsCollection.h:
1414         (HTMLTableRowsCollection):
1415         * html/LabelsNodeList.cpp:
1416         (WebCore::LabelsNodeList::LabelsNodeList):
1417         * html/RadioNodeList.cpp:
1418         (WebCore::RadioNodeList::RadioNodeList):
1419
1420 2012-07-20  Joshua Bell  <jsbell@chromium.org>
1421
1422         IndexedDB: Simplify backend interface classes
1423         https://bugs.webkit.org/show_bug.cgi?id=91901
1424
1425         Reviewed by Tony Chang.
1426
1427         The IDBTransactionBackendInterface included several methods only used by the
1428         real implementation objects, not via the interfaces. Expose a static Impl::from(Interface)
1429         method for transaction, and migrate all of the backend-internal uses from Interface to Impl.
1430
1431         No new tests - no functional changes.
1432
1433         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
1434         (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
1435         * Modules/indexeddb/IDBCursorBackendImpl.h:
1436         (WebCore):
1437         (WebCore::IDBCursorBackendImpl::create):
1438         (IDBCursorBackendImpl):
1439         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1440         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
1441         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
1442         (WebCore::IDBDatabaseBackendImpl::objectStore):
1443         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
1444         (WebCore::IDBDatabaseBackendImpl::deleteObjectStoreInternal):
1445         (WebCore::IDBDatabaseBackendImpl::setVersion):
1446         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
1447         (WebCore::IDBDatabaseBackendImpl::transactionStarted):
1448         (WebCore::IDBDatabaseBackendImpl::transactionFinished):
1449         (WebCore::IDBDatabaseBackendImpl::transaction):
1450         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
1451         (WebCore):
1452         (IDBDatabaseBackendImpl):
1453         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
1454         (WebCore::IDBIndexBackendImpl::openCursorInternal):
1455         (WebCore::IDBIndexBackendImpl::openCursor):
1456         (WebCore::IDBIndexBackendImpl::openKeyCursor):
1457         (WebCore::IDBIndexBackendImpl::countInternal): Drop unused transaction argument.
1458         (WebCore::IDBIndexBackendImpl::count):
1459         (WebCore::IDBIndexBackendImpl::get):
1460         (WebCore::IDBIndexBackendImpl::getKey):
1461         * Modules/indexeddb/IDBIndexBackendImpl.h:
1462         (IDBIndexBackendImpl):
1463         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
1464         (WebCore::IDBObjectStoreBackendImpl::get):
1465         (WebCore::IDBObjectStoreBackendImpl::put):
1466         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
1467         (WebCore):
1468         (WebCore::IDBObjectStoreBackendImpl::putInternal):
1469         (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
1470         (WebCore::IDBObjectStoreBackendImpl::clear):
1471         (WebCore::IDBObjectStoreBackendImpl::createIndex):
1472         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
1473         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
1474         (WebCore::IDBObjectStoreBackendImpl::deleteIndexInternal):
1475         (WebCore::IDBObjectStoreBackendImpl::openCursor):
1476         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
1477         (WebCore::IDBObjectStoreBackendImpl::count):
1478         (WebCore::IDBObjectStoreBackendImpl::countInternal): Drop unused transaction argument.
1479         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
1480         (WebCore):
1481         (IDBObjectStoreBackendImpl):
1482         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
1483         (WebCore::IDBTransactionBackendImpl::objectStore):
1484         * Modules/indexeddb/IDBTransactionBackendImpl.h:
1485         (WebCore::IDBTransactionBackendImpl::from):
1486         (IDBTransactionBackendImpl):
1487         (WebCore::IDBTransactionBackendImpl::mode):
1488         * Modules/indexeddb/IDBTransactionBackendInterface.h:
1489         (IDBTransactionBackendInterface):
1490
1491 2012-07-20  Joshua Bell  <jsbell@chromium.org>
1492
1493         IndexedDB: "ASSERTION FAILED: !m_requestFinished" hit in IDBRequest::dispatchEvent
1494         https://bugs.webkit.org/show_bug.cgi?id=86911
1495
1496         Reviewed by Tony Chang.
1497
1498         Clean up the IDBRequest/IDBCursor relationship and the IDBRequest lifecycle.
1499
1500         The IDBRequest's m_cursor/setCursor() calls are renamed to m_pendingCursor/setPendingCursor() to
1501         clarify that the request will move between two states - either there's a cursor request in-flight
1502         c/o a continue() or advance() call, or the result has come in (cursor, null-for-done, or error).
1503         Since they were only ever used together, resetReadyState() is merged into setResultCursor(). The
1504         m_requestFinished flag becomes redundant and is dropped - the ASSERT reported in the bug
1505         becomes an ASSERT(m_readyState == PENDING) and m_readyState tracking is already correct.
1506
1507         Test: storage/indexeddb/request-continue-abort.html
1508
1509         * Modules/indexeddb/IDBCursor.cpp:
1510         (WebCore::IDBCursor::advance): Unreachable code path now dead and gone.
1511         (WebCore::IDBCursor::continueFunction): Ditto.
1512         * Modules/indexeddb/IDBRequest.cpp: Most functions just add state assertions.
1513         (WebCore::IDBRequest::IDBRequest):
1514         (WebCore::IDBRequest::abort):
1515         (WebCore::IDBRequest::setCursorDetails):
1516         (WebCore::IDBRequest::setPendingCursor): Merge with old resetReadyState().
1517         (WebCore):
1518         (WebCore::IDBRequest::getResultCursor): Helper, since digging cursor out of IDBAny is pesky.
1519         (WebCore::IDBRequest::setResultCursor): Just moved in the file to be with its friends.
1520         (WebCore::IDBRequest::finishCursor):
1521         (WebCore::IDBRequest::onError): Just assertions, re-ordering, re-naming.
1522         (WebCore::IDBRequest::onSuccess):
1523         (WebCore::IDBRequest::onSuccessWithContinuation):
1524         (WebCore::IDBRequest::hasPendingActivity):
1525         (WebCore::IDBRequest::dispatchEvent): Simplify!
1526         (WebCore::IDBRequest::enqueueEvent):
1527         * Modules/indexeddb/IDBRequest.h:
1528         (IDBRequest):
1529
1530 2012-07-20  Andrew Scherkus  <scherkus@chromium.org>
1531
1532         [chromium] Don't display fullscreen button for video elements not containing video
1533         https://bugs.webkit.org/show_bug.cgi?id=91811
1534
1535         Reviewed by Eric Carlson.
1536
1537         Covered by media/media-document-audio-repaint.html
1538
1539         * html/shadow/MediaControlRootElementChromium.cpp:
1540         (WebCore::MediaControlRootElementChromium::reset):
1541
1542 2012-07-20  Dmitry Titov  <dimich@chromium.org>
1543
1544         [Chromium] Out of Memory is observed when a large object is passed to a Web Worker.
1545         https://bugs.webkit.org/show_bug.cgi?id=91535.
1546
1547         Reviewed by David Levin.
1548
1549         No new tests because of no new behavior and lack of mechanism to monitor used memory.
1550
1551         * bindings/v8/SerializedScriptValue.cpp:
1552         (WebCore::SerializedScriptValue::SerializedScriptValue):
1553         (WebCore::SerializedScriptValue::registerMemoryAllocatedWithCurrentScriptContext):
1554         (WebCore):
1555         (WebCore::SerializedScriptValue::~SerializedScriptValue):
1556         * bindings/v8/SerializedScriptValue.h:
1557         (SerializedScriptValue):
1558         Added a method to SerializedScriptValue to add memory pressure on GC proportional to the size of memory allocated in serialized data.
1559         
1560         * dom/MessageEvent.cpp:
1561         (WebCore::MessageEvent::MessageEvent):
1562         (WebCore::MessageEvent::initMessageEvent):
1563         Call the new method of SerializedScriptValue during creation of MessageEvent (presumably in the thread which contains the right V8 context).
1564
1565 2012-07-20  David Grogan  <dgrogan@chromium.org>
1566
1567         IndexedDB: Include intVersion when converting between WebCore and WebKit IDBMetadata types
1568         https://bugs.webkit.org/show_bug.cgi?id=91414
1569
1570         Reviewed by Adam Barth.
1571
1572         No new tests because no new behavior.
1573
1574         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1575         (WebCore::IDBDatabaseBackendImpl::metadata):
1576         No behavior change, this just needs a dummy parameter to match the
1577         modified API.
1578
1579         * Modules/indexeddb/IDBMetadata.h:
1580         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
1581         (IDBDatabaseMetadata):
1582
1583 2012-07-18  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
1584
1585         [Soup] Unnecessary RefPtr usage and null check
1586         https://bugs.webkit.org/show_bug.cgi?id=91636
1587
1588         Reviewed by Martin Robinson.
1589
1590         Small clean up of code that is not necessary; no change in functionality.
1591
1592         * platform/network/soup/SocketStreamHandleSoup.cpp:
1593         (WebCore::SocketStreamHandle::connected):
1594
1595 2012-07-20  Mark Salisbury  <mark.salisbury@hp.com>
1596
1597         Typo in FontCacheWin.cpp causes return value from getCachedFontData() in getLastResortFallbackFont() to be ignored
1598         https://bugs.webkit.org/show_bug.cgi?id=91506
1599
1600         Reviewed by Joseph Pecoraro.
1601
1602         No new test.  The "fallback fallback" code ends up creating a font, so you always
1603         get a fallback font even with this code bug.  A test would be buggy, being highly
1604         platform dependent on what the "fallback fallback" font is on the particular
1605         windows machine the test runs on.
1606
1607         * platform/graphics/win/FontCacheWin.cpp:
1608         (WebCore::FontCache::getLastResortFallbackFont):
1609
1610 2012-07-20  Stephen White  <senorblanco@chromium.org>
1611
1612         [chromium] Clean up scratch texture usage in Chromium's implementation
1613         of GPU-accelerated filters.
1614         https://bugs.webkit.org/show_bug.cgi?id=83370
1615
1616         Reviewed by Adrienne Walker.
1617
1618         There didn't used to be a safe way to allocate a scratch texture, and
1619         hold into it beyond the lifetime of GrAutoScratchTexture.  Now there is:
1620         detach().
1621
1622         Covered by existing tests in css3/filters.
1623
1624         * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
1625         (WebCore::CCRenderSurfaceFilters::apply):
1626         Use a GrAutoScratchTexture to allocate the destination texture, and 
1627         detach() to detach it from the cache before placing it in an
1628         SkGrTexturePixelRef.  This means we no longer need to do any lock/
1629         unlock trickery with the TextureCacheEntry, since the refcount is
1630         enough to keep the texture away from the cache's prying hands.
1631
1632 2012-07-20  Stephen White  <senorblanco@chromium.org>
1633
1634         [chromium] Clean up scratch texture usage in Chromium's implementation
1635         of GPU-accelerated filters.
1636         https://bugs.webkit.org/show_bug.cgi?id=83370
1637
1638         Reviewed by Adrienne Walker.
1639
1640         There didn't used to be a safe way to allocate a scratch texture, and
1641         hold into it beyond the lifetime of GrAutoScratchTexture.  Now there is:
1642         detach().
1643
1644         Covered by existing tests in css3/filters.
1645
1646         * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
1647         (WebCore::CCRenderSurfaceFilters::apply):
1648         Use a GrAutoScratchTexture to allocate the destination texture, and 
1649         detach() to detach it from the cache before placing it in an
1650         SkGrTexturePixelRef.  This means we no longer need to do any lock/
1651         unlock trickery with the TextureCacheEntry, since the refcount is
1652         enough to keep the texture away from the cache's prying hands.
1653
1654 2012-07-19  Andrew Scherkus  <scherkus@chromium.org>
1655
1656         [chromium] CSS tweaks to media controls to prevent styles from being overridden
1657         https://bugs.webkit.org/show_bug.cgi?id=91802
1658
1659         Reviewed by Eric Carlson.
1660
1661         Having the buttons declared as inline caused them to not be included in the box layout,
1662         resulting in styles set outside the media element to affect the position of the buttons.
1663
1664         In a similar vein, it was also possible to override the font-style attribute for the time
1665         display.
1666
1667         Test: media/controls-styling-strict.html
1668
1669         * css/mediaControlsChromium.css:
1670         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
1671         (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
1672         (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
1673         (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button):
1674
1675 2012-07-20  Han Shen  <shenhan@google.com>
1676
1677         [Chromium] Compilation fails under gcc 4.7
1678         https://bugs.webkit.org/show_bug.cgi?id=90227
1679
1680         Reviewed by Tony Chang.
1681
1682         Disable warnings about c++0x compatibility in gcc newer than 4.6.
1683
1684         * WebCore.gyp/WebCore.gyp:
1685
1686 2012-07-20  Vincent Scheib  <scheib@chromium.org>
1687
1688         Unreviewed compile fix, r123247 included unintended changes to Document.cpp.
1689
1690         See http://trac.webkit.org/changeset/123247.
1691
1692         * dom/Document.cpp:
1693         (WebCore::Document::webkitExitPointerLock):
1694
1695 2012-07-20  Ryosuke Niwa  <rniwa@webkit.org>
1696
1697         REGRESSION(r122873): 15% regression on Dromaeo/dom-attr
1698         https://bugs.webkit.org/show_bug.cgi?id=91827
1699
1700         Reviewed by Anders Carlsson.
1701
1702         Move shouldInvalidateNodeListCaches from Document.cpp to Node.cpp since it's only called
1703         in Node::invalidateNodeListCachesInAncestors.
1704
1705         Test: PerformanceTests/Dromaeo/dom-attr.html.
1706
1707         * dom/Document.cpp:
1708         (WebCore):
1709         * dom/Node.cpp:
1710         (WebCore::shouldInvalidateNodeListCachesForAttr): Extracted from shouldInvalidateNodeListCaches
1711         to unroll the loop in shouldInvalidateNodeListCaches. Apparently gcc wasn't doing the right thing.
1712         (WebCore::Document::shouldInvalidateNodeListCaches):
1713         (WebCore::Document::invalidateNodeListCaches):
1714         (WebCore::Node::invalidateNodeListCachesInAncestors):
1715
1716 2012-07-20  Nico Weber  <thakis@chromium.org>
1717
1718         Fix more -Wunused-private-field violations
1719         https://bugs.webkit.org/show_bug.cgi?id=91876
1720
1721         Reviewed by Adam Barth.
1722
1723         As of http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120716/061102.html
1724         the warning finds more bugs. Fix them.
1725
1726         * html/FTPDirectoryDocument.cpp:
1727         (FTPDirectoryDocumentParser):
1728         (WebCore::FTPDirectoryDocumentParser::FTPDirectoryDocumentParser):
1729         * html/parser/HTMLTreeBuilder.cpp:
1730         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
1731         * html/parser/HTMLTreeBuilder.h:
1732         (HTMLTreeBuilder):
1733         * html/shadow/MediaControlRootElementChromium.cpp:
1734         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
1735         * html/shadow/MediaControlRootElementChromium.h:
1736         (MediaControlRootElementChromium):
1737         * inspector/InspectorDOMStorageResource.cpp:
1738         (WebCore::InspectorDOMStorageResource::InspectorDOMStorageResource):
1739         * inspector/InspectorDOMStorageResource.h:
1740         (InspectorDOMStorageResource):
1741         * page/Settings.cpp:
1742         (WebCore::Settings::Settings):
1743         * page/Settings.h:
1744         (Settings):
1745         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1746         (WebCore::CCThreadProxy::CCThreadProxy):
1747         * platform/graphics/chromium/cc/CCThreadProxy.h:
1748         (CCThreadProxy):
1749         * rendering/svg/RenderSVGTextPath.cpp:
1750         (WebCore::RenderSVGTextPath::RenderSVGTextPath):
1751         * rendering/svg/RenderSVGTextPath.h:
1752
1753 2012-07-20  Adam Klein  <adamk@chromium.org>
1754
1755         CodeGeneratorInspector.py is unnecessarily chatty
1756         https://bugs.webkit.org/show_bug.cgi?id=91758
1757
1758         Reviewed by Vsevolod Vlasov.
1759
1760         The code aded in r123091 included a "print" statement for each written
1761         file. This makes for noisy build output, especially noticeable in the
1762         Chromium ninja build (where build output takes up a single line of the
1763         console).
1764
1765         If this print statement is generally useful, it should be
1766         hidden behind a --verbose commandline option, as we do for the binding
1767         generators.
1768
1769         * inspector/CodeGeneratorInspector.py:
1770         (SmartOutput.close): Remove print statement.
1771
1772 2012-07-20  Stephen White  <senorblanco@chromium.org>
1773
1774         [chromium] Enable GPU-accelerated skia implementation of
1775         feDiffuseLighting, feSpecularLighting.
1776         https://bugs.webkit.org/show_bug.cgi?id=91865
1777
1778         Reviewed by Dirk Schulze.
1779
1780         Translate the light parameters into the appropriate
1781         SkLightingImageFilter calls.  This path is only enabled when
1782         the filters are created with the Accelerated flag set.
1783
1784         This will be covered by tests in svg/filters/* when they are
1785         added to the virtual GPU tests.
1786
1787         * WebCore.gypi:
1788         * platform/graphics/filters/FELighting.h:
1789         (FELighting):
1790         * platform/graphics/filters/skia/FELightingSkia.cpp: Added.
1791         (WebCore):
1792         (WebCore::FELighting::platformApplySkia):
1793
1794 2012-07-20  Pavel Feldman  <pfeldman@chromium.org>
1795
1796         Web Inspector: disable fake workers inspection.
1797         https://bugs.webkit.org/show_bug.cgi?id=91867
1798
1799         Reviewed by Vsevolod Vlasov.
1800
1801         'Fake workers' is unreliable error-prone way to debug workers. There are a
1802         lot of frameworks supporting it. Inspector should not do that since it has a more
1803         powerful native worker inspection capabilities. Port owners should enable it
1804         in case they want to provide workers debugging.
1805
1806         * English.lproj/localizedStrings.js:
1807         * WebCore.gypi:
1808         * WebCore.order:
1809         * WebCore.vcproj/WebCore.vcproj:
1810         * inspector/InjectedScriptHost.cpp:
1811         (WebCore::InjectedScriptHost::InjectedScriptHost):
1812         * inspector/InjectedScriptHost.h:
1813         (InjectedScriptHost):
1814         * inspector/InjectedScriptHost.idl:
1815         * inspector/Inspector.json:
1816         * inspector/InspectorAgent.cpp:
1817         (WebCore::InspectorAgent::didCommitLoad):
1818         (WebCore::InspectorAgent::enable):
1819         * inspector/InspectorAgent.h:
1820         (WebCore):
1821         (InspectorAgent):
1822         * inspector/InspectorInstrumentation.cpp:
1823         * inspector/InspectorInstrumentation.h:
1824         (InspectorInstrumentation):
1825         * inspector/front-end/InjectedFakeWorker.js: Removed.
1826         * inspector/front-end/ScriptsPanel.js:
1827         * inspector/front-end/WebKit.qrc:
1828         * inspector/front-end/WorkersSidebarPane.js:
1829         (WebInspector.WorkersSidebarPane):
1830         * inspector/front-end/externs.js:
1831         * inspector/front-end/inspector.html:
1832         * inspector/front-end/inspector.js:
1833         * workers/AbstractWorker.cpp:
1834         (WebCore::AbstractWorker::contextDestroyed):
1835         * workers/AbstractWorker.h:
1836         (AbstractWorker):
1837         * workers/SharedWorker.cpp:
1838         (WebCore::SharedWorker::create):
1839         * workers/Worker.cpp:
1840         (WebCore::Worker::create):
1841
1842 2012-07-20  Sheriff Bot  <webkit.review.bot@gmail.com>
1843
1844         Unreviewed, rolling out r123182.
1845         http://trac.webkit.org/changeset/123182
1846         https://bugs.webkit.org/show_bug.cgi?id=91863
1847
1848         Causing ASSERT crashes in tests accessibility/canvas.html and
1849         accessibility/canvas-accessibilitynodeobject.html (Requested
1850         by jernoble on #webkit).
1851
1852         * CMakeLists.txt:
1853         * GNUmakefile.list.am:
1854         * Target.pri:
1855         * WebCore.gypi:
1856         * accessibility/AXObjectCache.cpp:
1857         (WebCore):
1858         * accessibility/AXObjectCache.h:
1859         (AXObjectCache):
1860         * accessibility/AccessibilityARIAGrid.cpp:
1861         (WebCore::AccessibilityARIAGrid::AccessibilityARIAGrid):
1862         (WebCore::AccessibilityARIAGrid::~AccessibilityARIAGrid):
1863         (WebCore):
1864         (WebCore::AccessibilityARIAGrid::create):
1865         * accessibility/AccessibilityARIAGrid.h:
1866         (AccessibilityARIAGrid):
1867         * accessibility/AccessibilityARIAGridCell.cpp:
1868         (WebCore::AccessibilityARIAGridCell::create):
1869         * accessibility/AccessibilityARIAGridRow.cpp:
1870         (WebCore::AccessibilityARIAGridRow::create):
1871         * accessibility/AccessibilityAllInOne.cpp:
1872         * accessibility/AccessibilityList.cpp:
1873         (WebCore::AccessibilityList::create):
1874         * accessibility/AccessibilityListBox.cpp:
1875         (WebCore::AccessibilityListBox::create):
1876         * accessibility/AccessibilityMediaControls.cpp:
1877         (WebCore::AccessibilityMediaControl::create):
1878         (WebCore::AccessibilityMediaControlsContainer::create):
1879         (WebCore::AccessibilityMediaTimeline::create):
1880         (WebCore::AccessibilityMediaTimeDisplay::create):
1881         * accessibility/AccessibilityMenuList.cpp:
1882         * accessibility/AccessibilityMenuList.h:
1883         (WebCore::AccessibilityMenuList::create):
1884         * accessibility/AccessibilityNodeObject.cpp: Removed.
1885         * accessibility/AccessibilityNodeObject.h: Removed.
1886         * accessibility/AccessibilityObject.h:
1887         (AccessibilityObject):
1888         * accessibility/AccessibilityProgressIndicator.cpp:
1889         (WebCore::AccessibilityProgressIndicator::create):
1890         * accessibility/AccessibilityRenderObject.cpp:
1891         (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
1892         (WebCore::AccessibilityRenderObject::create):
1893         (WebCore::AccessibilityRenderObject::detach):
1894         (WebCore::AccessibilityRenderObject::remapAriaRoleDueToParent):
1895         (WebCore):
1896         (WebCore::AccessibilityRenderObject::determineAriaRoleAttribute):
1897         (WebCore::AccessibilityRenderObject::ariaRoleAttribute):
1898         (WebCore::AccessibilityRenderObject::updateAccessibilityRole):
1899         (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
1900         (WebCore::AccessibilityRenderObject::childrenChanged):
1901         (WebCore::AccessibilityRenderObject::canHaveChildren):
1902         (WebCore::AccessibilityRenderObject::addChildren):
1903         * accessibility/AccessibilityRenderObject.h:
1904         (AccessibilityRenderObject):
1905         (WebCore::AccessibilityRenderObject::setRenderer):
1906         * accessibility/AccessibilitySlider.cpp:
1907         (WebCore::AccessibilitySlider::create):
1908         * accessibility/AccessibilityTable.cpp:
1909         (WebCore::AccessibilityTable::AccessibilityTable):
1910         (WebCore::AccessibilityTable::~AccessibilityTable):
1911         (WebCore):
1912         (WebCore::AccessibilityTable::create):
1913         * accessibility/AccessibilityTable.h:
1914         (AccessibilityTable):
1915         * accessibility/AccessibilityTableCell.cpp:
1916         (WebCore::AccessibilityTableCell::create):
1917         * accessibility/AccessibilityTableRow.cpp:
1918         (WebCore::AccessibilityTableRow::create):
1919
1920 2012-07-20  Christophe Dumez  <christophe.dumez@intel.com>
1921
1922         [EFL] Proxy configuration should honor the no_proxy environment variable
1923         https://bugs.webkit.org/show_bug.cgi?id=91747
1924
1925         Reviewed by Kenneth Rohde Christiansen.
1926
1927         Implement a custom Proxy URI Resolver for libsoup
1928         so that we can use it in EFL port. This custom
1929         proxy resolver brings support for setting
1930         exceptions so that the proxy is not used for the
1931         specified hosts.
1932
1933         By default, the proxy is not used for localhost and
1934         127.0.0.1.
1935
1936         No new tests, no behavior change for layout tests.
1937
1938         * PlatformEfl.cmake:
1939         * platform/network/soup/ProxyResolverSoup.cpp: Added.
1940         (soup_proxy_resolver_wk_init):
1941         (soupProxyResolverWkFinalize):
1942         (soupProxyResolverWkSetProperty):
1943         (soupProxyResolverWkGetProperty):
1944         (shouldBypassProxy):
1945         (idle_return_proxy_uri):
1946         (soupProxyResolverWkGetProxyURIAsync):
1947         (soupProxyResolverWkGetProxyURISync):
1948         (soup_proxy_resolver_wk_class_init):
1949         (soup_proxy_resolver_wk_interface_init):
1950         (soupProxyResolverWkNew):
1951         * platform/network/soup/ProxyResolverSoup.h: Added.
1952
1953 2012-07-20  Pierre Rossi  <pierre.rossi@gmail.com>
1954
1955         ColorChooserClient should expose the element's location
1956         https://bugs.webkit.org/show_bug.cgi?id=91767
1957
1958         Reviewed by Kent Tamura.
1959
1960         The rationale is that the chrome client could have an interest in placing the picker next to
1961         the element for usability reasons.
1962
1963         No new tests as there is not much logic here: Just exposing a geometry information to WebKit.
1964
1965         * html/ColorInputType.cpp:
1966         (WebCore::ColorInputType::elementRectRelativeToWindow):
1967         (WebCore):
1968         * html/ColorInputType.h:
1969         (ColorInputType):
1970         * platform/ColorChooserClient.h:
1971         (ColorChooserClient):
1972
1973 2012-07-20  Thiago Marcos P. Santos  <thiago.santos@intel.com>
1974
1975         [WK2] WebIntents doesn't build if mutation observers is disabled
1976         https://bugs.webkit.org/show_bug.cgi?id=91839
1977
1978         Reviewed by Kenneth Rohde Christiansen.
1979
1980         WebIntents was depending on a code protected by ENABLE(MUTATION_OBSERVERS).
1981         Now the code is also enabled by ENABLE(WEB_INTENTS).
1982
1983         * bindings/js/JSDictionary.cpp:
1984         (WebCore):
1985         * bindings/js/JSDictionary.h:
1986
1987 2012-07-20  Mihnea Ovidenie  <mihnea@adobe.com>
1988
1989         [CSSRegions]Assert failure when layout positioned objects in regions
1990         https://bugs.webkit.org/show_bug.cgi?id=90792
1991
1992         Reviewed by Andreas Kling.
1993
1994         Before clamping the containing block (for an out-of-flow positioned element
1995         inside a named flow) to the region, we have to test whether the region is not
1996         null, which can happen when the named flow does not have attached regions.
1997
1998         Tests: fast/regions/positioned-vrl-in-named-flow.html
1999                fast/regions/positioned-vrl-in-parent-named-flow.html
2000                fast/regions/positioned-with-vrl-parent-in-named-flow.html
2001
2002         * rendering/RenderBox.cpp:
2003         (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
2004         (WebCore::RenderBox::computePositionedLogicalWidth):
2005         (WebCore::RenderBox::computePositionedLogicalHeight):
2006
2007 2012-07-20  Stephen Chenney  <schenney@chromium.org>
2008
2009         SVG Filter Effect sub-region not applied for some filters
2010         https://bugs.webkit.org/show_bug.cgi?id=89767
2011
2012         Reviewed by Dirk Schulze.
2013
2014         The filter effect region for SVG feGaussian and feDropShadow filters
2015         was incorrectly set, failing to account for the radius of the blur.
2016         This patch fixes the problem and removes an unneccessary clip
2017         operation when the filter result is blitted into the target. That clip
2018         was clipping the shadow from webkit-shadow.
2019
2020         Tests: svg/filters/feDropShadow-subregion.svg
2021                svg/filters/feGaussianBlur-subregion.svg
2022
2023         * platform/graphics/filters/FEDropShadow.cpp:
2024         (WebCore::FEDropShadow::determineAbsolutePaintRect): Moved the code
2025         that clips the paint rect by the filter effect subregion to come after
2026         the paint is modified by the filter radius.
2027         * platform/graphics/filters/FEGaussianBlur.cpp:
2028         (WebCore::FEGaussianBlur::determineAbsolutePaintRect):
2029         Moved the code that clips the paint rect by the filter effect subregion to
2030         come after the paint is modified by the filter radius.
2031         * rendering/svg/RenderSVGResourceFilter.cpp:
2032         (WebCore::RenderSVGResourceFilter::postApplyResource):
2033         Removed a clip that is unnecessary and that was incorrectly clipping drop shadows.
2034
2035 2012-07-19  Pavel Feldman  <pfeldman@chromium.org>
2036
2037         Web Inspector: Status bar icons are misaligned by 1px to the right
2038         https://bugs.webkit.org/show_bug.cgi?id=91757
2039
2040         Reviewed by Vsevolod Vlasov.
2041
2042         * inspector/front-end/inspector.css:
2043         (.glyph):
2044         (.glyph.shadow):
2045
2046 2012-07-20  Andrei Poenaru  <poenaru@adobe.com>
2047
2048         Web Inspector: Protocol Extension: add getNamedFlowCollection command
2049         https://bugs.webkit.org/show_bug.cgi?id=91607
2050
2051         Reviewed by Pavel Feldman.
2052
2053         Extended the protocol with "getNamedFlowCollection" command.
2054         This command returns the CSS Named Flows from the document.
2055
2056         Test: inspector/styles/protocol-getNamedFlowCollection-command.html
2057
2058         * dom/WebKitNamedFlowCollection.cpp:
2059         (WebCore::WebKitNamedFlowCollection::namedFlowsNames):
2060         (WebCore):
2061         * dom/WebKitNamedFlowCollection.h:
2062         (WebKitNamedFlowCollection):
2063         * inspector/Inspector.json:
2064         * inspector/InspectorCSSAgent.cpp:
2065         (WebCore::InspectorCSSAgent::getNamedFlowCollection):
2066         (WebCore):
2067         * inspector/InspectorCSSAgent.h:
2068         (InspectorCSSAgent):
2069         * inspector/InspectorDOMAgent.cpp:
2070         (WebCore::InspectorDOMAgent::assertDocument):
2071         (WebCore):
2072         * inspector/InspectorDOMAgent.h:
2073         (InspectorDOMAgent):
2074         * inspector/front-end/CSSStyleModel.js:
2075         (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
2076
2077 2012-07-20  Eugene Klyuchnikov  <eustas.big@gmail.com>
2078
2079         Web Inspector: Timeline: forward compatibility for load.
2080         https://bugs.webkit.org/show_bug.cgi?id=91714
2081
2082         Reviewed by Pavel Feldman.
2083
2084         Accept records of unrecognized types and render them as "unknown".
2085
2086         Test: inspector/timeline/timeline-load-incompatible.html
2087
2088         * English.lproj/localizedStrings.js: Added UI string.
2089         * inspector/front-end/TimelinePresentationModel.js:
2090         (WebInspector.TimelinePresentationModel.recordStyle): Add missing record
2091         styles at runtime.
2092         (WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):
2093         Add some common information for default case.
2094
2095 2012-07-20  MORITA Hajime  <morrita@google.com>
2096
2097         Another unreviewed Mac build fix against r123184.
2098
2099         * WebCore.exp.in:
2100
2101 2012-07-20  Mihnea Ovidenie  <mihnea@adobe.com>
2102
2103         [CSSRegions]Crash when flowing a region into itself
2104         https://bugs.webkit.org/show_bug.cgi?id=90289
2105
2106         Reviewed by Andreas Kling.
2107
2108         If a region is designed to receive itself as content through a named flow, we avoid
2109         a circular dependency by not attaching the region to the desired named flow.
2110         In such occasions, the region's attached flow thread object is null and
2111         we have to check this pointer before using it in RenderRegion::styleDidChange.
2112
2113         Test: fast/regions/flow-region-into-itself-crash.html
2114
2115         * rendering/RenderRegion.cpp:
2116         (WebCore::RenderRegion::styleDidChange):
2117
2118 2012-07-20  MORITA Hajime  <morrita@google.com>
2119
2120         Unreviewed Mac build fix against r123184.
2121
2122         * WebCore.exp.in:
2123
2124 2012-07-17  Kinuko Yasuda  <kinuko@chromium.org>
2125
2126         If value for responseType defined as type that not supported, it should not throw an exception in XHR 2
2127         https://bugs.webkit.org/show_bug.cgi?id=90976
2128
2129         Reviewed by Alexey Proskuryakov.
2130
2131         http://www.w3.org/TR/XMLHttpRequest2/#the-responsetype-attribute
2132         The spec does not say it should throw an exception when a non-supported
2133         type is set, and other browsers do not throw it either.
2134
2135         Test: fast/xmlhttprequest/xmlhttprequest-responsetype-set-type.html
2136
2137         * xml/XMLHttpRequest.cpp:
2138         (WebCore::XMLHttpRequest::setResponseType): Stop throwing an exception when non-supported type is given.
2139
2140 2012-07-20  Matt Falkenhagen  <falken@chromium.org>
2141
2142         Show or hide <dialog> depending on the open attribute
2143         https://bugs.webkit.org/show_bug.cgi?id=90931
2144
2145         Reviewed by Kent Tamura.
2146
2147         Test: fast/dom/HTMLDialogElement/dialog-open.html
2148
2149         * css/html.css: Add CSS for dialog. This is copied verbatim from the HTML5 spec: http://www.whatwg.org/specs/web-apps/current-work/#flow-content-1
2150         (dialog:not([open])):
2151         (dialog):
2152         * html/HTMLDialogElement.cpp:
2153         (WebCore::HTMLDialogElement::close): Set open to false, to hide the dialog.
2154         (WebCore::HTMLDialogElement::show): Set open to true, to show the dialog.
2155         (WebCore):
2156         (WebCore::HTMLDialogElement::isPresentationAttribute): Make openAttr a presentation attribute, to work around bug 91058
2157         * html/HTMLDialogElement.h:
2158         (HTMLDialogElement):
2159         * html/HTMLDialogElement.idl:
2160
2161 2012-07-20  Shinya Kawanaka  <shinyak@chromium.org>
2162
2163         Needs pseudo id to point the inner element of an img elemnet for styling
2164         https://bugs.webkit.org/show_bug.cgi?id=91590
2165
2166         Reviewed by Hajime Morita.
2167
2168         We introduce pseudo id to point the element in UserAgentShadowDOM.
2169         This enables us to style the inner element of an img element shadow.
2170         Please see also http://trac.webkit.org/wiki/ShadowDOMForReplacedElements
2171
2172         Test: fast/dom/shadow/shadowdom-for-image-with-pseudo-id.html
2173
2174         * html/shadow/ImageInnerElement.cpp:
2175         (WebCore::ImageInnerElement::shadowPseudoId):
2176         (WebCore):
2177         * html/shadow/ImageInnerElement.h:
2178         (ImageInnerElement):
2179
2180 2012-07-20  Kent Tamura  <tkent@chromium.org>
2181
2182         REGRESSION(r121420): Performance regression of form state saving for pages with multiple forms
2183         https://bugs.webkit.org/show_bug.cgi?id=91804
2184
2185         Reviewed by Hajime Morita.
2186
2187         The complexity of FormKeyGenerator::formKey() was O(N) where N is the
2188         number of form elements with an identical action URL, and formKey() is
2189         called for every form. So, it's O(N^2). A page in www.reddit.com
2190         contains hundreds of form elements with action="#". So FormController::
2191         formElementsState() took a few seconds on a slow machine.
2192
2193         In order to avoid O(N^2) operation, storing a map from form signatures
2194         to next index numbers, instead of storing existing formKey strings.
2195
2196         No new tests. Just a performance improvement.
2197
2198         * html/FormController.cpp:
2199         (FormKeyGenerator): Remove m_existingKeys. Add a map from a form
2200         signature string to the next index number.
2201         (WebCore::formSignature): Returns a signature string for a form, without
2202         an index number. This is like "actionURL [name1 name2 ]"
2203         (WebCore::FormKeyGenerator::formKey):
2204         Creates a formKey string by concatenating a formSignature and #n. N is
2205         obtained from m_formSignatureToNextIndexMap in O(1).
2206         (WebCore::FormKeyGenerator::willDeleteForm):
2207         Remove the code for m_existingKeys.
2208
2209 2012-07-20  Keishi Hattori  <keishi@webkit.org>
2210
2211         Fix crash in WebCore::HTMLInputElement::dataList
2212         https://bugs.webkit.org/show_bug.cgi?id=91818
2213
2214         Reviewed by Kent Tamura.
2215
2216         Fix crash that occurs when setting slider appearance on a regular node.
2217
2218         Test: fast/forms/range/slider-appearance-crash.html
2219
2220         * rendering/RenderTheme.cpp:
2221         (WebCore::RenderTheme::paintSliderTicks): Check if node is an input element.
2222
2223 2012-07-20  Kent Tamura  <tkent@chromium.org>
2224
2225         [Chromium] Fix an assertion failure in TextFieldDecorationElement::hostInput()
2226         https://bugs.webkit.org/show_bug.cgi?id=91824
2227
2228         Reviewed by Hajime Morita.
2229
2230         No new tests. This code is used only in Chromium browser.
2231
2232         * html/shadow/TextFieldDecorationElement.cpp:
2233         (WebCore::TextFieldDecorationElement::hostInput):
2234         Use shadowHost(), and allow to return 0.
2235         (WebCore::TextFieldDecorationElement::defaultEventHandler):
2236         Check 0.
2237
2238 2012-07-19  Simon Hausmann  <simon.hausmann@nokia.com>
2239
2240         [Qt] Compile WebCore without QtWidgets
2241         https://bugs.webkit.org/show_bug.cgi?id=91819
2242
2243         Reviewed by Kenneth Rohde Christiansen.
2244
2245         * WebCore.pri: QT += opengl is not needed for Qt 5, given that QtGui has OpenGL
2246         support built in with the QOpenGL* classes.
2247
2248 2012-07-19  MORITA Hajime  <morrita@google.com>
2249
2250         [Refactoring] Replace Node's Document pointer with a TreeScope pointer
2251         https://bugs.webkit.org/show_bug.cgi?id=59816
2252
2253         Reviewed by Ryosuke Niwa.
2254
2255         Before this change, Node::treeScope() fetches the TreeScope object
2256         from ElementRareData. This approach has several shortcomings:
2257
2258         - rareData() call is slow due to a hashtable lookup.
2259         - In shadow tree, each node has its tree scope in ElementRareData,
2260           that means the rare-data is no longer rare in that case.
2261
2262         This change gets rid of ElementRareData::m_treeScope by replacing
2263         Node::m_document with Node::m_treeScope. And retrieves the
2264         document of Node through m_treeScope.
2265
2266         Note that Node::document() is a hot function and naive
2267         replacemennt of m_document with m_treeScope can hurt the
2268         speed. This change employs some tricks to address it.
2269
2270         - This change introduces Node::InShadowTree flag, if the flag is off,
2271           that means m_treeScope is actually a document an can be returned as the result.
2272           this eliminates an extract dereference.
2273         - Node::m_treeScope can be null. But we don't want to issue any extra
2274           conditional statement. So this change represents a null
2275           TreeScope as TreeScope::nullInstance(), which saves one conditional
2276           statement.
2277
2278         With these changes, the Node::document() slowdown is minimized to
2279         unnoticeable size.
2280
2281         No new tests. Covered by existing tests.
2282
2283         * dom/Document.cpp: Took care of connectio betwen TreeScope.
2284         (WebCore::Document::Document):
2285         (WebCore::Document::~Document):
2286         (WebCore::Document::suggestedMIMEType):
2287         * dom/Document.h:
2288         (WebCore::Node::treeScope): Now just return m_treeScope, taking care of nullInstance() case.
2289         (WebCore):
2290         (WebCore::Node::setTreeScope): Now just sets m_treeScope.
2291         (WebCore::Node::documentInternal): Extracted from document() to have ASSERT-free version.
2292         (WebCore::Node::document): Re-implemented over treeScope() and the flag.
2293         (WebCore::Node::isDocumentNode): Re-implemented using treeScope()
2294         (WebCore::Node::Node):
2295         * dom/Node.cpp:
2296         (WebCore::Node::~Node):
2297         (WebCore::Node::reportMemoryUsage):
2298         * dom/Node.h:
2299         (Node):
2300         (WebCore::Node::inDocument):
2301         (WebCore::Node::isInShadowTree): Rewrote to use InShadowTree flag.
2302         * dom/NodeRareData.h:
2303         (WebCore::NodeRareData::NodeRareData): Eliminated m_treeScope.
2304         (NodeRareData):
2305         * dom/ShadowRoot.cpp:
2306         (WebCore::ShadowRoot::ShadowRoot):
2307         * dom/TreeScope.cpp:
2308         (WebCore::TreeScope::TreeScope):
2309         (WebCore):
2310         (WebCore::TreeScope::setParentTreeScope): Added.
2311         (WebCore::TreeScope::isDocumentScope): Added.
2312         (WebCore::TreeScope::nullInstance): Added.
2313         * dom/TreeScope.h: Added m_parentTreeScope.
2314         (WebCore):
2315         (WebCore::TreeScope::rootDocument): Added.
2316         (TreeScope):
2317         * dom/TreeScopeAdopter.cpp: No longer calls setDocument()
2318         (WebCore::TreeScopeAdopter::moveTreeToNewScope):
2319         (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
2320         * editing/MoveSelectionCommand.cpp: Includes Document.h to find inlined Node functions
2321         * editing/RemoveNodeCommand.cpp: Includes Document.h to find inlined Node functions
2322         * editing/RemoveNodePreservingChildrenCommand.cpp: Includes Document.h to find inlined Node functions
2323         * inspector/PageConsoleAgent.cpp: Includes Document.h to find inlined Node functions
2324
2325 2012-07-19  David Hyatt  <hyatt@apple.com>
2326
2327         SVG not properly respecting max-width.
2328         https://bugs.webkit.org/show_bug.cgi?id=91474
2329
2330         My previous checkin for 91474 accidentally inverted width and height in the division case for
2331         the computation of height. When I fixed this inversion, I discovered that <object> elements
2332         are in fact also broken with max-width handling, and that furthermore, trying to apply the same
2333         max-width fix by calling RenderBox::computeReplacedLogicalWidth/Height failed because those methods
2334         call intrinsicLogicalWidth()/Height(). Becuase m_intrinsicSize is out-of-date and does not reflect
2335         the values we just obtained from the contentRenderer, we use the default 300x150 values for object
2336         and fail to render.
2337         
2338         In order to both fix SVG/<object> with max-width constraints and to keep <object> rendering correctly
2339         even when there are no max-width constraints, I was forced to update the m_intrinsicSize immediately
2340         in order to make sure that the RenderBox methods returned the right values when computing the width/height
2341         constrained to max/min-width/height values.
2342
2343         Reviewed by Dan Bernstein.
2344
2345         Added two new tests in svg/as-image. One test covers non-rectangular images to test for the inversion
2346         mistake I made. The second test applies a max-width to <object> and shows that we have never gotten
2347         this right before. An existing test in svg/as-image/ already covers basic <object> use (and tests that
2348         the intrinsic size of 300x150 is not used when an explicit non-percentage size is specified on the SVG
2349         itself).
2350
2351         * rendering/RenderReplaced.cpp:
2352         (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox):
2353         Add a check to update m_intrinsicSize when we know it should apply, so that the calls to check against
2354         min/max-width fetch this correct size.
2355         
2356         * rendering/RenderReplaced.h:
2357         (RenderReplaced):
2358         Make m_intrinsicSize mutable because of the mutation that occurs during the method above. It may be
2359         that we should re-evaluate whether all of these methods should be const, but this would impact RenderBox
2360         methods as well, so I chose to hold off going down that rabbit hole.
2361
2362 2012-07-19  Dominic Mazzoni  <dmazzoni@google.com>
2363
2364         AX: Need AccessibilityObjects for nodes without renderers in canvas subtree
2365         https://bugs.webkit.org/show_bug.cgi?id=87899
2366
2367         Reviewed by Chris Fleizach.
2368
2369         Refactors AccessibilityRenderObject so that it inherits from a new class,
2370         AccessibilityNodeObject, that can be constructed from a Node without a
2371         renderer. Modifies AXObjectCache so that it automatically creates an
2372         AccessibilityNodeObject for elements in a canvas subtree but not otherwise.
2373         A new layout test verifies that this correctly exposes an accessibility
2374         tree with appropriate roles for elements in a canvas subtree.
2375
2376         This patch does not try to complete the implementation of
2377         AccessibilityNodeObject. Most AX methods are still unimplemented and need
2378         to be migrated from AccessibilityRenderObject to AccessibilityNodeObject
2379         in a future patch.
2380         
2381         This patch also doesn't change anything outside of WebCore/accessibility, so
2382         the rest of WebCore only calls AXObjectCache when there are changes to a
2383         RenderObject, not to a Node. Accessible notifications on nodes without
2384         renderers need to be implemented in a future patch.
2385
2386         Test: accessibility/canvas-accessibilitynodeobject.html
2387
2388         * CMakeLists.txt:
2389         * GNUmakefile.list.am:
2390         * Target.pri:
2391         * WebCore.gypi:
2392         * accessibility/AXObjectCache.cpp:
2393         (WebCore::AXObjectCache::get):
2394         (WebCore):
2395         (WebCore::createFromNode):
2396         (WebCore::AXObjectCache::getOrCreate):
2397         (WebCore::AXObjectCache::remove):
2398         * accessibility/AXObjectCache.h:
2399         (AXObjectCache):
2400         (WebCore::AXObjectCache::get):
2401         (WebCore::AXObjectCache::getOrCreate):
2402         (WebCore::AXObjectCache::remove):
2403         * accessibility/AccessibilityARIAGrid.cpp:
2404         (WebCore::AccessibilityARIAGrid::AccessibilityARIAGrid):
2405         (WebCore):
2406         (WebCore::AccessibilityARIAGrid::~AccessibilityARIAGrid):
2407         (WebCore::AccessibilityARIAGrid::init):
2408         (WebCore::AccessibilityARIAGrid::create):
2409         * accessibility/AccessibilityARIAGrid.h:
2410         (AccessibilityARIAGrid):
2411         * accessibility/AccessibilityARIAGridCell.cpp:
2412         (WebCore::AccessibilityARIAGridCell::create):
2413         * accessibility/AccessibilityARIAGridRow.cpp:
2414         (WebCore::AccessibilityARIAGridRow::create):
2415         * accessibility/AccessibilityAllInOne.cpp:
2416         * accessibility/AccessibilityList.cpp:
2417         (WebCore::AccessibilityList::create):
2418         * accessibility/AccessibilityListBox.cpp:
2419         (WebCore::AccessibilityListBox::create):
2420         * accessibility/AccessibilityMediaControls.cpp:
2421         (WebCore::AccessibilityMediaControl::create):
2422         (WebCore::AccessibilityMediaControlsContainer::create):
2423         (WebCore::AccessibilityMediaTimeline::create):
2424         (WebCore::AccessibilityMediaTimeDisplay::create):
2425         * accessibility/AccessibilityMenuList.cpp:
2426         (WebCore::AccessibilityMenuList::create):
2427         (WebCore):
2428         * accessibility/AccessibilityMenuList.h:
2429         (AccessibilityMenuList):
2430         * accessibility/AccessibilityNodeObject.cpp: Added.
2431         (WebCore):
2432         (WebCore::AccessibilityNodeObject::AccessibilityNodeObject):
2433         (WebCore::AccessibilityNodeObject::~AccessibilityNodeObject):
2434         (WebCore::AccessibilityNodeObject::init):
2435         (WebCore::AccessibilityNodeObject::create):
2436         (WebCore::AccessibilityNodeObject::detach):
2437         (WebCore::AccessibilityNodeObject::childrenChanged):
2438         (WebCore::AccessibilityNodeObject::updateAccessibilityRole):
2439         (WebCore::AccessibilityNodeObject::firstChild):
2440         (WebCore::AccessibilityNodeObject::lastChild):
2441         (WebCore::AccessibilityNodeObject::previousSibling):
2442         (WebCore::AccessibilityNodeObject::nextSibling):
2443         (WebCore::AccessibilityNodeObject::parentObjectIfExists):
2444         (WebCore::AccessibilityNodeObject::parentObject):
2445         (WebCore::AccessibilityNodeObject::elementRect):
2446         (WebCore::AccessibilityNodeObject::setNode):
2447         (WebCore::AccessibilityNodeObject::document):
2448         (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
2449         (WebCore::AccessibilityNodeObject::addChildren):
2450         (WebCore::AccessibilityNodeObject::accessibilityIsIgnored):
2451         (WebCore::AccessibilityNodeObject::canSetFocusAttribute):
2452         (WebCore::AccessibilityNodeObject::determineAriaRoleAttribute):
2453         (WebCore::AccessibilityNodeObject::ariaRoleAttribute):
2454         (WebCore::AccessibilityNodeObject::remapAriaRoleDueToParent):
2455         * accessibility/AccessibilityNodeObject.h: Added.
2456         (WebCore):
2457         (AccessibilityNodeObject):
2458         (WebCore::AccessibilityNodeObject::isAccessibilityNodeObject):
2459         (WebCore::AccessibilityNodeObject::node):
2460         (WebCore::AccessibilityNodeObject::isDetached):
2461         (WebCore::toAccessibilityNodeObject):
2462         * accessibility/AccessibilityObject.h:
2463         (WebCore::AccessibilityObject::isAccessibilityNodeObject):
2464         * accessibility/AccessibilityProgressIndicator.cpp:
2465         (WebCore::AccessibilityProgressIndicator::create):
2466         * accessibility/AccessibilityRenderObject.cpp:
2467         (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
2468         (WebCore::AccessibilityRenderObject::init):
2469         (WebCore):
2470         (WebCore::AccessibilityRenderObject::create):
2471         (WebCore::AccessibilityRenderObject::detach):
2472         (WebCore::AccessibilityRenderObject::setRenderer):
2473         (WebCore::AccessibilityRenderObject::canHaveChildren):
2474         (WebCore::AccessibilityRenderObject::addCanvasChildren):
2475         (WebCore::AccessibilityRenderObject::addChildren):
2476         * accessibility/AccessibilityRenderObject.h:
2477         (AccessibilityRenderObject):
2478         * accessibility/AccessibilitySlider.cpp:
2479         (WebCore::AccessibilitySlider::create):
2480         * accessibility/AccessibilityTable.cpp:
2481         (WebCore::AccessibilityTable::AccessibilityTable):
2482         (WebCore):
2483         (WebCore::AccessibilityTable::~AccessibilityTable):
2484         (WebCore::AccessibilityTable::init):
2485         (WebCore::AccessibilityTable::create):
2486         * accessibility/AccessibilityTable.h:
2487         (AccessibilityTable):
2488         * accessibility/AccessibilityTableCell.cpp:
2489         (WebCore::AccessibilityTableCell::create):
2490         * accessibility/AccessibilityTableRow.cpp:
2491         (WebCore::AccessibilityTableRow::create):
2492
2493 2012-07-19  Dan Bernstein  <mitz@apple.com>
2494
2495         The ATSUI-based complex text code is unused
2496         https://bugs.webkit.org/show_bug.cgi?id=91816
2497
2498         Reviewed by Sam Weinig.
2499
2500         * WebCore.gypi: Removed references to the files deleted in this change.
2501         * WebCore.xcodeproj/project.pbxproj: Ditto.
2502         * platform/graphics/FontCache.h:
2503         (FontCache): Replaced USE(CORE_TEXT) with PLATFORM(MAC) || PLATFORM(CHROMIUM) && OS(DARWIN).
2504         * platform/graphics/SimpleFontData.h:
2505         (SimpleFontData): Removed USE(ATSUI)-only code, replaced USE(CORE_TEXT) with
2506         (PLATFORM(CHROMIUM) && OS(DARWIN)).
2507         * platform/graphics/mac/ComplexTextController.cpp: Removed USE(ATSUI)-only code. Moved
2508         collectComplexTextRunsForCharacters() and the ComplexTextRun constructor out of this file.
2509         * platform/graphics/mac/ComplexTextController.h: Removed USE(ATSUI)-only code and removed
2510         #if USE(CORE_TEXT) because anyone including this header is using Core Text.
2511         * platform/graphics/mac/ComplexTextControllerATSUI.cpp: Removed.
2512         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
2513         (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): Moved from
2514         ComplexTextController.cpp into this file and merged with createTextRunFromFontDataCoreText().
2515         (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Moved from
2516         ComplexTextController.cpp into this file and merged with
2517         collectComplexTextRunsForCharactersCoreText().
2518         * platform/graphics/mac/SimpleFontDataATSUI.mm: Removed.
2519         * platform/graphics/mac/SimpleFontDataMac.mm:
2520         (WebCore::SimpleFontData::platformInit): Remove USE(ATSUI)-only code.
2521         (WebCore::SimpleFontData::platformDestroy): Ditto.
2522         * platform/text/mac/ShapeArabic.c: Removed.
2523         * platform/text/mac/ShapeArabic.h: Removed.
2524
2525 2012-07-19  Kent Tamura  <tkent@chromium.org>
2526
2527         Introduce Node::shadowHost()
2528         https://bugs.webkit.org/show_bug.cgi?id=91814
2529
2530         Reviewed by Hajime Morita.
2531
2532         Introduce Node::shadowHost(), which return the host element, or 0.
2533         Node::shadowAncestorNode() is used to obtain a shadow host. However it
2534         is confusing because it returns 'this' if this is not in a shadow tree.
2535
2536         Replaces one callsite of shadowAncestorNode() with shadowHost().
2537
2538         No behavior change.
2539
2540         * dom/Node.cpp:
2541         (WebCore::Node::shadowHost): Added.
2542         * dom/Node.h:
2543         (Node): Declare shadowHost(), and add a comment to shadowAncestorNode().
2544         * html/shadow/CalendarPickerElement.cpp:
2545         (WebCore::CalendarPickerElement::hostInput):
2546         Replace shadowAncestorNode() with shaodwHost().
2547
2548 2012-07-19  Kent Tamura  <tkent@chromium.org>
2549
2550         Form state restore: Need to identify a form by its content
2551         https://bugs.webkit.org/show_bug.cgi?id=91209
2552
2553         Reviewed by Hajime Morita.
2554
2555         Add names of the first two controls of a form to its formKey
2556         string. By this change, we can correctly restore states to
2557         reordered forms like webkit.org/b/91209#c0.
2558
2559         Tests: Added test cases to fast/forms/state-restore-per-form.html.
2560
2561         * html/FormController.cpp:
2562         (WebCore::recordFormStructure):
2563         Append at most two name attribute values.
2564         (WebCore::createKey): Insert a string built by recordFromStructure().
2565         (WebCore::formStateSignature): Bump the version.
2566
2567 2012-07-19  Wei James  <james.wei@intel.com>
2568
2569         enable Web Audio for chromium android port
2570         https://bugs.webkit.org/show_bug.cgi?id=89428
2571
2572         Reviewed by Kenneth Russell.
2573
2574         * WebCore.gyp/WebCore.gyp:
2575         * platform/audio/FFTFrameStub.cpp:
2576         (WebCore::FFTFrame::doFFT):
2577
2578 2012-07-19  David Hyatt  <hyatt@apple.com>
2579
2580         SVG images broken when max-width specified.
2581         https://bugs.webkit.org/show_bug.cgi?id=91474
2582
2583         SVG images were computing intrinsic dimensions when width and height were auto that did not
2584         respect min-max width/height. Normal images had code that applied these constraints properly.
2585         Looking at the code before the check-in that broke things, these constraints used to be
2586         applied to all images regardless of type via calcAspectRatioLogicalWidth/Height.
2587         
2588         This patch leaves the new function structure in place but converts the code to be more like
2589         it was prior to the introduction of the regression. Instead of raw intrinsic sizes being
2590         used in the SVG case, now all image types get the intrinsic sizes constrained when doing
2591         width/height computations.
2592
2593         Reviewed by Dan Bernstein.
2594
2595         Test: svg/as-image/svg-intrinsic-size.html
2596
2597         * rendering/RenderReplaced.cpp:
2598         (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox):
2599         Rename computeIntrinsicRatioInformationForRenderBox to computeAspectRatioInformationForRenderBox.
2600         Also rename the intrinsicSize reference to constrainedSize to reflect the fact that the size
2601         is not necessarily the intrinsic size any longer but instead a size where both axes have been
2602         constrained based off the max-min values of the opposite axes.
2603         
2604         Move the constraining code out of RenderReplaced::computeIntrinsicRatioInformation into this
2605         function so that the SVG code path appies the constraints as well. The movement of this code
2606         is what fixes the bug.
2607
2608         (WebCore::RenderReplaced::computeIntrinsicRatioInformation):
2609         Changed to remove the code that constrains the returned size, since it is shifting to
2610         computeAspectRatioInformationForRenderBox instead.
2611
2612         (WebCore::RenderReplaced::computeReplacedLogicalWidth):
2613         (WebCore::RenderReplaced::computeReplacedLogicalHeight):
2614         * rendering/RenderReplaced.h:
2615         (RenderReplaced):
2616         Patch the name of the reference passed in to computeReplacedLogicalWidth/Height to be
2617         constrainedSize instead of intrinsicSize, so that it is more obvious that the returned
2618         result is not just the intrinsic size of the image.
2619
2620 2012-07-19  Dmitry Titov  <dimich@chromium.org>
2621
2622         Unreviewed, reverting http://trac.webkit.org/changeset/123149.
2623         It broke an IDB test on Chromium page cycler.
2624
2625         * bindings/v8/SerializedScriptValue.cpp:
2626         (WebCore::SerializedScriptValue::SerializedScriptValue):
2627         (WebCore):
2628         * bindings/v8/SerializedScriptValue.h:
2629         * dom/MessageEvent.cpp:
2630         (WebCore::MessageEvent::MessageEvent):
2631         (WebCore::MessageEvent::initMessageEvent):
2632
2633 2012-07-19  Julien Chaffraix  <jchaffraix@webkit.org>
2634
2635         [CSS2.1] Anonymous tables should be inline/block-level based off their parent
2636         https://bugs.webkit.org/show_bug.cgi?id=15365
2637
2638         Reviewed by Abhishek Arya.
2639
2640         This change makes us match bullet 3 "Generate missing parents" of section 17.2.1 http://www.w3.org/TR/CSS2/tables.html#anonymous-boxes":
2641         "If a table is contained by an inline element, then the anonymous tables should be inline-tables."
2642
2643         Patch based on an earlier change by Kang-Hao (Kenny) Lu <kennyluck@csail.mit.edu>.
2644
2645         Tests: css2.1/20110323/inline-table-002b.html
2646                fast/dynamic/insert-before-table-part-in-continuation.html
2647                fast/table/inline-table-in-continuation.html
2648                fast/table/inline-table-with-caption.html
2649
2650         * rendering/RenderTable.cpp:
2651         (WebCore::RenderTable::createAnonymousWithParentRenderer):
2652         Added a check to determine if we should be inline or block based on our parent to match CSS 2.1.
2653
2654         * rendering/RenderInline.cpp:
2655         (WebCore::RenderInline::addChildIgnoringContinuation):
2656         Changed the child addition logic to not wrap a table part in an inline context. This change works
2657         as intended as we will call RenderObject::addChild which will create an anonymous inline table that
2658         will be added under |this| instead of the table part. As the table is inline, it doesn't need to be
2659         wrapped when we recursively call RenderInline::addChild.
2660
2661 2012-07-19  Chris Fleizach  <cfleizach@apple.com>
2662
2663         WebKit should pass <title> element value as the default description for web views
2664         https://bugs.webkit.org/show_bug.cgi?id=91763
2665
2666         Reviewed by Anders Carlsson.
2667
2668         Update the logic for determining the description for the AXWebArea to include the document's title.
2669
2670         Test: platform/mac/accessibility/document-title-used-for-description.html
2671
2672         * accessibility/AccessibilityRenderObject.cpp:
2673         (WebCore::AccessibilityRenderObject::webAreaAccessibilityDescription):
2674            Move web area description handling into a separate method.
2675         (WebCore::AccessibilityRenderObject::accessibilityDescription):
2676         * accessibility/AccessibilityRenderObject.h:
2677         (AccessibilityRenderObject):
2678
2679 2012-07-19  Zeev Lieber  <zlieber@chromium.org>
2680
2681         [Chromium] Textures drawn during occlusion are incorrectly re-used when unoccluded.
2682         https://bugs.webkit.org/show_bug.cgi?id=91537
2683
2684         Reviewed by Adrienne Walker.
2685
2686         Detecting if any external occlusion occurs when drawing a
2687         texture. If external occlusion happens, the texture is marked as
2688         "incomplete" in LayerRendererChromium, and is not being considered
2689         for re-use.
2690
2691         Minor refactoring of CCQuadCuller - extracted interface
2692         (CCQuadSink) and united append() and appendSurface() methods.
2693
2694         Added unit tests to verify this fix; also added test to try
2695         clipping instead of occlusion.
2696
2697         * platform/graphics/chromium/LayerRendererChromium.cpp:
2698         (LayerRendererChromium::CachedTexture):
2699         (WebCore::LayerRendererChromium::CachedTexture::create):
2700         (WebCore::LayerRendererChromium::CachedTexture::~CachedTexture):
2701         (WebCore::LayerRendererChromium::CachedTexture::isComplete):
2702         (WebCore::LayerRendererChromium::CachedTexture::setIsComplete):
2703         (WebCore::LayerRendererChromium::CachedTexture::CachedTexture):
2704         (WebCore):
2705         (WebCore::LayerRendererChromium::decideRenderPassAllocationsForFrame):
2706         (WebCore::LayerRendererChromium::haveCachedResourcesForRenderPassId):
2707         (WebCore::LayerRendererChromium::drawRenderPassQuad):
2708         * platform/graphics/chromium/LayerRendererChromium.h:
2709         (LayerRendererChromium):
2710         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
2711         (WebCore::CCIOSurfaceLayerImpl::appendQuads):
2712         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h:
2713         (CCIOSurfaceLayerImpl):
2714         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2715         (WebCore::CCLayerImpl::appendDebugBorderQuad):
2716         * platform/graphics/chromium/cc/CCLayerImpl.h:
2717         (WebCore):
2718         (WebCore::CCLayerImpl::appendQuads):
2719         (CCLayerImpl):
2720         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
2721         (WebCore::::unoccludedContentRect):
2722         (WebCore::::unoccludedContributingSurfaceContentRect):
2723         (WebCore):
2724         * platform/graphics/chromium/cc/CCOcclusionTracker.h:
2725         (CCOcclusionTrackerBase):
2726         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
2727         (WebCore::CCQuadCuller::CCQuadCuller):
2728         (WebCore::CCQuadCuller::append):
2729         * platform/graphics/chromium/cc/CCQuadCuller.h:
2730         (WebCore):
2731         (CCQuadCuller):
2732         (WebCore::CCQuadCuller::~CCQuadCuller):
2733         (WebCore::CCQuadCuller::hasExternalOcclusion):
2734         * platform/graphics/chromium/cc/CCQuadSink.h:
2735         (WebKit):
2736         (WebCore):
2737         (CCQuadSink):
2738         (WebCore::CCQuadSink::~CCQuadSink):
2739         * platform/graphics/chromium/cc/CCRenderPass.cpp:
2740         (WebCore::CCRenderPass::CCRenderPass):
2741         (WebCore::CCRenderPass::appendQuadsForLayer):
2742         (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
2743         * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
2744         (WebCore::CCRenderPassDrawQuad::create):
2745         (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
2746         * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
2747         (CCRenderPassDrawQuad):
2748         (WebCore::CCRenderPassDrawQuad::hasExternalOcclusion):
2749         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
2750         (WebCore::CCRenderSurface::CCRenderSurface):
2751         (WebCore::CCRenderSurface::appendQuads):
2752         * platform/graphics/chromium/cc/CCRenderSurface.h:
2753         (WebCore):
2754         (WebCore::CCRenderSurface::setHasExternalOcclusion):
2755         (WebCore::CCRenderSurface::hasExternalOcclusion):
2756         (CCRenderSurface):
2757         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
2758         (WebCore::CCScrollbarLayerImpl::appendQuads):
2759         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
2760         (CCScrollbarLayerImpl):
2761         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
2762         (WebCore::CCSolidColorLayerImpl::appendQuads):
2763         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
2764         (CCSolidColorLayerImpl):
2765         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
2766         (WebCore::CCTextureLayerImpl::appendQuads):
2767         * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
2768         (CCTextureLayerImpl):
2769         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2770         (WebCore::CCTiledLayerImpl::appendQuads):
2771         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
2772         (CCTiledLayerImpl):
2773         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2774         (WebCore::CCVideoLayerImpl::appendQuads):
2775         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
2776         (CCVideoLayerImpl):
2777
2778 2012-07-19  Simon Fraser  <simon.fraser@apple.com>
2779
2780         Keep overlap testing on for descendants of an animating element
2781         https://bugs.webkit.org/show_bug.cgi?id=91787
2782
2783         Reviewed by Beth Dakin.
2784
2785         RenderLayerCompositor::computeCompositingRequirements() would turn off
2786         overlap testing for descendants of a layer that has a 3D transform,
2787         or has an animating transform. This could cause compositing changes
2788         inside an animating element when transitions start and stop, which
2789         is undesirable.
2790         
2791         Instead, we can keep overlap testing on for descendants of that
2792         animating element, but we have to turn it off for layers later
2793         in z-order.
2794         
2795         Also enhance the "IndirectCompositingReason" flags so that in
2796         the compositing log output, we can distinguish between layers that
2797         were composited as a result of overlap testing from those compositing
2798         for stacking reasons.
2799
2800         Test: compositing/layer-creation/animation-overlap-with-children.html
2801
2802         * rendering/RenderLayer.h: New IndirectCompositingReason value to
2803         distinguish overlap from stacking.
2804         * rendering/RenderLayerCompositor.cpp:
2805         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
2806         Use an IndirectCompositingReason enum rather than a bool to track whether
2807         the layer starts as composited.
2808         Remove the if (layer->has3DTransform() || isRunningAcceleratedTransformAnimation(layer->renderer()))
2809         check that turned off overlap testing for descendants of this layer.
2810         Use IndirectCompositingForStacking (somewhat arbitrarily) for reflection layers.
2811         Turn overlap testing off for layers later in the z-order.
2812         (WebCore::RenderLayerCompositor::requiresOwnBackingStore): Take IndirectCompositingForStacking into
2813         account.
2814         (WebCore::RenderLayerCompositor::reasonForCompositing): Improve the logging output.
2815
2816 2012-07-19  No'am Rosenthal  <noam.rosenthal@nokia.com>
2817
2818         [Qt] Enable CSS shaders in Qt (software mode)
2819         https://bugs.webkit.org/show_bug.cgi?id=85140
2820
2821         Reviewed by Simon Hausmann.
2822
2823         Added missing files to the Qt build.
2824
2825         No new tests, WebGL is still disabled by default in the bots.
2826
2827         * Target.pri:
2828
2829 2012-07-19  No'am Rosenthal  <noam.rosenthal@nokia.com>
2830
2831         [Qt] Enable CSS shaders in Qt (software mode)
2832         https://bugs.webkit.org/show_bug.cgi?id=85140
2833
2834         Reviewed by Simon Hausmann.
2835
2836         Added missing files to the Qt build.
2837
2838         No new tests, WebGL is still disabled by default in the bots.
2839
2840         * Target.pri:
2841
2842 2012-07-19  Simon Fraser  <simon.fraser@apple.com>
2843
2844         Keep overlap testing on for descendants of an animating element
2845         https://bugs.webkit.org/show_bug.cgi?id=91787
2846
2847         Reviewed by Beth Dakin.
2848
2849         RenderLayerCompositor::computeCompositingRequirements() would turn off
2850         overlap testing for descendants of a layer that has a 3D transform,
2851         or has an animating transform. This could cause compositing changes
2852         inside an animating element when transitions start and stop, which
2853         is undesirable.
2854         
2855         Instead, we can keep overlap testing on for descendants of that
2856         animating element, but we have to turn it off for layers later
2857         in z-order.
2858         
2859         Also enhance the "IndirectCompositingReason" flags so that in
2860         the compositing log output, we can distinguish between layers that
2861         were composited as a result of overlap testing from those compositing
2862         for stacking reasons.
2863
2864         Test: compositing/layer-creation/animation-overlap-with-children.html
2865
2866         * rendering/RenderLayer.h: New IndirectCompositingReason value to
2867         distinguish overlap from stacking.
2868         * rendering/RenderLayerCompositor.cpp:
2869         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
2870         Use an IndirectCompositingReason enum rather than a bool to track whether
2871         the layer starts as composited.
2872         Remove the if (layer->has3DTransform() || isRunningAcceleratedTransformAnimation(layer->renderer()))
2873         check that turned off overlap testing for descendants of this layer.
2874         Use IndirectCompositingForStacking (somewhat arbitrarily) for reflection layers.
2875         Turn overlap testing off for layers later in the z-order.
2876         (WebCore::RenderLayerCompositor::requiresOwnBackingStore): Take IndirectCompositingForStacking into
2877         account.
2878         (WebCore::RenderLayerCompositor::reasonForCompositing): Improve the logging output.
2879
2880 2012-07-19  No'am Rosenthal  <noam.rosenthal@nokia.com>
2881
2882         [Qt] Enable CSS shaders in Qt (software mode)
2883         https://bugs.webkit.org/show_bug.cgi?id=85140
2884
2885         Reviewed by Simon Hausmann.
2886
2887         Added missing files to the Qt build.
2888
2889         No new tests, WebGL is still disabled by default in the bots.
2890
2891         * Target.pri:
2892
2893 2012-07-17  Dmitry Titov  <dimich@chromium.org>
2894
2895         [Chromium] Out of Memory is observed when a large object is passed to a Web Worker.
2896         https://bugs.webkit.org/show_bug.cgi?id=91535.
2897
2898         Reviewed by Dave Levin.
2899
2900         No new tests because of no new behavior and lack of mechanism to monitor used memory.
2901
2902         * bindings/v8/SerializedScriptValue.cpp:
2903         (WebCore::SerializedScriptValue::SerializedScriptValue):
2904         (WebCore::SerializedScriptValue::registerMemoryAllocatedWithCurrentScriptContext):
2905         (WebCore):
2906         (WebCore::SerializedScriptValue::~SerializedScriptValue):
2907         * bindings/v8/SerializedScriptValue.h:
2908         (SerializedScriptValue):
2909         Added a method to SerializedScriptValue to add memory pressure on GC proportional to the size of memory allocated in serialized data.
2910         
2911         * dom/MessageEvent.cpp:
2912         (WebCore::MessageEvent::MessageEvent):
2913         (WebCore::MessageEvent::initMessageEvent):
2914         Call the new method of SerializedScriptValue during creation of MessageEvent (presumably in the thread which contains the right V8 context).
2915
2916 2012-07-19  Dan Bernstein  <mitz@apple.com>
2917
2918         In flipped blocks writing modes, no flipping occurs when mapping RenderText’s local coordinates to absolute
2919         https://bugs.webkit.org/show_bug.cgi?id=91780
2920
2921         Reviewed by Anders Carlsson.
2922
2923         Test: fast/writing-mode/flipped-blocks-text-map-local-to-container.html
2924
2925         When RenderObject::mapLocalToContainer() was called on a RenderText with ApplyContainerFlip,
2926         it would not flip (if the container was not a box) but it would always pass
2927         DoNotApplyContainerFlip when recurring to the parent. This meant that no one applied the flip.
2928
2929         * rendering/RenderInline.cpp:
2930         (WebCore::RenderInline::mapLocalToContainer): Made the setting of applyContainerFlip to
2931         false unconditional on the container actually being flipped.
2932         * rendering/RenderObject.cpp:
2933         (WebCore::RenderObject::mapLocalToContainer): Rather than always passing
2934         DoNotApplyContainerFlip when recurring to the parent, changed this function to pass through
2935         the value of applyContainerFlip it was called with, unless it applied the flip itself.
2936
2937 2012-07-19  Erik Arvidsson  <arv@chromium.org>
2938
2939         Window top should not be replaceable
2940         https://bugs.webkit.org/show_bug.cgi?id=91755
2941
2942         Reviewed by Adam Barth.
2943
2944         Window top is readonly and unforgable and should not be replaceable.
2945
2946         http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#the-window-object
2947
2948         This change brings JSC inline with all other browsers.
2949
2950         No new tests. Modified existing tests.
2951
2952         * page/DOMWindow.idl:
2953
2954 2012-07-19  Max Feil  <mfeil@rim.com>
2955
2956         [BlackBerry] Only maintain the hole punch rect while html5 video is being renderered
2957         https://bugs.webkit.org/show_bug.cgi?id=91689
2958
2959         Reviewed by Antonio Gomes.
2960
2961         The hole punch rectangle needs to be present if and only if html5
2962         video content is being rendered. Otherwise unwanted content may
2963         show through from behind the browser tab's window.
2964
2965         I am not adding any new tests because the difficulty of testing
2966         for this case outweighs the benefit.
2967
2968         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
2969         (WebCore::MediaPlayerPrivate::updateStates):
2970
2971 2012-07-19  Bem Jones-Bey  <bjonesbe@adobe.com>
2972
2973         [CSS Exclusions] - Code cleanup: make shape parsing use isComma() instead of manual checks
2974         https://bugs.webkit.org/show_bug.cgi?id=91760
2975
2976         Reviewed by Eric Seidel.
2977
2978         Remove code duplication by making the rectangle, circle, and ellipse
2979         methods use isComma() to detect a comma.
2980
2981         No new tests needed: no new functionality added.
2982
2983         * css/CSSParser.cpp:
2984         (WebCore::CSSParser::parseExclusionShapeRectangle):
2985         (WebCore::CSSParser::parseExclusionShapeCircle):
2986         (WebCore::CSSParser::parseExclusionShapeEllipse):
2987
2988 2012-07-19  Raymond Toy  <rtoy@google.com>
2989
2990         Limit maximum delay of DelayNode.
2991         https://bugs.webkit.org/show_bug.cgi?id=91675
2992
2993         Reviewed by Kenneth Russell.
2994
2995         Clip the maximum delay of a DelayNode to a reasonable maximum.
2996         
2997         Test: webaudio/delaynode-maxdelaylimit.html
2998
2999         * Modules/webaudio/DelayNode.cpp:
3000         (WebCore): Add maximumAllowedDelayTime.
3001         (WebCore::DelayNode::DelayNode): Clip max delay.
3002
3003 2012-07-14  Robert Hogan  <robert@webkit.org>
3004
3005         CSS 2.1 failure: text-indent-intrinsic-003 fails
3006         https://bugs.webkit.org/show_bug.cgi?id=80576
3007
3008         Reviewed by Eric Seidel.
3009
3010         Negative values of text-indent should be distributed across inline children until used up.
3011         This fixes text-indent-intrinsic-003 and text-indent-intrinsic-004.
3012
3013         Tests: css2.1/20110323/text-indent-intrinsic-001.htm
3014                css2.1/20110323/text-indent-intrinsic-002.htm
3015                css2.1/20110323/text-indent-intrinsic-003.htm
3016                css2.1/20110323/text-indent-intrinsic-004.htm
3017
3018         * rendering/RenderBlock.cpp:
3019         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths): If text-indent is negative, keep
3020          applying it to inline children in the first formatted line until it's reduced to zero. This isn't
3021          a consideration when text-indent is a positive value.
3022
3023 2012-07-19  Douglas Stockwell  <dstockwell@google.com>
3024
3025         Crash in WebCore::StyleResolver::collectMatchingRulesForList
3026         https://bugs.webkit.org/show_bug.cgi?id=90803
3027
3028         Reviewed by Andreas Kling.
3029
3030         When a ProcessingInstruction was removed from the document the owner
3031         was removed, but the style resolver was not guaranteed to be updated.
3032         It was then possible for an inconsistent version of the stylesheet to
3033         remain visible in the DOM. Fixed by removing an invalid condition and
3034         mirroring the logic from StyleElement.
3035
3036         Test: fast/css/xml-stylesheet-removed.xhtml
3037
3038         * dom/ProcessingInstruction.cpp:
3039         (WebCore::ProcessingInstruction::removedFrom): Mirror the logic from
3040         StyleElement -- always update the style resolver.
3041
3042 2012-07-19  Bem Jones-Bey  <bjonesbe@adobe.com>
3043
3044         Shape-inside / shape-outside should support percent-based measurements
3045         https://bugs.webkit.org/show_bug.cgi?id=90311
3046
3047         Reviewed by Andreas Kling.
3048
3049         Update the CSS Parser to accept percentage length values for exclusion
3050         shapes.
3051
3052         Testing added to LayoutTests/fast/exclusions/parsing-wrap-shape-lengths.html
3053
3054         * css/CSSParser.cpp:
3055         (WebCore::CSSParser::parseExclusionShapeRectangle):
3056         (WebCore::CSSParser::parseExclusionShapeCircle):
3057         (WebCore::CSSParser::parseExclusionShapeEllipse):
3058         (WebCore::CSSParser::parseExclusionShapePolygon):
3059
3060 2012-07-19  Tony Chang  <tony@chromium.org>
3061
3062         Unreviewed, rolling out r123117.
3063         http://trac.webkit.org/changeset/123117
3064         https://bugs.webkit.org/show_bug.cgi?id=91667
3065
3066         Breaks chromium-win compile.
3067
3068         * WebCore.gyp/WebCore.gyp:
3069         * WebCore.gyp/scripts/rule_bison.py:
3070         * bindings/scripts/preprocessor.pm:
3071         (applyPreprocessor):
3072         * make-hash-tools.pl:
3073
3074 2012-07-19  James Simonsen  <simonjam@chromium.org>
3075
3076         Regression(120096): Protect the element used by ImageLoader until the end of notifyFinished().
3077         https://bugs.webkit.org/show_bug.cgi?id=90471
3078
3079         Reviewed by Brady Eidson.
3080
3081         Test: http/tests/security/video-poster-cross-origin-crash.html
3082
3083         * html/HTMLImageLoader.cpp:
3084         (WebCore::HTMLImageLoader::notifyFinished): Hang on to the element until we're done.
3085         * loader/ImageLoader.cpp:
3086         (WebCore::ImageLoader::setImage): No behavior change.
3087         (WebCore):
3088         (WebCore::ImageLoader::setImageWithoutConsideringPendingLoadEvent): Split off from old setImage, minus calling updatedHasPendingLoadEvent().
3089         (WebCore::ImageLoader::notifyFinished): Invoke updatedHasPendingLoadEvent when done with cross origin errors.
3090         * loader/ImageLoader.h:
3091         (ImageLoader):
3092
3093 2012-07-19  Scott Graham  <scottmg@chromium.org>
3094
3095         Use native (non-cygwin) binaries for perl, gperf, and bison in Chromium
3096         https://bugs.webkit.org/show_bug.cgi?id=91667
3097
3098         Reviewed by Kentaro Hara.
3099
3100         Using native tools instead of cygwin version improves build time
3101         performance by roughly 50% (on top of previous cl-instead-of-gcc
3102         change).
3103
3104         No new tests.
3105
3106         * WebCore.gyp/WebCore.gyp:
3107         * WebCore.gyp/scripts/rule_bison.py:
3108         * bindings/scripts/preprocessor.pm:
3109         (applyPreprocessor):
3110         * make-hash-tools.pl:
3111
3112 2012-07-19  Andrey Kosyakov  <caseq@chromium.org>
3113
3114         Web Inspector: CPU bars are not cleared along with the rest of the timeline panel
3115         https://bugs.webkit.org/show_bug.cgi?id=91753
3116
3117         Reviewed by Pavel Feldman.
3118
3119         - remove early bail-outs in  refreshMainThreadBars; let it run to clear bars for the non-existent / invisible events;
3120
3121         * inspector/front-end/TimelinePanel.js:
3122         (WebInspector.TimelinePanel.prototype._refreshMainThreadBars):
3123
3124 2012-07-19  Joshua Bell  <jsbell@chromium.org>
3125
3126         IndexedDB: Throw native TypeErrors per spec
3127         https://bugs.webkit.org/show_bug.cgi?id=91679
3128
3129         Reviewed by Kentaro Hara.
3130
3131         Per the IDB spec, the advance(), openCursor(), openKeyCursor() and transaction()
3132         methods supposed to throw true native JavaScript TypeError objects as exceptions
3133         rather than DOMException objects. Implement this by adding a special DOMException
3134         code that is tested for in the binding layer.
3135
3136         Tests: storage/indexeddb/cursor-advance.html
3137                storage/indexeddb/index-basics.html
3138                storage/indexeddb/index-basics-workers.html
3139                storage/indexeddb/objectstore-cursor.html
3140                storage/indexeddb/transaction-basics.html
3141
3142         * Modules/indexeddb/IDBCursor.cpp: Use the new DOMException code.
3143         (WebCore::IDBCursor::advance):
3144         (WebCore::IDBCursor::stringToDirection):
3145         (WebCore::IDBCursor::directionToString):
3146         * Modules/indexeddb/IDBDatabase.cpp: Ditto.
3147         (WebCore::IDBDatabase::setVersion):
3148         * Modules/indexeddb/IDBDatabaseException.cpp: Remove temporary cruft/mark as legacy.
3149         (WebCore):
3150         * Modules/indexeddb/IDBDatabaseException.h: Ditto.
3151         * Modules/indexeddb/IDBDatabaseException.idl: Ditto.
3152         * Modules/indexeddb/IDBFactory.cpp: Use the new DOMException code.
3153         (WebCore::IDBFactory::open):
3154         (WebCore::IDBFactory::deleteDatabase):
3155         * Modules/indexeddb/IDBObjectStore.cpp:
3156         (WebCore::IDBObjectStore::createIndex): Use the new DOMException code.
3157         * Modules/indexeddb/IDBTransaction.cpp: Use the new DOMException code.
3158         (WebCore::IDBTransaction::stringToMode):
3159         (WebCore::IDBTransaction::modeToString):
3160         * bindings/js/JSDOMBinding.cpp:
3161         (WebCore::setDOMException): Intercept new DOMException code, throw native TypeError.
3162         * bindings/v8/V8Proxy.cpp:
3163         (WebCore::V8Proxy::setDOMException): Ditto.
3164         * dom/ExceptionCode.h: Add new DOMException code.
3165
3166 2012-07-19  Joshua Bell  <jsbell@chromium.org>
3167
3168         Roll out r121610 and r122487 which may have been causing flaky crashes
3169         https://bugs.webkit.org/show_bug.cgi?id=91637
3170
3171         Reviewed by Kentaro Hara.
3172
3173         Flaky crashes started in random tests following r121610. It's not clear
3174         that r121610 is to blame, but we'd like to prove or disprove it.
3175         If this doesn't resolve the crashes, this patch should be rolled out.
3176
3177         * WebCore.gypi:
3178         * bindings/v8/NPObjectWrapper.cpp: Added.
3179         (WebCore):
3180         (NPProxyObject):
3181         (WebCore::NPObjectWrapper::NPObjectWrapper):
3182         (WebCore::NPObjectWrapper::create):
3183         (WebCore::NPObjectWrapper::clear):
3184         (WebCore::NPObjectWrapper::getWrapper):
3185         (WebCore::NPObjectWrapper::getUnderlyingNPObject):
3186         (WebCore::NPObjectWrapper::getObjectForCall):
3187         (WebCore::NPObjectWrapper::NPAllocate):
3188         (WebCore::NPObjectWrapper::NPDeallocate):
3189         (WebCore::NPObjectWrapper::NPPInvalidate):
3190         (WebCore::NPObjectWrapper::NPHasMethod):
3191         (WebCore::NPObjectWrapper::NPInvoke):
3192         (WebCore::NPObjectWrapper::NPInvokeDefault):
3193         (WebCore::NPObjectWrapper::NPHasProperty):
3194         (WebCore::NPObjectWrapper::NPGetProperty):
3195         (WebCore::NPObjectWrapper::NPSetProperty):
3196         (WebCore::NPObjectWrapper::NPRemoveProperty):
3197         (WebCore::NPObjectWrapper::NPNEnumerate):
3198         (WebCore::NPObjectWrapper::NPNConstruct):
3199         (WebCore::NPObjectWrapper::NPInvokePrivate):
3200         * bindings/v8/NPObjectWrapper.h: Added.
3201         (WebCore):
3202         (NPObjectWrapper):
3203         * bindings/v8/NPV8Object.cpp:
3204         (WebCore::freeV8NPObject):
3205         (_NPN_Invoke):
3206         (_NPN_InvokeDefault):
3207         (_NPN_EvaluateHelper):
3208         (_NPN_GetProperty):
3209         (_NPN_SetProperty):
3210         (_NPN_RemoveProperty):
3211         (_NPN_HasProperty):
3212         (_NPN_HasMethod):
3213         (_NPN_Enumerate):
3214         (_NPN_Construct):
3215         * bindings/v8/NPV8Object.h:
3216         (WebCore):
3217         * bindings/v8/ScriptController.cpp:
3218         (WebCore::ScriptController::ScriptController):
3219         (WebCore::ScriptController::clearScriptObjects):
3220         (WebCore::ScriptController::windowScriptNPObject):
3221         * bindings/v8/ScriptController.h:
3222         (ScriptController):
3223
3224 2012-07-19  Andrey Kosyakov  <caseq@chromium.org>
3225
3226         Web Inspector: minimize number of properties on WebInspector.TimelinePresentationModel.Record
3227         https://bugs.webkit.org/show_bug.cgi?id=91744
3228
3229         Reviewed by Pavel Feldman.
3230
3231         - replace most properties on TimelinePresentationModel.Record with getters;
3232
3233         This reduces the amount of memory we use for timeline presentation model records almost by 2x.
3234
3235         * inspector/front-end/TimelinePresentationModel.js:
3236         (WebInspector.TimelinePresentationModel.Record):
3237         (WebInspector.TimelinePresentationModel.Record.prototype.get children):
3238         (WebInspector.TimelinePresentationModel.Record.prototype.get category):
3239         (WebInspector.TimelinePresentationModel.Record.prototype.get title):
3240         (WebInspector.TimelinePresentationModel.Record.prototype.get startTime):
3241         (WebInspector.TimelinePresentationModel.Record.prototype.get data):
3242         (WebInspector.TimelinePresentationModel.Record.prototype.get type):
3243         (WebInspector.TimelinePresentationModel.Record.prototype.get frameId):
3244         (WebInspector.TimelinePresentationModel.Record.prototype.get endTime):
3245         (WebInspector.TimelinePresentationModel.Record.prototype.get totalHeapSize):
3246         (WebInspector.TimelinePresentationModel.Record.prototype.get usedHeapSize):
3247         (WebInspector.TimelinePresentationModel.Record.prototype.get _selfTime):
3248         (WebInspector.TimelinePresentationModel.Record.prototype.get stackTrace):
3249         (WebInspector.TimelinePresentationModel.Record.prototype.generatePopupContent):
3250         (WebInspector.TimelinePresentationModel.Record.prototype.calculateAggregatedStats):
3251
3252 2012-07-19  Dongwoo Im  <dw.im@samsung.com>
3253
3254         [EFL] Fix build break when WEB_AUDIO is enabled.
3255         https://bugs.webkit.org/show_bug.cgi?id=91735
3256
3257         Unreviewed build fix.
3258
3259         New files are added for the Web Audio fearure.
3260         These files should be included into the CMakeLists.txt file.
3261
3262         * CMakeLists.txt: Add the newly created files into the CMakeLists.txt
3263
3264 2012-07-19  Simon Hausmann  <simon.hausmann@nokia.com>
3265
3266         [Qt] Remove support for Qt versions before 4.8.0
3267         https://bugs.webkit.org/show_bug.cgi?id=91730
3268
3269         Reviewed by Kenneth Rohde Christiansen.
3270
3271         Remove Qt version check #ifdefs for Qt versions before 4.8.0.
3272
3273         * platform/graphics/qt/GraphicsContextQt.cpp:
3274         (WebCore::GraphicsContextPlatformPrivate::clipBoundingRect):
3275         * platform/qt/ThirdPartyCookiesQt.cpp:
3276         (WebCore::urlsShareSameDomain):
3277         (WebCore::thirdPartyCookiePolicyPermits):
3278
3279 2012-07-19  Peter Rybin  <peter.rybin@gmail.com>
3280
3281         Web Inspector: CodeGeneratorInspector.py: fix output write logic to support incremental build
3282         https://bugs.webkit.org/show_bug.cgi?id=90642
3283
3284         Reviewed by Yury Semikhatsky.
3285
3286         A small intermediate writer is added. It handles comparing old and new source before actual writing.
3287
3288         * inspector/CodeGeneratorInspector.py:
3289         (flatten_list):
3290         (SmartOutput):
3291         (SmartOutput.__init__):
3292         (SmartOutput.write):
3293         (SmartOutput.close):
3294
3295 2012-07-19  Mario Sanchez Prada  <msanchez@igalia.com>
3296
3297         [GTK] MHTML files not being loaded due to reported mime type not supported
3298         https://bugs.webkit.org/show_bug.cgi?id=89978
3299
3300         Reviewed by Carlos Garcia Campos.
3301
3302         Make 'message/rfc822' a supported MIME type for MHTML files in GTK.
3303
3304         * loader/MainResourceLoader.cpp:
3305         (WebCore::MainResourceLoader::continueAfterContentPolicy): Add
3306         'message/rfc822' to the list of MIME types to be considered to
3307         avoid them bypasing cross-domain security checks, only for GTK.
3308         * loader/archive/ArchiveFactory.cpp:
3309         (WebCore::archiveMIMETypes): Add 'message/rfc822' to the list of
3310         supported MIME types when MHTML support is enabled in GTK.
3311
3312 2012-07-19  Jan Keromnes  <janx@linux.com>
3313
3314         Web Inspector: Factor ExtensionView into separate file
3315         https://bugs.webkit.org/show_bug.cgi?id=91699
3316
3317         Reviewed by Vsevolod Vlasov.
3318
3319         The class ExtensionView was defined in ExtensionPanel.js but needed to
3320         be in a separate file since it is going to be reused somewhere else.
3321
3322         Current test coverage is enough since no behavior was changed.
3323
3324         * WebCore.gypi:
3325         * WebCore.vcproj/WebCore.vcproj:
3326         * inspector/compile-front-end.py:
3327         * inspector/front-end/ExtensionPanel.js:
3328         * inspector/front-end/WebKit.qrc:
3329         * inspector/front-end/inspector.html:
3330
3331 2012-07-19  Shinya Kawanaka  <shinyak@chromium.org>
3332
3333         [Refactoring] Use userAgentShadowRoot() to take user agent shadow root.
3334         https://bugs.webkit.org/show_bug.cgi?id=91716
3335
3336         Reviewed by Hajime Morita.
3337
3338         We have introduced Element::userAgentShadowRoot in r123071 to take user agent shadow root.
3339         We have used shadow()->oldestShadowRoot() to take the user agent shadow root, however its code intention was
3340         not so clear. Using userAgentShadowRoot() will make it clearer.
3341
3342         No new tests, simple refactoring.
3343
3344         * html/ColorInputType.cpp:
3345         (WebCore::ColorInputType::createShadowSubtree):
3346         (WebCore::ColorInputType::shadowColorSwatch):
3347         * html/FileInputType.cpp:
3348         (WebCore::FileInputType::createShadowSubtree):
3349         (WebCore::FileInputType::multipleAttributeChanged):
3350         * html/HTMLDetailsElement.cpp:
3351         (WebCore::HTMLDetailsElement::findMainSummary):
3352         * html/HTMLImageElement.cpp:
3353         (WebCore::HTMLImageElement::willAddAuthorShadowRoot):
3354         (WebCore::HTMLImageElement::imageElement):
3355         (WebCore::HTMLImageElement::innerElement):
3356         * html/HTMLKeygenElement.cpp:
3357         (WebCore::HTMLKeygenElement::shadowSelect):
3358         * html/HTMLTextAreaElement.cpp:
3359         (WebCore::HTMLTextAreaElement::innerTextElement):
3360         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
3361         * html/InputType.cpp:
3362         (WebCore::InputType::destroyShadowSubtree):
3363         * html/RangeInputType.cpp:
3364         (WebCore::RangeInputType::handleMouseDownEvent):
3365         (WebCore::RangeInputType::createShadowSubtree):
3366         * html/TextFieldInputType.cpp:
3367         (WebCore::TextFieldInputType::createShadowSubtree):
3368         (WebCore::TextFieldInputType::updatePlaceholderText):
3369         * html/ValidationMessage.cpp:
3370         (WebCore::ValidationMessage::deleteBubbleTree):
3371         * html/shadow/SliderThumbElement.cpp:
3372         (WebCore::sliderThumbElementOf):
3373         (WebCore::trackLimiterElementOf):
3374
3375 2012-07-19  Keishi Hattori  <keishi@webkit.org>
3376
3377         Redraw slider tick marks when datalist changes.
3378         https://bugs.webkit.org/show_bug.cgi?id=89544
3379
3380         Reviewed by Kent Tamura.
3381
3382         Updating the datalist should redraw the slider tick marks. This patch monitors
3383         the id target element of the list attribute using ListAttributeTargetObserver
3384         and notifies changes to the option element inside of a datalist element.
3385
3386         Test: fast/forms/datalist/update-range-with-datalist.html
3387
3388         * html/HTMLDataListElement.cpp:
3389         (WebCore::HTMLDataListElement::optionElementChildrenChanged): Called when a child option element's value might have changed.
3390         (WebCore):
3391         * html/HTMLDataListElement.h:
3392         (HTMLDataListElement):
3393         * html/HTMLInputElement.cpp:
3394         (ListAttributeTargetObserver): Inherits IdTargetObserver.
3395         (WebCore):
3396         (WebCore::HTMLInputElement::parseAttribute): Observe the form attribute target.
3397         (WebCore::HTMLInputElement::insertedInto): Observe the form attribute id target.
3398         (WebCore::HTMLInputElement::removedFrom): Remove the observer.
3399         (WebCore::HTMLInputElement::resetListAttributeTargetObserver):
3400         (WebCore::HTMLInputElement::listAttributeTargetChanged):
3401         (WebCore::ListAttributeTargetObserver::create):
3402         (WebCore::ListAttributeTargetObserver::ListAttributeTargetObserver):
3403         (WebCore::ListAttributeTargetObserver::idTargetChanged):
3404         * html/HTMLInputElement.h:
3405         (WebCore):
3406         (HTMLInputElement):
3407         * html/HTMLOptionElement.cpp:
3408         (WebCore::HTMLOptionElement::parseAttribute): If the value attribute changed, notify the owner datalist element.
3409         (WebCore::HTMLOptionElement::childrenChanged): If the children changed, notify the owner datalist element.
3410         (WebCore):
3411         (WebCore::HTMLOptionElement::ownerDataListElement): The datalist that the option element is inside of.
3412         * html/HTMLOptionElement.h:
3413         (WebCore):
3414         (HTMLOptionElement):
3415         * html/InputType.cpp:
3416         (WebCore):
3417         (WebCore::InputType::listAttributeTargetChanged):
3418         * html/InputType.h:
3419         (InputType):
3420         * html/RangeInputType.cpp:
3421         (WebCore):
3422         (WebCore::RangeInputType::listAttributeTargetChanged):
3423         * html/RangeInputType.h:
3424         (RangeInputType):
3425
3426 2012-07-19  Dongwoo Im  <dw.im@samsung.com>
3427
3428         CodeGeneratorV8.pm : @enabledAtRuntime is not used in GenerateHeader.
3429         https://bugs.webkit.org/show_bug.cgi?id=91715
3430
3431         Reviewed by Kentaro Hara.
3432
3433         @enabledAtRuntime is not used in GenerateHeader.
3434         We can remove it from GenerateHeader.
3435
3436         No new tests as this has no functional changes.
3437
3438         * bindings/scripts/CodeGeneratorV8.pm: Remove @enabledAtRuntime from GenerateHeader.
3439         (GenerateHeader):
3440
3441 2012-07-19  Abhishek Arya  <inferno@chromium.org>
3442
3443         Crash in FontCache::releaseFontData.
3444         https://bugs.webkit.org/show_bug.cgi?id=91710
3445
3446         Reviewed by Tim Horton.
3447
3448         Revert back change made to StyleResolver in r122896. The
3449         maximum font size clamp is required there since transformed
3450         sizes use that code path.
3451
3452         * css/StyleResolver.cpp:
3453         (WebCore::StyleResolver::collectMatchingRulesForList):
3454
3455 2012-07-18  Ryosuke Niwa  <rniwa@webkit.org>