1 2012-03-08 Dan Bernstein <mitz@apple.com>
3 REGRESSION (r109964): Assertion failure (!isUndefined()) in Length::getIntValue() when a Dashboard region is specified without offsets
4 https://bugs.webkit.org/show_bug.cgi?id=80614
6 Reviewed by Beth Dakin.
8 Test: fast/css/dashboard-regions-undefined-length-assertion.html
10 * css/CSSStyleSelector.cpp:
11 (WebCore::CSSStyleSelector::collectMatchingRulesForList): Reverted to setting zero lengths,
12 rather than Undefined ones, in the RenderStyle when offsets are not given.
14 2012-03-08 Mikkel Kruse Johnsen <mikkel@linet.dk>
16 WebKitGtk+ fails to build on win32 against GTK3
17 https://bugs.webkit.org/show_bug.cgi?id=63919
19 Reviewed by Gustavo Noronha Silva.
21 * plugins/gtk/PluginViewGtk.cpp: Don't use gtk_socket_new with GTK3 on Win32
22 (WebCore::PluginView::platformStart):
24 2012-03-08 Jason Liu <jason.liu@torchmobile.com.cn>
26 [BlackBerry]New feature: support about:cookie for internal build.
27 https://bugs.webkit.org/show_bug.cgi?id=80367
29 Reviewed by Antonio Gomes.
33 * platform/blackberry/CookieManager.cpp:
34 (WebCore::CookieManager::generateHtmlFragmentForCookies):
36 * platform/blackberry/CookieManager.h:
37 * platform/network/blackberry/NetworkJob.cpp:
38 (WebCore::NetworkJob::handleAbout):
40 2012-03-08 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
42 Make elements with attributes smaller by eliminating the m_element back pointer in NamedNodeMap
43 https://bugs.webkit.org/show_bug.cgi?id=75069
45 Reviewed by Ryosuke Niwa.
47 NamedNodeMap is an exposed DOM representation of an element's attribute storage. As part of
48 its implementation it keeps a pointer to its associated Element plus all the attribute
51 This commit separate the two things: NamedNodeMap is now a wrapper to Element, containing
52 only the pointer, and the attribute storage is now owned by Element directly. Since usage
53 of NamedNodeMap is not very common, it can be stored in ElementRareData. As a result, most
54 elements with attributes now don't need to allocate memory for that extra pointer in
57 One consequence of this implementation is that now we explicitly don't support
58 DocumentType.notations and DocumentType.entities. They weren't supported before, a
59 NamedNodeMap was never created for those attributes -- and some NamedNodeMap functions
60 wouldn't work correctly without an associated Element.
62 NamedNodeMap itself was cleaned up, as well as unnecessary references to it removed in the
65 No new tests and should not change results for existing tests.
70 (DocumentType): Point out that we don't support does attributes yet.
72 (WebCore::Element::~Element): Detaching the NamedNodeMap is no longer necessary because it
73 will be destroyed. We still detach the potential Attrs inside our Attributes by using
75 (WebCore::Element::attributes): Looks in ElementRareData now. Note we ensure the creation
76 of the attribute storage.
78 (WebCore::Element::getAttribute):
79 (WebCore::Element::setAttributeInternal):
80 (WebCore::Element::parserSetAttributes):
81 (WebCore::Element::hasAttributes):
82 (WebCore::Element::createAttributeData):
83 (WebCore::Element::insertedIntoDocument):
84 (WebCore::Element::removedFromDocument):
85 (WebCore::Element::getURLAttribute):
86 (WebCore::Element::getNonEmptyURLAttribute):
87 (WebCore::Element::hasNamedNodeMap): Helper function for Node::dumpStatistics().
90 (WebCore::Element::attributeData):
91 (WebCore::Element::ensureAttributeData):
92 (WebCore::Element::fastHasAttribute):
93 (WebCore::Element::fastGetAttribute):
94 (WebCore::Element::hasAttributesWithoutUpdate):
95 (WebCore::Element::idForStyleResolution):
96 (WebCore::Element::attributeCount):
97 (WebCore::Element::attributeItem):
98 (WebCore::Element::getAttributeItem):
99 * dom/ElementAttributeData.h:
100 (WebCore::ElementAttributeData::create):
101 (ElementAttributeData):
102 * dom/ElementRareData.h:
104 * dom/NamedNodeMap.cpp: Rewriting now that m_attributeData is not a member, using m_element
105 methods when possible.
106 (WebCore::NamedNodeMap::ref):
107 (WebCore::NamedNodeMap::deref):
108 (WebCore::NamedNodeMap::getNamedItem):
109 (WebCore::NamedNodeMap::getNamedItemNS):
110 (WebCore::NamedNodeMap::removeNamedItem):
111 (WebCore::NamedNodeMap::removeNamedItemNS):
112 (WebCore::NamedNodeMap::setNamedItem):
113 (WebCore::NamedNodeMap::item):
114 (WebCore::NamedNodeMap::length):
115 * dom/NamedNodeMap.h:
117 (WebCore::NamedNodeMap::create):
119 (WebCore::NamedNodeMap::NamedNodeMap): Instead of asserting m_element in every function, we
120 now assert only in the constructor.
122 (WebCore::Node::dumpStatistics): Add a counter for elements with rare data, this allows us
123 compare more clearly the impact of moving NamedNodeMap there.
124 (WebCore::Node::isEqualNode): Remove use of mapsEquivalent(). It was dead code, because
125 both entities and notations were always NULL.
126 (WebCore::Node::compareDocumentPosition):
127 * inspector/DOMPatchSupport.h:
129 * svg/SVGElement.cpp:
130 (WebCore::SVGElement::attributeChanged):
132 2012-03-08 Robin Cao <robin.cao@torchmobile.com.cn>
134 [BlackBerry] Upstream WebGL related files from platform/graphics
135 https://bugs.webkit.org/show_bug.cgi?id=79876
137 Reviewed by Rob Buis.
139 Initial upstream, no new tests.
141 * platform/graphics/blackberry/DrawingBufferBlackBerry.cpp: Added.
143 (DrawingBufferInternal):
144 (WebCore::generateColorTexture):
145 (WebCore::DrawingBuffer::DrawingBuffer):
146 (WebCore::DrawingBuffer::~DrawingBuffer):
147 (WebCore::DrawingBuffer::publishToPlatformLayer):
148 (WebCore::DrawingBuffer::reset):
149 (WebCore::DrawingBuffer::platformLayer):
150 * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp: Added.
152 (WebCore::GraphicsContext3D::create):
153 (WebCore::GraphicsContext3D::GraphicsContext3D):
154 (WebCore::GraphicsContext3D::~GraphicsContext3D):
155 (WebCore::GraphicsContext3D::paintsIntoCanvasBuffer):
156 (WebCore::GraphicsContext3D::makeContextCurrent):
157 (WebCore::GraphicsContext3D::isGLES2Compliant):
158 (WebCore::GraphicsContext3D::isGLES2NPOTStrict):
159 (WebCore::GraphicsContext3D::isErrorGeneratedOnOutOfBoundsAccesses):
160 (WebCore::GraphicsContext3D::platformTexture):
161 (WebCore::GraphicsContext3D::platformLayer):
162 (WebCore::GraphicsContext3D::paintToCanvas):
163 (WebCore::GraphicsContext3D::setContextLostCallback):
164 * platform/graphics/blackberry/WebGLLayerWebKitThread.cpp: Added.
166 (WebCore::WebGLLayerWebKitThread::WebGLLayerWebKitThread):
167 (WebCore::WebGLLayerWebKitThread::~WebGLLayerWebKitThread):
168 (WebCore::WebGLLayerWebKitThread::setNeedsDisplay):
169 (WebCore::WebGLLayerWebKitThread::updateTextureContentsIfNeeded):
170 * platform/graphics/blackberry/WebGLLayerWebKitThread.h: Added.
172 (WebGLLayerWebKitThread):
173 (WebCore::WebGLLayerWebKitThread::create):
174 (WebCore::WebGLLayerWebKitThread::setWebGLContext):
176 2012-03-08 Yong Li <yoli@rim.com>
178 [BlackBerry] LayerRender should turn off stencil/scissor after drawing layers
179 https://bugs.webkit.org/show_bug.cgi?id=80598
181 Reviewed by Rob Buis.
183 Turn off stencil/scissor after using them to avoid affecting later GL operation
186 * platform/graphics/blackberry/LayerRenderer.cpp:
187 (WebCore::LayerRenderer::drawLayers):
189 2012-03-08 Simon Hausmann <simon.hausmann@nokia.com>
191 [Qt] Windows build fix.
193 Reviewed by Tor Arne Vestbø.
195 * DerivedSources.pri: Replace commandline that is too long for Windows with
196 separate lines to be executed in the Makefile for the IDL preprocessing.
198 2012-03-08 Ilya Tikhonovsky <loislo@chromium.org>
200 Web Inspector: The function had to return a hash but it returned just address.
201 https://bugs.webkit.org/show_bug.cgi?id=80591
203 Reviewed by Yury Semikhatsky.
205 * bindings/v8/RetainedDOMInfo.cpp:
206 (WebCore::RetainedDOMInfo::GetHash):
208 2012-03-08 Ilya Tikhonovsky <loislo@chromium.org>
210 Unreviewed single line fix. The function had to return a hash but it returned just address.
212 * bindings/v8/V8GCController.cpp:
213 (WebCore::UnspecifiedGroup::GetHash):
215 2012-03-08 Shinya Kawanaka <shinyak@chromium.org>
217 <shadow> should be rendered correctly.
218 https://bugs.webkit.org/show_bug.cgi?id=78596
220 Reviewed by Hajime Morita.
222 This patch supports <shadow> element rendering.
224 When attaching <shadow> element, if it is in the oldest shadow tree, it runs a part of
225 distribution algorithm. If it is in non-oldest shadow tree, it runs tree a part of
226 tree composition algorithm to assign a older shadow root. In this patch, InsertionPonit
227 try to treat the distributed host children and the assigned shadow children similarly.
229 NodeRenderingContext supports rendering <shadow> element. Since the assigned shadow children
230 are treated like distributed host children, that change is to consider non-youngest shadow
233 Tests: fast/dom/shadow/shadow-element-rendering-multiple.html
234 fast/dom/shadow/shadow-element-rendering-single.html
236 * dom/NodeRenderingContext.cpp:
238 (WebCore::NodeRenderingContext::NodeRenderingContext):
239 Does not ignore non-youngest shadow tree.
240 * dom/ShadowRoot.cpp:
241 (WebCore::ShadowRoot::ShadowRoot):
244 (WebCore::ShadowRoot::assignedTo):
246 (WebCore::ShadowRoot::setAssignedTo):
247 (WebCore::ShadowRoot::isUsedForRendering):
248 Returns true if ShadowRoot is youngest or assigned to some InsertionPoint.
249 (WebCore::toShadowRoot):
250 * dom/ShadowTree.cpp:
251 (WebCore::ShadowTree::insertionPointFor):
252 Returns InsertionPoint to which node is distributed.
255 * html/shadow/HTMLContentElement.h:
256 (WebCore::HTMLContentElement::doesSelectFromHostChildren):
257 (HTMLContentElement):
258 * html/shadow/HTMLShadowElement.cpp:
259 (WebCore::HTMLShadowElement::HTMLShadowElement):
260 (WebCore::HTMLShadowElement::select):
261 (WebCore::HTMLShadowElement::doesSelectFromHostChildren):
263 * html/shadow/HTMLShadowElement.h:
265 * html/shadow/InsertionPoint.cpp:
266 (WebCore::InsertionPoint::attach):
267 (WebCore::InsertionPoint::detach):
268 (WebCore::InsertionPoint::assignedFrom):
270 (WebCore::InsertionPoint::assignShadowRoot):
271 (WebCore::InsertionPoint::clearAssignment):
272 * html/shadow/InsertionPoint.h:
275 2012-03-06 Hans Wennborg <hans@chromium.org>
277 Speech JavaScript API: SpeechRecognitionAlternative, Result and ResultList
278 https://bugs.webkit.org/show_bug.cgi?id=80424
280 Reviewed by Adam Barth.
282 Implement the SpeechRecognitionAlternative,
283 SpeechRecognitionResult and SpeechRecognitionResultList.
284 (Spec: http://speech-javascript-api-spec.googlecode.com/git/speechapi.html)
286 No new tests because these interfaces don't have constructors.
287 They will be tested as more of the API gets implemented.
289 * Modules/speech/SpeechRecognitionAlternative.cpp: Added.
291 (WebCore::SpeechRecognitionAlternative::create):
292 (WebCore::SpeechRecognitionAlternative::SpeechRecognitionAlternative):
293 * Modules/speech/SpeechRecognitionAlternative.h: Added.
295 (SpeechRecognitionAlternative):
296 (WebCore::SpeechRecognitionAlternative::transcript):
297 (WebCore::SpeechRecognitionAlternative::confidence):
298 * Modules/speech/SpeechRecognitionAlternative.idl: Added.
299 * Modules/speech/SpeechRecognitionResult.cpp: Added.
301 (WebCore::SpeechRecognitionResult::create):
302 (WebCore::SpeechRecognitionResult::item):
303 (WebCore::SpeechRecognitionResult::SpeechRecognitionResult):
304 * Modules/speech/SpeechRecognitionResult.h: Added.
306 (SpeechRecognitionResult):
307 (WebCore::SpeechRecognitionResult::length):
308 (WebCore::SpeechRecognitionResult::final):
309 * Modules/speech/SpeechRecognitionResult.idl: Added.
310 * Modules/speech/SpeechRecognitionResultList.cpp: Added.
312 (WebCore::SpeechRecognitionResultList::create):
313 (WebCore::SpeechRecognitionResultList::item):
314 (WebCore::SpeechRecognitionResultList::SpeechRecognitionResultList):
315 * Modules/speech/SpeechRecognitionResultList.h: Added.
317 (SpeechRecognitionResultList):
318 (WebCore::SpeechRecognitionResultList::length):
319 * Modules/speech/SpeechRecognitionResultList.idl: Added.
322 2012-03-08 Robin Cao <robin.cao@torchmobile.com.cn>
324 [BlackBerry] Upstream GraphicsLayerBlackBerry.{h, cpp}
325 https://bugs.webkit.org/show_bug.cgi?id=79867
327 Reviewed by Rob Buis.
329 Initial upstream, no new tests.
331 * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp: Added.
333 (WebCore::setLayerBorderColor):
334 (WebCore::clearBorderColor):
335 (WebCore::setLayerBackgroundColor):
336 (WebCore::clearLayerBackgroundColor):
337 (WebCore::GraphicsLayer::create):
338 (WebCore::GraphicsLayerBlackBerry::GraphicsLayerBlackBerry):
339 (WebCore::GraphicsLayerBlackBerry::~GraphicsLayerBlackBerry):
340 (WebCore::GraphicsLayerBlackBerry::setName):
341 (WebCore::GraphicsLayerBlackBerry::setChildren):
342 (WebCore::GraphicsLayerBlackBerry::addChild):
343 (WebCore::GraphicsLayerBlackBerry::addChildAtIndex):
344 (WebCore::GraphicsLayerBlackBerry::addChildBelow):
345 (WebCore::GraphicsLayerBlackBerry::addChildAbove):
346 (WebCore::GraphicsLayerBlackBerry::replaceChild):
347 (WebCore::GraphicsLayerBlackBerry::removeFromParent):
348 (WebCore::GraphicsLayerBlackBerry::setPosition):
349 (WebCore::GraphicsLayerBlackBerry::setAnchorPoint):
350 (WebCore::GraphicsLayerBlackBerry::setSize):
351 (WebCore::GraphicsLayerBlackBerry::setTransform):
352 (WebCore::GraphicsLayerBlackBerry::setChildrenTransform):
353 (WebCore::GraphicsLayerBlackBerry::setPreserves3D):
354 (WebCore::GraphicsLayerBlackBerry::setMasksToBounds):
355 (WebCore::GraphicsLayerBlackBerry::setDrawsContent):
356 (WebCore::GraphicsLayerBlackBerry::setContentsVisible):
357 (WebCore::GraphicsLayerBlackBerry::setMaskLayer):
358 (WebCore::GraphicsLayerBlackBerry::setReplicatedByLayer):
359 (WebCore::GraphicsLayerBlackBerry::setFixedPosition):
360 (WebCore::GraphicsLayerBlackBerry::setHasFixedContainer):
361 (WebCore::GraphicsLayerBlackBerry::setHasFixedAncestorInDOMTree):
362 (WebCore::GraphicsLayerBlackBerry::setBackgroundColor):
363 (WebCore::GraphicsLayerBlackBerry::clearBackgroundColor):
364 (WebCore::GraphicsLayerBlackBerry::setContentsOpaque):
365 (WebCore::GraphicsLayerBlackBerry::setBackfaceVisibility):
366 (WebCore::GraphicsLayerBlackBerry::setOpacity):
367 (WebCore::GraphicsLayerBlackBerry::setContentsNeedsDisplay):
368 (WebCore::GraphicsLayerBlackBerry::setNeedsDisplay):
369 (WebCore::GraphicsLayerBlackBerry::setNeedsDisplayInRect):
370 (WebCore::GraphicsLayerBlackBerry::setContentsRect):
371 (WebCore::removeAnimationByIdAndProperty):
372 (WebCore::removeAnimationByName):
373 (WebCore::GraphicsLayerBlackBerry::addAnimation):
374 (WebCore::GraphicsLayerBlackBerry::pauseAnimation):
375 (WebCore::GraphicsLayerBlackBerry::removeAnimation):
376 (WebCore::GraphicsLayerBlackBerry::suspendAnimations):
377 (WebCore::GraphicsLayerBlackBerry::resumeAnimations):
378 (WebCore::GraphicsLayerBlackBerry::setContentsToImage):
379 (WebCore::GraphicsLayerBlackBerry::updateContentsImage):
380 (WebCore::GraphicsLayerBlackBerry::setContentsToCanvas):
381 (WebCore::GraphicsLayerBlackBerry::setContentsToMedia):
382 (WebCore::GraphicsLayerBlackBerry::hostLayerForSublayers):
383 (WebCore::GraphicsLayerBlackBerry::layerForSuperlayer):
384 (WebCore::GraphicsLayerBlackBerry::platformLayer):
385 (WebCore::GraphicsLayerBlackBerry::setDebugBackgroundColor):
386 (WebCore::GraphicsLayerBlackBerry::setDebugBorder):
387 (WebCore::GraphicsLayerBlackBerry::updateSublayerList):
388 (WebCore::GraphicsLayerBlackBerry::updateLayerPosition):
389 (WebCore::GraphicsLayerBlackBerry::updateLayerSize):
390 (WebCore::GraphicsLayerBlackBerry::updateAnchorPoint):
391 (WebCore::GraphicsLayerBlackBerry::updateTransform):
392 (WebCore::GraphicsLayerBlackBerry::updateChildrenTransform):
393 (WebCore::GraphicsLayerBlackBerry::updateMasksToBounds):
394 (WebCore::GraphicsLayerBlackBerry::updateContentsOpaque):
395 (WebCore::GraphicsLayerBlackBerry::updateBackfaceVisibility):
396 (WebCore::GraphicsLayerBlackBerry::updateLayerPreserves3D):
397 (WebCore::GraphicsLayerBlackBerry::updateLayerIsDrawable):
398 (WebCore::GraphicsLayerBlackBerry::updateFixedPosition):
399 (WebCore::GraphicsLayerBlackBerry::updateHasFixedContainer):
400 (WebCore::GraphicsLayerBlackBerry::updateHasFixedAncestorInDOMTree):
401 (WebCore::GraphicsLayerBlackBerry::updateLayerBackgroundColor):
402 (WebCore::GraphicsLayerBlackBerry::updateAnimations):
403 (WebCore::GraphicsLayerBlackBerry::updateContentsVideo):
404 (WebCore::GraphicsLayerBlackBerry::updateContentsRect):
405 (WebCore::GraphicsLayerBlackBerry::setupContentsLayer):
406 (WebCore::GraphicsLayerBlackBerry::updateOpacityOnLayer):
407 (WebCore::GraphicsLayerBlackBerry::contentsVisible):
408 * platform/graphics/blackberry/GraphicsLayerBlackBerry.h: Added.
410 (GraphicsLayerBlackBerry):
411 (WebCore::GraphicsLayerBlackBerry::notifySyncRequired):
412 (WebCore::GraphicsLayerBlackBerry::notifyAnimationStarted):
413 (WebCore::GraphicsLayerBlackBerry::primaryLayer):
414 (WebCore::GraphicsLayerBlackBerry::contentsLayer):
416 2012-03-07 Shinya Kawanaka <shinyak@chromium.org>
418 Refactoring: Remove Node::isContentElement and Node::isShadowElement.
419 https://bugs.webkit.org/show_bug.cgi?id=80501
421 Reviewed by Hajime Morita.
423 Removes Node::isContentElement and Node::isShadowElement. These methods are replaced
424 by hasTagName. However the tag name of HTMLContentElement was not consistent,
425 this patch make them consistent.
427 No new tests. Should be covered by existing tests.
430 * html/HTMLElement.h:
431 (WebCore::HTMLElement::isInsertionPoint):
433 * html/HTMLSummaryElement.cpp:
434 (WebCore::SummaryContentElement::SummaryContentElement):
435 It uses HTMLNames::divTag as tagname. It should use HTMLNames::webkitShadowTagName.
436 * html/shadow/HTMLContentElement.h:
437 (HTMLContentElement):
438 * html/shadow/InsertionPoint.h:
440 (WebCore::InsertionPoint::isInsertionPoint):
441 (WebCore::isInsertionPoint):
442 * testing/Internals.cpp:
443 (WebCore::Internals::isValidContentSelect):
444 * testing/Internals.h:
447 2012-03-07 Adam Barth <abarth@webkit.org>
449 ContainerNode::insertedIntoDocument and removedFromDocument use weak iteration patterns
450 https://bugs.webkit.org/show_bug.cgi?id=80569
452 Reviewed by Ryosuke Niwa.
454 This patch moves ContainerNode::insertedIntoDocument and
455 removedFromDocument to using a better iteration pattern in which we
456 collect all the nodes we're planning to iterate into a vector and then
459 * dom/ContainerNode.cpp:
460 (WebCore::ContainerNode::insertedIntoDocument):
461 (WebCore::ContainerNode::removedFromDocument):
463 2012-03-07 Ami Fischman <fischman@chromium.org>
465 [Chromium] Allow CCLayerTreeHost::context() to be called even with the threaded compositor enabled.
466 https://bugs.webkit.org/show_bug.cgi?id=80565
468 Reviewed by James Robinson.
470 This gets triggered by the video HW decode+render path when threaded compositor is enabled
471 (https://chromiumcodereview.appspot.com/9639005/)
475 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
476 (WebCore::CCLayerTreeHost::context):
478 2012-03-07 Mike Lawther <mikelawther@chromium.org>
480 CSS3 calc: mixed absolute/percentages work for width, height, margin and padding
481 https://bugs.webkit.org/show_bug.cgi?id=79621
483 Reviewed by Andreas Kling.
485 ApplyPropertyLength in CSSStyleApplyPropery now handles mixed absolute/percentage
486 length expressions. All property handlers using this template now work with
489 This patch adds a new expression evaluator in CalculationValue.cpp. This is because
490 Length.[cpp|h] (in platform) cannot refer to CSSCalculationValue.[cpp|h] (in css)
491 due to layering restrictions.
493 Lengths can be copied, and so the expressions are stored in a hashmap, and only their
494 ids are copied along with Length. The expressions are RefCounted, and will get
495 cleaned up when the last referring Length is destructed.
498 * css/CSSCalculationValue.cpp:
499 (WebCore::CSSCalcPrimitiveValue::toCalcValue):
500 (CSSCalcPrimitiveValue):
501 (WebCore::CSSCalcBinaryOperation::toCalcValue):
502 (CSSCalcBinaryOperation):
503 * css/CSSCalculationValue.h:
505 (CSSCalcExpressionNode):
507 (WebCore::CSSCalcValue::toCalcValue):
508 * css/CSSPrimitiveValue.cpp:
509 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
510 * css/CSSStyleApplyProperty.cpp:
511 (WebCore::ApplyPropertyLength::applyValue):
512 * css/CSSStyleSelector.cpp:
513 (WebCore::CSSStyleSelector::collectMatchingRulesForList):
514 * css/CSSStyleSelector.h:
516 * platform/CalculationValue.cpp:
517 (WebCore::CalcExpressionBinaryOperation::evaluate):
519 (WebCore::CalculationValue::create):
520 (WebCore::CalculationValue::evaluate):
521 * platform/CalculationValue.h:
522 (CalcExpressionNode):
523 (WebCore::CalcExpressionNode::~CalcExpressionNode):
526 (WebCore::CalculationValue::CalculationValue):
527 (CalcExpressionNumber):
528 (WebCore::CalcExpressionNumber::CalcExpressionNumber):
529 (WebCore::CalcExpressionNumber::evaluate):
530 (CalcExpressionLength):
531 (WebCore::CalcExpressionLength::CalcExpressionLength):
532 (WebCore::CalcExpressionLength::evaluate):
533 (CalcExpressionBinaryOperation):
534 (WebCore::CalcExpressionBinaryOperation::CalcExpressionBinaryOperation):
535 * platform/Length.cpp:
537 (WebCore::Length::~Length):
538 (CalculationValueHandleMap):
539 (WebCore::CalculationValueHandleMap::CalculationValueHandleMap):
540 (WebCore::CalculationValueHandleMap::insert):
541 (WebCore::CalculationValueHandleMap::remove):
542 (WebCore::CalculationValueHandleMap::get):
543 (WebCore::calcHandles):
544 (WebCore::Length::Length):
545 (WebCore::Length::calculationValue):
546 (WebCore::Length::calculatedValue):
547 (WebCore::Length::calculatedMinValue):
548 (WebCore::Length::calculatedFloatValue):
549 (WebCore::Length::incrementCalculatedRef):
550 (WebCore::Length::decrementCalculatedRef):
551 (WebCore::Length::nonNanCalculatedValue):
554 (WebCore::Length::Length):
555 (WebCore::Length::operator=):
556 (WebCore::Length::operator*=):
557 (WebCore::Length::value):
558 (WebCore::Length::setValue):
559 (WebCore::Length::calcValue):
560 (WebCore::Length::calcMinValue):
561 (WebCore::Length::calcFloatValue):
562 (WebCore::Length::isZero):
563 (WebCore::Length::isPositive):
564 (WebCore::Length::isNegative):
565 (WebCore::Length::isPercent):
566 (WebCore::Length::isSpecified):
567 (WebCore::Length::isCalculated):
568 (WebCore::Length::initFromLength):
569 (WebCore::Length::calculationHandle):
571 2012-03-07 Kent Tamura <tkent@chromium.org>
573 Do not refer to resutlsButtonElement and cancelButtonElement to compute paddings of search popups
574 https://bugs.webkit.org/show_bug.cgi?id=80564
576 Reviewed by Hajime Morita.
578 We'd like to reduce dependency of resultsButtonElement and
579 cancelButtonElement from RenderTextControlSingleLine.
583 * rendering/RenderTextControlSingleLine.cpp:
584 (WebCore::RenderTextControlSingleLine::clientPaddingLeft):
585 Use the left position of innerBlockElement, instead of the width of resultsButtonElement.
587 (WebCore::RenderTextControlSingleLine::clientPaddingRight):
588 Use <the container width - right position of innerBlockElement>,
589 instead of the width of the cancelButtonElement. They are
592 2012-03-07 Mike Lawther <mikelawther@chromium.org>
594 use DEFINE_STATIC_LOCAL on Lengths to avoid exit time destructors
595 https://bugs.webkit.org/show_bug.cgi?id=80561
597 Reviewed by Eric Seidel.
599 This is in preparation for http://wkb.ug/79621 where a destructor is added to Length.
601 No new tests as this is not a behaviour change.
603 * css/CSSStyleApplyProperty.cpp:
604 (WebCore::ApplyPropertyPageSize::getPageSizeFromName):
606 2012-03-07 Adam Barth <abarth@webkit.org>
608 ContainerNode::willRemove uses a weak iteration pattern
609 https://bugs.webkit.org/show_bug.cgi?id=80530
611 Reviewed by Ryosuke Niwa.
613 This patch moves ContainerNode::willRemove to using a better iteration
614 pattern in which we collect all the nodes we're planning to iterate
615 into a vector and then iterate over them.
617 * dom/ContainerNode.cpp:
618 (WebCore::ContainerNode::willRemove):
620 2012-03-07 Kentaro Hara <haraken@chromium.org>
622 [V8][Performance] Optimize V8 bindings for HTMLElement.classList,
623 Element.dataset and Node.attributes
624 https://bugs.webkit.org/show_bug.cgi?id=80376
626 Reviewed by Adam Barth.
628 This patch improves the performance of HTMLElement.classList, Element.dataset
629 and Node.attributes by 6.4 times, 7.1 times and 10.9 times, respectively.
631 Previously, a 'hiddenReferenceName' string was allocated on v8::Handle and
632 created every time the DOM attribute is accessed, in spite of the fact that
633 the 'hiddenReferenceName' string is static.
635 This patch moves the 'hiddenReferenceName' string to v8::Persistent and makes it static.
636 Also, this patch removes 'if (!elementValue.IsEmpty() && elementValue->IsObject())',
637 since if 'element' exists, it is guaranteed that 'elementValue' is not empty
640 Performance tests: https://bugs.webkit.org/attachment.cgi?id=130283
642 AppleWebKit/JavaScriptCore:
643 div.classList : 382ms
644 div.classList.foo = 123 : 335ms
646 div.dataset.foo = 123 : 5250ms
647 div.attributes : 183ms
649 Chromium/V8 (without this patch):
650 div.classList : 9140ms
651 div.classList.foo = 123 : 9086ms
653 div.dataset.foo = 123 : 49698ms
654 div.attributes : 13489ms
656 Chromium/V8 (with this patch):
657 div.classList : 1435ms
658 div.classList.foo = 123 : 1470ms
660 div.dataset.foo = 123 : 30396ms
661 div.attributes : 1242ms
663 No tests. No change in behavior.
665 * bindings/v8/custom/V8DOMStringMapCustom.cpp: Modified as described above.
667 * bindings/v8/custom/V8DOMTokenListCustom.cpp: Ditto.
669 * bindings/v8/custom/V8NamedNodeMapCustom.cpp: Ditto.
672 * bindings/v8/V8HiddenPropertyName.cpp: Defined a hidden property name string statically
673 to optimize the macro.
675 (WebCore::V8HiddenPropertyName::hiddenReferenceName):
676 * bindings/v8/V8HiddenPropertyName.h: Modified to switch two prefixes "WebCore::HiddenProperty::"
677 and "WebCore::HiddenReference::", depending on whether a given name represents a hidden property
678 or a hidden reference.
680 (V8HiddenPropertyName):
682 2012-03-07 Kent Tamura <tkent@chromium.org>
684 Add RenderBoxModelObject::marginWidth() and marginHeight()
685 https://bugs.webkit.org/show_bug.cgi?id=80556
687 Reviewed by Kentaro Hara.
689 They make some code shorter.
693 * rendering/RenderBoxModelObject.h:
694 (WebCore::RenderBoxModelObject::marginHeight): Added.
695 (WebCore::RenderBoxModelObject::marginWidth): Added.
696 * inspector/DOMNodeHighlighter.cpp: Use marginHeight() and/or marginWidth().
697 * rendering/RenderBlock.h:
698 (WebCore::RenderBlock::FloatWithRect::FloatWithRect): ditto.
699 * rendering/RenderBlockLineLayout.cpp:
700 (WebCore::RenderBlock::checkFloatsInCleanLine): ditto.
701 * rendering/RenderBox.cpp:
702 (WebCore::RenderBox::repaintLayerRectsForImage): ditto.
703 * rendering/RenderDeprecatedFlexibleBox.cpp:
704 (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox): ditto.
705 (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox): ditto.
706 * rendering/RenderFlexibleBox.cpp:
707 (WebCore::RenderFlexibleBox::crossAxisMarginExtentForChild): ditto.
708 (WebCore::RenderFlexibleBox::computeNextFlexLine): ditto.
709 * rendering/RenderInline.cpp:
710 (WebCore::RenderInline::culledInlineAbsoluteRects): ditto.
711 (WebCore::RenderInline::culledInlineAbsoluteQuads): ditto.
712 (WebCore::RenderInline::culledInlineBoundingBox): ditto.
713 * rendering/RenderScrollbar.cpp:
714 (WebCore::RenderScrollbar::trackPieceRectWithMargins): ditto.
715 * rendering/RenderTextControl.cpp:
716 (WebCore::RenderTextControl::computeLogicalHeight): ditto.
717 * rendering/RenderTextControlSingleLine.cpp:
718 (WebCore::RenderTextControlSingleLine::computeControlHeight): ditto.
720 2012-03-07 Jessie Berlin <jberlin@apple.com>
722 Clean Windows build fails after r110033
723 https://bugs.webkit.org/show_bug.cgi?id=80553
725 Rubber-stamped by Jon Honeycutt and Eric Seidel.
727 * WebCore.vcproj/WebCore.vcproj:
728 Update the expected location of the copied JSC WTF string implementation files.
730 2012-03-07 Michael Nordman <michaeln@google.com>
732 [Chromium] Don't be so CRASH() happy in the bindings layer.
733 https://bugs.webkit.org/show_bug.cgi?id=75111
734 - change the v8 bindings generated code to check for the 'worker is terminating'
735 condition prior to committing a suicidal CRASH()
736 - fixup custom v8 bindings accordingly
737 - simplify bindings/generic/ActiveDOMCallback, there is no need for it to support
738 destruction on a different thread
740 Reviewed by David Levin.
742 No new tests, existing tests apply.
744 * bindings/generic/ActiveDOMCallback.cpp: Simplified in general.
746 (WebCore::ActiveDOMCallback::ActiveDOMCallback):
747 (WebCore::ActiveDOMCallback::~ActiveDOMCallback):
748 (WebCore::ActiveDOMCallback::canInvokeCallback):
749 (WebCore::ActiveDOMCallback::isScriptControllerTerminating): New method to avoid CRASH()ing in exceptional conditions in v8 bindings.
750 * bindings/generic/ActiveDOMCallback.h: Derive from ContextDestructionObserver.
751 * bindings/js/WorkerScriptController.cpp:
752 (WebCore::WorkerScriptController::scheduleExecutionTermination): Use a mutex to provide a memory barrier.
753 (WebCore::WorkerScriptController::isExecutionTerminating): New supporting method to avoid CRASH()ing in exceptional conditions.
754 * bindings/js/WorkerScriptController.h:
755 (WorkerScriptController):
756 * bindings/scripts/CodeGeneratorV8.pm: Generates v8 bindding code that uses isScriptControllerTerminating to avoid CRASH()ing.
757 (GenerateCallbackImplementation):
758 * bindings/scripts/test/V8/V8TestCallback.cpp: Fixup expected outputs of the modified CodeGeneratorV8.pm script.
759 (WebCore::V8TestCallback::callbackWithClass1Param):
760 (WebCore::V8TestCallback::callbackWithClass2Param):
761 (WebCore::V8TestCallback::callbackWithStringList):
762 * bindings/v8/WorkerScriptController.cpp:
763 (WebCore::WorkerScriptController::WorkerScriptController): Initialize a new data member.
764 (WebCore::WorkerScriptController::scheduleExecutionTermination): Use a mutex to provide a memory barrier.
765 (WebCore::WorkerScriptController::isExecutionTerminating): New supporting method to avoid CRASH()ing in exceptional conditions.
766 * bindings/v8/WorkerScriptController.h: Add a pair of new data members, bool + mutex.
767 (WorkerScriptController):
768 * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
769 (WebCore::V8SQLStatementErrorCallback::handleEvent):
770 * bindings/v8/custom/V8MutationCallbackCustom.cpp:
771 (WebCore::V8MutationCallback::handleEvent):
772 * dom/ScriptExecutionContext.cpp:
773 (WebCore::ScriptExecutionContext::ScriptExecutionContext): Initilaize data members.
774 (WebCore::ScriptExecutionContext::stopActiveDOMObjects): Set m_activeDOMObjectsAreStopped.
775 * dom/ScriptExecutionContext.h: Add m_activeDOMObjectsAreStopped data member.
776 (WebCore::ScriptExecutionContext::activeDOMObjectsAreStopped): Simple getter.
777 (ScriptExecutionContext):
779 2012-03-07 Kent Tamura <tkent@chromium.org>
781 Remove meaningless code in RenderTextControlSingleLine::preferredContentWidth()
782 https://bugs.webkit.org/show_bug.cgi?id=80493
784 Reviewed by Hajime Morita.
786 preferredContentWidth() added border+padding widths of the search result
787 button, search cancel button, and speech input button. It makes no sense
788 to make the intrinsic width wider by only their border+padding width,
789 not their content width.
791 The default borders and paddings of these buttons are 0 in all
792 platforms, and adding border or padding to these elements by page
793 authors made unreasonable behavior. So we had better remove this
796 Tests: fast/forms/search/intrinsic-search-width-with-decoration-border-padding.html
797 fast/speech/intrinsic-input-width-with-speech-border-padding.html
799 * rendering/RenderTextControlSingleLine.cpp:
800 (WebCore::RenderTextControlSingleLine::preferredContentWidth):
801 Remove the meaningless code.
802 * rendering/RenderTextControlSingleLine.h:
803 (RenderTextControlSingleLine): Remove speechButtonElement(). It's unnecessary.
805 2012-03-07 Sheriff Bot <webkit.review.bot@gmail.com>
807 Unreviewed, rolling out r110126.
808 http://trac.webkit.org/changeset/110126
809 https://bugs.webkit.org/show_bug.cgi?id=80558
811 compile failed on AppleMac (Requested by ukai on #webkit).
814 * css/CSSCalculationValue.cpp:
815 * css/CSSCalculationValue.h:
817 (CSSCalcExpressionNode):
819 * css/CSSPrimitiveValue.cpp:
820 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
821 * css/CSSStyleApplyProperty.cpp:
822 (WebCore::ApplyPropertyLength::applyValue):
823 * css/CSSStyleSelector.cpp:
824 (WebCore::CSSStyleSelector::collectMatchingRulesForList):
825 * css/CSSStyleSelector.h:
826 * platform/CalculationValue.cpp:
827 * platform/CalculationValue.h:
828 * platform/Length.cpp:
829 (WebCore::newLengthArray):
831 (WebCore::Length::operator*=):
832 (WebCore::Length::value):
833 (WebCore::Length::setValue):
835 (WebCore::Length::calcValue):
836 (WebCore::Length::calcMinValue):
837 (WebCore::Length::calcFloatValue):
838 (WebCore::Length::isZero):
839 (WebCore::Length::isPositive):
840 (WebCore::Length::isNegative):
841 (WebCore::Length::isPercent):
842 (WebCore::Length::isSpecified):
844 2012-03-05 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
846 Make Node::dumpStatistics() work again
847 https://bugs.webkit.org/show_bug.cgi?id=80327
849 Reviewed by Ryosuke Niwa.
851 Update the code in dumpStatistics() to the latest attribute storage changes. Also
852 move the DUMP_NODE_STATISTICS define here from the Node.cpp, since its also used
856 (WebCore::Node::dumpStatistics): Use more self-describing variable names.
859 2012-03-07 Mike Lawther <mikelawther@chromium.org>
861 CSS3 calc: mixed absolute/percentages work for width, height, margin and padding
862 https://bugs.webkit.org/show_bug.cgi?id=79621
864 Reviewed by Andreas Kling.
866 ApplyPropertyLength in CSSStyleApplyPropery now handles mixed absolute/percentage
867 length expressions. All property handlers using this template now work with
870 This patch adds a new expression evaluator in CalculationValue.cpp. This is because
871 Length.[cpp|h] (in platform) cannot refer to CSSCalculationValue.[cpp|h] (in css)
872 due to layering restrictions.
874 Lengths can be copied, and so the expressions are stored in a hashmap, and only their
875 ids are copied along with Length. The expressions are RefCounted, and will get
876 cleaned up when the last referring Length is destructed.
879 * css/CSSCalculationValue.cpp:
880 (WebCore::CSSCalcPrimitiveValue::toCalcValue):
881 (CSSCalcPrimitiveValue):
882 (WebCore::CSSCalcBinaryOperation::toCalcValue):
883 (CSSCalcBinaryOperation):
884 * css/CSSCalculationValue.h:
886 (CSSCalcExpressionNode):
888 (WebCore::CSSCalcValue::toCalcValue):
889 * css/CSSPrimitiveValue.cpp:
890 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
891 * css/CSSStyleApplyProperty.cpp:
892 (WebCore::ApplyPropertyLength::applyValue):
893 * css/CSSStyleSelector.cpp:
894 (WebCore::CSSStyleSelector::collectMatchingRulesForList):
895 * css/CSSStyleSelector.h:
897 * platform/CalculationValue.cpp:
898 (WebCore::CalcExpressionBinaryOperation::evaluate):
900 (WebCore::CalculationValue::create):
901 (WebCore::CalculationValue::evaluate):
902 * platform/CalculationValue.h:
903 (CalcExpressionNode):
904 (WebCore::CalcExpressionNode::~CalcExpressionNode):
907 (WebCore::CalculationValue::CalculationValue):
908 (CalcExpressionNumber):
909 (WebCore::CalcExpressionNumber::CalcExpressionNumber):
910 (WebCore::CalcExpressionNumber::evaluate):
911 (CalcExpressionLength):
912 (WebCore::CalcExpressionLength::CalcExpressionLength):
913 (WebCore::CalcExpressionLength::evaluate):
914 (CalcExpressionBinaryOperation):
915 (WebCore::CalcExpressionBinaryOperation::CalcExpressionBinaryOperation):
916 * platform/Length.cpp:
918 (WebCore::Length::~Length):
919 (CalculationValueHandleMap):
920 (WebCore::CalculationValueHandleMap::CalculationValueHandleMap):
921 (WebCore::CalculationValueHandleMap::insert):
922 (WebCore::CalculationValueHandleMap::remove):
923 (WebCore::CalculationValueHandleMap::get):
924 (WebCore::calcHandles):
925 (WebCore::Length::Length):
926 (WebCore::Length::calculationValue):
927 (WebCore::Length::calculatedValue):
928 (WebCore::Length::calculatedMinValue):
929 (WebCore::Length::calculatedFloatValue):
930 (WebCore::Length::incrementCalculatedRef):
931 (WebCore::Length::decrementCalculatedRef):
932 (WebCore::Length::nonNanCalculatedValue):
935 (WebCore::Length::Length):
936 (WebCore::Length::operator=):
937 (WebCore::Length::operator*=):
938 (WebCore::Length::value):
939 (WebCore::Length::setValue):
940 (WebCore::Length::calcValue):
941 (WebCore::Length::calcMinValue):
942 (WebCore::Length::calcFloatValue):
943 (WebCore::Length::isZero):
944 (WebCore::Length::isPositive):
945 (WebCore::Length::isNegative):
946 (WebCore::Length::isPercent):
947 (WebCore::Length::isSpecified):
948 (WebCore::Length::isCalculated):
949 (WebCore::Length::initFromLength):
950 (WebCore::Length::calculationHandle):
952 2012-03-07 Emil A Eklund <eae@chromium.org>
954 Change remaining scroll methods to integers
955 https://bugs.webkit.org/show_bug.cgi?id=80539
957 Reviewed by Eric Seidel.
959 No new tests, no new functionality.
961 * rendering/RenderLayer.cpp:
962 (WebCore::RenderLayer::scrollByRecursively):
963 (WebCore::RenderLayer::scrollToOffset):
964 (WebCore::RenderLayer::scrollRectToVisible):
965 (WebCore::RenderLayer::scrollToXOffset):
966 (WebCore::RenderLayer::scrollToYOffset):
967 Change scrollTo methods to take integer x and y values as the actual
968 scrolling is done in increments of full pixels.
970 (WebCore::cornerStart):
971 (WebCore::RenderLayer::scrollWidth):
972 (WebCore::RenderLayer::scrollHeight):
973 Change scrollWidth/Height to return pixel snapped values and remove
974 pixelSnapped versions of same as all callers either used snapped the
975 values or used the pixelSnapped versions of these methods.
977 * rendering/RenderListBox.cpp:
978 (WebCore::RenderListBox::scrollWidth):
979 Change scrollWidth to return snapped client width.
981 * rendering/RenderListBox.h:
982 Change scrollSize, scrollPosition and setScrollOffset methods to use
983 integers in accordance with the interface defined by ScrollableArea.
985 * rendering/RenderTreeAsText.cpp:
988 2012-03-07 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
990 Implement getAttributeNode() in terms of ElementAttributeData instead of NamedNodeMap
991 https://bugs.webkit.org/show_bug.cgi?id=80541
993 Reviewed by Ryosuke Niwa.
995 DOM methods exposed in Element and NamedNodeMap are now implemented in terms of
996 ElementAttributeData. The difference between them is that Element methods can early
997 return if there's no attribute storage.
1000 (WebCore::Element::getAttributeNode):
1001 Removed the manual lowercasing letting our existing mechanism in
1002 ElementAttributeData::getAttributeItemIndex() take care of it. I considered that
1003 this could be an optimization, but testing a few Dromaeo tests (dom-attr,
1004 jslib-attr-jquery, jslib-attr-prototype) the difference isn't significant. It
1005 shouldn't affect correctness either.
1007 (WebCore::Element::getAttributeNodeNS):
1008 * dom/ElementAttributeData.cpp:
1009 * dom/ElementAttributeData.h:
1010 (ElementAttributeData):
1011 (WebCore::ElementAttributeData::getAttributeNode):
1013 * dom/NamedNodeMap.cpp:
1014 (WebCore::NamedNodeMap::getNamedItem):
1015 (WebCore::NamedNodeMap::getNamedItemNS):
1016 * dom/NamedNodeMap.h:
1019 2012-03-07 James Robinson <jamesr@chromium.org>
1021 [chromium] Support printing WebGL content in threaded compositor
1022 https://bugs.webkit.org/show_bug.cgi?id=80464
1024 Reviewed by Kenneth Russell.
1026 Do the readback on the WebGL context instead of the compositor's context since we cannot use the latter from the
1027 main thread. Since we're on the WebGL context, we have to be careful to restore any state we change.
1029 Tested printing manually with threaded compositing enabled.
1031 * platform/graphics/chromium/WebGLLayerChromium.cpp:
1032 (WebCore::WebGLLayerChromium::paintRenderedResultsToCanvas):
1033 * platform/graphics/chromium/WebGLLayerChromium.h:
1034 (WebGLLayerChromium):
1036 2012-03-07 Adam Barth <abarth@webkit.org>
1038 Remove #define private public from WebCache.cpp
1039 https://bugs.webkit.org/show_bug.cgi?id=80520
1041 Reviewed by Eric Seidel.
1043 Add some accessors for state used by WebCache.cpp.
1045 * loader/cache/MemoryCache.h:
1046 (WebCore::MemoryCache::minDeadCapacity):
1047 (WebCore::MemoryCache::maxDeadCapacity):
1048 (WebCore::MemoryCache::capacity):
1049 (WebCore::MemoryCache::liveSize):
1050 (WebCore::MemoryCache::deadSize):
1053 2012-03-07 Kentaro Hara <haraken@chromium.org>
1055 [V8][Performance] Optimize Element.firstElementChild, Element.lastElementChild,
1056 Element.previousElementSibling, Element.nextElementSibling, Node.parentElement
1057 https://bugs.webkit.org/show_bug.cgi?id=80506
1059 Reviewed by Adam Barth.
1061 This patch improves the performance of Element.firstElementChild by 5.8 times,
1062 Element.lastElementChild by 6.2 times, Element.previousElementSibling by 7.1 times,
1063 Element.nextElementSibling by 7.1 times, and Node.parentElement by 6.7 times.
1065 Previously, while toV8(Node*) caches a wrapper object on a node object
1066 (i.e. node->wrapper(), node->setWrapper()), toV8(Element*) does not
1067 cache a wrapper object.
1069 This patch removes toV8(Element*), so that DOM attribute getters that return
1070 Element* use toV8(Node*). This change makes these DOM attribute getters
1071 cache the wrapper object on a node object. This optimization is already
1072 implemented in JavaScriptCore.
1074 Performance tests: https://bugs.webkit.org/attachment.cgi?id=130594
1076 The test results in my local Mac environment are as follows:
1078 AppleWebKit/JavaScriptCore:
1079 div.firstElementChild : 1162ms
1080 div.lastElementChild : 1016ms
1081 div.previousElementSibling : 918ms
1082 div.nextElementSibling : 900ms
1083 div.parentElement : 901ms
1085 Chromium/V8 (without this patch):
1086 div.firstElementChild : 9515ms
1087 div.lastElementChild : 9449ms
1088 div.previousElementSibling : 9254ms
1089 div.nextElementSibling : 9315ms
1090 div.parentElement : 9380ms
1092 Chromium/V8 (with this patch):
1093 div.firstElementChild : 1628ms
1094 div.lastElementChild : 1527ms
1095 div.previousElementSibling : 1310ms
1096 div.nextElementSibling : 1310ms
1097 div.parentElement : 1410ms
1099 No tests. No change in behavior.
1101 * dom/Element.idl: Removed toV8(Element*)
1102 * bindings/v8/custom/V8NodeCustom.cpp: Ditto.
1103 (WebCore::toV8Slow):
1104 * bindings/scripts/CodeGeneratorV8.pm: Ditto.
1107 * bindings/v8/custom/V8ElementCustom.cpp: Removed.
1108 * Target.pri: Removed V8ElementCustom.cpp.
1109 * UseV8.cmake: Ditto.
1110 * WebCore.gypi: Ditto.
1112 2012-03-07 Joshua Bell <jsbell@chromium.org>
1114 [Chromium] IndexedDB: V8LocalContext creation in IDBKey extraction/injection is slow
1115 https://bugs.webkit.org/show_bug.cgi?id=80358
1117 Cache a re-usable context (per isolate) for cases like IDB's key/SSV extraction/injection,
1118 where no user script is run. This yields a 3x-4x performance improvement in basic IDB
1121 Reviewed by Tony Chang.
1123 No new tests - no behavior changes.
1125 * bindings/v8/IDBBindingUtilities.cpp:
1126 (WebCore::createIDBKeyFromSerializedValueAndKeyPath):
1127 (WebCore::injectIDBKeyIntoSerializedValue):
1128 * bindings/v8/V8Binding.h:
1129 (WebCore::V8BindingPerIsolateData::auxiliaryContext):
1130 (V8BindingPerIsolateData):
1131 * bindings/v8/V8Utilities.cpp:
1132 (WebCore::V8AuxiliaryContext::V8AuxiliaryContext):
1133 (WebCore::V8AuxiliaryContext::~V8AuxiliaryContext):
1134 (WebCore::V8AuxiliaryContext::auxiliaryContext):
1135 * bindings/v8/V8Utilities.h:
1136 (V8AuxiliaryContext):
1138 2012-03-07 Nat Duca <nduca@chromium.org>
1140 [chromium] Remove unused wasRecreate variable
1141 https://bugs.webkit.org/show_bug.cgi?id=80533
1143 Reviewed by Adrienne Walker.
1145 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1146 (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
1148 2012-03-07 Ryan Sleevi <rsleevi@chromium.org>
1150 [chromium] Update GYP files to reflect file deletes/renames
1151 https://bugs.webkit.org/show_bug.cgi?id=80525
1153 Reviewed by Ryosuke Niwa.
1155 No change in functionality, so no tests.
1158 Updated AppleMac private headers due to r109877
1159 Updated platform/qt references due to r109542
1160 Updated platform/mac references due to r109147
1161 Updated platform/mac references due to r108956
1163 2012-03-07 Eric Carlson <eric.carlson@apple.com>
1165 Html5 video element Useragent string is Quicktime
1166 https://bugs.webkit.org/show_bug.cgi?id=46241
1168 Reviewed by Daniel Bates.
1170 Test: http/tests/media/video-useragent.html
1172 * html/HTMLMediaElement.cpp:
1173 (WebCore::HTMLMediaElement::mediaPlayerUserAgent): Return the UA string for the current source.
1174 * html/HTMLMediaElement.h:
1176 * platform/graphics/MediaPlayer.cpp:
1177 (WebCore::MediaPlayer::userAgent): New, return the client's mediaPlayerUserAgent.
1178 * platform/graphics/MediaPlayer.h:
1179 (WebCore::MediaPlayerClient::mediaPlayerUserAgent):
1181 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1182 (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Tell AVFoundation to set
1185 2012-03-07 Scott Byer <scottbyer@chromium.org>
1187 Get ScrollAnimatorNone to handle the stop and reverse cases.
1188 https://bugs.webkit.org/show_bug.cgi?id=80455
1190 Reviewed by James Robinson.
1192 Chromium webkit_unit_tests ScrollAnimatorNoneTest.ScrollStopInMiddle and
1193 ScrollAnimatorNoneTest.ReverseInMiddle.
1195 * platform/ScrollAnimatorNone.cpp:
1196 (WebCore::ScrollAnimatorNone::PerAxisData::updateDataFromParameters):
1198 2012-03-07 Yong Li <yoli@rim.com>
1200 RenderImage ignores its percent width/height when setContainerSizeForRenderer
1201 https://bugs.webkit.org/show_bug.cgi?id=80431
1203 Reviewed by George Staikos.
1205 Not only respect fixed width/height explicitly specified in img element, but also
1206 respect percent width/height when determining container size for images.
1208 No new tests because there is no functional change but only internal buffer sizes.
1210 * rendering/RenderImage.cpp:
1211 (WebCore::RenderImage::computeReplacedLogicalWidth):
1213 2012-03-06 Benjamin Poulain <bpoulain@apple.com>
1215 [Mac] Update the configuration files for iOS
1216 https://bugs.webkit.org/show_bug.cgi?id=80435
1218 Reviewed by David Kilzer.
1220 * Configurations/WebCore.xcconfig:
1222 2012-03-07 Dana Jansens <danakj@chromium.org>
1224 [chromium] Cull occluded tiles during paint
1225 https://bugs.webkit.org/show_bug.cgi?id=76838
1227 Reviewed by Adrienne Walker.
1229 Using CCOcclusionTracker instead of the old custom paint occlusion
1230 tracking. Stops painting tiles when the tile is not visible.
1232 CCOcclusionTracker only uses Layer::opaque() for determining
1233 occlusion so far. The Layer::addSelfToOccludedRegion is being
1234 replaced by a superior method in CCOcclusionTracker that will
1235 work for both threads, so removing that support here.
1237 Unit test: TiledLayerChromiumTest.cpp
1239 * platform/graphics/chromium/ContentLayerChromium.cpp:
1240 (WebCore::ContentLayerChromium::paintContentsIfDirty):
1241 (WebCore::ContentLayerChromium::idlePaintContentsIfDirty):
1242 * platform/graphics/chromium/ContentLayerChromium.h:
1243 (ContentLayerChromium):
1244 * platform/graphics/chromium/ImageLayerChromium.cpp:
1245 (WebCore::ImageLayerChromium::paintContentsIfDirty):
1246 * platform/graphics/chromium/LayerChromium.cpp:
1247 * platform/graphics/chromium/LayerChromium.h:
1248 (WebCore::LayerChromium::idlePaintContentsIfDirty):
1250 * platform/graphics/chromium/TiledLayerChromium.cpp:
1252 (WebCore::contentToLayerTransform):
1253 (WebCore::TiledLayerChromium::prepareToUpdateTiles):
1254 (WebCore::TiledLayerChromium::prepareToUpdate):
1255 (WebCore::TiledLayerChromium::prepareToUpdateIdle):
1256 * platform/graphics/chromium/TiledLayerChromium.h:
1257 (TiledLayerChromium):
1258 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1259 (WebCore::CCLayerTreeHost::paintContentsIfDirty):
1260 (WebCore::CCLayerTreeHost::paintLayerContents):
1262 2012-03-07 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
1264 Implement removeAttributeNode() in terms of ElementAttributeData instead of NamedNodeMap
1265 https://bugs.webkit.org/show_bug.cgi?id=80522
1267 Reviewed by Andreas Kling.
1269 DOM methods exposed in Element and NamedNodeMap are now implemented in terms of
1270 ElementAttributeData. A helper function takeAttribute() was added to increase
1271 code sharing. Also removed some unneeded methods.
1274 (WebCore::Element::removeAttribute): Use ElementAttributeData function directly.
1275 (WebCore::Element::removeAttributeNode): Get the index manually and use new
1276 takeAttribute() directly.
1278 (Element): Remove unused removeAttribute(unsigned index).
1279 * dom/ElementAttributeData.cpp:
1280 (WebCore::ElementAttributeData::takeAttribute): Like removeAttribute() but
1281 returns a reference to old Attr.
1283 * dom/ElementAttributeData.h:
1284 (ElementAttributeData):
1285 * dom/NamedNodeMap.cpp:
1286 (WebCore::NamedNodeMap::removeNamedItem): Avoid looking up the property twice by
1287 getting the index directly from the name, instead of going through the qualified name.
1288 * dom/NamedNodeMap.h: Remove now unused internal methods for removing attributes.
1290 2012-03-07 Alexey Proskuryakov <ap@apple.com>
1292 Merge AsyncFileStream with FileStreamProxy
1293 https://bugs.webkit.org/show_bug.cgi?id=80325
1297 * WebCore.xcodeproj/project.pbxproj: Removed files that got mysteriously added to the project
1300 2012-03-07 Julien Chaffraix <jchaffraix@webkit.org>
1302 Unreviewed ASSERT failure fix.
1303 https://bugs.webkit.org/show_bug.cgi?id=75568
1305 * rendering/RenderBoxModelObject.cpp:
1306 (WebCore::RenderBoxModelObject::styleDidChange):
1307 Fix a bad merge of the patch, we should call updateCachedSizeForOverflowClip if we lose
1310 2012-03-07 ChangSeok Oh <shivamidow@gmail.com>
1312 [EFL] Revise PlatformKeyboardEventEfl and EflKeyboardUtilities
1313 https://bugs.webkit.org/show_bug.cgi?id=80511
1315 Reviewed by Gustavo Noronha Silva.
1317 Added 'const' keyword in front of argument of keyIdentifiersForEvasKeyName/windowsKeyCodeForEvasKeyName.
1318 Since they should not be changed while processing each function.
1319 And initialized missing member variables of PlatformKeyboardEventEfl.
1321 No new tests, since no new feature.
1323 * platform/efl/EflKeyboardUtilities.cpp:
1324 (WebCore::keyIdentifierForEvasKeyName): Added const keyword
1325 (WebCore::windowsKeyCodeForEvasKeyName): Added const keyword
1326 * platform/efl/EflKeyboardUtilities.h:
1328 * platform/efl/PlatformKeyboardEventEfl.cpp:
1329 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
1331 2012-03-07 Hironori Bono <hbono@chromium.org>
1333 [Chromium] Mirror the resizer image of an RTL element when WTF_USE_RTL_SCROLLBAR is 1
1334 https://bugs.webkit.org/show_bug.cgi?id=9223
1336 Reviewed by Tony Chang.
1338 This change mirrors a resizer image of an RTL element horizontall as Firefox
1339 does. This change also mirrors its dragging behavior, i.e. draging the resizer
1340 of an RTL element to the left side increases its width. (This feature is enabled
1341 only when WTF_USE_RTL_SCROLLBAR is 1.)
1343 Test: platform/chromium/scrollbars/drag-rtl-resizer.html
1345 * rendering/RenderLayer.cpp:
1346 (WebCore::RenderLayer::resize): Mirrored the x coordinate of mouse positions
1347 when mirroring a resizer.
1348 (WebCore::RenderLayer::offsetFromResizeCorner): Returned the offset from the
1349 bottom-left corner when rendering a resizer there.
1350 (WebCore::RenderLayer::drawPlatformResizerImage): Mirrored the resizer bitmap
1351 horizontally when rendering a resizer to the bottom-left corner.
1353 2012-03-07 Julien Chaffraix <jchaffraix@webkit.org>
1355 Lazily allocate overflow: hidden layers if we have overflowing content
1356 https://bugs.webkit.org/show_bug.cgi?id=75568
1358 Reviewed by David Hyatt.
1360 Change covered by the existing tests and the tons of rebaselines.
1362 This change makes us lazily allocate our RenderLayer for overflow: hidden layers only.
1364 Apart from saving some memory, it will also speed up the rendering as we don't need to
1365 go through the layer's machinery when painting and hit testing.
1367 On http://dglazkov.github.com/performance-tests/biggrid.html benchmark, this puts the
1368 overflow: hidden case in par with the overflow: visible case when scrolling that is a
1369 very-smooth scrolling vs a jerky one currently (mostly due to the painting speedup).
1371 * rendering/RenderBlock.cpp:
1372 (WebCore::RenderBlock::updateScrollInfoAfterLayout):
1373 Changed this method to update our size cache if needed.
1375 * rendering/RenderBlock.cpp:
1376 (WebCore::RenderBlock::layoutBlock):
1377 (WebCore::RenderBlock::paint):
1378 (WebCore::RenderBlock::isPointInOverflowControl):
1379 * rendering/RenderBlock.h:
1381 * rendering/RenderBox.cpp:
1382 (WebCore::RenderBox::willBeDestroyed):
1383 (WebCore::RenderBox::styleDidChange):
1384 (WebCore::RenderBox::layout):
1385 (WebCore::RenderBox::scrollWidth):
1386 (WebCore::RenderBox::scrollHeight):
1387 (WebCore::RenderBox::scrollLeft):
1388 (WebCore::RenderBox::scrollTop):
1389 (WebCore::RenderBox::setScrollLeft):
1390 (WebCore::RenderBox::setScrollTop):
1391 (WebCore::RenderBox::includeVerticalScrollbarSize):
1392 (WebCore::RenderBox::includeHorizontalScrollbarSize):
1393 (WebCore::RenderBox::scrolledContentOffset):
1394 (WebCore::RenderBox::pushContentsClip):
1395 (WebCore::RenderBox::popContentsClip):
1396 (WebCore::RenderBox::addLayoutOverflow):
1397 Added layer() check to the previous call sites.
1399 (WebCore::cachedSizeForOverflowClipMap):
1400 (WebCore::RenderBox::cachedSizeForOverflowClip):
1401 (WebCore::RenderBox::updateCachedSizeForOverflowClip):
1402 (WebCore::RenderBox::clearCachedSizeForOverflowClip):
1403 This logic stores the size information for later repainting.
1404 It is in practice replicating what RenderLayer is doing.
1405 I had to disable an ASSERT here as it would trigger in NRWT but
1406 not under DRT. I haven't found by code inspection what was wrong.
1408 * rendering/RenderBox.h:
1409 (WebCore::RenderBox::hasOverflowClipWithLayer):
1412 (WebCore::RenderBox::requiresLayerForOverflowClip):
1413 This determines if we can survive without a RenderLayer. For the moment,
1414 it is very conservative.
1416 (WebCore::RenderBox::requiresLayer):
1417 Updated to call requiresLayerForOverflowClip.
1419 * rendering/RenderBoxModelObject.cpp:
1420 (WebCore::RenderBoxModelObject::ensureLayer):
1421 Added this function to create and add a new layer.
1423 (WebCore::RenderBoxModelObject::willBeDestroyed):
1424 (WebCore::RenderBoxModelObject::styleDidChange):
1425 Patched those method to handle updating / removing
1426 cached size entries.
1428 * rendering/RenderBoxModelObject.h:
1429 (WebCore::RenderBoxModelObject::requiresLayer):
1430 Pushed the overflowClip check down to RenderBox as only RenderBoxes can have
1433 * rendering/RenderTableRow.h:
1434 (WebCore::RenderTableRow::requiresLayer):
1435 Added a comment about why we need a layout for table rows.
1437 * rendering/RenderDeprecatedFlexibleBox.cpp:
1438 (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
1439 * rendering/RenderFlexibleBox.cpp:
1440 (WebCore::RenderFlexibleBox::layoutBlock):
1441 * rendering/RenderTableSection.cpp:
1442 (WebCore::RenderTableSection::layout):
1443 Updated those call sites to use RenderBlock::updateScrollInfoAfterLayout
1444 or RenderBox::updateCachedSizeForOverflowClip. The current logic is really
1445 not tight proof and would need to be rethought to not avoid cases.
1447 2012-03-07 Konrad Piascik <kpiascik@rim.com>
1449 [BlackBerry] Fix warnings in CookieMap
1450 https://bugs.webkit.org/show_bug.cgi?id=80512
1452 Reviewed by Rob Buis.
1454 No new tests. No behavioural changes.
1456 * platform/blackberry/CookieMap.cpp:
1457 (WebCore::CookieMap::addOrReplaceCookie):
1458 (WebCore::CookieMap::removeCookie):
1459 (WebCore::CookieMap::getAllCookies):
1460 (WebCore::CookieMap::updateOldestCookie):
1462 2012-03-07 Levi Weintraub <leviw@chromium.org>
1464 Update usage of LayoutUnits in InlineBox and InlineFlowBox
1465 https://bugs.webkit.org/show_bug.cgi?id=80051
1467 Reviewed by Eric Seidel.
1469 Updating LayoutUnit vs Integer usage in InlineBox and InlineFlowBox. While the
1470 line box tree remains floating point, margins are now subpixel, and rects from
1471 the render tree use LayoutUnits. For more information, see the LayoutUnit wiki
1472 page: https://trac.webkit.org/wiki/LayoutUnit
1474 No new tests. No change in behavior.
1476 * rendering/InlineBox.cpp:
1477 (WebCore::InlineBox::flipForWritingMode): Changing over to LayoutUnits.
1478 * rendering/InlineBox.h:
1480 * rendering/InlineFlowBox.cpp:
1481 (WebCore::InlineFlowBox::getFlowSpacingLogicalWidth): Returning a LayoutUnit
1482 instead of an integer, as it uses margin which is a LayoutUnit.
1483 (WebCore::InlineFlowBox::placeBoxesInInlineDirection): Using a LayoutUnit for
1485 (WebCore::InlineFlowBox::placeBoxesInBlockDirection): Build fixes for when
1486 LayoutUnits are subpixel.
1487 (WebCore::InlineFlowBox::paintFillLayer): Ditto.
1488 * rendering/InlineFlowBox.h:
1489 (WebCore::InlineFlowBox::marginBorderPaddingLogicalLeft): Returning a LayoutUnit
1490 instead of an integer since margin is a LayoutUnit.
1491 (WebCore::InlineFlowBox::marginBorderPaddingLogicalRight): Ditto.
1493 (WebCore::InlineFlowBox::logicalLeftLayoutOverflow): Adding a static_cast that's
1494 redundant now, but required when we switch to subpixel LayoutUnits.
1495 (WebCore::InlineFlowBox::logicalRightLayoutOverflow): Ditto.
1496 (WebCore::InlineFlowBox::logicalLeftVisualOverflow): Ditto.
1497 (WebCore::InlineFlowBox::logicalRightVisualOverflow): Ditto.
1499 2012-03-07 Qi Zhang <qi.2.zhang@nokia.com>
1501 [Qt] Unskip http/tests/websocket/tests/hixie76/long-invalid-header.html
1502 https://bugs.webkit.org/show_bug.cgi?id=80516
1504 Reviewed by Csaba Osztrogonác.
1506 Missed some files related to websocket, take them in.
1510 2012-03-05 Alexey Proskuryakov <ap@apple.com>
1512 Merge AsyncFileStream with FileStreamProxy
1513 https://bugs.webkit.org/show_bug.cgi?id=80325
1515 Reviewed by Filip Pizlo.
1517 AsyncFileStream sounds like a platform concept, but the implementation is web specific.
1518 Better to just keep it in one place.
1520 This is a step toward decoupling blob scheme support from ResourceHandle, which is supposed
1521 to be an interface to platform networking APIs only, and definitely shouldn't know about
1524 No change in functionality, so no tests.
1527 * GNUmakefile.list.am:
1530 * WebCore.vcproj/WebCore.vcproj:
1531 * WebCore.xcodeproj/project.pbxproj:
1532 Updated for moved and removed files. Namely, platform/AsyncFileStream is dead, and
1533 fileapi/FileStreamProxy is now fileapi/AsyncFileStream.
1535 * fileapi/AsyncFileStream.cpp: Copied from Source/WebCore/fileapi/FileStreamProxy.cpp.
1536 (WebCore::AsyncFileStream::AsyncFileStream):
1537 (WebCore::AsyncFileStream::create):
1538 (WebCore::AsyncFileStream::~AsyncFileStream):
1539 (WebCore::AsyncFileStream::fileThread):
1540 (WebCore::didStart):
1541 (WebCore::AsyncFileStream::startOnFileThread):
1542 (WebCore::AsyncFileStream::stop):
1543 (WebCore::derefProxyOnContext):
1544 (WebCore::AsyncFileStream::stopOnFileThread):
1545 (WebCore::didGetSize):
1546 (WebCore::AsyncFileStream::getSize):
1547 (WebCore::AsyncFileStream::getSizeOnFileThread):
1549 (WebCore::AsyncFileStream::openForRead):
1550 (WebCore::AsyncFileStream::openForReadOnFileThread):
1551 (WebCore::AsyncFileStream::openForWrite):
1552 (WebCore::AsyncFileStream::openForWriteOnFileThread):
1553 (WebCore::AsyncFileStream::close):
1554 (WebCore::AsyncFileStream::closeOnFileThread):
1556 (WebCore::AsyncFileStream::read):
1557 (WebCore::AsyncFileStream::readOnFileThread):
1558 (WebCore::didWrite):
1559 (WebCore::AsyncFileStream::write):
1560 (WebCore::AsyncFileStream::writeOnFileThread):
1561 (WebCore::didTruncate):
1562 (WebCore::AsyncFileStream::truncate):
1563 (WebCore::AsyncFileStream::truncateOnFileThread):
1564 * fileapi/AsyncFileStream.h: Copied from Source/WebCore/fileapi/FileStreamProxy.h.
1567 (WebCore::AsyncFileStream::client):
1568 (WebCore::AsyncFileStream::setClient):
1569 * fileapi/FileStreamProxy.cpp: Removed.
1570 * fileapi/FileStreamProxy.h: Removed.
1571 * loader/ResourceLoader.cpp:
1572 (WebCore::ResourceLoader::createAsyncFileStream):
1573 * platform/AsyncFileStream.h: Removed.
1576 * platform/network/BlobRegistry.h: Removed createResourceHandle(). It's logically a method
1577 on in-process BlobRegistryImpl only, and we no longer need to call this from platform code.
1579 * platform/network/BlobRegistryImpl.cpp:
1580 (WebCore::createResourceHandle):
1581 (WebCore::registerBlobResourceHandleConstructor):
1582 (WebCore::BlobRegistryImpl::registerBlobURL):
1583 * platform/network/BlobRegistryImpl.h:
1584 Except for chromium, "blob" is a scheme that's handled internally. Added hooks for that.
1586 * platform/network/ResourceHandle.cpp:
1587 (WebCore::builtinResourceHandleConstructorMap):
1588 (WebCore::ResourceHandle::registerBuiltinConstructor):
1589 (WebCore::ResourceHandle::create):
1590 * platform/network/ResourceHandle.h:
1591 Added a way for other code to register handlers for URL schemes. Non-Chromium platforms
1592 use this for blob: now.
1594 2012-03-07 Dan Bernstein <mitz@apple.com>
1596 <rdar://problem/10923294> REGRESSION (r100847): Entries are clipped out in Day One
1597 https://bugs.webkit.org/show_bug.cgi?id=80494
1599 Reviewed by Sam Weinig.
1601 Test: fast/dom/HTMLDocument/width-and-height.html
1603 * html/HTMLDocument.idl: Reverted r100847 by re-enabling the width and height properties
1604 in the JavaScript bindings.
1606 2012-03-07 Philippe Normand <pnormand@igalia.com>
1608 [GTK] media/audio-garbage-collect.html is flaky
1609 https://bugs.webkit.org/show_bug.cgi?id=72698
1611 Reviewed by Xan Lopez.
1613 Call ::hasPendingActivity() instead of ::paused() when checking if
1614 the audio element is still active. This is similar to what the
1615 image element (another ActiveDOMObject implementation) does just
1616 above. This contributes to fixing the audio-garbage-collect.html
1619 * bindings/js/JSNodeCustom.cpp:
1620 (WebCore::isReachableFromDOM):
1622 2012-03-07 Adele Peterson <adele@apple.com>
1624 REGRESSION(r96566): Cursor is I-beam upon dragging an attachment in mail
1625 https://bugs.webkit.org/show_bug.cgi?id=80458
1626 <rdar://problem/10873195>
1628 Reviewed by Dan Bernstein.
1630 No tests because we currently don't have any test machinery for cursors.
1632 Make sure the shortcut to always use an iBeam cursor during selection isn't used during dragging.
1633 Before r96566, we handled plugin cursors as a special case before calling into selectCursor, so we never hit this code path.
1635 * page/EventHandler.cpp: (WebCore::EventHandler::selectCursor):
1637 2012-03-07 ChangSeok Oh <shivamidow@gmail.com>
1639 [EFL] Key press event is not processed properly.
1640 https://bugs.webkit.org/show_bug.cgi?id=80491
1642 Reviewed by Gustavo Noronha Silva.
1644 This issue is related with mutation observer feature.
1645 If enter key is pressed, then a keyboard event should be processed
1646 and reach to the mutation observer, but it doesn't.
1647 Some special keys like Enter, Backspace and Tab key should be processed
1648 and change to a single character code, but EFL port hasn't handled like that.
1650 At least we can verify this with following two tests as I know. but they require another
1651 functionality for bug79601. I'm going to submit the patch for it after this one.
1653 Test: fast/mutation/end-of-task-delivery.html
1654 fast/mutation/inline-event-listener.html
1656 * platform/efl/EflKeyboardUtilities.cpp:
1657 (WebCore::singleCharacterString):
1659 * platform/efl/EflKeyboardUtilities.h:
1661 * platform/efl/PlatformKeyboardEventEfl.cpp:
1662 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
1664 2012-03-07 Gavin Peters <gavinp@chromium.org>
1666 Add Histograms for reporting on PageCache reject reasons
1667 https://bugs.webkit.org/show_bug.cgi?id=80187
1669 Enhance the PageCache debug mode so that it uses Histograms to
1670 report on causes of failure. Turn on the debug printing path
1671 even in non-debug Chromium builds, so these histograms will
1674 Reviewed by Brady Eidson.
1676 No new tests, does not change behaviour.
1678 * history/PageCache.cpp:
1680 (WebCore::logCanCacheFrameDecision):
1681 (WebCore::logCanCachePageDecision):
1682 (WebCore::PageCache::canCache):
1684 2012-03-07 Elliot Poger <epoger@google.com>
1686 [Chromium] Remove use_skia option from GYP
1687 https://bugs.webkit.org/show_bug.cgi?id=75811
1689 Reviewed by Tony Chang.
1691 * WebCore.gyp/WebCore.gyp:
1693 2012-03-07 Yoshifumi Inoue <yosin@chromium.org>
1695 [Forms] Introduce LabelableElement to share "labels" attribute implementation
1696 https://bugs.webkit.org/show_bug.cgi?id=80392
1698 Reviewed by Kent Tamura.
1700 This patch introduces new class LabelableElement as base class of
1701 HTMLFormControlElement for sharing implementation of "labels"
1702 attribute among form-associate elements, "meter" element, and
1705 This patch allows us to change base class of HTMLMeterElement and
1706 HTMLProgressElement dervied from HTMLFormControlElement to
1707 HTMLElement for remove them from HTMLFormElement::m_associatedFormElements
1708 where we don't need to put "meter" and "progress" elements(bug 80381.)
1710 This patch also changes implementation of isLabelable using virtual
1711 method rather than sequence of hasTagName for execution speed and
1714 No new tests are required. No behavior changes.
1716 * CMakeLists.txt: Add LabelableElement.cpp and .h
1717 * GNUmakefile.list.am: Add LabelableElement.cpp and .h
1718 * Target.pri: Add LabelableElement.cpp and .h
1719 * WebCore.gypi: Add LabelableElement.cpp and .h
1720 * WebCore.vcproj/WebCore.vcproj: Add LabelableElement.cpp and .h
1721 * WebCore.xcodeproj/project.pbxproj: Add LabelableElement.cpp and .h
1722 * html/HTMLButtonElement.h: Implement isLabelable.
1723 * html/HTMLFormControlElement.cpp:
1724 (WebCore::HTMLFormControlElement::HTMLFormControlElement): Change direct base class.
1725 * html/HTMLFormControlElement.h:
1726 (HTMLFormControlElement): Change direct base class.
1727 * html/HTMLInputElement.cpp:
1728 (WebCore::HTMLInputElement::isLabelable): Removed to use virtual method instead of hasTagName.
1730 * html/HTMLInputElement.h: Declaration of isLabelable.
1731 * html/HTMLKeygenElement.h: Implement isLabelable.
1732 * html/HTMLMeterElement.h: Implement isLabelable.
1733 * html/HTMLProgressElement.h: Implement isLabelable.
1734 * html/HTMLSelectElement.h: Implement isLabelable.
1735 * html/HTMLTextAreaElement.h: Implement isLabelable.
1736 * html/LabelableElement.cpp: Added.
1738 (WebCore::LabelableElement::LabelableElement):
1739 (WebCore::LabelableElement::~LabelableElement):
1740 (WebCore::LabelableElement::labels): Moved from HTMLFormControlElement.
1741 * html/LabelableElement.h: Added.
1745 2012-03-07 Arun Patole <bmf834@motorola.com>
1747 HTMLTrackElement.idl doesn't have default attribute.
1748 https://bugs.webkit.org/show_bug.cgi?id=80116
1750 Reviewed by Kentaro Hara.
1752 Renamed isDefault to 'default' so that in JS, it will be track.default instead of track.isDefault.
1753 * html/HTMLTrackElement.idl:
1755 2012-03-07 Zoltan Horvath <zoltan@webkit.org>
1757 [Qt] Add qmake config tests for JPEG and PNG library
1758 https://bugs.webkit.org/show_bug.cgi?id=80398
1760 Reviewed by Tor Arne Vestbø.
1762 Add JPEG and PNG library tests to config.tests and
1763 add error() abort to WebCore.pri if tests don't work.
1767 2012-03-06 Pavel Podivilov <podivilov@chromium.org>
1769 Web Inspector: extract source mapping logic from DebuggerPresentationModel to ScriptMappingImpl.
1770 https://bugs.webkit.org/show_bug.cgi?id=80412
1772 Reviewed by Vsevolod Vlasov.
1775 * WebCore.vcproj/WebCore.vcproj:
1776 * inspector/compile-front-end.sh:
1777 * inspector/front-end/ScriptMapping.js:
1778 (WebInspector.ScriptMappingImpl):
1779 (WebInspector.ScriptMappingImpl.prototype.rawLocationToUILocation):
1780 (WebInspector.ScriptMappingImpl.prototype.createLiveLocation):
1781 (WebInspector.ScriptMappingImpl.prototype.uiSourceCodeList):
1782 (WebInspector.ScriptMappingImpl.prototype._handleUISourceCodeListChanged):
1783 (WebInspector.ScriptMappingImpl.prototype._uiSourceCodeListChanged):
1784 (WebInspector.ScriptMappingImpl.prototype._bindScriptToRawSourceCode):
1785 (WebInspector.ScriptMappingImpl.prototype.setFormatSource):
1786 (WebInspector.ScriptMappingImpl.prototype.forceUpdateSourceMapping):
1787 (WebInspector.ScriptMappingImpl.prototype.reset):
1789 2012-03-07 Mark Rowe <mrowe@apple.com>
1791 Fix DerivedSources.make to not assume that WTF and WebCore build in to the same build directory.
1793 We can't assume that wtf/Platform.h can be found inside BUILT_PRODUCTS_DIR as
1794 that won't be the case if WTF and WebCore are building in to different build
1795 directories. We should instead look for wtf/Platform.h in the header search path.
1797 Unreviewed due to being a build fix.
1799 * DerivedSources.make: Set up the header search path, and invoke the compiler in
1800 such a manner that it looks for wtf/Platform.h in that search path.
1802 2012-03-07 Robin Cao <robin.cao@torchmobile.com.cn>
1804 [BlackBerry] Upstream Texture and TextureCache
1805 https://bugs.webkit.org/show_bug.cgi?id=80121
1807 Reviewed by Rob Buis.
1809 Initial upstream, no new tests.
1811 * platform/graphics/blackberry/Texture.cpp: Added.
1813 (WebCore::copyImageData):
1814 (WebCore::Texture::Texture):
1815 (WebCore::Texture::~Texture):
1816 (WebCore::Texture::updateContents):
1817 (WebCore::Texture::setContentsToColor):
1818 (WebCore::Texture::protect):
1819 * platform/graphics/blackberry/Texture.h: Added.
1822 (WebCore::Texture::create):
1823 (WebCore::Texture::textureId):
1824 (WebCore::Texture::isDirty):
1825 (WebCore::Texture::hasTexture):
1826 (WebCore::Texture::isColor):
1827 (WebCore::Texture::isOpaque):
1828 (WebCore::Texture::isProtected):
1829 (WebCore::Texture::protect):
1830 (WebCore::Texture::unprotect):
1831 (WebCore::Texture::size):
1832 (WebCore::Texture::width):
1833 (WebCore::Texture::height):
1834 (WebCore::Texture::bytesPerPixel):
1835 (WebCore::Texture::setTextureId):
1836 * platform/graphics/blackberry/TextureCacheCompositingThread.cpp: Added.
1839 (WebCore::TextureProtector::TextureProtector):
1840 (WebCore::TextureProtector::~TextureProtector):
1841 (WebCore::TextureCacheCompositingThread::TextureCacheCompositingThread):
1842 (WebCore::TextureCacheCompositingThread::allocateTextureId):
1843 (WebCore::TextureCacheCompositingThread::freeTextureId):
1844 (WebCore::TextureCacheCompositingThread::collectGarbage):
1845 (WebCore::TextureCacheCompositingThread::textureResized):
1846 (WebCore::TextureCacheCompositingThread::textureDestroyed):
1847 (WebCore::TextureCacheCompositingThread::install):
1848 (WebCore::TextureCacheCompositingThread::evict):
1849 (WebCore::TextureCacheCompositingThread::textureAccessed):
1850 (WebCore::textureCacheCompositingThread):
1851 (WebCore::TextureCacheCompositingThread::prune):
1852 (WebCore::TextureCacheCompositingThread::clear):
1853 (WebCore::TextureCacheCompositingThread::setMemoryUsage):
1854 (WebCore::TextureCacheCompositingThread::textureForTiledContents):
1855 (WebCore::TextureCacheCompositingThread::textureForColor):
1856 (WebCore::TextureCacheCompositingThread::updateContents):
1857 (WebCore::TextureCacheCompositingThread::key):
1858 * platform/graphics/blackberry/TextureCacheCompositingThread.h: Added.
1860 (TextureCacheCompositingThread):
1861 (WebCore::TextureCacheCompositingThread::createTexture):
1862 (WebCore::TextureCacheCompositingThread::memoryUsage):
1863 (WebCore::TextureCacheCompositingThread::memoryLimit):
1864 (WebCore::TextureCacheCompositingThread::setMemoryLimit):
1865 (WebCore::TextureCacheCompositingThread::prune):
1866 (WebCore::TextureCacheCompositingThread::ZombieTexture::ZombieTexture):
1868 (WebCore::TextureCacheCompositingThread::incMemoryUsage):
1869 (WebCore::TextureCacheCompositingThread::decMemoryUsage):
1870 (WebCore::TextureCacheCompositingThread::ColorHash::hash):
1871 (WebCore::TextureCacheCompositingThread::ColorHash::equal):
1874 (WebCore::TextureCacheCompositingThread::ColorHashTraits::constructDeletedValue):
1875 (WebCore::TextureCacheCompositingThread::ColorHashTraits::isDeletedValue):
1877 2012-03-07 Kenichi Ishibashi <bashi@chromium.org>
1879 [WebSocket] Should raise SYNTAX_ERR when message contains unpaired surrogates
1880 https://bugs.webkit.org/show_bug.cgi?id=80103
1882 Reviewed by Kent Tamura.
1884 Add UTF8 validation checks for WebSocket message and close reason.
1886 Tests: http/tests/websocket/tests/hybi/unpaired-surrogates-in-close-reason.html
1887 http/tests/websocket/tests/hybi/unpaired-surrogates-in-message.html
1889 * Modules/websockets/WebSocket.cpp:
1890 (WebCore::WebSocket::send): Raise SYNTAX_ERR if the message is invalid.
1891 (WebCore::WebSocket::close):Raise SYNTAX_ERR if the reason is invalid.
1892 * Modules/websockets/WebSocketChannel.cpp:
1893 (WebCore::WebSocketChannel::send): Check whether message is a valid UTF8 string.
1895 2012-03-07 Byungwoo Lee <bw80.lee@samsung.com>
1897 [EFL] Build warning: Fix warn_unused_result warnings.
1898 https://bugs.webkit.org/show_bug.cgi?id=79194
1900 Reviewed by Filip Pizlo.
1902 Fixed build warning which is getting generated when not using return
1903 value of a fuction, especially declared with warn_unused_result
1906 * platform/efl/SharedBufferEfl.cpp:
1907 (WebCore::SharedBuffer::createWithContentsOfFile):
1909 2012-03-07 Kent Tamura <tkent@chromium.org>
1911 Cleanup of RenderTextControl::adjustControlHeightBasedOnLineHeight()
1912 https://bugs.webkit.org/show_bug.cgi?id=80480
1914 Reviewed by Hajime Morita.
1916 The callsite of adjustControlHeightBasedOnLineHeight() stored
1917 padding+border+margin height of the inner text in height(), and
1918 adjustControlHeightBasedOnLineHeight() implementations refered it. It
1919 was unreasonable and hard to understand.
1921 The purpose of adjustControlHeightBasedOnLineHeight() is to compute
1922 - the maximum height of line-heights of the inner text and decorations
1923 - the maximum height of padding+border+margin heights of the inner text and decorations,
1924 and to sum them up. This patch rewrites the code to make it understood easily.
1926 adjustControlHeightBasedOnLineHeight() is renamed to
1927 computeControlheight(), it takes additional parameter of
1928 padding+boder+margin height, and returns the sum of them.
1932 * rendering/RenderTextControl.cpp:
1933 (WebCore::RenderTextControl::computeLogicalHeight):
1934 * rendering/RenderTextControl.h:
1935 (RenderTextControl):
1936 * rendering/RenderTextControlMultiLine.cpp:
1937 (WebCore::RenderTextControlMultiLine::computeControlHeight):
1938 * rendering/RenderTextControlMultiLine.h:
1939 (RenderTextControlMultiLine):
1940 * rendering/RenderTextControlSingleLine.cpp:
1941 (WebCore::RenderTextControlSingleLine::computeControlHeight):
1942 * rendering/RenderTextControlSingleLine.h:
1943 (RenderTextControlSingleLine):
1945 2012-03-06 Eric Seidel <eric@webkit.org>
1947 Make WTF public headers use fully-qualified include paths and remove ForwardingHeaders/wtf
1948 https://bugs.webkit.org/show_bug.cgi?id=80363
1950 Reviewed by Mark Rowe.
1952 ForwardingHeaders/wtf is no longer needed (or functional) now that
1953 JavaScriptCore no longer includes the WTF headers as private headers.
1955 * DerivedSources.make:
1956 * ForwardingHeaders/wtf/ASCIICType.h: Removed.
1957 * ForwardingHeaders/wtf/AVLTree.h: Removed.
1958 * ForwardingHeaders/wtf/Alignment.h: Removed.
1959 * ForwardingHeaders/wtf/AlwaysInline.h: Removed.
1960 * ForwardingHeaders/wtf/ArrayBuffer.h: Removed.
1961 * ForwardingHeaders/wtf/ArrayBufferView.h: Removed.
1962 * ForwardingHeaders/wtf/Assertions.h: Removed.
1963 * ForwardingHeaders/wtf/Atomics.h: Removed.
1964 * ForwardingHeaders/wtf/Bitmap.h: Removed.
1965 * ForwardingHeaders/wtf/BloomFilter.h: Removed.
1966 * ForwardingHeaders/wtf/BumpPointerAllocator.h: Removed.
1967 * ForwardingHeaders/wtf/ByteArray.h: Removed.
1968 * ForwardingHeaders/wtf/CheckedArithmetic.h: Removed.
1969 * ForwardingHeaders/wtf/CheckedBoolean.h: Removed.
1970 * ForwardingHeaders/wtf/Compiler.h: Removed.
1971 * ForwardingHeaders/wtf/Complex.h: Removed.
1972 * ForwardingHeaders/wtf/CryptographicallyRandomNumber.h: Removed.
1973 * ForwardingHeaders/wtf/CurrentTime.h: Removed.
1974 * ForwardingHeaders/wtf/DataLog.h: Removed.
1975 * ForwardingHeaders/wtf/DateInstanceCache.h: Removed.
1976 * ForwardingHeaders/wtf/DateMath.h: Removed.
1977 * ForwardingHeaders/wtf/DecimalNumber.h: Removed.
1978 * ForwardingHeaders/wtf/Decoder.h: Removed.
1979 * ForwardingHeaders/wtf/Deque.h: Removed.
1980 * ForwardingHeaders/wtf/DisallowCType.h: Removed.
1981 * ForwardingHeaders/wtf/DoublyLinkedList.h: Removed.
1982 * ForwardingHeaders/wtf/DynamicAnnotations.h: Removed.
1983 * ForwardingHeaders/wtf/Encoder.h: Removed.
1984 * ForwardingHeaders/wtf/ExportMacros.h: Removed.
1985 * ForwardingHeaders/wtf/FastAllocBase.h: Removed.
1986 * ForwardingHeaders/wtf/FastMalloc.h: Removed.
1987 * ForwardingHeaders/wtf/FixedArray.h: Removed.
1988 * ForwardingHeaders/wtf/Float32Array.h: Removed.
1989 * ForwardingHeaders/wtf/Float64Array.h: Removed.
1990 * ForwardingHeaders/wtf/Forward.h: Removed.
1991 * ForwardingHeaders/wtf/Functional.h: Removed.
1992 * ForwardingHeaders/wtf/GetPtr.h: Removed.
1993 * ForwardingHeaders/wtf/HashCountedSet.h: Removed.
1994 * ForwardingHeaders/wtf/HashFunctions.h: Removed.
1995 * ForwardingHeaders/wtf/HashMap.h: Removed.
1996 * ForwardingHeaders/wtf/HashSet.h: Removed.
1997 * ForwardingHeaders/wtf/HashTable.h: Removed.
1998 * ForwardingHeaders/wtf/HashTraits.h: Removed.
1999 * ForwardingHeaders/wtf/HexNumber.h: Removed.
2000 * ForwardingHeaders/wtf/Int16Array.h: Removed.
2001 * ForwardingHeaders/wtf/Int32Array.h: Removed.
2002 * ForwardingHeaders/wtf/Int8Array.h: Removed.
2003 * ForwardingHeaders/wtf/ListHashSet.h: Removed.
2004 * ForwardingHeaders/wtf/ListRefPtr.h: Removed.
2005 * ForwardingHeaders/wtf/Locker.h: Removed.
2006 * ForwardingHeaders/wtf/MD5.h: Removed.
2007 * ForwardingHeaders/wtf/MainThread.h: Removed.
2008 * ForwardingHeaders/wtf/MathExtras.h: Removed.
2009 * ForwardingHeaders/wtf/MessageQueue.h: Removed.
2010 * ForwardingHeaders/wtf/MetaAllocator.h: Removed.
2011 * ForwardingHeaders/wtf/MetaAllocatorHandle.h: Removed.
2012 * ForwardingHeaders/wtf/NonCopyingSort.h: Removed.
2013 * ForwardingHeaders/wtf/Noncopyable.h: Removed.
2014 * ForwardingHeaders/wtf/NotFound.h: Removed.
2015 * ForwardingHeaders/wtf/OSAllocator.h: Removed.
2016 * ForwardingHeaders/wtf/OwnArrayPtr.h: Removed.
2017 * ForwardingHeaders/wtf/OwnPtr.h: Removed.
2018 * ForwardingHeaders/wtf/OwnPtrCommon.h: Removed.
2019 * ForwardingHeaders/wtf/PageAllocation.h: Removed.
2020 * ForwardingHeaders/wtf/PageAllocationAligned.h: Removed.
2021 * ForwardingHeaders/wtf/PageBlock.h: Removed.
2022 * ForwardingHeaders/wtf/PageReservation.h: Removed.
2023 * ForwardingHeaders/wtf/ParallelJobs.h: Removed.
2024 * ForwardingHeaders/wtf/PassOwnArrayPtr.h: Removed.
2025 * ForwardingHeaders/wtf/PassOwnPtr.h: Removed.
2026 * ForwardingHeaders/wtf/PassRefPtr.h: Removed.
2027 * ForwardingHeaders/wtf/Platform.h: Removed.
2028 * ForwardingHeaders/wtf/PossiblyNull.h: Removed.
2029 * ForwardingHeaders/wtf/RandomNumber.h: Removed.
2030 * ForwardingHeaders/wtf/RedBlackTree.h: Removed.
2031 * ForwardingHeaders/wtf/RefCounted.h: Removed.
2032 * ForwardingHeaders/wtf/RefCountedLeakCounter.h: Removed.
2033 * ForwardingHeaders/wtf/RefPtr.h: Removed.
2034 * ForwardingHeaders/wtf/RetainPtr.h: Removed.
2035 * ForwardingHeaders/wtf/SHA1.h: Removed.
2036 * ForwardingHeaders/wtf/SegmentedVector.h: Removed.
2037 * ForwardingHeaders/wtf/SimpleStats.h: Removed.
2038 * ForwardingHeaders/wtf/Spectrum.h: Removed.
2039 * ForwardingHeaders/wtf/StackBounds.h: Removed.
2040 * ForwardingHeaders/wtf/StaticConstructors.h: Removed.
2041 * ForwardingHeaders/wtf/StdLibExtras.h: Removed.
2042 * ForwardingHeaders/wtf/StringExtras.h: Removed.
2043 * ForwardingHeaders/wtf/StringHasher.h: Removed.
2044 * ForwardingHeaders/wtf/TemporaryChange.h: Removed.
2045 * ForwardingHeaders/wtf/ThreadRestrictionVerifier.h: Removed.
2046 * ForwardingHeaders/wtf/ThreadSafeRefCounted.h: Removed.
2047 * ForwardingHeaders/wtf/ThreadSpecific.h: Removed.
2048 * ForwardingHeaders/wtf/Threading.h: Removed.
2049 * ForwardingHeaders/wtf/ThreadingPrimitives.h: Removed.
2050 * ForwardingHeaders/wtf/TypeTraits.h: Removed.
2051 * ForwardingHeaders/wtf/Uint16Array.h: Removed.
2052 * ForwardingHeaders/wtf/Uint32Array.h: Removed.
2053 * ForwardingHeaders/wtf/Uint8Array.h: Removed.
2054 * ForwardingHeaders/wtf/Uint8ClampedArray.h: Removed.
2055 * ForwardingHeaders/wtf/UnusedParam.h: Removed.
2056 * ForwardingHeaders/wtf/VMTags.h: Removed.
2057 * ForwardingHeaders/wtf/ValueCheck.h: Removed.
2058 * ForwardingHeaders/wtf/Vector.h: Removed.
2059 * ForwardingHeaders/wtf/VectorTraits.h: Removed.
2060 * ForwardingHeaders/wtf/WTFThreadData.h: Removed.
2061 * ForwardingHeaders/wtf/dtoa.h: Removed.
2062 * ForwardingHeaders/wtf/dtoa/double-conversion.h: Removed.
2063 * ForwardingHeaders/wtf/text/ASCIIFastPath.h: Removed.
2064 * ForwardingHeaders/wtf/text/AtomicString.h: Removed.
2065 * ForwardingHeaders/wtf/text/AtomicStringHash.h: Removed.
2066 * ForwardingHeaders/wtf/text/AtomicStringImpl.h: Removed.
2067 * ForwardingHeaders/wtf/text/CString.h: Removed.
2068 * ForwardingHeaders/wtf/text/StringBuffer.h: Removed.
2069 * ForwardingHeaders/wtf/text/StringBuilder.h: Removed.
2070 * ForwardingHeaders/wtf/text/StringConcatenate.h: Removed.
2071 * ForwardingHeaders/wtf/text/StringHash.h: Removed.
2072 * ForwardingHeaders/wtf/text/StringImpl.h: Removed.
2073 * ForwardingHeaders/wtf/text/TextPosition.h: Removed.
2074 * ForwardingHeaders/wtf/text/WTFString.h: Removed.
2075 * ForwardingHeaders/wtf/unicode/CharacterNames.h: Removed.
2076 * ForwardingHeaders/wtf/unicode/Collator.h: Removed.
2077 * ForwardingHeaders/wtf/unicode/UTF8.h: Removed.
2078 * ForwardingHeaders/wtf/unicode/Unicode.h: Removed.
2079 * ForwardingHeaders/wtf/unicode/icu/UnicodeIcu.h: Removed.
2080 * ForwardingHeaders/wtf/unicode/wince/UnicodeWince.h: Removed.
2081 * ForwardingHeaders/wtf/url/ParsedURL.h: Removed.
2083 2012-03-07 Yoshifumi Inoue <yosin@chromium.org>
2085 [Forms] The "legend" element should not be a form-associated element.
2086 https://bugs.webkit.org/show_bug.cgi?id=80239
2088 Reviewed by Kent Tamura.
2090 This patch changes base class of HTMLLegendElement to HTMLElement from
2091 HTMLFormControlElement for saving memory space and iteration time of
2092 extra "legend" elements in HTMLFormElement::m_formAssociatedElements
2093 and matching the HTML5 specification for ease of maintenance.
2095 Changes of TextIterator is lead by usage of isFormControlElement. This
2096 changes will be replaced with more meaningful predicate as part of
2097 https://bugs.webkit.org/show_bug.cgi?id=80381
2099 No new tests are required. No behavior changes.
2101 * editing/TextIterator.cpp:
2102 (WebCore::TextIterator::advance): Check HTMLLegendElement in addition to isFormControlElement. This change is for text dump in LayoutTests implemented by document.innerText attribute.
2103 * html/HTMLLegendElement.cpp:
2104 (WebCore::HTMLLegendElement::HTMLLegendElement): Remove form parameter.
2105 (WebCore::HTMLLegendElement::create): Remove form parameter.
2106 (WebCore::HTMLLegendElement::associatedControl): Stop checking legend element, because HTMLLegendElement is no longer HTMLFormControlElement.
2107 (WebCore::HTMLLegendElement::supportFocus): Removed. It called HTMLElement::supportFocus.
2108 (WebCore::HTMLLegendElement::formControlType): Remove implementation of virtual method declared in HTMLFormControlElement.
2109 * html/HTMLLegendElement.h:
2110 (HTMLLegendElement): Change base class to HTMLElement.
2111 * html/HTMLTagNames.in: Remove "constructorNeedsFormElement" for not passing "form" parameter in HTMLElementFactory.
2113 2012-03-06 Raphael Kubo da Costa <kubo@profusion.mobi>
2115 [CMake] Make the removal of transitive library dependencies work with CMake < 2.8.7.
2116 https://bugs.webkit.org/show_bug.cgi?id=80469
2118 Reviewed by Antonio Gomes.
2120 No new tests, this is a buildsystem change.
2122 * CMakeLists.txt: Manually set the LINK_INTERFACE_LIBRARIES target
2123 property on the library being created.
2125 2012-03-06 Lianghui Chen <liachen@rim.com>
2127 [BlackBerry] Set correct ResourceRequest target type.
2128 https://bugs.webkit.org/show_bug.cgi?id=80430
2130 Reviewed by Rob Buis.
2132 For loads started by AppCache, they are based on the manifest file,
2133 it is not definitely sure what target it is for, so we just guess
2134 based on its mimetype or file extension.
2136 * loader/appcache/ApplicationCacheGroup.cpp:
2137 (WebCore::ApplicationCacheGroup::createResourceHandle):
2138 * loader/cache/CachedResource.cpp:
2140 (WebCore::CachedResource::load):
2141 * platform/network/blackberry/ResourceRequest.h:
2143 * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
2145 (WebCore::mimeTypeRequestTypeMap):
2146 (WebCore::ResourceRequest::targetTypeFromMimeType):
2147 * workers/DefaultSharedWorkerRepository.cpp:
2148 (WebCore::SharedWorkerScriptLoader::load):
2149 * workers/Worker.cpp:
2150 (WebCore::Worker::create):
2151 * workers/WorkerContext.cpp:
2152 (WebCore::WorkerContext::importScripts):
2153 * workers/WorkerScriptLoader.cpp:
2154 (WebCore::WorkerScriptLoader::createResourceRequest):
2155 * workers/WorkerScriptLoader.h:
2156 (WorkerScriptLoader):
2158 2012-03-06 Dana Jansens <danakj@chromium.org>
2160 [chromium] Add clipping to scissor rect to CCOcclusionTracker
2161 https://bugs.webkit.org/show_bug.cgi?id=79927
2163 Reviewed by Adrienne Walker.
2165 Adds logic to CCOcclusionTracker to occlude anything outside of the
2166 current screen and target surface scissor rects. When tracking
2167 damage for partial swaps, the scissor rects are bounded by the
2168 tracked damage rects.
2170 Unit tests: CCOcclusionTrackerTest.cpp
2172 * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
2173 (WebCore::::CCOcclusionTrackerBase):
2175 (WebCore::::markOccludedBehindLayer):
2176 (WebCore::testContentRectOccluded):
2177 (WebCore::::occluded):
2178 (WebCore::computeUnoccludedContentRect):
2179 (WebCore::::unoccludedContentRect):
2180 (WebCore::::layerScissorRect):
2181 * platform/graphics/chromium/cc/CCOcclusionTracker.h:
2183 (CCOcclusionTrackerDamageClientBase):
2184 (CCOcclusionTrackerBase):
2186 2012-03-06 Kentaro Hara <haraken@chromium.org>
2188 Unreviewed, rolling out r110011.
2189 http://trac.webkit.org/changeset/110011
2190 https://bugs.webkit.org/show_bug.cgi?id=80376
2194 * bindings/v8/V8HiddenPropertyName.cpp:
2196 (WebCore::V8HiddenPropertyName::hiddenReferenceName):
2197 * bindings/v8/V8HiddenPropertyName.h:
2199 (V8HiddenPropertyName):
2200 * bindings/v8/custom/V8DOMStringMapCustom.cpp:
2202 * bindings/v8/custom/V8DOMTokenListCustom.cpp:
2204 * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
2207 2012-03-06 Kentaro Hara <haraken@chromium.org>
2209 Unreviewed, rolling out r110016.
2210 http://trac.webkit.org/changeset/110016
2214 * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
2217 2012-03-06 Kentaro Hara <haraken@chromium.org>
2219 Unreviewed, fixed test crashes.
2221 * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
2224 2012-03-06 Hajime Morrita <morrita@chromium.org>
2226 https://bugs.webkit.org/show_bug.cgi?id=79935
2227 REGRESSION: <content> element is not HTMLUnknownElement when Shadow DOM API is disabled
2229 Reviewed by Adam Barth.
2231 This change introduced "runtimeConditional" keyword to make_name.pl sources,
2232 which allows HTMLElementFactory and HTMLElementWrapperFactory to check RuntimeEnabledFeatures
2233 and treat any tag name as HTMLUnknownElement if its definition has runtimeConditional and
2234 the flag given is turned off.
2236 Test: fast/dom/shadow/content-shadow-unknown.html
2239 * dom/make_names.pl:
2240 (defaultTagPropertyHash):
2241 (printConstructorInterior):
2242 (printFactoryCppFile):
2243 (printWrapperFunctions):
2244 (printWrapperFactoryCppFile):
2245 * html/HTMLTagNames.in:
2246 * html/shadow/HTMLContentElement.cpp:
2247 (WebCore::contentTagName):
2248 * testing/InternalSettings.cpp:
2249 (WebCore::InternalSettings::InternalSettings):
2250 (WebCore::InternalSettings::restoreTo):
2251 (WebCore::InternalSettings::setShadowDOMEnabled):
2253 * testing/InternalSettings.h:
2255 * testing/InternalSettings.idl:
2257 2012-03-06 Kenichi Ishibashi <bashi@chromium.org>
2259 [WebSocket] Introduce ThreadableWebSocketChannel::SendResult
2260 https://bugs.webkit.org/show_bug.cgi?id=80356
2262 Reviewed by Kent Tamura.
2264 Introduced ThreadableWebSocketChannel::SendResult type so that
2265 WebSocketChannel can pass the validation result.
2267 No new test. No changes in behavior.
2269 * Modules/websockets/ThreadableWebSocketChannel.h: Added SendResult.
2270 * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
2271 (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
2272 (WebCore::ThreadableWebSocketChannelClientWrapper::sendRequestResult): Use ThreadableWebSocketChannel::SendResult instead of bool.
2273 (WebCore::ThreadableWebSocketChannelClientWrapper::setSendRequestResult): Ditto.
2274 * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
2275 (ThreadableWebSocketChannelClientWrapper):
2276 * Modules/websockets/WebSocketChannel.cpp:
2277 (WebCore::WebSocketChannel::send): Use ThreadableWebSocketChannel::SendResult instead of bool. Pass Cstring to enqueTextFrame instead of String.
2278 (WebCore::WebSocketChannel::enqueueTextFrame): Ditto.
2279 (WebCore::WebSocketChannel::processOutgoingFrameQueue): Ditto.
2280 * Modules/websockets/WebSocketChannel.h:
2282 (QueuedFrame): Changed the type of stringData from String to CString.
2283 * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
2284 (WebCore::WorkerThreadableWebSocketChannel::send): Use ThreadableWebSocketChannel::SendResult instead of bool.
2285 (WebCore::workerContextDidSend): Ditto.
2286 (WebCore::WorkerThreadableWebSocketChannel::Peer::send): Ditto.
2287 (WebCore::WorkerThreadableWebSocketChannel::Bridge::send): Ditto.
2288 * Modules/websockets/WorkerThreadableWebSocketChannel.h:
2289 (WorkerThreadableWebSocketChannel): ditto.
2292 2012-03-06 Kentaro Hara <haraken@chromium.org>
2294 [V8][Performance] Optimize V8 bindings for HTMLElement.classList,
2295 Element.dataset and Node.attributes
2296 https://bugs.webkit.org/show_bug.cgi?id=80376
2298 Reviewed by Adam Barth.
2300 This patch improves the performance of HTMLElement.classList, Element.dataset
2301 and Node.attributes by 6.4 times, 7.1 times and 10.9 times, respectively.
2303 Previously, a 'hiddenReferenceName' string was allocated on v8::Handle and
2304 created every time the DOM attribute is accessed, in spite of the fact that
2305 the 'hiddenReferenceName' string is static.
2307 This patch moves the 'hiddenReferenceName' string to v8::Persistent and makes it static.
2308 Also, this patch removes 'if (!elementValue.IsEmpty() && elementValue->IsObject())',
2309 since if 'element' exists, it is guaranteed that 'elementValue' is not empty
2312 Performance tests: https://bugs.webkit.org/attachment.cgi?id=130283
2314 AppleWebKit/JavaScriptCore:
2315 div.classList : 382ms
2316 div.classList.foo = 123 : 335ms
2318 div.dataset.foo = 123 : 5250ms
2319 div.attributes : 183ms
2321 Chromium/V8 (without this patch):
2322 div.classList : 9140ms
2323 div.classList.foo = 123 : 9086ms
2324 div.dataset : 9930ms
2325 div.dataset.foo = 123 : 49698ms
2326 div.attributes : 13489ms
2328 Chromium/V8 (with this patch):
2329 div.classList : 1435ms
2330 div.classList.foo = 123 : 1470ms
2331 div.dataset : 1400ms
2332 div.dataset.foo = 123 : 30396ms
2333 div.attributes : 1242ms
2335 No tests. No change in behavior.
2337 * bindings/v8/custom/V8DOMStringMapCustom.cpp: Modified as described above.
2339 * bindings/v8/custom/V8DOMTokenListCustom.cpp: Ditto.
2341 * bindings/v8/custom/V8NamedNodeMapCustom.cpp: Ditto.
2344 * bindings/v8/V8HiddenPropertyName.cpp: Defined a hidden property name string statically
2345 to optimize the macro.
2347 (WebCore::V8HiddenPropertyName::hiddenReferenceName):
2348 * bindings/v8/V8HiddenPropertyName.h: Modified to switch two prefixes "WebCore::HiddenProperty::"
2349 and "WebCore::HiddenReference::", depending on whether a given name represents a hidden property
2350 or a hidden reference.
2352 (V8HiddenPropertyName):
2354 2012-03-06 Nat Duca <nduca@chromium.org>
2356 [chromium] CCThreadProxy context lost support
2357 https://bugs.webkit.org/show_bug.cgi?id=80100
2359 Reviewed by James Robinson.
2361 * platform/graphics/chromium/cc/CCScheduler.cpp:
2362 (WebCore::CCScheduler::didLoseContext):
2364 (WebCore::CCScheduler::didRecreateContext):
2365 (WebCore::CCScheduler::processScheduledActions):
2366 * platform/graphics/chromium/cc/CCScheduler.h:
2367 (CCSchedulerClient):
2369 * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
2370 (WebCore::CCSchedulerStateMachine::CCSchedulerStateMachine):
2371 (WebCore::CCSchedulerStateMachine::nextAction):
2372 (WebCore::CCSchedulerStateMachine::updateState):
2373 (WebCore::CCSchedulerStateMachine::vsyncCallbackNeeded):
2374 (WebCore::CCSchedulerStateMachine::didLoseContext):
2376 (WebCore::CCSchedulerStateMachine::didRecreateContext):
2377 * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
2378 (CCSchedulerStateMachine):
2379 * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2380 (WebCore::CCThreadProxy::recreateContext):
2381 (WebCore::CCThreadProxy::loseContext):
2382 (WebCore::CCThreadProxy::scheduledActionBeginContextRecreation):
2384 (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
2385 (WebCore::CCThreadProxy::setAnimationEvents):
2386 (WebCore::CCThreadProxy::beginContextRecreation):
2387 (WebCore::CCThreadProxy::recreateContextOnImplThread):
2388 (WebCore::CCThreadProxy::loseContextOnImplThread):
2389 * platform/graphics/chromium/cc/CCThreadProxy.h:
2392 2012-03-06 Tony Chang <tony@chromium.org>
2394 refactor method names in RenderFlexibleBox to make them more consistent
2395 https://bugs.webkit.org/show_bug.cgi?id=80446
2397 Reviewed by Ojan Vafai.
2399 No new tests, just renaming internal methods.
2401 * rendering/RenderFlexibleBox.cpp:
2402 (WebCore::RenderFlexibleBox::flowAwareBorderAfter): New, used by layoutAndPlaceChildren
2403 (WebCore::RenderFlexibleBox::flowAwarePaddingAfter): New, used by layoutAndPlaceChildren
2404 (WebCore::RenderFlexibleBox::marginBoxAscentForChild): Add ForChild for consistency.
2405 (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): We were adding the before padding+border twice (it's in the offset and
2406 crossAxisBorderAndPaddingExtent() and subtracting it once. Instead, just add the after padding+border.
2407 (WebCore::RenderFlexibleBox::alignChildren):
2408 * rendering/RenderFlexibleBox.h:
2409 (RenderFlexibleBox): Reorder methods to match the .cpp file.
2411 2012-03-06 Kentaro Hara <haraken@chromium.org>
2413 Unreviewed, rolling out r109969.
2414 http://trac.webkit.org/changeset/109969
2415 https://bugs.webkit.org/show_bug.cgi?id=80376
2419 * bindings/v8/V8HiddenPropertyName.cpp:
2421 (WebCore::V8HiddenPropertyName::hiddenReferenceName):
2422 * bindings/v8/V8HiddenPropertyName.h:
2424 (V8HiddenPropertyName):
2425 * bindings/v8/custom/V8DOMStringMapCustom.cpp:
2427 * bindings/v8/custom/V8DOMTokenListCustom.cpp:
2429 * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
2432 2012-03-06 Kentaro Hara <haraken@chromium.org>
2434 Unreviewed, rolling out r109999.
2435 http://trac.webkit.org/changeset/109999
2439 * bindings/v8/custom/V8DOMStringMapCustom.cpp:
2441 * bindings/v8/custom/V8DOMTokenListCustom.cpp:
2444 2012-03-06 Kentaro Hara <haraken@chromium.org>
2446 Unreviewed, fix crashes.
2448 * bindings/v8/custom/V8DOMStringMapCustom.cpp:
2450 * bindings/v8/custom/V8DOMTokenListCustom.cpp:
2453 2012-03-06 James Robinson <jamesr@chromium.org>
2455 [chromium] Fix threaded compositing issues in WebGLLayerChromium (except for printing)
2456 https://bugs.webkit.org/show_bug.cgi?id=80459
2458 Reviewed by Kenneth Russell.
2460 This fixes a few wrong-thread issues in WebGLLayerChromium for threaded compositing. The key requirements that
2461 threaded compositing imposes on LayerChromium subclasses are that the compositor's context can only be used from
2462 the compositor thread, meaning inside of updateCompositorResources() and pushPropertiesTo(), and that
2463 non-compositor contexts can only be used from the main thread. This means specifically that we can't use the
2464 DrawingBuffer's context in either of these two functions.
2467 *) Move the publishToPlatformLayer() call and related logic inside of paintContentsIfDirty(), which is called
2469 *) Move lost context tracking outside of drawsContent(), since that function is called from both threads, to a
2470 separate bool that is updated after each WebGL composite and setDrawingBuffer call.
2472 Printing still doesn't work in threaded mode with this patch, I'll address that separately. Printing and lost
2473 context recovery still work as they did in the single-threaded path.
2475 * platform/graphics/chromium/WebGLLayerChromium.cpp:
2476 (WebCore::WebGLLayerChromium::WebGLLayerChromium):
2477 (WebCore::WebGLLayerChromium::drawsContent):
2478 (WebCore::WebGLLayerChromium::paintContentsIfDirty):
2479 (WebCore::WebGLLayerChromium::updateCompositorResources):
2480 (WebCore::WebGLLayerChromium::setDrawingBuffer):
2481 * platform/graphics/chromium/WebGLLayerChromium.h:
2482 (WebGLLayerChromium):
2484 2012-03-06 Anders Carlsson <andersca@apple.com>
2486 Cracks between tiles when zoomed in
2487 https://bugs.webkit.org/show_bug.cgi?id=80460
2488 <rdar://problem/10996688>
2490 Use enclosingIntRect instead of enclosedIntRect when converting from FloatRect to IntRect.
2492 * platform/graphics/mac/WebLayer.mm:
2493 (drawLayerContents):
2495 2012-03-06 Anders Carlsson <andersca@apple.com>
2497 Tile cache layers should always be clipped to the view's bounds
2498 https://bugs.webkit.org/show_bug.cgi?id=80456
2499 <rdar://problem/10996174>
2501 Reviewed by Simon Fraser.
2503 * rendering/RenderLayerBacking.cpp:
2504 (WebCore::RenderLayerBacking::shouldClipCompositedBounds):
2505 Factor this code out into a separate function for better clarity. Always return true if we have a tile cache layer.
2507 (WebCore::RenderLayerBacking::updateCompositedBounds):
2508 Call shouldClipCompositedBounds directly.
2510 2012-03-06 James Robinson <jamesr@chromium.org>
2512 [chromium] Null-check m_layerRenderer in CCLayerTreeHostImpl::finishAllRendering()
2513 https://bugs.webkit.org/show_bug.cgi?id=80445
2515 Reviewed by Adrienne Walker.
2517 Null-check CCLayerTreeHostImpl::m_layerRenderer since it won't be set if context initialiation failed for any
2520 Covered by new unit test in CCLayerTreeHostImplTest.
2522 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2523 (WebCore::CCLayerTreeHostImpl::finishAllRendering):
2525 2012-03-06 Ryosuke Niwa <rniwa@webkit.org>
2527 Can't select a line of RTL text on Facebook
2528 https://bugs.webkit.org/show_bug.cgi?id=59435
2530 Reviewed by Eric Seidel.
2532 Deploy prevLeafChildIgnoringLineBreak and nextLeafChildIgnoringLineBreak
2533 in RenderedPosition::leftBoundaryOfBidiRun and RenderedPosition::rightBoundaryOfBidiRun.
2535 Without this patch, WebKit extends selection from right to left when the user selects
2536 <span dir="rtl">ABC<br></span> from left to right by a mouse drag.
2538 Test: editing/selection/select-bidi-run.html
2540 * editing/RenderedPosition.cpp:
2541 (WebCore::RenderedPosition::leftBoundaryOfBidiRun):
2542 (WebCore::RenderedPosition::rightBoundaryOfBidiRun):
2544 2012-03-06 Raphael Kubo da Costa <kubo@profusion.mobi>
2546 undefined reference to JSC::IdentifierTable::~IdentifierTable() on EFL port
2547 https://bugs.webkit.org/show_bug.cgi?id=80282
2549 Reviewed by Antonio Gomes.
2551 No new tests, this is a buildsystem change.
2553 Remove transitive library dependencies; they are especially
2554 dangerous when one ends up linking against WTF, JSC and then WTF
2555 again, since some symbols will not be defined.
2557 Passing --no-copy-dt-needed-entries and --as-needed to the linker
2558 (which some recent Linux distros do by default) makes the issue
2561 * CMakeLists.txt: Explicitly link to WTF as WebCore uses symbols
2563 * PlatformEfl.cmake: Explicitly link against libjpeg and libpng.
2565 2012-03-06 James Robinson <jamesr@chromium.org>
2567 [chromium] REGRESSION(109469): WebGL printing busted
2568 https://bugs.webkit.org/show_bug.cgi?id=80450
2570 Reviewed by Kenneth Russell.
2572 Avoid marking layers as needing display in setContentsTo...() since this breaks WebGL's damage tracking and is
2575 Tested WebGL printing manually.
2577 * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2578 (WebCore::GraphicsLayerChromium::setContentsToCanvas):
2579 (WebCore::GraphicsLayerChromium::setContentsToMedia):
2581 2012-03-06 Adrienne Walker <enne@google.com>
2583 Overlap map for compositing should ignore empty layers
2584 https://bugs.webkit.org/show_bug.cgi?id=63499
2586 Reviewed by Simon Fraser.
2588 Test: compositing/layer-creation/overlap-empty-layer.html
2590 * rendering/RenderLayerCompositor.cpp:
2591 (WebCore::RenderLayerCompositor::addToOverlapMap):
2592 (WebCore::RenderLayerCompositor::computeCompositingRequirements):
2594 2012-03-06 Vangelis Kokkevis <vangelis@chromium.org>
2596 [chromium] Increase the accelerated canvas min size to 256 * 256
2597 https://bugs.webkit.org/show_bug.cgi?id=80451
2599 Reviewed by Stephen White.
2603 * page/Settings.cpp:
2604 (WebCore::Settings::Settings):
2606 2012-03-06 Kentaro Hara <haraken@chromium.org>
2608 [V8][Performance] Optimize V8 bindings for HTMLElement.classList,
2609 Element.dataset and Node.attributes
2610 https://bugs.webkit.org/show_bug.cgi?id=80376
2612 Reviewed by Adam Barth.
2614 This patch improves the performance of HTMLElement.classList, Element.dataset
2615 and Node.attributes by 6.4 times, 7.1 times and 10.9 times, respectively.
2617 Previously, a 'hiddenReferenceName' string was allocated on v8::Handle and
2618 created every time the DOM attribute is accessed, in spite of the fact that
2619 the 'hiddenReferenceName' string is static.
2621 This patch moves the 'hiddenReferenceName' string to v8::Persistent and makes it static.
2622 Also, this patch removes 'if (!elementValue.IsEmpty() && elementValue->IsObject())',
2623 since if 'element' exists, it is guaranteed that 'elementValue' is not empty
2626 Performance tests: https://bugs.webkit.org/attachment.cgi?id=130283
2628 AppleWebKit/JavaScriptCore:
2629 div.classList : 382ms
2630 div.classList.foo = 123 : 335ms
2632 div.dataset.foo = 123 : 5250ms
2633 div.attributes : 183ms
2635 Chromium/V8 (without this patch):
2636 div.classList : 9140ms
2637 div.classList.foo = 123 : 9086ms
2638 div.dataset : 9930ms
2639 div.dataset.foo = 123 : 49698ms
2640 div.attributes : 13489ms
2642 Chromium/V8 (with this patch):
2643 div.classList : 1435ms
2644 div.classList.foo = 123 : 1470ms
2645 div.dataset : 1400ms
2646 div.dataset.foo = 123 : 30396ms
2647 div.attributes : 1242ms
2649 No tests. No change in behavior.
2651 * bindings/v8/custom/V8DOMStringMapCustom.cpp: Modified as described above.
2653 * bindings/v8/custom/V8DOMTokenListCustom.cpp: Ditto.
2655 * bindings/v8/custom/V8NamedNodeMapCustom.cpp: Ditto.
2658 * bindings/v8/V8HiddenPropertyName.cpp: Defined a hidden property name string statically
2659 to optimize the macro.
2661 (WebCore::V8HiddenPropertyName::hiddenReferenceName):
2662 * bindings/v8/V8HiddenPropertyName.h: Modified to switch two prefixes "WebCore::HiddenProperty::"
2663 and "WebCore::HiddenReference::", depending on whether a given name represents a hidden property
2664 or a hidden reference.
2666 (V8HiddenPropertyName):
2668 2012-03-06 Alexis Menard <alexis.menard@openbossa.org>
2670 getComputedStyle returns incorrect values for the width and height of pseudo-elements
2671 https://bugs.webkit.org/show_bug.cgi?id=37835
2673 Reviewed by Tony Chang.
2675 In case we are querying the computed style of an element with a pseudo-element we can't use
2676 the renderer of the element as this one is not the one used to render the pseudo-element. We need
2677 to use the one created to render the pseudo-element.
2679 No new tests : Extend the existing getComputedStyle-with-pseudo-element.
2681 * css/CSSComputedStyleDeclaration.cpp:
2682 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2684 2012-03-06 Shawn Singh <shawnsingh@chromium.org>
2686 [chromium] Make compositeAndReadback and damage tracking play nicely together
2687 https://bugs.webkit.org/show_bug.cgi?id=80199
2689 Reviewed by James Robinson.
2691 Requires system-level testing (pixels on front-buffer should be
2692 observed for correct behavior) that cannot be done by layout tests
2693 or unit tests, have to rely on manual testing.
2695 * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2696 (WebCore::CCSingleThreadProxy::compositeAndReadback):
2698 2012-03-06 Luke Macpherson <macpherson@chromium.org>
2700 Make CSSStyleSelector::convertToLength() behave more like CSSPrimitiveValue::convertToLength().
2701 https://bugs.webkit.org/show_bug.cgi?id=80375
2703 Reviewed by Eric Seidel.
2705 No new tests / cleanup only.
2707 This patch removes the bool* ok parameter from CSSStyleSelector's convertToLength,
2708 and instead uses the recently added Length(Undefined) value to indicate failure.
2709 This paves the way for a future patch that will call primitiveValue->convertToLength directly.
2711 * css/CSSStyleSelector.cpp:
2712 (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2714 2012-03-06 Raymes Khoury <raymes@chromium.org>
2716 Add state variable and ASSERTs to DocumentWriter to help track down
2717 https://bugs.webkit.org/show_bug.cgi?id=80427 and prevent illegal usage
2718 of DocumentWriter. This also makes endIfNotLoadingMainResource() private
2719 as there is no external usage.
2721 Reviewed by Adam Barth.
2723 This only adds ASSERT/CRASH and does not change existing behaviour.
2725 * loader/DocumentWriter.cpp:
2726 (WebCore::DocumentWriter::DocumentWriter):
2727 (WebCore::DocumentWriter::begin):
2728 (WebCore::DocumentWriter::addData):
2729 (WebCore::DocumentWriter::endIfNotLoadingMainResource):
2730 (WebCore::DocumentWriter::setDocumentWasLoadedAsPartOfNavigation):
2731 * loader/DocumentWriter.h:
2734 2012-03-06 Mihnea Ovidenie <mihnea@adobe.com>
2736 [CSSRegions][CSSOM]Restrict parsing of named flow name
2737 https://bugs.webkit.org/show_bug.cgi?id=80359
2739 Reviewed by Andreas Kling.
2741 The function that does the parsing for flow thread name should restrict the
2742 number of parsed properties to 1, otherwise it would allow parsing of
2743 "-webkit-flow-into: flow; color: red;" constructions.
2745 Modified fast/regions/webkit-named-flow-invalid-name.html to include the above case.
2747 * css/CSSParser.cpp:
2748 (WebCore::validFlowName):
2749 (WebCore::CSSParser::parseFlowThread):
2751 2012-03-06 Joseph Pecoraro <pecoraro@apple.com>
2753 Unreviewed build fix for minimal build after r109939.
2755 Guard access to page->inspectorController with ENABLE(INSPECTOR).
2757 * page/FrameView.cpp:
2758 (WebCore::FrameView::performPostLayoutTasks):
2760 2012-03-05 Dean Jackson <dino@apple.com>
2762 Enable compositing when a CSS filter is animating
2763 https://bugs.webkit.org/show_bug.cgi?id=79048
2765 Reviewed by Simon Fraser.
2767 Now that some systems (e.g. OS X) have both hardware accelerated
2768 CSS filters, and the ability to animate them via the hardware
2769 compositor, all CSS filters should be composited when animating.
2771 Tests: css3/filters/composited-during-animation-layertree.html
2772 css3/filters/composited-during-animation.html
2773 css3/filters/composited-during-transition-layertree.html
2775 * platform/graphics/ca/GraphicsLayerCA.cpp:
2777 (WebCore::supportsAcceleratedFilterAnimations):
2778 new method that returns true if the platform supports
2779 hardware animations of filters.
2780 (WebCore::GraphicsLayerCA::addAnimation):
2781 (WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
2782 only create layer-animations if the platform supports it.
2783 * rendering/RenderLayerCompositor.cpp:
2784 (WebCore::RenderLayerCompositor::requiresCompositingForAnimation):
2785 create a compositing layer if animating a filter on a
2788 2012-03-06 Stephen White <senorblanco@chromium.org>
2790 Unreviewed, rolling out r109825.
2791 http://trac.webkit.org/changeset/109825
2792 https://bugs.webkit.org/show_bug.cgi?id=79413
2794 Broke webkit_unit_tests on Chromium Win
2796 * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
2797 (WebCore::IDBLevelDBBackingStore::open):
2798 * platform/leveldb/LevelDBDatabase.cpp:
2800 * platform/leveldb/LevelDBDatabase.h:
2803 2012-03-06 Beth Dakin <bdakin@apple.com>
2805 https://bugs.webkit.org/show_bug.cgi?id=80351
2806 InlineTextBox is using the wrong origin when calling
2807 addRelevantRepaintedObject
2809 <rdar://problem/10970221>
2811 Reviewed by Sam Weinig.
2813 boxOrigin represents the actual location of the text. The adjustedPaintOffset
2814 (which I was using previously) will only correspond to the first line in a
2816 * rendering/InlineTextBox.cpp:
2817 (WebCore::InlineTextBox::paint):
2819 2012-03-06 Filip Spacek <fspacek@rim.com>
2821 [BlackBerry] Disable border radius clips (r95239) for BlackBerry
2822 https://bugs.webkit.org/show_bug.cgi?id=80416
2824 Reviewed by Antonio Gomes
2826 The BlackBerry port suffers from the same performance
2827 degradation when border radius clip is enabled as Chromium.
2829 * rendering/RenderLayer.cpp:
2831 2012-03-06 Stephen White <senorblanco@chromium.org>
2833 Unreviewed, rolling out r109832.
2834 http://trac.webkit.org/changeset/109832
2835 https://bugs.webkit.org/show_bug.cgi?id=80356
2837 Broke WebSocket tests on Chrome Mac and Linux
2839 * Modules/websockets/ThreadableWebSocketChannel.h:
2840 (ThreadableWebSocketChannel):
2841 * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
2842 (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
2843 (WebCore::ThreadableWebSocketChannelClientWrapper::sendRequestResult):
2844 (WebCore::ThreadableWebSocketChannelClientWrapper::setSendRequestResult):
2845 * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
2846 (ThreadableWebSocketChannelClientWrapper):
2847 * Modules/websockets/WebSocket.cpp:
2848 (WebCore::WebSocket::send):
2849 * Modules/websockets/WebSocketChannel.cpp:
2850 (WebCore::WebSocketChannel::send):
2851 (WebCore::WebSocketChannel::enqueueTextFrame):
2852 (WebCore::WebSocketChannel::processOutgoingFrameQueue):
2853 * Modules/websockets/WebSocketChannel.h:
2856 * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
2857 (WebCore::WorkerThreadableWebSocketChannel::send):
2858 (WebCore::workerContextDidSend):
2859 (WebCore::WorkerThreadableWebSocketChannel::Peer::send):
2860 (WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
2861 * Modules/websockets/WorkerThreadableWebSocketChannel.h:
2862 (WorkerThreadableWebSocketChannel):
2865 2012-03-06 Stephen White <senorblanco@chromium.org>
2867 Unreviewed, rolling out r109840.
2868 http://trac.webkit.org/changeset/109840
2869 https://bugs.webkit.org/show_bug.cgi?id=80103
2871 Broke WebSocket tests on Chrome Mac and Linux
2873 * Modules/websockets/WebSocket.cpp:
2874 (WebCore::WebSocket::send):
2875 (WebCore::WebSocket::close):
2876 * Modules/websockets/WebSocketChannel.cpp:
2877 (WebCore::WebSocketChannel::send):
2879 2012-03-05 Joseph Pecoraro <pecoraro@apple.com>
2881 <http://webkit.org/b/78575> Web Inspector: Disable dock button when not allowed to dock
2883 There are times when an undocked inspector frontend is not allowed to
2884 attach to the main window. We can disable the dock button in those cases.
2886 Reviewed by Pavel Feldman.
2888 No new tests. This functionality is port specific right now.
2890 * page/FrameView.cpp:
2891 (WebCore::FrameView::performPostLayoutTasks):
2892 When the main frame is resized we let the inspector client know,
2893 so that it can react to it as needed.
2896 * inspector/InspectorClient.h:
2897 (WebCore::InspectorClient::didResizeMainFrame):
2898 * inspector/InspectorController.cpp:
2899 * inspector/InspectorController.h:
2900 (WebCore::InspectorController::inspectorClient):
2901 Call up to the port though to the InspectorClient.
2903 * inspector/InspectorFrontendClientLocal.cpp:
2904 (WebCore::InspectorFrontendClientLocal::frontendLoaded):
2905 (WebCore::InspectorFrontendClientLocal::setDockingUnavailable):
2906 * inspector/InspectorFrontendClientLocal.h:
2907 On ports where the inspector frontend client is local, provide a
2908 setDockingUnavailable InspectorFrontendAPI to update the docking state.
2909 Automatically update availability when the frontend completes loading.
2911 * inspector/front-end/InspectorFrontendAPI.js:
2912 (InspectorFrontendAPI.setDockingUnavailable):
2913 * inspector/front-end/inspector.js:
2914 (WebInspector._createGlobalStatusBarItems):
2915 (WebInspector.setAttachedWindow):
2916 (WebInspector.setDockingUnavailable):
2917 (WebInspector.updateDockToggleButton):
2918 Update the dock button's enabled/disabled state when its created,
2919 when the attached state changes, when get a frontend API notification
2920 that we cannot attach.
2922 * inspector/front-end/InspectorFrontendHostStub.js:
2923 Remove unused canAttachWindow method.
2925 2012-03-06 Hans Wennborg <hans@chromium.org>
2927 Speech JavaScript API: add SpeechRecognitionError
2928 https://bugs.webkit.org/show_bug.cgi?id=80410
2930 Reviewed by Adam Barth.
2932 Add SpeechRecognitionError.
2934 Test: fast/speech/scripted/speechrecognitionerror-basics.html
2936 * Modules/speech/DOMWindowSpeech.idl: Added.
2937 * Modules/speech/SpeechRecognitionError.cpp: Added.
2939 (WebCore::SpeechRecognitionError::create):
2940 (WebCore::SpeechRecognitionError::SpeechRecognitionError):
2941 * Modules/speech/SpeechRecognitionError.h: Added.
2943 (SpeechRecognitionError):
2944 (WebCore::SpeechRecognitionError::code):
2945 (WebCore::SpeechRecognitionError::message):
2946 * Modules/speech/SpeechRecognitionError.idl: Added.
2947 * WebCore.gyp/WebCore.gyp:
2950 2012-03-06 David Corvoysier <david.corvoysier@orange.com>
2952 Unreleased gst_object_reference to audio sink in MediaPlayerPrivateGStreamer
2953 https://bugs.webkit.org/show_bug.cgi?id=79795
2955 Bug fix: Used a GRefPtr to hold the reference to the audio sink instead of a GstElement*.
2956 Code cleanup: Used the same pattern for webkit web source and removed explicit gst_unref in destructor.
2958 Reviewed by Philippe Normand.
2960 No new tests. No change in behavior.
2962 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2963 (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
2964 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
2965 (MediaPlayerPrivateGStreamer):
2967 2012-03-06 Patrick Gansterer <paroga@webkit.org>
2969 [CMake] Build fix for !ENABLE(WORKERS) after r109556 and r109833.
2973 2012-03-06 Allan Sandfeld Jensen <allan.jensen@nokia.com>
2975 [Qt][WK2] Crash in Frame.cpp when loading index.hu
2976 https://bugs.webkit.org/show_bug.cgi?id=80165
2978 Guard against possible null document, which can happen
2979 when unsetting a document in a frame.
2981 Reviewed by Kenneth Rohde Christiansen.
2984 (WebCore::Frame::setDocument):
2986 2012-03-06 Lucas Forschler <lforschler@apple.com>
2988 WebCore build exceeds address space on 32-bit Windows builds.
2989 https://bugs.webkit.org/show_bug.cgi?id=80346
2991 Reviewed by Jessie Berlin.
2993 Patch by Lucas Forschler, landed by Jessie Berlin.
2995 Add AllInOne.cpp files for a few projects.
2996 This will only affect Production and Release builds.
2997 Let VS rebuild the project file.
2999 * WebCore.vcproj/WebCore.vcproj:
3000 * css/MediaAllInOne.cpp: Added.
3001 * loader/appcache/ApplicationCacheAllInOne.cpp: Added.
3002 * mathml/MathMLAllInOne.cpp: Added.
3003 * platform/text/TextAllInOne.cpp: Added.
3005 2012-03-06 Pavel Feldman <pfeldman@chromium.org>
3007 Web Inspector: add support for inspection of huge (1M elements) arrays.
3008 https://bugs.webkit.org/show_bug.cgi?id=80421
3010 Reviewed by Vsevolod Vlasov.
3012 * inspector/front-end/ConsoleView.js:
3013 (WebInspector.ConsoleView.prototype.completionsForExpression.evaluated):
3014 * inspector/front-end/ElementsPanel.js:
3015 * inspector/front-end/ObjectPropertiesSection.js:
3016 (WebInspector.ObjectPropertiesSection.prototype.update.callback):
3017 (WebInspector.ObjectPropertiesSection.prototype.update):
3018 (WebInspector.ObjectPropertiesSection.prototype.updateProperties):
3019 (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate.callback):
3020 (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
3021 (WebInspector.ArrayGroupingTreeElement):
3022 (WebInspector.ArrayGroupingTreeElement._populateArray):
3023 (WebInspector.ArrayGroupingTreeElement._populateRanges):
3024 (WebInspector.ArrayGroupingTreeElement._populateRanges.callback):
3025 (WebInspector.ArrayGroupingTreeElement._populateAsFragment):
3026 (WebInspector.ArrayGroupingTreeElement._populateAsFragment.processArrayFragment):
3027 (WebInspector.ArrayGroupingTreeElement._populateAsFragment.processProperties):
3028 (WebInspector.ArrayGroupingTreeElement._populateNonIndexProperties.buildObjectFragment):
3029 (WebInspector.ArrayGroupingTreeElement._populateNonIndexProperties.processObjectFragment):
3030 (WebInspector.ArrayGroupingTreeElement._populateNonIndexProperties.processProperties):
3031 (WebInspector.ArrayGroupingTreeElement._populateNonIndexProperties):
3032 (WebInspector.ArrayGroupingTreeElement.prototype.onpopulate):
3033 (WebInspector.ArrayGroupingTreeElement.prototype.onattach):
3034 * inspector/front-end/PropertiesSidebarPane.js:
3035 (WebInspector.PropertiesSidebarPane.prototype.update.nodeResolved):
3036 * inspector/front-end/RemoteObject.js:
3037 (WebInspector.RemoteObject.prototype.callFunction):
3038 (WebInspector.RemoteObject.prototype.callFunctionJSON):
3040 2012-03-06 Vsevolod Vlasov <vsevik@chromium.org>
3042 Web Inspector: Open link in resources panel only works the second time
3043 https://bugs.webkit.org/show_bug.cgi?id=80407
3045 Reviewed by Pavel Feldman.
3047 * inspector/front-end/inspector.js:
3048 (WebInspector.openResource):
3050 2012-03-02 Yury Semikhatsky <yurys@chromium.org>
3052 Web Inspector: InspectorCounters mechanism should be thread-safe
3053 https://bugs.webkit.org/show_bug.cgi?id=80166
3055 Make InspectorCounters instance thread local so that it can be safely accessed
3058 Reviewed by Pavel Feldman.
3060 * bindings/js/JSEventListener.cpp:
3061 (WebCore::JSEventListener::JSEventListener):
3062 (WebCore::JSEventListener::~JSEventListener):
3063 * bindings/v8/V8AbstractEventListener.cpp:
3064 (WebCore::V8AbstractEventListener::V8AbstractEventListener):
3065 (WebCore::V8AbstractEventListener::~V8AbstractEventListener):
3067 (WebCore::Document::Document):
3068 (WebCore::Document::~Document):
3070 (WebCore::Node::Node):
3072 (WebCore::Node::~Node):
3073 * inspector/InspectorCounters.cpp:
3074 (WebCore::InspectorCounters::InspectorCounters):
3075 (WebCore::InspectorCounters::counterValue):
3077 (WebCore::InspectorCounters::current):
3078 * inspector/InspectorCounters.h:
3079 (WebCore::InspectorCounters::incrementCounter):
3080 (WebCore::InspectorCounters::decrementCounter):
3081 (InspectorCounters):
3082 * inspector/InspectorTimelineAgent.cpp:
3083 (WebCore::InspectorTimelineAgent::setHeapSizeStatistic):
3084 * platform/ThreadGlobalData.cpp:
3085 (WebCore::ThreadGlobalData::ThreadGlobalData):
3086 (WebCore::ThreadGlobalData::destroy):
3087 * platform/ThreadGlobalData.h:
3090 (WebCore::ThreadGlobalData::inspectorCounters):
3092 2012-03-06 Leo Yang <leo.yang@torchmobile.com.cn>
3094 [BlackBerry] Upstream typedef of NativeImageSourcePtr and NativeImagePtr
3095 https://bugs.webkit.org/show_bug.cgi?id=80388
3097 Reviewed by Antonio Gomes.
3099 These are the BlackBerry typdefs of NativeImageSourcePtr and NativeImagePtr.
3101 * platform/graphics/ImageSource.h:
3104 2012-03-06 Hans Muller <hmuller@adobe.com>
3106 SVG transform-origin presentation attribute
3107 https://bugs.webkit.org/show_bug.cgi?id=79678
3109 Reviewed by Nikolas Zimmermann.
3111 Added the SVG transform-origin presentation attribute. Currently WebCore::mapAttributeToCSSProperty()
3112 just maps it to -webkit-transform-origin. When the transform-origin CSS property is supported, this
3113 part of the change can be removed.
3115 Test: svg/transforms/transform-origin-presentation-attribute.xhtml
3117 * svg/SVGStyledElement.cpp:
3118 (WebCore::mapAttributeToCSSProperty):
3119 (WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName):
3122 2012-01-26 Philippe Normand <pnormand@igalia.com>
3124 [GStreamer] disable GStreamerGWorld when building against 0.11
3125 https://bugs.webkit.org/show_bug.cgi?id=77088
3127 Reviewed by Martin Robinson.
3129 Don't build GStreamerGWorld and PlatformVideoWindow under
3130 GStreamer 0.11. It's supposed to be removed soon anyway.
3132 * platform/graphics/gstreamer/GStreamerGWorld.cpp:
3133 * platform/graphics/gstreamer/GStreamerGWorld.h:
3134 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
3135 (WebCore::MediaPlayerPrivateGStreamer::totalBytes):
3136 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
3137 (MediaPlayerPrivateGStreamer):
3138 * platform/graphics/gstreamer/PlatformVideoWindow.h:
3139 * platform/graphics/gstreamer/PlatformVideoWindowEfl.cpp:
3140 * platform/graphics/gstreamer/PlatformVideoWindowGtk.cpp:
3141 * platform/graphics/gstreamer/PlatformVideoWindowMac.mm:
3142 * platform/graphics/gstreamer/PlatformVideoWindowQt.cpp:
3144 2012-03-06 Alexander Færøy <alexander.faeroy@nokia.com>
3146 Rename m_tileCreationTimer in the tiled backing store
3147 https://bugs.webkit.org/show_bug.cgi?id=80414
3149 Patch by Kenneth Rohde Christiansen and Alexander Færøy.
3151 Reviewed by Tor Arne Vestbø.
3153 The m_tileCreationTimer member is currently being used to represent a
3154 timer that is fired when the backing store has been updated which is
3155 confusing with its current name. This patch fixes this by renaming
3156 the m_tileCreationTimer to m_backingStoreUpdateTimer.
3158 * platform/graphics/TiledBackingStore.cpp:
3159 (WebCore::TiledBackingStore::TiledBackingStore):
3160 (WebCore::TiledBackingStore::setTileSize):
3161 (WebCore::TiledBackingStore::coverWithTilesIfNeeded):
3162 (WebCore::TiledBackingStore::createTiles):
3163 (WebCore::TiledBackingStore::startBackingStoreUpdateTimer):
3164 (WebCore::TiledBackingStore::backingStoreUpdateTimerFired):
3165 (WebCore::TiledBackingStore::setContentsFrozen):
3166 * platform/graphics/TiledBackingStore.h:
3167 (TiledBackingStore):
3169 2012-03-06 Alexander Færøy <alexander.faeroy@nokia.com>
3171 Remove TileTimer typedef from the tiled backing store
3172 https://bugs.webkit.org/show_bug.cgi?id=80408
3174 Patch by Kenneth Rohde Christiansen and Alexander Færøy.
3176 Reviewed by Tor Arne Vestbø.
3178 * platform/graphics/TiledBackingStore.cpp:
3179 (WebCore::TiledBackingStore::tileBufferUpdateTimerFired):
3180 (WebCore::TiledBackingStore::tileCreationTimerFired):
3181 * platform/graphics/TiledBackingStore.h:
3182 (TiledBackingStore):
3184 2012-03-06 Robin Cao <robin.cao@torchmobile.com.cn>
3186 [BlackBerry] Upstream LayerRenderer.{h, cpp}
3187 https://bugs.webkit.org/show_bug.cgi?id=79874
3189 Reviewed by Antonio Gomes.
3191 Initial upstream, no new tests.
3193 * platform/graphics/blackberry/LayerRenderer.cpp: Added.
3195 (WebCore::checkGLError):
3196 (WebCore::loadShader):
3197 (WebCore::loadShaderProgram):
3198 (WebCore::orthoMatrix):
3199 (WebCore::rawPtrVectorFromRefPtrVector):
3200 (WebCore::LayerRenderer::create):
3201 (WebCore::LayerRenderer::LayerRenderer):
3202 (WebCore::LayerRenderer::~LayerRenderer):
3203 (WebCore::LayerRenderer::releaseLayerResources):
3204 (WebCore::compareLayerZ):
3205 (WebCore::LayerRenderer::drawLayers):
3206 (WebCore::LayerRenderer::useSurface):
3207 (WebCore::LayerRenderer::drawLayersOnSurfaces):
3208 (WebCore::LayerRenderer::setRootLayer):
3209 (WebCore::LayerRenderer::addLayer):
3210 (WebCore::LayerRenderer::removeLayer):
3211 (WebCore::LayerRenderer::addLayerToReleaseTextureResourcesList):
3212 (WebCore::LayerRenderer::toOpenGLWindowCoordinates):
3213 (WebCore::LayerRenderer::toWebKitWindowCoordinates):
3214 (WebCore::LayerRenderer::toWebKitDocumentCoordinates):
3215 (WebCore::LayerRenderer::drawDebugBorder):
3216 (WebCore::LayerRenderer::drawHolePunchRect):
3217 (WebCore::LayerRenderer::updateLayersRecursive):
3218 (WebCore::hasRotationalComponent):
3219 (WebCore::LayerRenderer::layerAlreadyOnSurface):
3220 (WebCore::collect3DPreservingLayers):
3221 (WebCore::LayerRenderer::compositeLayersRecursive):
3222 (WebCore::LayerRenderer::updateScissorIfNeeded):
3223 (WebCore::LayerRenderer::makeContextCurrent):
3224 (WebCore::LayerRenderer::bindCommonAttribLocation):
3225 (WebCore::LayerRenderer::initializeSharedGLObjects):
3226 (WebCore::LayerRenderingResults::holePunchRect):
3227 (WebCore::LayerRenderingResults::addHolePunchRect):
3228 (WebCore::LayerRenderingResults::addDirtyRect):
3229 (WebCore::LayerRenderingResults::isEmpty):
3230 * platform/graphics/blackberry/LayerRenderer.h: Added.
3232 (LayerRenderingResults):
3233 (WebCore::LayerRenderingResults::LayerRenderingResults):
3234 (WebCore::LayerRenderingResults::holePunchRectSize):
3235 (WebCore::LayerRenderingResults::dirtyRect):
3237 (WebCore::LayerRenderer::rootLayer):
3238 (WebCore::LayerRenderer::hardwareCompositing):
3239 (WebCore::LayerRenderer::setClearSurfaceOnDrawLayers):
3240 (WebCore::LayerRenderer::clearSurfaceOnDrawLayers):
3241 (WebCore::LayerRenderer::context):
3242 (WebCore::LayerRenderer::lastRenderingResults):
3243 (WebCore::LayerRenderer::setNeedsCommit):
3245 2012-03-06 Roland Steiner <rolandsteiner@chromium.org>
3247 r109563 caused perf regression
3248 https://bugs.webkit.org/show_bug.cgi?id=80404
3250 Add test for Element or ShadowRoot.
3252 Reviewed by Antti Koivisto.
3256 * css/CSSStyleSelector.cpp:
3257 (WebCore::CSSStyleSelector::pushParentElement):
3259 2012-03-06 Pavel Podivilov <podivilov@chromium.org>
3261 Web Inspector: prepare for extracting ScriptMapping implementation from DebuggerPresentationModel.
3262 https://bugs.webkit.org/show_bug.cgi?id=80396
3264 Limit RawSourceCode usages to a subset of methods. This subset will be moved to ScriptMapping implementation in a separate change.
3266 Reviewed by Vsevolod Vlasov.
3268 * inspector/front-end/DebuggerPresentationModel.js:
3269 (WebInspector.DebuggerPresentationModel):
3270 (WebInspector.DebuggerPresentationModel.prototype.createPlacard):
3271 (WebInspector.DebuggerPresentationModel.prototype.createLiveLocation):
3272 (WebInspector.DebuggerPresentationModel.prototype._parsedScriptSource):
3273 (WebInspector.DebuggerPresentationModel.prototype._failedToParseScriptSource):
3274 (WebInspector.DebuggerPresentationModel.prototype.setScriptSource.didEditScriptSource):
3275 (WebInspector.DebuggerPresentationModel.prototype.setScriptSource):
3276 (WebInspector.DebuggerPresentationModel.prototype._forceUpdateSourceMapping):
3277 (WebInspector.DebuggerPresentationModel.prototype._addConsoleMessageToScript):
3278 (WebInspector.DebuggerPresentationModel.prototype._debuggerPaused):
3279 (WebInspector.DebuggerPresentationModel.prototype.set selectedCallFrame):
3280 (WebInspector.PresentationCallFrame):
3281 (WebInspector.PresentationCallFrame.prototype.uiLocation):
3282 (WebInspector.DebuggerPresentationModel.CallFramePlacard):
3283 (WebInspector.DebuggerPresentationModelResourceBinding.prototype.canSetContent):
3284 (WebInspector.DebuggerPresentationModelResourceBinding.prototype.setContent):
3285 (WebInspector.DebuggerPresentationModelResourceBinding.prototype._uiSourceCodeForResource):
3286 (WebInspector.DebuggerPresentationModel.Linkifier.prototype.linkifyRawLocation):
3288 2012-03-06 Vsevolod Vlasov <vsevik@chromium.org>
3290 Web Inspector: [Regression] Execution line is not revealed when debugger is stopped if scripts panel was not yet shown.
3291 https://bugs.webkit.org/show_bug.cgi?id=80306
3293 Reviewed by Pavel Feldman.
3295 Test: inspector/debugger/reveal-execution-line.html
3297 * inspector/front-end/ConsoleView.js:
3298 * inspector/front-end/DebuggerPresentationModel.js:
3299 (WebInspector.DebuggerPresentationModel.prototype._debuggerPaused):
3300 * inspector/front-end/JavaScriptSourceFrame.js:
3301 (WebInspector.JavaScriptSourceFrame.prototype.afterTextChanged):
3302 (WebInspector.JavaScriptSourceFrame.prototype.setExecutionLine):
3303 * inspector/front-end/ScriptsPanel.js:
3304 (WebInspector.ScriptsPanel.prototype._executionLineChanged):
3305 (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
3306 (WebInspector.ScriptsPanel.prototype._callFrameSelected):
3307 * inspector/front-end/SourceFrame.js:
3308 (WebInspector.SourceFrame.prototype.willHide):
3309 (WebInspector.SourceFrame.prototype.highlightLine):
3310 (WebInspector.SourceFrame.prototype.revealLine):
3311 (WebInspector.SourceFrame.prototype._clearLineToReveal):
3312 (WebInspector.SourceFrame.prototype.setContent):
3314 2012-03-06 Pavel Podivilov <podivilov@chromium.org>
3316 Web Inspector: remove reference to RawSourceCode from UISourceCode.
3317 https://bugs.webkit.org/show_bug.cgi?id=80395
3319 Reviewed by Vsevolod Vlasov.
3321 * inspector/compile-front-end.sh:
3322 * inspector/front-end/DebuggerPresentationModel.js:
3323 (WebInspector.DebuggerPresentationModel):
3324 (WebInspector.DebuggerPresentationModel.prototype._handleUISourceCodeListChanged):
3325 (WebInspector.DebuggerPresentationModel.prototype._uiSourceCodeListChanged):
3326 (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
3327 (WebInspector.DebuggerPresentationModel.prototype.setScriptSource.didEditScriptSource):
3328 (WebInspector.DebuggerPresentationModel.prototype.setScriptSource):
3329 (WebInspector.DebuggerPresentationModel.prototype.continueToLine):
3330 (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
3331 * inspector/front-end/RawSourceCode.js:
3332 (WebInspector.RawSourceCode.prototype._createUISourceCode):
3333 * inspector/front-end/UISourceCode.js:
3334 (WebInspector.UISourceCode):
3336 2012-03-06 Andrey Kosyakov <caseq@chromium.org>
3338 Web Inspector: move timeline panel overview mode toggle buttons to overview sidebar tree
3339 https://bugs.webkit.org/show_bug.cgi?id=80304
3341 Reviewed by Pavel Feldman.
3343 * inspector/front-end/Images/statusbarButtonGlyphs.png:
3344 * inspector/front-end/Settings.js:
3345 (WebInspector.ExperimentsSettings):
3346 * inspector/front-end/TimelineOverviewPane.js:
3347 (WebInspector.TimelineOverviewPane):
3348 (WebInspector.TimelineOverviewPane.prototype._showTimelines):
3349 (WebInspector.TimelineOverviewPane.prototype._showMemoryGraph):
3350 (WebInspector.TimelineOverviewPane.prototype._setVerticalOverview):
3351 (WebInspector.TimelineOverviewPane.prototype._onOverviewModeChanged):
3352 (WebInspector.TimelineOverviewPane.prototype.update):
3353 (WebInspector.TimelineOverviewPane.prototype.reset):
3354 (WebInspector.TimelineOverviewPane.prototype._onWindowChanged):
3355 (WebInspector.TimelineVerticalOverview):
3356 (WebInspector.TimelineOverviewModeSelector):
3357 (WebInspector.TimelineOverviewModeSelector.prototype.addButton):
3358 (WebInspector.TimelineOverviewModeSelector.prototype.get value):
3359 (WebInspector.TimelineOverviewModeSelector.prototype._createButton):
3360 (WebInspector.TimelineOverviewModeSelector.prototype._select):
3361 (WebInspector.TimelineOverviewModeSelector.prototype._onClick):
3362 * inspector/front-end/TimelinePanel.js:
3363 (WebInspector.TimelinePanel):
3364 (WebInspector.TimelinePanel.prototype.get statusBarItems):
3365 (WebInspector.TimelinePanel.prototype._createStatusbarButtons):
3366 (WebInspector.TimelinePanel.prototype._updateEventDividers):
3367 (WebInspector.TimelinePanel.prototype._glueParentButtonClicked):
3368 (WebInspector.TimelinePanel.prototype.revealRecordAt):
3369 * inspector/front-end/inspector.css:
3370 * inspector/front-end/timelinePanel.css:
3371 (.timeline-vertical-overview #timeline-overview-grid):
3372 (.timeline-vertical-overview .timeline-overview-window):
3373 (.timeline-vertical-overview .timeline-overview-dividers-background):
3374 (.timeline-vertical-overview #timeline-overview-memory):
3375 (.timeline-vertical-overview-status-bar-item.toggled-on .glyph):
3376 (.timeline-vertical-overview-bars):
3377 (.timeline-vertical-overview-bars .padding):
3378 (.timeline-vertical-overview-bars .timeline-bar-vertical):
3379 (.timeline.timeline-vertical-overview .resources-divider):
3380 (.sidebar-tree-item .timeline-vertical-overview-status-bar-item):
3381 (.timeline-overview-mode-selector):
3382 (.timeline-overview-mode-selector .glyph):
3383 (.timeline-overview-mode-selector button):
3384 (.timeline-overview-mode-selector button.toggled):
3385 (.timeline-overview-mode-selector button:active):
3386 (.sidebar-tree-item:not(.selected) .timeline-overview-mode-selector button):
3387 (.sidebar-tree-item:not(.selected) .timeline-overview-mode-selector button.toggled):
3388 (.timeline-overview-mode-selector button:first-of-type):
3389 (.timeline-overview-mode-selector button:last-of-type):
3390 (.timeline-mode-vertical-bars .glyph):
3391 (.timeline-mode-horizontal-bars .glyph):
3393 2012-03-05 Alexander Færøy <alexander.faeroy@nokia.com>
3395 Make it explicit when we are allowing updates to the actual backing store or the tile buffers
3396 https://bugs.webkit.org/show_bug.cgi?id=80288
3398 Patch by Kenneth Rohde Christiansen and Alexander Færøy.
3400 Reviewed by Noam Rosenthal.
3402 * platform/graphics/TiledBackingStore.cpp:
3403 (WebCore::TiledBackingStore::createTiles):
3404 (WebCore::TiledBackingStore::isBackingStoreUpdatesSuspended):
3406 (WebCore::TiledBackingStore::isTileBufferUpdatesSuspended):
3407 (WebCore::TiledBackingStore::startTileBufferUpdateTimer):
3408 (WebCore::TiledBackingStore::startTileCreationTimer):
3409 * platform/graphics/TiledBackingStore.h:
3410 (TiledBackingStore):
3412 2012-03-06 Mark Rowe <mrowe@apple.com>
3414 Build fix after r109877.
3416 * WebCore.xcodeproj/project.pbxproj: Ensure that headers are copied in to WebCore.framework so that
3417 WebKit can still find them.
3419 2012-03-06 Andreas Kling <awesomekling@apple.com>
3421 Remove incorrect WTF::Vector traits for CSSProperty.
3422 <http://webkit.org/b/53285>
3423 <rdar://problem/10161286>
3425 Reviewed by Antti Koivisto.
3427 We shouldn't allow copying Vector<CSSProperty> contents around with memcpy()
3428 as CSSProperty has a RefPtr member and this would muck up the refcount.
3429 This was added to facilitate fast comparison of property vectors, and we no
3430 longer use that, so there shouldn't be any performance concerns here.
3432 * css/CSSProperty.h:
3434 2012-03-06 Adam Barth <abarth@webkit.org>
3436 Attempt to fix the Qt minimal build.
3440 2012-03-06 Roland Steiner <rolandsteiner@chromium.org>
3442 :scope should behave as :root outside scoped style sheet
3443 https://bugs.webkit.org/show_bug.cgi?id=80389
3445 Fall through to :root implementation if no scope is used.
3447 Reviewed by Antti Koivisto.
3449 Test: fast/css/style-scoped/scope-pseudo.html
3451 * css/SelectorChecker.cpp:
3452 (WebCore::SelectorChecker::checkOneSelector):
3454 2012-03-05 Vsevolod Vlasov <vsevik@chromium.org>
3456 Web Inspector: [Regression] Message bubbles are not removed from scripts panel source frames after console was cleared.
3457 https://bugs.webkit.org/show_bug.cgi?id=80275
3459 Reviewed by Pavel Feldman.
3461 * inspector/front-end/ScriptsPanel.js:
3462 (WebInspector.ScriptsPanel.prototype._consoleMessagesCleared):
3463 * inspector/front-end/utilities.js:
3465 2012-03-06 Adam Barth <abarth@webkit.org>
3467 Move SQLDatabase code into Modules/webdatabase
3468 https://bugs.webkit.org/show_bug.cgi?id=80393
3470 Reviewed by Kentaro Hara.
3472 There are still a couple (minor) SQLDatabase references from WebCore
3473 proper, but we've gotten this code to the point where it makes sense to
3474 move it into the Modules directory. (This patch just moves code---no
3478 * DerivedSources.make:
3479 * DerivedSources.pri:
3481 * GNUmakefile.list.am:
3482 * Modules/webdatabase: Added.