1 2012-07-23 Tien-Ren Chen <trchen@chromium.org>
3 [chromium] Implement scrollbar theme for Android
4 https://bugs.webkit.org/show_bug.cgi?id=91674
6 Reviewed by Adam Barth.
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.
12 No new tests. We use mock scrollbars during layout test to share
13 pixel results with Linux.
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):
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):
31 2012-07-23 Kwang Yul Seo <skyul@company100.net>
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
36 Reviewed by Adam Barth.
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".
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
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.
57 Updated test expectation for html5lib/runner-expected.txt
58 because now resources/scripted/adoption01.dat passes.
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):
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!=):
103 (HTMLFormattingElementList):
104 * html/parser/HTMLStackItem.h: Added.
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):
118 2012-07-23 Andreas Kling <kling@webkit.org>
120 Report the extra memory used by immutable StylePropertySet objects.
121 <http://webkit.org/b/92032>
123 Reviewed by Anders Carlsson.
125 Add an optional parameter to the MemoryClassInfo constructor for passing in additional base object
126 size on top of sizeof(T).
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.
131 * css/StylePropertySet.h:
132 (WebCore::StylePropertySet::reportMemoryUsage):
133 * dom/MemoryInstrumentation.h:
134 (WebCore::MemoryObjectInfo::reportObjectInfo):
135 (WebCore::MemoryClassInfo::MemoryClassInfo):
137 2012-07-23 Gregg Tavares <gman@google.com>
139 Fix WebGL texSubImage2D for cube maps
140 https://bugs.webkit.org/show_bug.cgi?id=91927
142 Reviewed by Kenneth Russell.
144 Fixes texSubImage2D so any size rectangle can be passed in
147 Test: fast/canvas/webgl/tex-sub-image-cube-maps.html
149 * html/canvas/WebGLRenderingContext.cpp:
151 (WebCore::WebGLRenderingContext::copyTexImage2D):
152 (WebCore::WebGLRenderingContext::texImage2DBase):
153 (WebCore::WebGLRenderingContext::texSubImage2DBase):
154 (WebCore::WebGLRenderingContext::validateTexFuncParameters):
155 * html/canvas/WebGLRenderingContext.h:
156 (WebGLRenderingContext):
158 2012-07-23 Sheriff Bot <webkit.review.bot@gmail.com>
160 Unreviewed, rolling out r123387.
161 http://trac.webkit.org/changeset/123387
162 https://bugs.webkit.org/show_bug.cgi?id=92036
164 Broke chromium win build (Requested by tony^work on #webkit).
166 * WebCore.gyp/WebCore.gyp:
167 * WebCore.gyp/scripts/rule_bison.py:
168 * bindings/scripts/preprocessor.pm:
170 * make-hash-tools.pl:
172 2012-07-23 Kwang Yul Seo <skyul@company100.net>
174 Ref-count AtomicHTMLToken
175 https://bugs.webkit.org/show_bug.cgi?id=91981
177 Reviewed by Adam Barth.
179 Ref-count AtomicHTMLToken to avoid copying AtomicHTMLToken in Bug 91703.
181 No new tests - no functional changes.
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):
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):
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:
252 * html/parser/TextDocumentParser.cpp:
253 (WebCore::TextDocumentParser::insertFakePreElement):
255 2012-07-23 Scott Graham <scottmg@google.com>
257 Use native (non-cygwin) binaries for perl, gperf, and bison in Chromium
258 https://bugs.webkit.org/show_bug.cgi?id=91667
260 Reviewed by Tony Chang.
262 Using native tools instead of cygwin version improves build time
263 performance by roughly 50% (on top of previous cl-instead-of-gcc
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).
272 * WebCore.gyp/WebCore.gyp:
273 * WebCore.gyp/scripts/rule_bison.py:
274 * bindings/scripts/preprocessor.pm:
276 * make-hash-tools.pl:
278 2012-06-12 Jer Noble <jer.noble@apple.com>
280 MediaController.currentTime should be kept stable during script execution.
281 https://bugs.webkit.org/show_bug.cgi?id=88555
283 Reviewed by Eric Carlson.
285 Test: media/media-controller-time-constant.html
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.
292 * html/MediaController.cpp:
293 (MediaController::MediaController):
294 (MediaController::currentTime):
295 (MediaController::setCurrentTime):
296 (MediaController::clearPositionTimerFired):
297 * html/MediaController.h:
299 2012-07-23 Huang Dongsung <luxtella@company100.net>
301 Destroy CSS decoded data more eagerly once they become dead caches.
302 https://bugs.webkit.org/show_bug.cgi?id=91733
304 Reviewed by Geoffrey Garen.
306 Internal review by Kwang Yul Seo.
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
316 No new tests - no new testable functionality.
318 * loader/cache/CachedCSSStyleSheet.cpp:
319 (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
320 (WebCore::CachedCSSStyleSheet::didAddClient):
321 (WebCore::CachedCSSStyleSheet::allClientsRemoved):
322 (WebCore::CachedCSSStyleSheet::destroyDecodedData):
324 (WebCore::CachedCSSStyleSheet::decodedDataDeletionTimerFired):
325 * loader/cache/CachedCSSStyleSheet.h:
326 (CachedCSSStyleSheet):
328 2012-07-23 Simon Fraser <simon.fraser@apple.com>
330 Part 2 of: Implement sticky positioning
331 https://bugs.webkit.org/show_bug.cgi?id=90046
333 Reviewed by Ojan Vafai.
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.
338 Test: fast/css/sticky/parsing-position-sticky.html
340 * Configurations/FeatureDefines.xcconfig:
341 * css/CSSComputedStyleDeclaration.cpp:
342 (WebCore::getPositionOffsetValue):
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:
352 2012-07-23 Stephen Chenney <schenney@chromium.org>
354 Crash when setting empty class name on a new element
355 https://bugs.webkit.org/show_bug.cgi?id=92024
357 Reviewed by Andreas Kling.
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.
363 Test: svg/custom/empty-className-baseVal-crash.html
365 * dom/StyledElement.cpp:
366 (WebCore::StyledElement::classAttributeChanged): Add check for null attributeData()
368 2012-07-23 Shawn Singh <shawnsingh@chromium.org>
370 [chromium] Refactor CCLayerTreeHostCommon: clean up clipRect and drawableContentRect design
371 https://bugs.webkit.org/show_bug.cgi?id=80622
373 Reviewed by Adrienne Walker.
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.
386 Tests are also significantly updated to keep up with this refactoring change.
388 * platform/graphics/chromium/LayerChromium.cpp:
389 (WebCore::LayerChromium::LayerChromium):
390 * platform/graphics/chromium/LayerChromium.h:
392 Removed m_usesLayerClipping and m_clipRect and associated accessors.
394 * platform/graphics/chromium/RenderSurfaceChromium.h:
395 (RenderSurfaceChromium):
398 * platform/graphics/chromium/cc/CCLayerImpl.cpp:
399 (WebCore::CCLayerImpl::CCLayerImpl):
400 * platform/graphics/chromium/cc/CCLayerImpl.h:
402 Removed m_usesLayerClipping and m_clipRect and associated accessors.
404 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
405 (WebCore::CCLayerTreeHost::updateLayers):
406 removed setClipRect code that no longer applies
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.
412 (WebCore::calculateSurfaceScissorRect):
413 scissor rect is now a little bit tighter, except when filters are involved.
415 (WebCore::layerClipsSubtree):
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.
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.
436 * platform/graphics/chromium/cc/CCRenderSurface.h:
438 2012-07-23 Patrick Gansterer <paroga@webkit.org>
440 [CMAKE] Added missing RenderLayerFilterInfo.cpp to build system.
444 2012-07-23 Ryosuke Niwa <rniwa@webkit.org>
446 REGRESSION(r123281): childNodes sometimes returns wrong nodes
447 https://bugs.webkit.org/show_bug.cgi?id=92014
449 Reviewed by Anders Carlsson.
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.
456 Test: fast/dom/NodeList/childNodes-reverse-iteration.html
458 * html/HTMLCollection.cpp:
459 (WebCore::DynamicNodeListCacheBase::itemBeforeOrAfter):
461 2012-07-23 Steve VanDeBogart <vandebo@chromium.org>
463 Chrome/Skia: PDF print output does not have clickable links.
464 https://bugs.webkit.org/show_bug.cgi?id=91171
466 Reviewed by Stephen White.
468 Connect GraphicsContext::setURLForRect to Skia's new API for annotations.
470 Printing is not generally testable.
472 * platform/graphics/skia/GraphicsContextSkia.cpp:
473 (WebCore::GraphicsContext::setURLForRect):
475 2012-07-23 Pierre Rossi <pierre.rossi@gmail.com>
477 Unify numTouchEventHandlersChanged and needTouchEvents in the chrome client
478 https://bugs.webkit.org/show_bug.cgi?id=91006
480 Reviewed by Ryosuke Niwa.
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.
485 Test: fast/events/touch/touch-handler-count.html
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
496 (WebCore::Document::touchEventHandlerCount):
497 * loader/EmptyClients.h:
498 * page/ChromeClient.h:
500 * page/Frame.cpp: Removed notifyChromeClientTouchEventHandlerCountChanged.
501 (WebCore::Frame::setDocument): call needsTouchEvents directly.
502 * page/Frame.h: Ditto.
504 * testing/Internals.cpp:
505 (WebCore::Internals::hasTouchEventListener): expose Document::hasListenerType indirectly
506 for additional testing.
508 * testing/Internals.h:
510 * testing/Internals.idl:
512 2012-07-23 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
514 [Qt] RenderThemeQtMobile highlight colors are not being used
515 https://bugs.webkit.org/show_bug.cgi?id=92004
517 Reviewed by Noam Rosenthal.
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.
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.
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.
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.
542 * platform/qt/RenderThemeQt.h:
544 * platform/qt/RenderThemeQtMobile.cpp:
545 (WebCore::RenderThemeQtMobile::colorPalette):
547 * platform/qt/RenderThemeQtMobile.h:
548 (RenderThemeQtMobile):
550 2012-07-23 Simon Fraser <simon.fraser@apple.com>
552 Part 1 of: Implement sticky positioning
553 https://bugs.webkit.org/show_bug.cgi?id=90046
555 Reviewed by Ojan Vafai.
557 Add ENABLE_CSS_STICKY_POSITION, defaulting to off initially.
559 Sort the ENABLE_CSS lines in the file. Make sure all the flags
560 are in FEATURE_DEFINES.
562 * Configurations/FeatureDefines.xcconfig:
564 2012-07-23 Sheriff Bot <webkit.review.bot@gmail.com>
566 Unreviewed, rolling out r123339.
567 http://trac.webkit.org/changeset/123339
568 https://bugs.webkit.org/show_bug.cgi?id=92006
570 massive media tests failure (Requested by philn on #webkit).
572 * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
574 * platform/graphics/gstreamer/GStreamerVersioning.cpp:
575 (setGstElementClassMetadata):
576 * platform/graphics/gstreamer/GStreamerVersioning.h:
578 2012-07-21 Vincent Scheib <scheib@chromium.org>
580 webkitFullscreenElement, webkitCurrentFullScreenElement, webkitPointerLockElement block cross origin access.
581 https://bugs.webkit.org/show_bug.cgi?id=91892
583 Reviewed by Adam Barth.
585 PointerLockElement only returned when requested from the document that owns it.
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
593 (WebCore::Document::webkitPointerLockElement):
595 2012-07-23 Philippe Normand <pnormand@igalia.com>
597 [GTK][jhbuild] Switch to GStreamer 0.11 build
598 https://bugs.webkit.org/show_bug.cgi?id=91727
600 Reviewed by Gustavo Noronha Silva.
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
607 * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
609 * platform/graphics/gstreamer/GStreamerVersioning.cpp:
610 (gstObjectIsFloating):
611 * platform/graphics/gstreamer/GStreamerVersioning.h:
613 2012-07-23 Christophe Dumez <christophe.dumez@intel.com>
615 [EFL] media/controls-styling.html is failing
616 https://bugs.webkit.org/show_bug.cgi?id=91984
618 Reviewed by Eric Carlson.
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,
625 No new tests. Already tested by media/controls-styling.html and
626 media/controls-styling-strict.html
628 * css/mediaControlsEfl.css:
629 (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
631 2012-07-23 Carlos Garcia Campos <cgarcia@igalia.com>
633 Unreviewed. Fix make distcheck.
635 * GNUmakefile.list.am: Add missing header files.
637 2012-07-23 Kent Tamura <tkent@chromium.org>
639 Replace some instances of shadowAncestorNode() with shadowHost()
640 https://bugs.webkit.org/show_bug.cgi?id=91966
642 Reviewed by Hajime Morita.
644 shadowAncestorNode() is deprecated. We should use shadowHost().
645 No new tests. This doesn't change any behavior.
647 * css/SelectorChecker.cpp:
648 (WebCore::SelectorChecker::checkSelector):
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):
682 2012-07-23 Pavel Feldman <pfeldman@chromium.org>
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
687 Reviewed by Yury Semikhatsky.
689 hideHighlight was never called once user hovered over a node.
691 * inspector/DOMNodeHighlighter.cpp:
692 (WebCore::InspectorOverlay::update):
694 2012-07-23 Peter Beverloo <peter@chromium.org>
696 [Chromium] Build fix for the Windows builder following r123311
697 https://bugs.webkit.org/show_bug.cgi?id=91979
699 Unreviewed build fix.
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.
706 2012-07-23 Patrick Gansterer <paroga@webkit.org>
708 [WIN] Remove ICU dependencies from UniscribeController
709 https://bugs.webkit.org/show_bug.cgi?id=91921
711 Reviewed by Ryosuke Niwa.
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.
716 * platform/graphics/win/UniscribeController.cpp:
717 (WebCore::UniscribeController::advance):
719 2012-07-23 Christophe Dumez <christophe.dumez@intel.com>
721 [EFL] media/controls-styling-strict.html is failing
722 https://bugs.webkit.org/show_bug.cgi?id=91960
724 Reviewed by Kenneth Rohde Christiansen.
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.
730 No new test, already tested by media/controls-styling-strict.html
732 * css/mediaControlsEfl.css:
733 (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
735 2012-07-23 Carlos Garcia Campos <cgarcia@igalia.com>
737 Unreviewed. Fix GTK+ build with ENABLE_DATALIST_ELEMENT.
739 Add an implementation for virtual pure methods sliderTickSize()
740 and sliderTickOffsetFromTrackCenter() when HTML5 datalist element
743 * platform/gtk/RenderThemeGtk.cpp:
745 (WebCore::RenderThemeGtk::sliderTickSize):
746 (WebCore::RenderThemeGtk::sliderTickOffsetFromTrackCenter):
747 * platform/gtk/RenderThemeGtk.h:
749 2012-07-23 Patrick Gansterer <paroga@webkit.org>
751 Replace getCurrentLocalTime() with GetLocalTime() in LocaleWin.cpp
752 https://bugs.webkit.org/show_bug.cgi?id=91937
754 Reviewed by Ryosuke Niwa.
756 The windows function returns the required year directly and
757 removes one additonal dependecy on getCurrentLocalTime().
759 * platform/text/LocaleWin.cpp:
760 (WebCore::LocaleWin::LocaleWin):
762 2012-07-23 Vsevolod Vlasov <vsevik@chromium.org>
764 Web Inspector: Drag and drop should not be started on right mouse click.
765 https://bugs.webkit.org/show_bug.cgi?id=91728
767 Reviewed by Pavel Feldman.
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.
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):
831 2012-07-23 Hayato Ito <hayato@chromium.org>
833 ComposedShadowTreeWalker should skip an empty insertion points.
834 https://bugs.webkit.org/show_bug.cgi?id=91826
836 Reviewed by Hajime Morita.
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.
844 Test: fast/dom/shadow/composed-shadow-tree-walker.html
846 * dom/ComposedShadowTreeWalker.cpp:
847 (WebCore::ComposedShadowTreeWalker::traverseLightChildren):
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):
858 2012-07-23 Patrick Gansterer <paroga@webkit.org>
860 Rename TextCodecWinCE to TextCodecWin
861 https://bugs.webkit.org/show_bug.cgi?id=91947
863 Reviewed by Ryosuke Niwa.
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.
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.
875 2012-07-22 Kentaro Hara <haraken@chromium.org>
877 [V8] CodeGeneratorV8.pm should support static attributes
878 https://bugs.webkit.org/show_bug.cgi?id=91764
880 Reviewed by Adam Barth.
882 CodeGeneratorJS.pm already supports static attributes.
883 CodeGeneratorV8.pm should also support them.
885 Tests: bindings/scripts/test/TestObj.idl
886 bindings/scripts/test/TestSupplemental.idl
888 * bindings/scripts/CodeGeneratorV8.pm:
889 (GenerateNormalAttrGetter):
890 (GenerateNormalAttrSetter):
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.
895 * bindings/scripts/test/JS/JSTestInterface.cpp: Updated run-bindings-tests results.
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:
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):
910 * bindings/scripts/test/V8/V8TestObj.cpp:
911 (WebCore::TestObjV8Internal::staticReadOnlyIntAttrAttrGetter):
913 (WebCore::TestObjV8Internal::staticStringAttrAttrGetter):
914 (WebCore::TestObjV8Internal::staticStringAttrAttrSetter):
917 2012-07-22 Gyuyoung Kim <gyuyoung.kim@samsung.com>
919 Missing *explicit* keyword in storage and workers.
920 https://bugs.webkit.org/show_bug.cgi?id=91934
922 Reviewed by Kentaro Hara.
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.
928 No new tests. Convered by existing tests.
930 * storage/StorageAreaImpl.h:
932 * storage/StorageMap.h:
934 * storage/StorageSyncManager.h:
935 (StorageSyncManager):
936 * storage/StorageTask.h:
938 * storage/StorageTracker.h:
940 * workers/SharedWorker.h:
944 * workers/WorkerLocation.h:
945 (WebCore::WorkerLocation::WorkerLocation):
946 * workers/WorkerMessagingProxy.h:
947 (WorkerMessagingProxy):
949 2012-07-23 Kent Tamura <tkent@chromium.org>
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
954 Reviewed by Kentaro Hara.
956 A flag name for an elmement should be ENABLE_*_ELEMENT.
958 * Configurations/FeatureDefines.xcconfig:
959 * DerivedSources.make:
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):
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):
988 * platform/efl/RenderThemeEfl.h:
990 * platform/gtk/RenderThemeGtk.cpp:
992 * platform/gtk/RenderThemeGtk.h:
994 * platform/gtk/RenderThemeGtk2.cpp:
996 * platform/gtk/RenderThemeGtk3.cpp:
998 * platform/qt/RenderThemeQt.cpp:
1000 * platform/qt/RenderThemeQt.h:
1003 * platform/qt/RenderThemeQtMobile.cpp:
1005 * platform/qt/RenderThemeQtMobile.h:
1006 (RenderThemeQtMobile):
1007 * rendering/RenderMeter.cpp:
1008 * rendering/RenderMeter.h:
1009 * rendering/RenderObject.h:
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):
1019 * rendering/RenderTheme.h:
1022 * rendering/RenderThemeChromiumLinux.cpp:
1024 * rendering/RenderThemeChromiumLinux.h:
1025 * rendering/RenderThemeChromiumSkia.cpp:
1027 * rendering/RenderThemeChromiumSkia.h:
1028 (RenderThemeChromiumSkia):
1029 * rendering/RenderThemeChromiumWin.cpp:
1031 * rendering/RenderThemeChromiumWin.h:
1032 (RenderThemeChromiumWin):
1033 * rendering/RenderThemeMac.h:
1035 * rendering/RenderThemeMac.mm:
1038 2012-07-22 Kent Tamura <tkent@chromium.org>
1040 Rename ENABLE_DETAILS to ENABLE_DETAILS_ELEMENT
1041 https://bugs.webkit.org/show_bug.cgi?id=91928
1043 Reviewed by Kentaro Hara.
1045 A flag name for an elmement should be ENABLE_*_ELEMENT.
1047 * Configurations/FeatureDefines.xcconfig:
1048 * DerivedSources.make:
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:
1059 * rendering/RenderTreeAsText.cpp:
1060 (WebCore::RenderTreeAsText::writeRenderObject):
1062 2012-07-21 Dan Bernstein <mitz@apple.com>
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
1067 Reviewed by Anders Carlsson.
1069 Test: svg/as-image/svg-intrinsic-size-rectangular-vertical.html
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.
1078 2012-07-21 Patrick Gansterer <paroga@webkit.org>
1080 Cleanup TextEncoding USE(XXX_UNICODE) macros
1081 https://bugs.webkit.org/show_bug.cgi?id=91923
1083 Reviewed by Andreas Kling.
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.
1088 * platform/text/TextEncoding.cpp:
1089 (WebCore::TextEncoding::encode):
1090 * platform/text/TextEncodingRegistry.cpp:
1091 (WebCore::extendTextCodecMaps):
1093 2012-07-21 Patrick Gansterer <paroga@webkit.org>
1095 Remove unnecessary ICU header includes from SimpleFontDataWin.cpp
1096 https://bugs.webkit.org/show_bug.cgi?id=91922
1098 Reviewed by Kentaro Hara.
1100 This allows us to use SimpleFontDataWin with an other Unicode implementation too.
1102 * platform/graphics/win/SimpleFontDataWin.cpp:
1104 2012-07-21 Kwang Yul Seo <skyul@company100.net>
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
1109 Reviewed by Eric Seidel.
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.
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).
1119 No behavior change because parseError(token) is just a marker.
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):
1129 (WebCore::HTMLTreeBuilder::processStartTagForInHead):
1130 * html/parser/HTMLTreeBuilder.h:
1132 2012-07-20 Czene Tamás <tczene@inf.u-szeged.hu>
1134 double data type shoud be changed to float in ColorMatrix
1135 https://bugs.webkit.org/show_bug.cgi?id=91499
1137 Reviewed by Nikolas Zimmermann.
1139 * platform/graphics/filters/FEColorMatrix.cpp:
1141 (WebCore::saturate):
1142 (WebCore::huerotate):
1143 (WebCore::luminance):
1144 (WebCore::effectType):
1146 2012-07-20 Stephen White <senorblanco@chromium.org>
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
1152 Reviewed by Adrienne Walker.
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).
1160 Covered by existing tests, such as
1161 fast/borders/border-image-scale-transform.html.
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).
1178 2012-07-20 Kwang Yul Seo <skyul@company100.net>
1180 Anything else in the "in table" insertion mode is a parse error
1181 https://bugs.webkit.org/show_bug.cgi?id=91915
1183 Reviewed by Adam Barth.
1185 According to the HTML5 spec, anything else in the "in table" insertion mode is a parse error.
1187 No behavior change because parseError(token) is just a marker.
1189 * html/parser/HTMLTreeBuilder.cpp:
1190 (WebCore::HTMLTreeBuilder::processEndTagForInTable):
1192 2012-07-20 Kent Tamura <tkent@chromium.org>
1194 Rename ENABLE_DATALIST to ENABLE_DATALIST_ELEMENT
1195 https://bugs.webkit.org/show_bug.cgi?id=91846
1197 Reviewed by Kentaro Hara.
1199 A flag name for an elmement should be ENABLE_*_ELEMENT.
1201 * Configurations/FeatureDefines.xcconfig:
1202 * DerivedSources.make:
1205 * html/HTMLDataListElement.cpp:
1206 * html/HTMLDataListElement.h:
1207 * html/HTMLDataListElement.idl:
1208 * html/HTMLInputElement.cpp:
1210 (WebCore::HTMLInputElement::parseAttribute):
1211 (WebCore::HTMLInputElement::insertedInto):
1212 (WebCore::HTMLInputElement::removedFrom):
1213 * html/HTMLInputElement.h:
1215 * html/HTMLInputElement.idl:
1216 * html/HTMLOptionElement.cpp:
1217 (WebCore::HTMLOptionElement::parseAttribute):
1218 (WebCore::HTMLOptionElement::childrenChanged):
1220 * html/HTMLOptionElement.h:
1221 (HTMLOptionElement):
1222 * html/HTMLTagNames.in:
1223 * html/InputType.cpp:
1227 * html/RangeInputType.cpp:
1229 * html/RangeInputType.h:
1231 * html/shadow/SliderThumbElement.cpp:
1232 (WebCore::RenderSliderContainer::layout):
1233 * page/DOMWindow.idl:
1234 * platform/efl/RenderThemeEfl.cpp:
1236 * platform/efl/RenderThemeEfl.h:
1238 * platform/qt/RenderThemeQt.cpp:
1240 * platform/qt/RenderThemeQt.h:
1242 * rendering/RenderTheme.cpp:
1244 * rendering/RenderTheme.h:
1246 * rendering/RenderThemeChromiumLinux.cpp:
1248 (WebCore::RenderThemeChromiumLinux::paintSliderTrack):
1249 * rendering/RenderThemeChromiumLinux.h:
1250 (RenderThemeChromiumLinux):
1251 * rendering/RenderThemeChromiumWin.cpp:
1253 (WebCore::RenderThemeChromiumWin::paintSliderTrack):
1254 * rendering/RenderThemeChromiumWin.h:
1255 (RenderThemeChromiumWin):
1256 * rendering/RenderThemeMac.h:
1258 * rendering/RenderThemeMac.mm:
1259 (WebCore::RenderThemeMac::paintSliderTrack):
1262 2012-07-18 Ryosuke Niwa <rniwa@webkit.org>
1264 Unify HTMLCollection and DynamicNodeList
1265 https://bugs.webkit.org/show_bug.cgi?id=91335
1267 Reviewed by Anders Carlsson.
1269 This is the grand unification of HTMLCollection and DynamicNodeList.
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.
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.
1288 This patch completes my effort to share code between HTMLCollection and DynamicNodeList.
1290 * dom/ChildNodeList.cpp:
1291 (WebCore::ChildNodeList::ChildNodeList):
1292 (WebCore): Removed length() and item().
1293 (WebCore::ChildNodeList::nodeMatches):
1294 * dom/ChildNodeList.h:
1296 * dom/ClassNodeList.cpp:
1297 (WebCore::ClassNodeList::ClassNodeList):
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.
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
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):
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):
1402 2012-07-20 Joshua Bell <jsbell@chromium.org>
1404 IndexedDB: Simplify backend interface classes
1405 https://bugs.webkit.org/show_bug.cgi?id=91901
1407 Reviewed by Tony Chang.
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.
1413 No new tests - no functional changes.
1415 * Modules/indexeddb/IDBCursorBackendImpl.cpp:
1416 (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
1417 * Modules/indexeddb/IDBCursorBackendImpl.h:
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:
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):
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:
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):
1473 2012-07-20 Joshua Bell <jsbell@chromium.org>
1475 IndexedDB: "ASSERTION FAILED: !m_requestFinished" hit in IDBRequest::dispatchEvent
1476 https://bugs.webkit.org/show_bug.cgi?id=86911
1478 Reviewed by Tony Chang.
1480 Clean up the IDBRequest/IDBCursor relationship and the IDBRequest lifecycle.
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.
1489 Test: storage/indexeddb/request-continue-abort.html
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().
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:
1512 2012-07-20 Andrew Scherkus <scherkus@chromium.org>
1514 [chromium] Don't display fullscreen button for video elements not containing video
1515 https://bugs.webkit.org/show_bug.cgi?id=91811
1517 Reviewed by Eric Carlson.
1519 Covered by media/media-document-audio-repaint.html
1521 * html/shadow/MediaControlRootElementChromium.cpp:
1522 (WebCore::MediaControlRootElementChromium::reset):
1524 2012-07-20 Dmitry Titov <dimich@chromium.org>
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.
1529 Reviewed by David Levin.
1531 No new tests because of no new behavior and lack of mechanism to monitor used memory.
1533 * bindings/v8/SerializedScriptValue.cpp:
1534 (WebCore::SerializedScriptValue::SerializedScriptValue):
1535 (WebCore::SerializedScriptValue::registerMemoryAllocatedWithCurrentScriptContext):
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.
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).
1547 2012-07-20 David Grogan <dgrogan@chromium.org>
1549 IndexedDB: Include intVersion when converting between WebCore and WebKit IDBMetadata types
1550 https://bugs.webkit.org/show_bug.cgi?id=91414
1552 Reviewed by Adam Barth.
1554 No new tests because no new behavior.
1556 * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1557 (WebCore::IDBDatabaseBackendImpl::metadata):
1558 No behavior change, this just needs a dummy parameter to match the
1561 * Modules/indexeddb/IDBMetadata.h:
1562 (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
1563 (IDBDatabaseMetadata):
1565 2012-07-18 Gustavo Noronha Silva <gustavo.noronha@collabora.com>
1567 [Soup] Unnecessary RefPtr usage and null check
1568 https://bugs.webkit.org/show_bug.cgi?id=91636
1570 Reviewed by Martin Robinson.
1572 Small clean up of code that is not necessary; no change in functionality.
1574 * platform/network/soup/SocketStreamHandleSoup.cpp:
1575 (WebCore::SocketStreamHandle::connected):
1577 2012-07-20 Mark Salisbury <mark.salisbury@hp.com>
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
1582 Reviewed by Joseph Pecoraro.
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.
1589 * platform/graphics/win/FontCacheWin.cpp:
1590 (WebCore::FontCache::getLastResortFallbackFont):
1592 2012-07-20 Stephen White <senorblanco@chromium.org>
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
1598 Reviewed by Adrienne Walker.
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:
1604 Covered by existing tests in css3/filters.
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.
1614 2012-07-20 Stephen White <senorblanco@chromium.org>
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
1620 Reviewed by Adrienne Walker.
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:
1626 Covered by existing tests in css3/filters.
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.
1636 2012-07-19 Andrew Scherkus <scherkus@chromium.org>
1638 [chromium] CSS tweaks to media controls to prevent styles from being overridden
1639 https://bugs.webkit.org/show_bug.cgi?id=91802
1641 Reviewed by Eric Carlson.
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.
1646 In a similar vein, it was also possible to override the font-style attribute for the time
1649 Test: media/controls-styling-strict.html
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):
1657 2012-07-20 Han Shen <shenhan@google.com>
1659 [Chromium] Compilation fails under gcc 4.7
1660 https://bugs.webkit.org/show_bug.cgi?id=90227
1662 Reviewed by Tony Chang.
1664 Disable warnings about c++0x compatibility in gcc newer than 4.6.
1666 * WebCore.gyp/WebCore.gyp:
1668 2012-07-20 Vincent Scheib <scheib@chromium.org>
1670 Unreviewed compile fix, r123247 included unintended changes to Document.cpp.
1672 See http://trac.webkit.org/changeset/123247.
1675 (WebCore::Document::webkitExitPointerLock):
1677 2012-07-20 Ryosuke Niwa <rniwa@webkit.org>
1679 REGRESSION(r122873): 15% regression on Dromaeo/dom-attr
1680 https://bugs.webkit.org/show_bug.cgi?id=91827
1682 Reviewed by Anders Carlsson.
1684 Move shouldInvalidateNodeListCaches from Document.cpp to Node.cpp since it's only called
1685 in Node::invalidateNodeListCachesInAncestors.
1687 Test: PerformanceTests/Dromaeo/dom-attr.html.
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):
1698 2012-07-20 Nico Weber <thakis@chromium.org>
1700 Fix more -Wunused-private-field violations
1701 https://bugs.webkit.org/show_bug.cgi?id=91876
1703 Reviewed by Adam Barth.
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.
1708 * html/FTPDirectoryDocument.cpp:
1709 (FTPDirectoryDocumentParser):
1710 (WebCore::FTPDirectoryDocumentParser::FTPDirectoryDocumentParser):
1711 * html/parser/HTMLTreeBuilder.cpp:
1712 (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
1713 * html/parser/HTMLTreeBuilder.h:
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):
1727 * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1728 (WebCore::CCThreadProxy::CCThreadProxy):
1729 * platform/graphics/chromium/cc/CCThreadProxy.h:
1731 * rendering/svg/RenderSVGTextPath.cpp:
1732 (WebCore::RenderSVGTextPath::RenderSVGTextPath):
1733 * rendering/svg/RenderSVGTextPath.h:
1735 2012-07-20 Adam Klein <adamk@chromium.org>
1737 CodeGeneratorInspector.py is unnecessarily chatty
1738 https://bugs.webkit.org/show_bug.cgi?id=91758
1740 Reviewed by Vsevolod Vlasov.
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
1747 If this print statement is generally useful, it should be
1748 hidden behind a --verbose commandline option, as we do for the binding
1751 * inspector/CodeGeneratorInspector.py:
1752 (SmartOutput.close): Remove print statement.
1754 2012-07-20 Stephen White <senorblanco@chromium.org>
1756 [chromium] Enable GPU-accelerated skia implementation of
1757 feDiffuseLighting, feSpecularLighting.
1758 https://bugs.webkit.org/show_bug.cgi?id=91865
1760 Reviewed by Dirk Schulze.
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.
1766 This will be covered by tests in svg/filters/* when they are
1767 added to the virtual GPU tests.
1770 * platform/graphics/filters/FELighting.h:
1772 * platform/graphics/filters/skia/FELightingSkia.cpp: Added.
1774 (WebCore::FELighting::platformApplySkia):
1776 2012-07-20 Pavel Feldman <pfeldman@chromium.org>
1778 Web Inspector: disable fake workers inspection.
1779 https://bugs.webkit.org/show_bug.cgi?id=91867
1781 Reviewed by Vsevolod Vlasov.
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.
1788 * English.lproj/localizedStrings.js:
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:
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:
1819 * workers/SharedWorker.cpp:
1820 (WebCore::SharedWorker::create):
1821 * workers/Worker.cpp:
1822 (WebCore::Worker::create):
1824 2012-07-20 Sheriff Bot <webkit.review.bot@gmail.com>
1826 Unreviewed, rolling out r123182.
1827 http://trac.webkit.org/changeset/123182
1828 https://bugs.webkit.org/show_bug.cgi?id=91863
1830 Causing ASSERT crashes in tests accessibility/canvas.html and
1831 accessibility/canvas-accessibilitynodeobject.html (Requested
1832 by jernoble on #webkit).
1835 * GNUmakefile.list.am:
1838 * accessibility/AXObjectCache.cpp:
1840 * accessibility/AXObjectCache.h:
1842 * accessibility/AccessibilityARIAGrid.cpp:
1843 (WebCore::AccessibilityARIAGrid::AccessibilityARIAGrid):
1844 (WebCore::AccessibilityARIAGrid::~AccessibilityARIAGrid):
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):
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):
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):
1902 2012-07-20 Christophe Dumez <christophe.dumez@intel.com>
1904 [EFL] Proxy configuration should honor the no_proxy environment variable
1905 https://bugs.webkit.org/show_bug.cgi?id=91747
1907 Reviewed by Kenneth Rohde Christiansen.
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
1915 By default, the proxy is not used for localhost and
1918 No new tests, no behavior change for layout tests.
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.
1935 2012-07-20 Pierre Rossi <pierre.rossi@gmail.com>
1937 ColorChooserClient should expose the element's location
1938 https://bugs.webkit.org/show_bug.cgi?id=91767
1940 Reviewed by Kent Tamura.
1942 The rationale is that the chrome client could have an interest in placing the picker next to
1943 the element for usability reasons.
1945 No new tests as there is not much logic here: Just exposing a geometry information to WebKit.
1947 * html/ColorInputType.cpp:
1948 (WebCore::ColorInputType::elementRectRelativeToWindow):
1950 * html/ColorInputType.h:
1952 * platform/ColorChooserClient.h:
1953 (ColorChooserClient):
1955 2012-07-20 Thiago Marcos P. Santos <thiago.santos@intel.com>
1957 [WK2] WebIntents doesn't build if mutation observers is disabled
1958 https://bugs.webkit.org/show_bug.cgi?id=91839
1960 Reviewed by Kenneth Rohde Christiansen.
1962 WebIntents was depending on a code protected by ENABLE(MUTATION_OBSERVERS).
1963 Now the code is also enabled by ENABLE(WEB_INTENTS).
1965 * bindings/js/JSDictionary.cpp:
1967 * bindings/js/JSDictionary.h:
1969 2012-07-20 Mihnea Ovidenie <mihnea@adobe.com>
1971 [CSSRegions]Assert failure when layout positioned objects in regions
1972 https://bugs.webkit.org/show_bug.cgi?id=90792
1974 Reviewed by Andreas Kling.
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.
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
1984 * rendering/RenderBox.cpp:
1985 (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
1986 (WebCore::RenderBox::computePositionedLogicalWidth):
1987 (WebCore::RenderBox::computePositionedLogicalHeight):
1989 2012-07-20 Stephen Chenney <schenney@chromium.org>
1991 SVG Filter Effect sub-region not applied for some filters
1992 https://bugs.webkit.org/show_bug.cgi?id=89767
1994 Reviewed by Dirk Schulze.
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.
2002 Tests: svg/filters/feDropShadow-subregion.svg
2003 svg/filters/feGaussianBlur-subregion.svg
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.
2017 2012-07-19 Pavel Feldman <pfeldman@chromium.org>
2019 Web Inspector: Status bar icons are misaligned by 1px to the right
2020 https://bugs.webkit.org/show_bug.cgi?id=91757
2022 Reviewed by Vsevolod Vlasov.
2024 * inspector/front-end/inspector.css:
2028 2012-07-20 Andrei Poenaru <poenaru@adobe.com>
2030 Web Inspector: Protocol Extension: add getNamedFlowCollection command
2031 https://bugs.webkit.org/show_bug.cgi?id=91607
2033 Reviewed by Pavel Feldman.
2035 Extended the protocol with "getNamedFlowCollection" command.
2036 This command returns the CSS Named Flows from the document.
2038 Test: inspector/styles/protocol-getNamedFlowCollection-command.html
2040 * dom/WebKitNamedFlowCollection.cpp:
2041 (WebCore::WebKitNamedFlowCollection::namedFlowsNames):
2043 * dom/WebKitNamedFlowCollection.h:
2044 (WebKitNamedFlowCollection):
2045 * inspector/Inspector.json:
2046 * inspector/InspectorCSSAgent.cpp:
2047 (WebCore::InspectorCSSAgent::getNamedFlowCollection):
2049 * inspector/InspectorCSSAgent.h:
2050 (InspectorCSSAgent):
2051 * inspector/InspectorDOMAgent.cpp:
2052 (WebCore::InspectorDOMAgent::assertDocument):
2054 * inspector/InspectorDOMAgent.h:
2055 (InspectorDOMAgent):
2056 * inspector/front-end/CSSStyleModel.js:
2057 (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
2059 2012-07-20 Eugene Klyuchnikov <eustas.big@gmail.com>
2061 Web Inspector: Timeline: forward compatibility for load.
2062 https://bugs.webkit.org/show_bug.cgi?id=91714
2064 Reviewed by Pavel Feldman.
2066 Accept records of unrecognized types and render them as "unknown".
2068 Test: inspector/timeline/timeline-load-incompatible.html
2070 * English.lproj/localizedStrings.js: Added UI string.
2071 * inspector/front-end/TimelinePresentationModel.js:
2072 (WebInspector.TimelinePresentationModel.recordStyle): Add missing record
2074 (WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):
2075 Add some common information for default case.
2077 2012-07-20 MORITA Hajime <morrita@google.com>
2079 Another unreviewed Mac build fix against r123184.
2083 2012-07-20 Mihnea Ovidenie <mihnea@adobe.com>
2085 [CSSRegions]Crash when flowing a region into itself
2086 https://bugs.webkit.org/show_bug.cgi?id=90289
2088 Reviewed by Andreas Kling.
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.
2095 Test: fast/regions/flow-region-into-itself-crash.html
2097 * rendering/RenderRegion.cpp:
2098 (WebCore::RenderRegion::styleDidChange):
2100 2012-07-20 MORITA Hajime <morrita@google.com>
2102 Unreviewed Mac build fix against r123184.
2106 2012-07-17 Kinuko Yasuda <kinuko@chromium.org>
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
2111 Reviewed by Alexey Proskuryakov.
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.
2117 Test: fast/xmlhttprequest/xmlhttprequest-responsetype-set-type.html
2119 * xml/XMLHttpRequest.cpp:
2120 (WebCore::XMLHttpRequest::setResponseType): Stop throwing an exception when non-supported type is given.
2122 2012-07-20 Matt Falkenhagen <falken@chromium.org>
2124 Show or hide <dialog> depending on the open attribute
2125 https://bugs.webkit.org/show_bug.cgi?id=90931
2127 Reviewed by Kent Tamura.
2129 Test: fast/dom/HTMLDialogElement/dialog-open.html
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])):
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.
2138 (WebCore::HTMLDialogElement::isPresentationAttribute): Make openAttr a presentation attribute, to work around bug 91058
2139 * html/HTMLDialogElement.h:
2140 (HTMLDialogElement):
2141 * html/HTMLDialogElement.idl:
2143 2012-07-20 Shinya Kawanaka <shinyak@chromium.org>
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
2148 Reviewed by Hajime Morita.
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
2154 Test: fast/dom/shadow/shadowdom-for-image-with-pseudo-id.html
2156 * html/shadow/ImageInnerElement.cpp:
2157 (WebCore::ImageInnerElement::shadowPseudoId):
2159 * html/shadow/ImageInnerElement.h:
2160 (ImageInnerElement):
2162 2012-07-20 Kent Tamura <tkent@chromium.org>
2164 REGRESSION(r121420): Performance regression of form state saving for pages with multiple forms
2165 https://bugs.webkit.org/show_bug.cgi?id=91804
2167 Reviewed by Hajime Morita.
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.
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.
2178 No new tests. Just a performance improvement.
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.
2191 2012-07-20 Keishi Hattori <keishi@webkit.org>
2193 Fix crash in WebCore::HTMLInputElement::dataList
2194 https://bugs.webkit.org/show_bug.cgi?id=91818
2196 Reviewed by Kent Tamura.
2198 Fix crash that occurs when setting slider appearance on a regular node.
2200 Test: fast/forms/range/slider-appearance-crash.html
2202 * rendering/RenderTheme.cpp:
2203 (WebCore::RenderTheme::paintSliderTicks): Check if node is an input element.
2205 2012-07-20 Kent Tamura <tkent@chromium.org>
2207 [Chromium] Fix an assertion failure in TextFieldDecorationElement::hostInput()
2208 https://bugs.webkit.org/show_bug.cgi?id=91824
2210 Reviewed by Hajime Morita.
2212 No new tests. This code is used only in Chromium browser.
2214 * html/shadow/TextFieldDecorationElement.cpp:
2215 (WebCore::TextFieldDecorationElement::hostInput):
2216 Use shadowHost(), and allow to return 0.
2217 (WebCore::TextFieldDecorationElement::defaultEventHandler):
2220 2012-07-19 Simon Hausmann <simon.hausmann@nokia.com>
2222 [Qt] Compile WebCore without QtWidgets
2223 https://bugs.webkit.org/show_bug.cgi?id=91819
2225 Reviewed by Kenneth Rohde Christiansen.
2227 * WebCore.pri: QT += opengl is not needed for Qt 5, given that QtGui has OpenGL
2228 support built in with the QOpenGL* classes.
2230 2012-07-19 MORITA Hajime <morrita@google.com>
2232 [Refactoring] Replace Node's Document pointer with a TreeScope pointer
2233 https://bugs.webkit.org/show_bug.cgi?id=59816
2235 Reviewed by Ryosuke Niwa.
2237 Before this change, Node::treeScope() fetches the TreeScope object
2238 from ElementRareData. This approach has several shortcomings:
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.
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.
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.
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
2260 With these changes, the Node::document() slowdown is minimized to
2263 No new tests. Covered by existing tests.
2265 * dom/Document.cpp: Took care of connectio betwen TreeScope.
2266 (WebCore::Document::Document):
2267 (WebCore::Document::~Document):
2268 (WebCore::Document::suggestedMIMEType):
2270 (WebCore::Node::treeScope): Now just return m_treeScope, taking care of nullInstance() case.
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):
2278 (WebCore::Node::~Node):
2279 (WebCore::Node::reportMemoryUsage):
2282 (WebCore::Node::inDocument):
2283 (WebCore::Node::isInShadowTree): Rewrote to use InShadowTree flag.
2284 * dom/NodeRareData.h:
2285 (WebCore::NodeRareData::NodeRareData): Eliminated m_treeScope.
2287 * dom/ShadowRoot.cpp:
2288 (WebCore::ShadowRoot::ShadowRoot):
2289 * dom/TreeScope.cpp:
2290 (WebCore::TreeScope::TreeScope):
2292 (WebCore::TreeScope::setParentTreeScope): Added.
2293 (WebCore::TreeScope::isDocumentScope): Added.
2294 (WebCore::TreeScope::nullInstance): Added.
2295 * dom/TreeScope.h: Added m_parentTreeScope.
2297 (WebCore::TreeScope::rootDocument): Added.
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
2307 2012-07-19 David Hyatt <hyatt@apple.com>
2309 SVG not properly respecting max-width.
2310 https://bugs.webkit.org/show_bug.cgi?id=91474
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
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.
2325 Reviewed by Dan Bernstein.
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
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.
2338 * rendering/RenderReplaced.h:
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.
2344 2012-07-19 Dominic Mazzoni <dmazzoni@google.com>
2346 AX: Need AccessibilityObjects for nodes without renderers in canvas subtree
2347 https://bugs.webkit.org/show_bug.cgi?id=87899
2349 Reviewed by Chris Fleizach.
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.
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
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.
2368 Test: accessibility/canvas-accessibilitynodeobject.html
2371 * GNUmakefile.list.am:
2374 * accessibility/AXObjectCache.cpp:
2375 (WebCore::AXObjectCache::get):
2377 (WebCore::createFromNode):
2378 (WebCore::AXObjectCache::getOrCreate):
2379 (WebCore::AXObjectCache::remove):
2380 * accessibility/AXObjectCache.h:
2382 (WebCore::AXObjectCache::get):
2383 (WebCore::AXObjectCache::getOrCreate):
2384 (WebCore::AXObjectCache::remove):
2385 * accessibility/AccessibilityARIAGrid.cpp:
2386 (WebCore::AccessibilityARIAGrid::AccessibilityARIAGrid):
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):
2410 * accessibility/AccessibilityMenuList.h:
2411 (AccessibilityMenuList):
2412 * accessibility/AccessibilityNodeObject.cpp: Added.
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.
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):
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):
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):
2475 2012-07-19 Dan Bernstein <mitz@apple.com>
2477 The ATSUI-based complex text code is unused
2478 https://bugs.webkit.org/show_bug.cgi?id=91816
2480 Reviewed by Sam Weinig.
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.
2507 2012-07-19 Kent Tamura <tkent@chromium.org>
2509 Introduce Node::shadowHost()
2510 https://bugs.webkit.org/show_bug.cgi?id=91814
2512 Reviewed by Hajime Morita.
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.
2518 Replaces one callsite of shadowAncestorNode() with shadowHost().
2523 (WebCore::Node::shadowHost): Added.
2525 (Node): Declare shadowHost(), and add a comment to shadowAncestorNode().
2526 * html/shadow/CalendarPickerElement.cpp:
2527 (WebCore::CalendarPickerElement::hostInput):
2528 Replace shadowAncestorNode() with shaodwHost().
2530 2012-07-19 Kent Tamura <tkent@chromium.org>
2532 Form state restore: Need to identify a form by its content
2533 https://bugs.webkit.org/show_bug.cgi?id=91209
2535 Reviewed by Hajime Morita.
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.
2541 Tests: Added test cases to fast/forms/state-restore-per-form.html.
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.
2549 2012-07-19 Wei James <james.wei@intel.com>
2551 enable Web Audio for chromium android port
2552 https://bugs.webkit.org/show_bug.cgi?id=89428
2554 Reviewed by Kenneth Russell.
2556 * WebCore.gyp/WebCore.gyp:
2557 * platform/audio/FFTFrameStub.cpp:
2558 (WebCore::FFTFrame::doFFT):
2560 2012-07-19 David Hyatt <hyatt@apple.com>
2562 SVG images broken when max-width specified.
2563 https://bugs.webkit.org/show_bug.cgi?id=91474
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.
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.
2575 Reviewed by Dan Bernstein.
2577 Test: svg/as-image/svg-intrinsic-size.html
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.
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.
2590 (WebCore::RenderReplaced::computeIntrinsicRatioInformation):
2591 Changed to remove the code that constrains the returned size, since it is shifting to
2592 computeAspectRatioInformationForRenderBox instead.
2594 (WebCore::RenderReplaced::computeReplacedLogicalWidth):
2595 (WebCore::RenderReplaced::computeReplacedLogicalHeight):
2596 * rendering/RenderReplaced.h:
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.
2602 2012-07-19 Dmitry Titov <dimich@chromium.org>
2604 Unreviewed, reverting http://trac.webkit.org/changeset/123149.
2605 It broke an IDB test on Chromium page cycler.
2607 * bindings/v8/SerializedScriptValue.cpp:
2608 (WebCore::SerializedScriptValue::SerializedScriptValue):
2610 * bindings/v8/SerializedScriptValue.h:
2611 * dom/MessageEvent.cpp:
2612 (WebCore::MessageEvent::MessageEvent):
2613 (WebCore::MessageEvent::initMessageEvent):
2615 2012-07-19 Julien Chaffraix <jchaffraix@webkit.org>
2617 [CSS2.1] Anonymous tables should be inline/block-level based off their parent
2618 https://bugs.webkit.org/show_bug.cgi?id=15365
2620 Reviewed by Abhishek Arya.
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."
2625 Patch based on an earlier change by Kang-Hao (Kenny) Lu <kennyluck@csail.mit.edu>.
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
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.
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.
2643 2012-07-19 Chris Fleizach <cfleizach@apple.com>
2645 WebKit should pass <title> element value as the default description for web views
2646 https://bugs.webkit.org/show_bug.cgi?id=91763
2648 Reviewed by Anders Carlsson.
2650 Update the logic for determining the description for the AXWebArea to include the document's title.
2652 Test: platform/mac/accessibility/document-title-used-for-description.html
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):
2661 2012-07-19 Zeev Lieber <zlieber@chromium.org>
2663 [Chromium] Textures drawn during occlusion are incorrectly re-used when unoccluded.
2664 https://bugs.webkit.org/show_bug.cgi?id=91537
2666 Reviewed by Adrienne Walker.
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
2673 Minor refactoring of CCQuadCuller - extracted interface
2674 (CCQuadSink) and united append() and appendSurface() methods.
2676 Added unit tests to verify this fix; also added test to try
2677 clipping instead of occlusion.
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):
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:
2700 (WebCore::CCLayerImpl::appendQuads):
2702 * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
2703 (WebCore::::unoccludedContentRect):
2704 (WebCore::::unoccludedContributingSurfaceContentRect):
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:
2714 (WebCore::CCQuadCuller::~CCQuadCuller):
2715 (WebCore::CCQuadCuller::hasExternalOcclusion):
2716 * platform/graphics/chromium/cc/CCQuadSink.h:
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:
2736 (WebCore::CCRenderSurface::setHasExternalOcclusion):
2737 (WebCore::CCRenderSurface::hasExternalOcclusion):
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:
2755 * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2756 (WebCore::CCVideoLayerImpl::appendQuads):
2757 * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
2760 2012-07-19 Simon Fraser <simon.fraser@apple.com>
2762 Keep overlap testing on for descendants of an animating element
2763 https://bugs.webkit.org/show_bug.cgi?id=91787
2765 Reviewed by Beth Dakin.
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
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
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.
2782 Test: compositing/layer-creation/animation-overlap-with-children.html
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
2796 (WebCore::RenderLayerCompositor::reasonForCompositing): Improve the logging output.
2798 2012-07-19 No'am Rosenthal <noam.rosenthal@nokia.com>
2800 [Qt] Enable CSS shaders in Qt (software mode)
2801 https://bugs.webkit.org/show_bug.cgi?id=85140
2803 Reviewed by Simon Hausmann.
2805 Added missing files to the Qt build.
2807 No new tests, WebGL is still disabled by default in the bots.
2811 2012-07-19 No'am Rosenthal <noam.rosenthal@nokia.com>
2813 [Qt] Enable CSS shaders in Qt (software mode)
2814 https://bugs.webkit.org/show_bug.cgi?id=85140
2816 Reviewed by Simon Hausmann.
2818 Added missing files to the Qt build.
2820 No new tests, WebGL is still disabled by default in the bots.
2824 2012-07-19 Simon Fraser <simon.fraser@apple.com>
2826 Keep overlap testing on for descendants of an animating element
2827 https://bugs.webkit.org/show_bug.cgi?id=91787
2829 Reviewed by Beth Dakin.
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
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
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.
2846 Test: compositing/layer-creation/animation-overlap-with-children.html
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
2860 (WebCore::RenderLayerCompositor::reasonForCompositing): Improve the logging output.
2862 2012-07-19 No'am Rosenthal <noam.rosenthal@nokia.com>
2864 [Qt] Enable CSS shaders in Qt (software mode)
2865 https://bugs.webkit.org/show_bug.cgi?id=85140
2867 Reviewed by Simon Hausmann.
2869 Added missing files to the Qt build.
2871 No new tests, WebGL is still disabled by default in the bots.
2875 2012-07-17 Dmitry Titov <dimich@chromium.org>
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.
2880 Reviewed by Dave Levin.
2882 No new tests because of no new behavior and lack of mechanism to monitor used memory.
2884 * bindings/v8/SerializedScriptValue.cpp:
2885 (WebCore::SerializedScriptValue::SerializedScriptValue):
2886 (WebCore::SerializedScriptValue::registerMemoryAllocatedWithCurrentScriptContext):
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.
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).
2898 2012-07-19 Dan Bernstein <mitz@apple.com>
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
2903 Reviewed by Anders Carlsson.
2905 Test: fast/writing-mode/flipped-blocks-text-map-local-to-container.html
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.
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.
2919 2012-07-19 Erik Arvidsson <arv@chromium.org>
2921 Window top should not be replaceable
2922 https://bugs.webkit.org/show_bug.cgi?id=91755
2924 Reviewed by Adam Barth.
2926 Window top is readonly and unforgable and should not be replaceable.
2928 http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#the-window-object
2930 This change brings JSC inline with all other browsers.
2932 No new tests. Modified existing tests.
2934 * page/DOMWindow.idl:
2936 2012-07-19 Max Feil <mfeil@rim.com>
2938 [BlackBerry] Only maintain the hole punch rect while html5 video is being renderered
2939 https://bugs.webkit.org/show_bug.cgi?id=91689
2941 Reviewed by Antonio Gomes.
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.
2947 I am not adding any new tests because the difficulty of testing
2948 for this case outweighs the benefit.
2950 * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
2951 (WebCore::MediaPlayerPrivate::updateStates):
2953 2012-07-19 Bem Jones-Bey <bjonesbe@adobe.com>
2955 [CSS Exclusions] - Code cleanup: make shape parsing use isComma() instead of manual checks
2956 https://bugs.webkit.org/show_bug.cgi?id=91760
2958 Reviewed by Eric Seidel.
2960 Remove code duplication by making the rectangle, circle, and ellipse
2961 methods use isComma() to detect a comma.
2963 No new tests needed: no new functionality added.
2965 * css/CSSParser.cpp:
2966 (WebCore::CSSParser::parseExclusionShapeRectangle):
2967 (WebCore::CSSParser::parseExclusionShapeCircle):
2968 (WebCore::CSSParser::parseExclusionShapeEllipse):
2970 2012-07-19 Raymond Toy <rtoy@google.com>
2972 Limit maximum delay of DelayNode.
2973 https://bugs.webkit.org/show_bug.cgi?id=91675
2975 Reviewed by Kenneth Russell.
2977 Clip the maximum delay of a DelayNode to a reasonable maximum.
2979 Test: webaudio/delaynode-maxdelaylimit.html
2981 * Modules/webaudio/DelayNode.cpp:
2982 (WebCore): Add maximumAllowedDelayTime.
2983 (WebCore::DelayNode::DelayNode): Clip max delay.
2985 2012-07-14 Robert Hogan <robert@webkit.org>
2987 CSS 2.1 failure: text-indent-intrinsic-003 fails
2988 https://bugs.webkit.org/show_bug.cgi?id=80576
2990 Reviewed by Eric Seidel.
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.
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
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.
3005 2012-07-19 Douglas Stockwell <dstockwell@google.com>
3007 Crash in WebCore::StyleResolver::collectMatchingRulesForList
3008 https://bugs.webkit.org/show_bug.cgi?id=90803
3010 Reviewed by Andreas Kling.
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.
3018 Test: fast/css/xml-stylesheet-removed.xhtml
3020 * dom/ProcessingInstruction.cpp:
3021 (WebCore::ProcessingInstruction::removedFrom): Mirror the logic from
3022 StyleElement -- always update the style resolver.
3024 2012-07-19 Bem Jones-Bey <bjonesbe@adobe.com>
3026 Shape-inside / shape-outside should support percent-based measurements
3027 https://bugs.webkit.org/show_bug.cgi?id=90311
3029 Reviewed by Andreas Kling.
3031 Update the CSS Parser to accept percentage length values for exclusion
3034 Testing added to LayoutTests/fast/exclusions/parsing-wrap-shape-lengths.html
3036 * css/CSSParser.cpp:
3037 (WebCore::CSSParser::parseExclusionShapeRectangle):
3038 (WebCore::CSSParser::parseExclusionShapeCircle):
3039 (WebCore::CSSParser::parseExclusionShapeEllipse):
3040 (WebCore::CSSParser::parseExclusionShapePolygon):
3042 2012-07-19 Tony Chang <tony@chromium.org>
3044 Unreviewed, rolling out r123117.
3045 http://trac.webkit.org/changeset/123117
3046 https://bugs.webkit.org/show_bug.cgi?id=91667
3048 Breaks chromium-win compile.
3050 * WebCore.gyp/WebCore.gyp:
3051 * WebCore.gyp/scripts/rule_bison.py:
3052 * bindings/scripts/preprocessor.pm:
3053 (applyPreprocessor):
3054 * make-hash-tools.pl:
3056 2012-07-19 James Simonsen <simonjam@chromium.org>
3058 Regression(120096): Protect the element used by ImageLoader until the end of notifyFinished().
3059 https://bugs.webkit.org/show_bug.cgi?id=90471
3061 Reviewed by Brady Eidson.
3063 Test: http/tests/security/video-poster-cross-origin-crash.html
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.
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:
3075 2012-07-19 Scott Graham <scottmg@chromium.org>
3077 Use native (non-cygwin) binaries for perl, gperf, and bison in Chromium
3078 https://bugs.webkit.org/show_bug.cgi?id=91667
3080 Reviewed by Kentaro Hara.
3082 Using native tools instead of cygwin version improves build time
3083 performance by roughly 50% (on top of previous cl-instead-of-gcc
3088 * WebCore.gyp/WebCore.gyp:
3089 * WebCore.gyp/scripts/rule_bison.py:
3090 * bindings/scripts/preprocessor.pm:
3091 (applyPreprocessor):
3092 * make-hash-tools.pl:
3094 2012-07-19 Andrey Kosyakov <caseq@chromium.org>
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
3099 Reviewed by Pavel Feldman.
3101 - remove early bail-outs in refreshMainThreadBars; let it run to clear bars for the non-existent / invisible events;
3103 * inspector/front-end/TimelinePanel.js:
3104 (WebInspector.TimelinePanel.prototype._refreshMainThreadBars):
3106 2012-07-19 Joshua Bell <jsbell@chromium.org>
3108 IndexedDB: Throw native TypeErrors per spec
3109 https://bugs.webkit.org/show_bug.cgi?id=91679
3111 Reviewed by Kentaro Hara.
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.
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
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.
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.
3148 2012-07-19 Joshua Bell <jsbell@chromium.org>
3150 Roll out r121610 and r122487 which may have been causing flaky crashes
3151 https://bugs.webkit.org/show_bug.cgi?id=91637
3153 Reviewed by Kentaro Hara.
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.
3160 * bindings/v8/NPObjectWrapper.cpp: Added.
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.
3185 * bindings/v8/NPV8Object.cpp:
3186 (WebCore::freeV8NPObject):
3188 (_NPN_InvokeDefault):
3189 (_NPN_EvaluateHelper):
3192 (_NPN_RemoveProperty):
3197 * bindings/v8/NPV8Object.h:
3199 * bindings/v8/ScriptController.cpp:
3200 (WebCore::ScriptController::ScriptController):
3201 (WebCore::ScriptController::clearScriptObjects):
3202 (WebCore::ScriptController::windowScriptNPObject):
3203 * bindings/v8/ScriptController.h:
3206 2012-07-19 Andrey Kosyakov <caseq@chromium.org>
3208 Web Inspector: minimize number of properties on WebInspector.TimelinePresentationModel.Record
3209 https://bugs.webkit.org/show_bug.cgi?id=91744
3211 Reviewed by Pavel Feldman.
3213 - replace most properties on TimelinePresentationModel.Record with getters;
3215 This reduces the amount of memory we use for timeline presentation model records almost by 2x.
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):
3234 2012-07-19 Dongwoo Im <dw.im@samsung.com>
3236 [EFL] Fix build break when WEB_AUDIO is enabled.
3237 https://bugs.webkit.org/show_bug.cgi?id=91735
3239 Unreviewed build fix.
3241 New files are added for the Web Audio fearure.
3242 These files should be included into the CMakeLists.txt file.
3244 * CMakeLists.txt: Add the newly created files into the CMakeLists.txt
3246 2012-07-19 Simon Hausmann <simon.hausmann@nokia.com>
3248 [Qt] Remove support for Qt versions before 4.8.0
3249 https://bugs.webkit.org/show_bug.cgi?id=91730
3251 Reviewed by Kenneth Rohde Christiansen.
3253 Remove Qt version check #ifdefs for Qt versions before 4.8.0.
3255 * platform/graphics/qt/GraphicsContextQt.cpp:
3256 (WebCore::GraphicsContextPlatformPrivate::clipBoundingRect):
3257 * platform/qt/ThirdPartyCookiesQt.cpp:
3258 (WebCore::urlsShareSameDomain):
3259 (WebCore::thirdPartyCookiePolicyPermits):
3261 2012-07-19 Peter Rybin <peter.rybin@gmail.com>
3263 Web Inspector: CodeGeneratorInspector.py: fix output write logic to support incremental build
3264 https://bugs.webkit.org/show_bug.cgi?id=90642
3266 Reviewed by Yury Semikhatsky.
3268 A small intermediate writer is added. It handles comparing old and new source before actual writing.
3270 * inspector/CodeGeneratorInspector.py:
3273 (SmartOutput.__init__):
3274 (SmartOutput.write):
3275 (SmartOutput.close):
3277 2012-07-19 Mario Sanchez Prada <msanchez@igalia.com>
3279 [GTK] MHTML files not being loaded due to reported mime type not supported
3280 https://bugs.webkit.org/show_bug.cgi?id=89978
3282 Reviewed by Carlos Garcia Campos.
3284 Make 'message/rfc822' a supported MIME type for MHTML files in GTK.
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.
3294 2012-07-19 Jan Keromnes <janx@linux.com>
3296 Web Inspector: Factor ExtensionView into separate file
3297 https://bugs.webkit.org/show_bug.cgi?id=91699
3299 Reviewed by Vsevolod Vlasov.
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.
3304 Current test coverage is enough since no behavior was changed.
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:
3313 2012-07-19 Shinya Kawanaka <shinyak@chromium.org>
3315 [Refactoring] Use userAgentShadowRoot() to take user agent shadow root.
3316 https://bugs.webkit.org/show_bug.cgi?id=91716
3318 Reviewed by Hajime Morita.
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.
3324 No new tests, simple refactoring.
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):
3357 2012-07-19 Keishi Hattori <keishi@webkit.org>
3359 Redraw slider tick marks when datalist changes.
3360 https://bugs.webkit.org/show_bug.cgi?id=89544
3362 Reviewed by Kent Tamura.
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.
3368 Test: fast/forms/datalist/update-range-with-datalist.html
3370 * html/HTMLDataListElement.cpp:
3371 (WebCore::HTMLDataListElement::optionElementChildrenChanged): Called when a child option element's value might have changed.
3373 * html/HTMLDataListElement.h:
3374 (HTMLDataListElement):
3375 * html/HTMLInputElement.cpp:
3376 (ListAttributeTargetObserver): Inherits IdTargetObserver.
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:
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.
3393 (WebCore::HTMLOptionElement::ownerDataListElement): The datalist that the option element is inside of.
3394 * html/HTMLOptionElement.h:
3396 (HTMLOptionElement):
3397 * html/InputType.cpp:
3399 (WebCore::InputType::listAttributeTargetChanged):
3402 * html/RangeInputType.cpp:
3404 (WebCore::RangeInputType::listAttributeTargetChanged):
3405 * html/RangeInputType.h:
3408 2012-07-19 Dongwoo Im <dw.im@samsung.com>
3410 CodeGeneratorV8.pm : @enabledAtRuntime is not used in GenerateHeader.
3411 https://bugs.webkit.org/show_bug.cgi?id=91715
3413 Reviewed by Kentaro Hara.
3415 @enabledAtRuntime is not used in GenerateHeader.
3416 We can remove it from GenerateHeader.
3418 No new tests as this has no functional changes.
3420 * bindings/scripts/CodeGeneratorV8.pm: Remove @enabledAtRuntime from GenerateHeader.
3423 2012-07-19 Abhishek Arya <inferno@chromium.org>
3425 Crash in FontCache::releaseFontData.
3426 https://bugs.webkit.org/show_bug.cgi?id=91710
3428 Reviewed by Tim Horton.
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.
3434 * css/StyleResolver.cpp:
3435 (WebCore::StyleResolver::collectMatchingRulesForList):
3437 2012-07-18 Ryosuke Niwa <rniwa@webkit.org>
3439 Another build fix after r123065. Don't list deleted file in gypi.
3443 2012-07-18 Keishi Hattori <keishi@webkit.org>
3445 Implement painting slider tick marks
3446 https://bugs.webkit.org/show_bug.cgi?id=87844
3448 Reviewed by Kent Tamura.
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).
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
3458 * html/HTMLInputElement.cpp:
3459 (WebCore::HTMLInputElement::sliderThumbElement):
3461 * html/HTMLInputElement.h:
3464 (WebCore::InputType::sliderThumbElement):
3465 * html/RangeInputType.cpp:
3466 (WebCore::RangeInputType::typeMismatchFor): We need HTMLInputElement::isValidValue("foo") to return false.
3468 (WebCore::RangeInputType::sliderThumbElement):
3469 * html/RangeInputType.h:
3471 * html/shadow/SliderThumbElement.cpp:
3472 (WebCore::RenderSliderContainer::layout): Slider height needs to be increased for the tick marks.
3473 * platform/efl/RenderThemeEfl.cpp:
3475 (WebCore::RenderThemeEfl::sliderTickSize):
3476 (WebCore::RenderThemeEfl::sliderTickOffsetFromTrackCenter):
3477 * platform/efl/RenderThemeEfl.h:
3479 * platform/qt/RenderThemeQt.cpp:
3480 (WebCore::RenderThemeQt::sliderTickSize):
3482 (WebCore::RenderThemeQt::sliderTickOffsetFromTrackCenter):
3483 * platform/qt/RenderThemeQt.h:
3485 * rendering/RenderTheme.cpp:
3487 (WebCore::RenderTheme::paintSliderTicks):
3488 * rendering/RenderTheme.h:
3490 * rendering/RenderThemeChromiumCommon.cpp:
3491 (WebCore::RenderThemeChromiumCommon::supportsDataListUI):
3492 * rendering/RenderThemeChromiumLinux.cpp:
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:
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:
3510 * rendering/RenderThemeMac.mm:
3511 (WebCore::RenderThemeMac::paintSliderTrack):
3513 (WebCore::RenderThemeMac::sliderTickSize):
3514 (WebCore::RenderThemeMac::sliderTickOffsetFromTrackCenter):
3516 2012-07-18 Shinya Kawanaka <shinyak@chromium.org>
3518 Element wants to have userAgentShadowRoot()
3519 https://bugs.webkit.org/show_bug.cgi?id=91564
3521 Reviewed by Eric Carlson.
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.
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.
3530 We will introduce userAgentShadowRoot to the other elements (e.g. HTMLInputElement) after this patch.
3532 No new tests, simple refactoring.
3535 (WebCore::Element::userAgentShadowRoot):
3539 * html/HTMLMediaElement.cpp:
3540 (WebCore::HTMLMediaElement::createShadowSubtree):
3541 (WebCore::HTMLMediaElement::willAddAuthorShadowRoot):
3542 (WebCore::HTMLMediaElement::mediaControls):
3543 (WebCore::HTMLMediaElement::hasMediaControls):
3544 (WebCore::HTMLMediaElement::createMediaControls):
3546 2012-07-18 Gyuyoung Kim <gyuyoung.kim@samsung.com>
3548 [CMAKE] Remove duplicated #ifdef guard in CMakeLists.txt
3549 https://bugs.webkit.org/show_bug.cgi?id=91575
3551 Reviewed by Dirk Pranke.
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.
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.
3558 No new tests. This patch isn't for functionality.
3561 * PlatformBlackBerry.cmake: Change SVG_IDL_FILES with WebCore_SVG_IDL_FILES.
3563 2012-07-18 Hironori Bono <hbono@chromium.org>
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
3568 Reviewed by Hajime Morita.
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>.
3575 Tests: scrollbars/rtl/div-horizontal.html
3576 scrollbars/rtl/div-vertical.html
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.
3585 2012-07-18 Kent Tamura <tkent@chromium.org>
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
3590 Reviewed by Hajime Morita.
3592 Before this change, the internal representation of form control states
3595 {name, type, formKey} -> [FormControlState, FormControlState, ...]
3597 Also, the serialized representation was:
3599 [name, type, formKey, FormControlState,
3600 name, type, formKey, formControlState,
3603 This changes these represenations. The internal representation is
3605 A map owned by FormController:
3606 formKey -> SavedFormState
3607 SavedFormState owns a map like:
3608 {name, type} -> [FormControlState, FormControlState, ...]
3610 The serialized representation is:
3613 name, type, FormControlState,
3614 name, type, FormControlState,
3615 name, type, FormControlState,
3618 name, type, FormControlState,
3619 name, type, FormControlState,
3620 name, type, FormControlState,
3623 The serialized representation would be smaller in many cases because
3624 each of items doesn't have formKey.
3626 Tests: Covered by fast/forms/state-restore-broken-state.html,
3627 state-restore-per-form.html, and state-restore-skip-stateless.html.
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==):
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.
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(),
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.
3669 2012-07-18 Antoine Labour <piman@chromium.org>
3671 [chromium] Introduce CCResourceProvider, replacing TextureAllocator and hiding textures from clients to allow transport
3672 https://bugs.webkit.org/show_bug.cgi?id=91044
3674 Reviewed by Adrienne Walker.
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
3682 - Replace texture ids by resource ids in DrawQuads (allowing them to be
3684 - Replace TextureAllocator uses by the CCResourceProvider class.
3685 - Upload of data is done through the CCResourceProvider instead of
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
3692 - Merge all the LayerTextureSubImage instances (one per layer), into a
3693 single instance on the CCResourceProvider.
3695 Added CCResourceProviderTest, the refactoring is covered by existing tests.
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:
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:
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:
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):
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:
3766 (LayerTextureSubImage):
3767 * platform/graphics/chromium/LayerTextureUpdater.h:
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):
3779 * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
3780 (WebCore::ScrollbarLayerChromium::pushPropertiesTo):
3781 (WebCore::ScrollbarLayerChromium::createTextureUpdaterIfNeeded):
3782 * platform/graphics/chromium/TextureCopier.cpp:
3783 (WebCore::AcceleratedTextureCopier::copyTexture):
3785 (WebCore::AcceleratedTextureCopier::flush):
3786 * platform/graphics/chromium/TextureCopier.h:
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:
3797 (WebCore::TextureManager::create):
3801 * platform/graphics/chromium/TextureUploader.h:
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:
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:
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:
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):
3846 * platform/graphics/chromium/cc/CCPrioritizedTexture.h:
3848 (CCPrioritizedTexture):
3849 (WebCore::CCPrioritizedTexture::Backing::resourceId):
3850 (WebCore::CCPrioritizedTexture::Backing::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:
3875 * platform/graphics/chromium/cc/CCResourceProvider.cpp: Added.
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.
3897 (CCResourceProvider):
3898 (WebCore::CCResourceProvider::maxTextureSize):
3899 (WebCore::CCResourceProvider::numResources):
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):
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):
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):
3929 * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
3930 (WebCore::CCTextureLayerImpl::CCTextureLayerImpl):
3931 (WebCore::CCTextureLayerImpl::willDraw):
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:
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):
3951 (WebCore::CCTiledLayerImpl::contentsResourceId):
3952 (WebCore::CCTiledLayerImpl::hasTextureIdForTileAt):
3953 (WebCore::CCTiledLayerImpl::appendQuads):
3954 (WebCore::CCTiledLayerImpl::pushTileProperties):
3955 * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
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:
3974 (WebCore::CCVideoLayerImpl::FramePlane::FramePlane):
3976 2012-07-18 Hayato Ito <hayato@chromium.org>
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
3981 Reviewed by Dimitri Glazkov.
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.
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
3989 Test: fast/dom/shadow/events-stopped-at-shadow-boundary.html
3991 * dom/EventDispatcher.cpp:
3992 (WebCore::EventDispatcher::ensureEventAncestors):
3993 (WebCore::inTheSameScope):
3995 (WebCore::EventDispatcher::determineDispatchBehavior):
3996 * dom/EventDispatcher.h:
3999 2012-07-18 Julien Chaffraix <jchaffraix@webkit.org>
4001 Crash in RenderTableSection::addCell.
4002 http://webkit.org/b/89496
4004 Reviewed by Abhishek Arya.
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).
4012 The fix is to force a synchronous section recalc.
4014 Test: fast/table/split-table-no-section-update-crash.html
4016 * rendering/RenderBox.cpp:
4017 (WebCore::markBoxForRelayoutAfterSplit):
4018 Changed to call forceSectionsRecalc ie force a section recalc.
4020 * rendering/RenderTable.cpp:
4021 (WebCore::RenderTable::recalcSections):
4022 Added missing ASSERT for unneeded calls.
4024 * rendering/RenderTable.h:
4025 (WebCore::RenderTable::forceSectionsRecalc):
4026 Added this helper function.
4028 2012-07-18 Julien Chaffraix <jchaffraix@webkit.org>
4030 Avoid calling GraphicsContext drawing primitives for 0px borders
4031 https://bugs.webkit.org/show_bug.cgi?id=90039
4033 Reviewed by Eric Seidel.
4035 The current code would happily call GraphicsC