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