1 2012-01-31 Hayato Ito <hayato@chromium.org>
3 Add APIs, getElementsByXXX family, to ShadowRoot IDL.
4 https://bugs.webkit.org/show_bug.cgi?id=77323
6 Reviewed by Dimitri Glazkov.
8 Add APIs (getElementById, getElemesntByTagName, getElementsByClassName and getElementsByTagNameNS)
13 2012-01-31 Shinya Kawanaka <shinyak@google.com>
15 Content element should be able to be dynamically added/removed/replaced in a shadow tree.
16 https://bugs.webkit.org/show_bug.cgi?id=76611
18 Reviewed by Hajime Morita.
20 When a content element is added/removed/replaced in a shadow tree, we have to recreate
21 the shadow tree to recalculate inclusions of content elements. Currently we didn't recalculate it
22 when content element is removed. (When added, it is recalculated.)
23 This patch enables us to recalcurate the shadow tree when content element is removed.
25 Test: fast/dom/shadow/content-element-move.html
28 (WebCore::Element::attach):
29 If a shadow root exists, attaches shadow tree before attaching child elements.
31 (WebCore::ShadowRoot::recalcShadowTreeStyle):
32 Recalculates light children and shadow tree.
33 (WebCore::ShadowRoot::reattachHostChildrenAndShadow):
34 Detaches shadow tree and host light children, and attaches them again.
36 Added a flag to recalculate shadow tree.
37 (WebCore::ShadowRoot::setNeedsShadowTreeStyleRecalc):
38 (WebCore::ShadowRoot::clearNeedsShadowTreeStyleRecalc):
39 (WebCore::ShadowRoot::needsShadowTreeStyleRecalc):
40 * html/shadow/HTMLContentElement.cpp:
41 (WebCore::HTMLContentElement::attach):
42 Does not need to detach included elements, because they are not attached in ContainerNode anymore.
43 (WebCore::HTMLContentElement::detach):
44 When a content element detached, reattaches a shadow tree.
46 2012-01-31 Joe Thomas <joethomas@motorola.com>
48 https://bugs.webkit.org/show_bug.cgi?id=76801
49 Listboxes incorrectly display contents when cleared and then re-populated.
51 Whenever the number of items in the listbox is less than the size of listbox (number of visible items the listbox can accomodate),
52 we set the listbox scroll-offset to zero. The scroll-offset of the Scrollbar should also be set to 0 so that when the listbox is re-populated,
53 scrollbar position and the content inside the listbox are in sync.
55 Reviewed by Andreas Kling.
57 Tests: fast/forms/listbox-clear-restore.html
59 * rendering/RenderListBox.cpp:
60 (WebCore::RenderListBox::computeLogicalHeight): Setting the scroll-offset of the Scrollbar to 0 when scrollbar is not needed.
62 2012-01-31 Gyuyoung Kim <gyuyoung.kim@samsung.com>
64 Unreviewed. Fix build break after r106373.
68 2012-01-31 Adam Barth <abarth@webkit.org>
70 HTMLPreloadScanner should understand the <base> element
71 https://bugs.webkit.org/show_bug.cgi?id=77231
73 Reviewed by Eric Seidel.
75 Previously, the HTMLPreloadScanner would ignore the <base> element when
76 preloading resources. If there was a <base> tag, this could cause the
77 preload scanner to make a bunch of useless requests.
79 This patch teaches the preload scanner to use <base> tags to better
80 predict which URLs will be used by the document.
82 Tests: fast/preloader/first-base-tag-scanned-wins.html
83 fast/preloader/first-base-tag-wins.html
84 fast/preloader/understands-base-tag.html
87 (WebCore::Document::completeURL):
91 (WebCore::Document::baseElementURL):
92 * html/parser/HTMLPreloadScanner.cpp:
93 (WebCore::HTMLNames::PreloadTask::PreloadTask):
94 (WebCore::HTMLNames::PreloadTask::processAttributes):
95 (WebCore::HTMLNames::PreloadTask::preload):
96 (WebCore::HTMLNames::PreloadTask::baseElementHref):
98 (WebCore::HTMLPreloadScanner::scan):
99 (WebCore::HTMLPreloadScanner::processToken):
100 (WebCore::HTMLPreloadScanner::updatePredictedBaseElementURL):
102 * html/parser/HTMLPreloadScanner.h:
103 (HTMLPreloadScanner):
105 2012-01-31 Raymond Liu <raymond.liu@intel.com>
107 Dynamic allocate AudioBus with required number of channels for AudioNodeInput
108 https://bugs.webkit.org/show_bug.cgi?id=76516
110 Reviewed by Kenneth Russell.
112 No new tests required.
114 * webaudio/AudioBasicProcessorNode.cpp:
115 (WebCore::AudioBasicProcessorNode::checkNumberOfChannelsForInput):
116 * webaudio/AudioChannelMerger.cpp:
117 (WebCore::AudioChannelMerger::checkNumberOfChannelsForInput):
118 * webaudio/AudioGainNode.cpp:
119 (WebCore::AudioGainNode::checkNumberOfChannelsForInput):
120 * webaudio/AudioNode.cpp:
121 (WebCore::AudioNode::checkNumberOfChannelsForInput):
122 * webaudio/AudioNode.h:
123 * webaudio/AudioNodeInput.cpp:
124 (WebCore::AudioNodeInput::AudioNodeInput):
125 (WebCore::AudioNodeInput::updateInternalBus):
126 (WebCore::AudioNodeInput::internalSummingBus):
127 * webaudio/AudioNodeInput.h:
129 2012-01-31 Alexey Proskuryakov <ap@apple.com>
131 REGRESSION (WebKit2): event.keyCode is always zero when typing in Russian
132 https://bugs.webkit.org/show_bug.cgi?id=77473
133 <rdar://problem/10751357>
135 Reviewed by Darin Adler.
137 Test: platform/mac/fast/events/non-roman-key-code.html
140 * platform/mac/PlatformEventFactoryMac.h:
141 * platform/mac/PlatformEventFactoryMac.mm:
142 (WebCore::keyIdentifierForKeyEvent):
143 (WebCore::windowsKeyCodeForKeyEvent):
144 Export functions for reuse in WebKit2. I did not attempt any larger refactoring at this time.
146 2012-01-31 Gregg Tavares <gman@google.com>
148 Make WebGL put synthesized errors in the JS console
149 https://bugs.webkit.org/show_bug.cgi?id=77267
151 Reviewed by Kenneth Russell.
153 No new functionality so no new tests.
155 * html/canvas/WebGLCompressedTextures.cpp:
156 (WebCore::WebGLCompressedTextures::validateCompressedTexFuncData):
157 (WebCore::WebGLCompressedTextures::compressedTexImage2D):
158 (WebCore::WebGLCompressedTextures::compressedTexSubImage2D):
159 * html/canvas/WebGLCompressedTextures.h:
160 (WebGLCompressedTextures):
161 * html/canvas/WebGLDebugShaders.cpp:
162 (WebCore::WebGLDebugShaders::getTranslatedShaderSource):
163 * html/canvas/WebGLRenderingContext.cpp:
164 (WebCore::WebGLRenderingContext::activeTexture):
165 (WebCore::WebGLRenderingContext::attachShader):
166 (WebCore::WebGLRenderingContext::bindAttribLocation):
167 (WebCore::WebGLRenderingContext::checkObjectToBeBound):
168 (WebCore::WebGLRenderingContext::bindBuffer):
169 (WebCore::WebGLRenderingContext::bindFramebuffer):
170 (WebCore::WebGLRenderingContext::bindRenderbuffer):
171 (WebCore::WebGLRenderingContext::bindTexture):
172 (WebCore::WebGLRenderingContext::blendEquation):
173 (WebCore::WebGLRenderingContext::blendEquationSeparate):
174 (WebCore::WebGLRenderingContext::blendFunc):
175 (WebCore::WebGLRenderingContext::blendFuncSeparate):
176 (WebCore::WebGLRenderingContext::bufferData):
177 (WebCore::WebGLRenderingContext::bufferSubData):
178 (WebCore::WebGLRenderingContext::checkFramebufferStatus):
179 (WebCore::WebGLRenderingContext::clear):
180 (WebCore::WebGLRenderingContext::compileShader):
181 (WebCore::WebGLRenderingContext::compressedTexImage2D):
182 (WebCore::WebGLRenderingContext::compressedTexSubImage2D):
183 (WebCore::WebGLRenderingContext::copyTexImage2D):
184 (WebCore::WebGLRenderingContext::copyTexSubImage2D):
185 (WebCore::WebGLRenderingContext::createShader):
186 (WebCore::WebGLRenderingContext::deleteObject):
187 (WebCore::WebGLRenderingContext::depthRange):
188 (WebCore::WebGLRenderingContext::detachShader):
189 (WebCore::WebGLRenderingContext::disable):
190 (WebCore::WebGLRenderingContext::disableVertexAttribArray):
191 (WebCore::WebGLRenderingContext::validateWebGLObject):
192 (WebCore::WebGLRenderingContext::drawArrays):
193 (WebCore::WebGLRenderingContext::drawElements):
194 (WebCore::WebGLRenderingContext::enable):
195 (WebCore::WebGLRenderingContext::enableVertexAttribArray):
196 (WebCore::WebGLRenderingContext::framebufferRenderbuffer):
197 (WebCore::WebGLRenderingContext::framebufferTexture2D):
198 (WebCore::WebGLRenderingContext::generateMipmap):
199 (WebCore::WebGLRenderingContext::getActiveAttrib):
200 (WebCore::WebGLRenderingContext::getActiveUniform):
201 (WebCore::WebGLRenderingContext::getAttachedShaders):
202 (WebCore::WebGLRenderingContext::getAttribLocation):
203 (WebCore::WebGLRenderingContext::getBufferParameter):
204 (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
205 (WebCore::WebGLRenderingContext::getParameter):
206 (WebCore::WebGLRenderingContext::getProgramParameter):
207 (WebCore::WebGLRenderingContext::getProgramInfoLog):
208 (WebCore::WebGLRenderingContext::getRenderbufferParameter):
209 (WebCore::WebGLRenderingContext::getShaderParameter):
210 (WebCore::WebGLRenderingContext::getShaderInfoLog):
211 (WebCore::WebGLRenderingContext::getShaderSource):
212 (WebCore::WebGLRenderingContext::getTexParameter):
213 (WebCore::WebGLRenderingContext::getUniform):
214 (WebCore::WebGLRenderingContext::getUniformLocation):
215 (WebCore::WebGLRenderingContext::getVertexAttrib):
216 (WebCore::WebGLRenderingContext::hint):
217 (WebCore::WebGLRenderingContext::isEnabled):
218 (WebCore::WebGLRenderingContext::linkProgram):
219 (WebCore::WebGLRenderingContext::pixelStorei):
220 (WebCore::WebGLRenderingContext::readPixels):
221 (WebCore::WebGLRenderingContext::renderbufferStorage):
222 (WebCore::WebGLRenderingContext::scissor):
223 (WebCore::WebGLRenderingContext::shaderSource):
224 (WebCore::WebGLRenderingContext::stencilFunc):
225 (WebCore::WebGLRenderingContext::stencilFuncSeparate):
226 (WebCore::WebGLRenderingContext::stencilMaskSeparate):
227 (WebCore::WebGLRenderingContext::texImage2DBase):
228 (WebCore::WebGLRenderingContext::texImage2DImpl):
229 (WebCore::WebGLRenderingContext::texImage2D):
230 (WebCore::WebGLRenderingContext::videoFrameToImage):
231 (WebCore::WebGLRenderingContext::texParameter):
232 (WebCore::WebGLRenderingContext::texSubImage2DBase):
233 (WebCore::WebGLRenderingContext::texSubImage2DImpl):
234 (WebCore::WebGLRenderingContext::texSubImage2D):
235 (WebCore::WebGLRenderingContext::uniform1f):
236 (WebCore::WebGLRenderingContext::uniform1fv):
237 (WebCore::WebGLRenderingContext::uniform1i):
238 (WebCore::WebGLRenderingContext::uniform1iv):
239 (WebCore::WebGLRenderingContext::uniform2f):
240 (WebCore::WebGLRenderingContext::uniform2fv):
241 (WebCore::WebGLRenderingContext::uniform2i):
242 (WebCore::WebGLRenderingContext::uniform2iv):
243 (WebCore::WebGLRenderingContext::uniform3f):
244 (WebCore::WebGLRenderingContext::uniform3fv):
245 (WebCore::WebGLRenderingContext::uniform3i):
246 (WebCore::WebGLRenderingContext::uniform3iv):
247 (WebCore::WebGLRenderingContext::uniform4f):
248 (WebCore::WebGLRenderingContext::uniform4fv):
249 (WebCore::WebGLRenderingContext::uniform4i):
250 (WebCore::WebGLRenderingContext::uniform4iv):
251 (WebCore::WebGLRenderingContext::uniformMatrix2fv):
252 (WebCore::WebGLRenderingContext::uniformMatrix3fv):
253 (WebCore::WebGLRenderingContext::uniformMatrix4fv):
254 (WebCore::WebGLRenderingContext::useProgram):
255 (WebCore::WebGLRenderingContext::validateProgram):
256 (WebCore::WebGLRenderingContext::vertexAttrib1f):
257 (WebCore::WebGLRenderingContext::vertexAttrib1fv):
258 (WebCore::WebGLRenderingContext::vertexAttrib2f):
259 (WebCore::WebGLRenderingContext::vertexAttrib2fv):
260 (WebCore::WebGLRenderingContext::vertexAttrib3f):
261 (WebCore::WebGLRenderingContext::vertexAttrib3fv):
262 (WebCore::WebGLRenderingContext::vertexAttrib4f):
263 (WebCore::WebGLRenderingContext::vertexAttrib4fv):
264 (WebCore::WebGLRenderingContext::vertexAttribPointer):
265 (WebCore::WebGLRenderingContext::viewport):
266 (WebCore::WebGLRenderingContext::forceLostContext):
267 (WebCore::WebGLRenderingContext::loseContextImpl):
268 (WebCore::WebGLRenderingContext::forceRestoreContext):
269 (WebCore::WebGLRenderingContext::validateTextureBinding):
270 (WebCore::WebGLRenderingContext::validateLocationLength):
271 (WebCore::WebGLRenderingContext::validateSize):
272 (WebCore::WebGLRenderingContext::validateString):
273 (WebCore::WebGLRenderingContext::validateTexFuncFormatAndType):
274 (WebCore::WebGLRenderingContext::validateTexFuncLevel):
275 (WebCore::WebGLRenderingContext::validateTexFuncParameters):
276 (WebCore::WebGLRenderingContext::validateTexFuncData):
277 (WebCore::WebGLRenderingContext::validateDrawMode):
278 (WebCore::WebGLRenderingContext::validateStencilSettings):
279 (WebCore::WebGLRenderingContext::validateStencilFunc):
280 (WebCore::WebGLRenderingContext::validateFramebufferFuncParameters):
281 (WebCore::WebGLRenderingContext::validateBlendEquation):
282 (WebCore::WebGLRenderingContext::validateBlendFuncFactors):
283 (WebCore::WebGLRenderingContext::validateCapability):
284 (WebCore::WebGLRenderingContext::validateUniformParameters):
285 (WebCore::WebGLRenderingContext::validateUniformMatrixParameters):
286 (WebCore::WebGLRenderingContext::validateBufferDataParameters):
287 (WebCore::WebGLRenderingContext::validateHTMLImageElement):
288 (WebCore::WebGLRenderingContext::vertexAttribfImpl):
289 (WebCore::WebGLRenderingContext::vertexAttribfvImpl):
290 (WebCore::WebGLRenderingContext::maybeRestoreContext):
292 (WebCore::WebGLRenderingContext::synthesizeGLError):
293 * html/canvas/WebGLRenderingContext.h:
294 (WebGLRenderingContext):
296 2012-01-31 Raymond Liu <raymond.liu@intel.com>
298 Clean up m_processLock logic in AudioBasicProcessorNode and AudioGainNode
299 https://bugs.webkit.org/show_bug.cgi?id=76772
301 Reviewed by Kenneth Russell.
303 No new tests required.
305 * webaudio/AudioBasicProcessorNode.cpp:
306 (WebCore::AudioBasicProcessorNode::process):
307 (WebCore::AudioBasicProcessorNode::checkNumberOfChannelsForInput):
308 * webaudio/AudioBasicProcessorNode.h:
309 * webaudio/AudioGainNode.cpp:
310 (WebCore::AudioGainNode::process):
311 (WebCore::AudioGainNode::checkNumberOfChannelsForInput):
312 * webaudio/AudioGainNode.h:
315 2012-01-31 Adam Klein <adamk@chromium.org>
317 ProcessingInstruction should not be a ContainerNode
318 https://bugs.webkit.org/show_bug.cgi?id=75141
320 Reviewed by Darin Adler.
322 Per the DOM spec, ProcessingInstruction can't have any children.
323 And the WebCore behavior already matches the spec by always returning
324 false for childTypeAllowed(). This change simplifies
325 ProcessingInstruction's implementation by making it subclass Node
326 instead of ContainerNode.
328 Test: fast/dom/processing-instruction-appendChild-exceptions.xhtml
330 * dom/ContainerNode.cpp: Moved dispatchBeforeLoadEvent up to Node.
331 * dom/ContainerNode.h:
333 (WebCore::Node::dispatchBeforeLoadEvent): Moved up from ContainerNode
334 since it's used both by ProcessingInstruction and various Element
337 * dom/ProcessingInstruction.cpp:
338 (WebCore::ProcessingInstruction::ProcessingInstruction): Call Node constructor.
339 (WebCore::ProcessingInstruction::insertedIntoDocument): Call Node impl.
340 (WebCore::ProcessingInstruction::removedFromDocument): ditto.
341 (WebCore::ProcessingInstruction::finishParsingChildren): ditto.
342 * dom/ProcessingInstruction.h:
344 2012-01-31 Matthew Delaney <mdelaney@apple.com>
346 Failing 2d.shadow.enable.off.2.html on Lion
347 https://bugs.webkit.org/show_bug.cgi?id=77489
349 Reviewed by Dan Bernstein.
351 The canvas spec requires that shadows not be drawn under certain
352 circumstances outlined here: http://www.whatwg.org/specs/web-apps/current-work/#shadows
353 This patch adds in those checks which allows us to pass now (on Lion)
354 the philip canvas test that was checking that constraint.
356 No new tests. Unskipping the test on Lion that this patch fixes.
358 * html/canvas/CanvasRenderingContext2D.cpp:
359 (WebCore::CanvasRenderingContext2D::setAllAttributesToDefault):
360 (WebCore::CanvasRenderingContext2D::setShadow):
361 (WebCore::CanvasRenderingContext2D::applyShadow):
362 (WebCore::CanvasRenderingContext2D::shouldDrawShadows):
363 * html/canvas/CanvasRenderingContext2D.h:
364 (CanvasRenderingContext2D):
366 2012-01-31 Anders Carlsson <andersca@apple.com>
368 TileCache::setNeedsDisplayInRect cleanup
369 https://bugs.webkit.org/show_bug.cgi?id=77486
371 Reviewed by Andreas Kling.
373 * platform/graphics/ca/mac/TileCache.h:
374 * platform/graphics/ca/mac/TileCache.mm:
375 (WebCore::TileCache::setNeedsDisplayInRect):
376 TileCache::tileLayerAtIndex can in the future return nil, so cope with that. Also, replace
377 nested if statements with continue statements.
379 (WebCore::TileCache::getTileIndexRangeForRect):
380 Rename this to better indicate that it returns a range of indices.
382 2012-01-31 Dana Jansens <danakj@chromium.org>
384 Add contains() test to Region
385 https://bugs.webkit.org/show_bug.cgi?id=72294
387 Reviewed by Anders Carlsson.
389 * platform/graphics/Region.cpp:
390 (WebCore::Region::contains):
392 * platform/graphics/Region.h:
395 (WebCore::operator==):
398 2012-01-31 Sami Kyostila <skyostil@chromium.org>
400 [chromium] Compositor debug borders are not scaled correctly
401 https://bugs.webkit.org/show_bug.cgi?id=77468
403 Use CCLayerImpl::contentBounds() instead of CCLayerImpl::bounds() to calculate debug
404 border geometry so that the borders are properly scaled.
406 Reviewed by James Robinson.
408 * platform/graphics/chromium/cc/CCLayerImpl.cpp:
409 (WebCore::CCLayerImpl::appendDebugBorderQuad):
411 2012-01-31 Sheriff Bot <webkit.review.bot@gmail.com>
413 Unreviewed, rolling out r106376.
414 http://trac.webkit.org/changeset/106376
415 https://bugs.webkit.org/show_bug.cgi?id=77481
417 Broke WebGLLayerChromiumTest in webkit_unit_tests (Requested
418 by kbr_google on #webkit).
420 * platform/graphics/gpu/DrawingBuffer.cpp:
422 (WebCore::DrawingBuffer::reset):
424 2012-01-31 Mihnea Ovidenie <mihnea@adobe.com>
426 [CSSRegions]Reduce the cases when the box style in region is computed
427 https://bugs.webkit.org/show_bug.cgi?id=77446
429 Reviewed by David Hyatt.
431 Covered by existing region style tests.
433 * rendering/RenderRegion.cpp:
434 (WebCore::RenderRegion::setRegionBoxesRegionStyle):
435 (WebCore::RenderRegion::restoreRegionBoxesOriginalStyle):
437 2012-01-31 Anders Carlsson <andersca@apple.com>
439 Put tiles in a HashMap
440 https://bugs.webkit.org/show_bug.cgi?id=77480
442 Reviewed by Antti Koivisto.
444 Put tiles in a hash map keyed off the tile index.
446 * platform/graphics/ca/mac/TileCache.h:
447 Shuffle member variables around so the order makes more sense.
450 * platform/graphics/ca/mac/TileCache.mm:
451 (WebCore::TileCache::TileCache):
452 Update member initializers.
454 (WebCore::TileCache::setNeedsDisplayInRect):
455 Call tileLayerAtIndex instead of tileLayerAtPosition.
457 (WebCore::TileCache::setAcceleratesDrawing):
458 (WebCore::TileCache::setTileDebugBorderWidth):
459 (WebCore::TileCache::setTileDebugBorderColor):
460 Iterate over the hash map instead of the sublayers.
462 (WebCore::TileCache::resizeTileGrid):
463 Add the created layers to the map.
465 (WebCore::TileCache::tileLayerAtIndex):
466 Rename from tileLayerAtPoint to better reflect that this member function
467 returns a tile layer at the given index and not the given point.
469 2012-01-31 Antti Koivisto <antti@apple.com>
471 Make CSSOM style() return CSSStyleDeclaration*
472 https://bugs.webkit.org/show_bug.cgi?id=77475
474 Reviewed by Anders Carlsson
476 CSSStyleRule::style() and some other places return CSSMutableStyleDeclaration.
477 They should return the plain CSSOM type instead.
479 CSSMutableStyleDeclaration* should be available through non-CSSOM function.
481 * css/CSSFontFaceRule.h:
482 (WebCore::CSSFontFaceRule::style):
483 (WebCore::CSSFontFaceRule::declaration):
484 * css/CSSFontSelector.cpp:
485 (WebCore::CSSFontSelector::addFontFaceRule):
486 * css/CSSStyleRule.h:
487 (WebCore::CSSStyleRule::style):
488 (WebCore::CSSStyleRule::declaration):
489 * css/CSSStyleSelector.cpp:
490 (WebCore::CSSStyleSelector::styleForKeyframe):
491 * css/WebKitCSSKeyframeRule.h:
493 (WebCore::WebKitCSSKeyframeRule::style):
494 (WebCore::WebKitCSSKeyframeRule::declaration):
495 (WebKitCSSKeyframeRule):
496 * editing/EditingStyle.cpp:
497 (WebCore::styleFromMatchedRulesForElement):
498 * inspector/InspectorStyleSheet.cpp:
499 (WebCore::InspectorStyleSheet::revalidateStyle):
500 * page/PageSerializer.cpp:
501 (WebCore::PageSerializer::retrieveResourcesForCSSRule):
502 * svg/SVGFontFaceElement.cpp:
503 (WebCore::SVGFontFaceElement::parseMappedAttribute):
504 (WebCore::SVGFontFaceElement::fontFamily):
505 (WebCore::SVGFontFaceElement::rebuildFontFace):
507 2012-01-31 Scott Graham <scottmg@chromium.org>
509 [Chromium] Remove references to gyp cygwin build target
510 https://bugs.webkit.org/show_bug.cgi?id=77253
512 Reviewed by Julien Chaffraix.
514 Target dependency is no longer required, it's done earlier in the
517 * WebCore.gyp/WebCore.gyp:
519 2012-01-31 Jon Lee <jonlee@apple.com>
521 Hidden form elements do not save their state prior to form submission
522 https://bugs.webkit.org/show_bug.cgi?id=77391
523 <rdar://problem/10563108>
525 Reviewed by Brady Eidson.
527 Test: fast/forms/state-restore-hidden.html
529 * html/HiddenInputType.cpp: Teach hidden inputs to save and restore their state.
530 (WebCore::HiddenInputType::saveFormControlState):
531 (WebCore::HiddenInputType::restoreFormControlState):
532 * html/HiddenInputType.h:
535 2012-01-31 Joshua Bell <jsbell@chromium.org>
537 IndexedDB: IDBCursor.update() should raise exception if key changed
538 https://bugs.webkit.org/show_bug.cgi?id=76952
540 Move the test from the async task to the synchronous call, per spec. Also re-ordered the tests
541 done during the synchronous call and the asynchronous task to follow the spec order.
543 Reviewed by Tony Chang.
545 Tests: storage/indexeddb/cursor-update.html
547 * storage/IDBObjectStoreBackendImpl.cpp:
548 (WebCore::IDBObjectStoreBackendImpl::put): Added check during update() call, order checks per spec.
549 (WebCore::IDBObjectStoreBackendImpl::putInternal): Move effective key calculation inline.
550 * storage/IDBObjectStoreBackendImpl.h: Removed selectKeyForPut method.
552 2012-01-31 Anders Carlsson <andersca@apple.com>
554 Inform the tile cache whenever the visible rect changes
555 https://bugs.webkit.org/show_bug.cgi?id=77470
557 Reviewed by Andreas Kling.
559 * platform/graphics/GraphicsLayer.h:
560 (WebCore::GraphicsLayer::visibleRectChanged):
563 * platform/graphics/ca/GraphicsLayerCA.cpp:
564 (WebCore::GraphicsLayerCA::visibleRectChanged):
565 Call through to the PlatformCALayer.
567 * platform/graphics/ca/mac/PlatformCALayerMac.mm:
568 (PlatformCALayer::visibleRectChanged):
569 Call through to the underlying WebTileCacheLayer.
571 * platform/graphics/ca/mac/TileCache.mm:
572 (WebCore::TileCache::visibleRectChanged):
575 (WebCore::TileCache::visibleRect):
576 Add new (currently unused) helper function that returns the visible rect of the
579 * platform/graphics/ca/mac/WebTileCacheLayer.h:
580 * platform/graphics/ca/mac/WebTileCacheLayer.mm:
581 (-[WebTileCacheLayer visibleRectChanged]):
582 Call through to the TielCache object.
584 * platform/graphics/ca/win/PlatformCALayerWin.cpp:
585 (PlatformCALayer::visibleRectChanged):
588 * rendering/RenderLayerCompositor.cpp:
589 (WebCore::RenderLayerCompositor::frameViewDidScroll):
590 Call GraphicsLayer::visibleRectChanged.
592 2012-01-31 Antti Koivisto <antti@apple.com>
594 Remove CSSStyleDeclaration isElementStyleDeclaration bit
595 https://bugs.webkit.org/show_bug.cgi?id=77460
597 Reviewed by Andreas Kling.
599 Inline style declaration is now the only type of style declaration with element parent.
600 We can remove the bit and the associated logic.
602 * bindings/js/JSDOMBinding.h:
604 * css/CSSMutableStyleDeclaration.cpp:
605 (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
606 (WebCore::CSSMutableStyleDeclaration::setNeedsStyleRecalc):
607 * css/CSSMutableStyleDeclaration.h:
608 (WebCore::CSSMutableStyleDeclaration::createInline):
609 (CSSMutableStyleDeclaration):
610 * css/CSSStyleDeclaration.cpp:
611 (WebCore::CSSStyleDeclaration::CSSStyleDeclaration):
613 (WebCore::CSSStyleDeclaration::parentStyleSheet):
614 * css/CSSStyleDeclaration.h:
615 (WebCore::CSSStyleDeclaration::parentRule):
616 (WebCore::CSSStyleDeclaration::clearParentRule):
617 (WebCore::CSSStyleDeclaration::parentElement):
618 (WebCore::CSSStyleDeclaration::clearParentElement):
619 (CSSStyleDeclaration):
621 2012-01-31 Dana Jansens <danakj@chromium.org>
623 [chromium] Compute occlusion during paint loop
624 https://bugs.webkit.org/show_bug.cgi?id=76858
626 Reviewed by James Robinson.
628 New unit tests in TiledLayerChromiumTest.cpp, CCLayerTreeHostCommonTest.cpp, CCLayerTreeHostTest.cpp
630 * platform/graphics/FloatRect.cpp:
631 (WebCore::enclosedIntRect):
633 * platform/graphics/FloatRect.h:
635 * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
636 (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
637 * platform/graphics/chromium/Canvas2DLayerChromium.h:
638 (Canvas2DLayerChromium):
639 * platform/graphics/chromium/ContentLayerChromium.cpp:
640 (WebCore::ContentLayerChromium::paintContentsIfDirty):
641 * platform/graphics/chromium/ContentLayerChromium.h:
642 (ContentLayerChromium):
643 * platform/graphics/chromium/ImageLayerChromium.cpp:
644 (WebCore::ImageLayerChromium::paintContentsIfDirty):
645 * platform/graphics/chromium/ImageLayerChromium.h:
646 (ImageLayerChromium):
647 * platform/graphics/chromium/LayerChromium.cpp:
648 (WebCore::LayerChromium::contentToScreenSpaceTransform):
650 (WebCore::LayerChromium::addSelfToOccludedScreenSpace):
651 (WebCore::LayerChromium::isPaintedAxisAlignedInScreen):
652 * platform/graphics/chromium/LayerChromium.h:
654 (WebCore::LayerChromium::paintContentsIfDirty):
656 * platform/graphics/chromium/RenderSurfaceChromium.h:
657 (RenderSurfaceChromium):
658 * platform/graphics/chromium/TiledLayerChromium.cpp:
659 (WebCore::TiledLayerChromium::addSelfToOccludedScreenSpace):
660 * platform/graphics/chromium/TiledLayerChromium.h:
663 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
664 (WebCore::CCLayerTreeHost::paintContentsIfDirty):
665 (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
666 (RenderSurfaceRegion):
668 (WebCore::pushTargetRenderSurfaceRegion):
669 (WebCore::popAndPushTargetRenderSurfaceRegion):
670 (WebCore::CCLayerTreeHost::paintLayerContents):
671 * platform/graphics/chromium/cc/CCLayerTreeHost.h:
674 * platform/graphics/chromium/cc/CCQuadCuller.cpp:
676 2012-01-31 John Bates <jbates@google.com>
678 [Chromium] Add chromium-style tracing support
679 https://bugs.webkit.org/show_bug.cgi?id=76885
681 Reviewed by Darin Fisher.
683 This code enables WebKit trace events to pass through more data to the
684 chromium platform tracing API and generally to use the full tracing
685 API provided by chromium.
687 * bindings/v8/V8Proxy.cpp:
688 (WebCore::V8Proxy::evaluate): Replace old tracing API.
690 (WebCore::Console::time): Replace old tracing API.
691 (WebCore::Console::timeEnd): Replace old tracing API.
692 * platform/chromium/PlatformSupport.h:
693 * platform/chromium/TraceEvent.h:
694 (WebCore::TraceEvent::TraceID::TraceID):
695 (WebCore::TraceEvent::TraceID::data):
696 (WebCore::TraceEvent::TraceStringWithCopy::TraceStringWithCopy):
697 (WebCore::TraceEvent::TraceStringWithCopy::operator const char* ):
698 (WebCore::TraceEvent::setTraceValue):
699 (WebCore::TraceEvent::addTraceEvent):
700 (WebCore::TraceEvent::TraceEndOnScopeClose::TraceEndOnScopeClose):
701 (WebCore::TraceEvent::TraceEndOnScopeClose::~TraceEndOnScopeClose):
702 (WebCore::TraceEvent::TraceEndOnScopeClose::initialize):
703 (WebCore::TraceEvent::TraceEndOnScopeClose::addEventIfEnabled):
704 (WebCore::TraceEvent::TraceEndOnScopeCloseThreshold::TraceEndOnScopeCloseThreshold):
705 (WebCore::TraceEvent::TraceEndOnScopeCloseThreshold::~TraceEndOnScopeCloseThreshold):
706 (WebCore::TraceEvent::TraceEndOnScopeCloseThreshold::initialize):
707 (WebCore::TraceEvent::TraceEndOnScopeCloseThreshold::addEventIfEnabled):
709 2012-01-31 Ryosuke Niwa <rniwa@webkit.org>
711 Crash in DeleteSelectionCommand::handleGeneralDelete when attempting to delete the start block
712 https://bugs.webkit.org/show_bug.cgi?id=77077
714 Reviewed by Enrica Casucci.
716 The crash was caused by a missing null check after removing the position out of the start block.
717 Fixed the bug by adding an early return.
719 Tests: editing/deleting/delete-start-block.html
720 editing/selection/move-into-empty-root-inline-box.html
722 * editing/DeleteSelectionCommand.cpp:
723 (WebCore::DeleteSelectionCommand::handleGeneralDelete):
725 2012-01-31 Rafael Brandao <rafael.lobo@openbossa.org>
727 HTMLIsIndexElement should not expose HTMLInputElement properties
728 https://bugs.webkit.org/show_bug.cgi?id=76095
730 Reviewed by Eric Seidel.
732 This is a buildfix for r106373.
734 * DerivedSources.pri: Removed reference to HTMLIsIndexElement.idl
736 2012-01-31 Yongsheng Zhu <yongsheng.zhu@intel.com>
738 WebGL must allocate smaller drawing buffer when the allocation fails.
739 https://bugs.webkit.org/show_bug.cgi?id=76654
741 Reviewed by Kenneth Russell.
743 Test: fast/canvas/webgl/drawingbuffer-test.html
745 * platform/graphics/gpu/DrawingBuffer.cpp:
747 (WebCore::DrawingBuffer::create):
748 (WebCore::DrawingBuffer::reset):
750 2012-01-25 Eric Seidel <eric@webkit.org>
752 HTMLIsIndexElement should not expose HTMLInputElement properties
753 https://bugs.webkit.org/show_bug.cgi?id=76095
755 Reviewed by Adam Barth.
757 document.createElement("isindex") should produce an HTMLUnknownElement
758 per the HTML5 spec. The parser automagically translates <isindex> into
759 a whole dom tree roughly representing what <isindex> used to do 15 years ago. :)
761 This patch just removes our support for HTMLIsIndexElement. The parser
762 support was already in. Having support for HTMLIsIndexElement was causing
763 one of the IE TestCenter tests to fail.
765 Test: fast/dom/HTMLIsIndexElement/prototype-chain.html
767 * DerivedSources.cpp:
768 * DerivedSources.make:
769 * DerivedSources.pri:
770 * GNUmakefile.list.am:
775 * WebCore.vcproj/WebCore.vcproj:
776 * WebCore.xcodeproj/project.pbxproj:
777 * bindings/gobject/GNUmakefile.am:
778 * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp:
779 (WebKit::createHTMLElementWrapper):
780 * bindings/objc/DOM.mm:
781 (WebCore::createElementClassMap):
782 * bindings/objc/DOMHTML.h:
783 * bindings/objc/PublicDOMInterfaces.h:
784 * html/HTMLElementsAllInOne.cpp:
785 * html/HTMLIsIndexElement.cpp: Removed.
786 * html/HTMLIsIndexElement.h: Removed.
787 * html/HTMLIsIndexElement.idl: Removed.
788 * html/HTMLTagNames.in:
789 * page/DOMWindow.idl:
791 2012-01-31 Alexis Menard <alexis.menard@openbossa.org>
793 Unreviewed include cleanup.
795 Tested locally on Qt and Chromium port.
799 2012-01-31 Arko Saha <arko@motorola.com>
801 The spec renamed addTrack() to addTextTrack().
802 https://bugs.webkit.org/show_bug.cgi?id=77381
804 Reviewed by Eric Carlson.
806 Renamed addTrack() to addTextTrack().
807 Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#media-elements
809 * html/HTMLMediaElement.cpp:
810 (WebCore::HTMLMediaElement::addTextTrack):
811 * html/HTMLMediaElement.h:
812 (WebCore::HTMLMediaElement::addTextTrack):
813 * html/HTMLMediaElement.idl:
815 2012-01-31 Peter Rybin <peter.rybin@gmail.com>
817 Web Inspector: CodeGeneratorInspector.py: reimplement generated array types
818 https://bugs.webkit.org/show_bug.cgi?id=77289
820 Reviewed by Vsevolod Vlasov.
822 Arrays are now rendered as a single template class. Its type-specific
823 details are provided by an additional ArrayItemHelper class that is
824 defined using C++ specialization technique.
826 * inspector/CodeGeneratorInspector.py:
828 (RawTypes.String.get_array_item_raw_c_type_text):
830 (RawTypes.Int.get_array_item_raw_c_type_text):
832 (RawTypes.Number.get_array_item_raw_c_type_text):
834 (RawTypes.Bool.get_array_item_raw_c_type_text):
836 (RawTypes.Object.get_array_item_raw_c_type_text):
838 (RawTypes.Any.get_array_item_raw_c_type_text):
840 (RawTypes.Array.get_array_item_raw_c_type_text):
842 (TypeBindings.create_type_declaration_.EnumBinding):
843 (TypeBindings.create_type_declaration_.EnumBinding.get_array_item_c_type_text):
844 (TypeBindings.create_type_declaration_.PlainString):
845 (TypeBindings.create_type_declaration_.PlainString.get_array_item_c_type_text):
846 (TypeBindings.create_type_declaration_.TypedefString):
847 (TypeBindings.create_type_declaration_.TypedefString.get_array_item_c_type_text):
849 (get_array_item_c_type_text):
850 (PlainObjectBinding):
851 (PlainObjectBinding.get_array_item_c_type_text):
853 (AdHocTypeContext.get_type_name_fix):
854 (AdHocTypeContext.add_type):
856 (ArrayBinding.resolve_inner):
857 (ArrayBinding.resolve_inner.ResolveData):
858 (ArrayBinding.request_user_runtime_cast):
859 (ArrayBinding.request_internal_runtime_cast):
860 (ArrayBinding.get_code_generator):
861 (ArrayBinding.get_code_generator.CodeGenerator):
862 (ArrayBinding.get_code_generator.CodeGenerator.generate_type_builder):
863 (ArrayBinding.get_code_generator.CodeGenerator.generate_forward_declaration):
864 (ArrayBinding.get_code_generator.CodeGenerator.register_use):
865 (ArrayBinding.get_code_generator.CodeGenerator.get_generate_pass_id):
866 (ArrayBinding.get_validator_call_text):
867 (ArrayBinding.get_in_c_type_text):
868 (ArrayBinding.get_array_item_c_type_text):
869 (ArrayBinding.get_setter_value_expression_pattern):
870 (ArrayBinding.reduce_to_raw_type):
871 (RawTypeBinding.get_array_item_c_type_text):
877 2012-01-31 Antti Koivisto <antti@apple.com>
879 Parent SVGFontFaceElements style declaration to the rule
880 https://bugs.webkit.org/show_bug.cgi?id=77421
882 Reviewed by Adam Roben.
884 For some reason the declaration is parented to the element which adds a bunch of unnecessary special case code.
885 The invalidation on mutation is done explicitly by SVGFontFaceElement so that is not affected. The declaration
886 is not exposed so the change is not observable with a test.
888 * css/CSSFontFaceRule.cpp:
889 (WebCore::CSSFontFaceRule::~CSSFontFaceRule):
890 * css/CSSMutableStyleDeclaration.h:
891 (WebCore::CSSMutableStyleDeclaration::createInline):
892 * svg/SVGFontFaceElement.cpp:
893 (WebCore::SVGFontFaceElement::SVGFontFaceElement):
894 (WebCore::SVGFontFaceElement::parseMappedAttribute):
895 (WebCore::SVGFontFaceElement::fontFamily):
896 (WebCore::SVGFontFaceElement::rebuildFontFace):
897 * svg/SVGFontFaceElement.h:
899 Remove the unnecessary m_styleDeclaration field, access through m_fontFaceRule instead.
901 2012-01-31 Kenneth Rohde Christiansen <kenneth@webkit.org>
903 Tap highlighting: Support better outlines for multiline inlines
904 https://bugs.webkit.org/show_bug.cgi?id=77428
906 Reviewed by Simon Hausmann.
908 Covered by manual tests.
910 Do not use the linesBoundingBox anymore but draw a custom path
911 with rounded corners. Inlines are drawn as max 3 rects, first
912 line rect, joined middle rect and the rect for the last line.
914 * page/GestureTapHighlighter.cpp:
915 * platform/graphics/Path.h: Make addBeziersForRoundedRect public.
917 2012-01-31 Alexei Filippov <alexeif@chromium.org>
919 Web Inspector: show sizes in bytes instead of KB, MB in heap profiler.
920 https://bugs.webkit.org/show_bug.cgi?id=77199
922 Reviewed by Pavel Feldman.
924 * inspector/front-end/DetailedHeapshotGridNodes.js:
925 (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
926 (WebInspector.HeapSnapshotInstanceNode.prototype._enhanceData):
927 (WebInspector.HeapSnapshotConstructorNode.prototype.get data):
928 (WebInspector.HeapSnapshotDiffNode.prototype.get data):
929 * inspector/front-end/UIUtils.js:
930 (Number.withThousandsSeparator):
932 2012-01-26 Hans Wennborg <hans@chromium.org>
934 Speech Input: move MockSpeechInputClient into Chromium DumpRenderTree implementation
935 https://bugs.webkit.org/show_bug.cgi?id=77083
937 Reviewed by Darin Fisher.
939 Remove SpeechInputClientMock. The mock is moving to the DumpRenderTree
942 No new tests, just refactoring.
944 * GNUmakefile.list.am:
947 * WebCore.vcproj/WebCore.vcproj:
948 * WebCore.xcodeproj/project.pbxproj:
949 * platform/mock/SpeechInputClientMock.cpp: Removed.
950 * platform/mock/SpeechInputClientMock.h: Removed.
952 2012-01-31 Pavel Feldman <pfeldman@google.com>
954 Web Inspector: boost protocol version to 1.0
955 https://bugs.webkit.org/show_bug.cgi?id=77408
957 Reviewed by Yury Semikhatsky.
959 * inspector/Inspector-1.0.json: Copied from Source/WebCore/inspector/Inspector.json.
960 * inspector/Inspector.json:
962 2012-01-31 Roland Steiner <rolandsteiner@chromium.org>
964 <style scoped>: Improve shortcut code for cases where <style scoped> isn't used
965 https://bugs.webkit.org/show_bug.cgi?id=77410
967 Move shortcut from setupScopingElementStack(), do it at the calling sites instead
968 (where a larger chunk of work can be skipped).
970 Reviewed by Antti Koivisto.
972 No new tests. (refactoring)
974 * css/CSSStyleSelector.cpp:
975 (WebCore::CSSStyleSelector::setupScopingElementStack): remove shortcut code
976 (WebCore::CSSStyleSelector::pushParent): add shortcut code
977 (WebCore::CSSStyleSelector::matchScopedAuthorRules): factor matching scoped rules out from matchAuthorRules
978 (WebCore::CSSStyleSelector::matchAuthorRules): add shortcut code
979 * css/CSSStyleSelector.h:
980 (CSSStyleSelector): add matchScopedAuthorRules
982 2012-01-31 Pavel Feldman <pfeldman@google.com>
984 Web Inspector: DOMDebugger.setEventListenerBreakpoint should accept regular DOM event names.
985 https://bugs.webkit.org/show_bug.cgi?id=77409
987 Reviewed by Yury Semikhatsky.
989 * inspector/Inspector.json:
990 * inspector/InspectorDOMDebuggerAgent.cpp:
991 (WebCore::InspectorDOMDebuggerAgent::setEventListenerBreakpoint):
993 (WebCore::InspectorDOMDebuggerAgent::setInstrumentationBreakpoint):
994 (WebCore::InspectorDOMDebuggerAgent::setBreakpoint):
995 (WebCore::InspectorDOMDebuggerAgent::removeEventListenerBreakpoint):
996 (WebCore::InspectorDOMDebuggerAgent::removeInstrumentationBreakpoint):
997 (WebCore::InspectorDOMDebuggerAgent::removeBreakpoint):
998 (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
999 * inspector/InspectorDOMDebuggerAgent.h:
1000 (InspectorDOMDebuggerAgent):
1001 * inspector/InspectorInstrumentation.cpp:
1002 (WebCore::InspectorInstrumentation::didInstallTimerImpl):
1003 (WebCore::InspectorInstrumentation::didRemoveTimerImpl):
1004 (WebCore::InspectorInstrumentation::willHandleEventImpl):
1005 (WebCore::InspectorInstrumentation::willFireTimerImpl):
1006 (WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded):
1007 * inspector/InspectorInstrumentation.h:
1008 (InspectorInstrumentation):
1009 * inspector/front-end/BreakpointsSidebarPane.js:
1010 (WebInspector.EventListenerBreakpointsSidebarPane.prototype._setBreakpoint):
1011 (WebInspector.EventListenerBreakpointsSidebarPane.prototype._removeBreakpoint):
1013 2012-01-31 Pablo Flouret <pablof@motorola.com>
1015 Fix compilation errors on build-webkit --debug --no-workers on mac.
1016 https://bugs.webkit.org/show_bug.cgi?id=75869
1018 Reviewed by Adam Barth.
1022 2012-01-30 Konrad Piascik <kpiascik@rim.com>
1024 Web Inspector: [BlackBerry] Add BlackBerry UA Strings to the Inspector's UA switcher
1025 https://bugs.webkit.org/show_bug.cgi?id=77343
1027 Reviewed by Yury Semikhatsky.
1029 * inspector/front-end/SettingsScreen.js:
1030 (WebInspector.SettingsScreen.prototype._createUserAgentSelectRowElement.get const):
1032 2012-01-30 Yury Semikhatsky <yurys@chromium.org>
1034 Web Inspector: should be possible to step through all event listeners when event listener breakpoint is hit
1035 https://bugs.webkit.org/show_bug.cgi?id=77331
1037 Inspector instrumentation is called before and after each event handler invokation.
1038 In case inspector front-end is closed it is no-op, otherwise it may stop execution
1039 on an event listener breakpoint.
1041 Reviewed by Pavel Feldman.
1043 Test: inspector/debugger/step-through-event-listeners.html
1045 * dom/EventTarget.cpp:
1046 (WebCore::EventTarget::fireEventListeners):
1047 * inspector/InspectorInstrumentation.cpp:
1048 (WebCore::InspectorInstrumentation::willDispatchEventImpl):
1049 (WebCore::InspectorInstrumentation::willHandleEventImpl):
1051 (WebCore::InspectorInstrumentation::didHandleEventImpl):
1052 (WebCore::InspectorInstrumentation::didDispatchEventImpl):
1053 (WebCore::InspectorInstrumentation::willDispatchEventOnWindowImpl):
1054 (WebCore::InspectorInstrumentation::didDispatchEventOnWindowImpl):
1055 * inspector/InspectorInstrumentation.h:
1056 (InspectorInstrumentation):
1057 (WebCore::InspectorInstrumentation::willHandleEvent):
1059 (WebCore::InspectorInstrumentation::didHandleEvent):
1061 2011-01-30 Hayato Ito <hayato@chromium.org>
1063 Attach light children after removing a shadow root.
1064 https://bugs.webkit.org/show_bug.cgi?id=74267
1066 Reviewed by Ryosuke Niwa.
1068 Tests: fast/dom/shadow/dynamically-created-shadow-root-expected.html
1069 fast/dom/shadow/dynamically-created-shadow-root.html:
1072 (WebCore::Element::removeShadowRoot):
1074 2012-01-30 Sheriff Bot <webkit.review.bot@gmail.com>
1076 Unreviewed, rolling out r106324.
1077 http://trac.webkit.org/changeset/106324
1078 https://bugs.webkit.org/show_bug.cgi?id=77406
1080 Broke CCLayerTreeHostTestLayerOcclusion.runMultiThread and
1081 runSingleThread (Requested by yuzo1 on #webkit).
1083 * platform/graphics/FloatRect.cpp:
1084 * platform/graphics/FloatRect.h:
1086 * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
1087 (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
1088 * platform/graphics/chromium/Canvas2DLayerChromium.h:
1090 (Canvas2DLayerChromium):
1091 * platform/graphics/chromium/ContentLayerChromium.cpp:
1092 (WebCore::ContentLayerChromium::paintContentsIfDirty):
1093 * platform/graphics/chromium/ContentLayerChromium.h:
1095 (ContentLayerChromium):
1096 * platform/graphics/chromium/ImageLayerChromium.cpp:
1097 (WebCore::ImageLayerChromium::paintContentsIfDirty):
1098 * platform/graphics/chromium/ImageLayerChromium.h:
1100 (ImageLayerChromium):
1101 * platform/graphics/chromium/LayerChromium.cpp:
1102 * platform/graphics/chromium/LayerChromium.h:
1104 (WebCore::LayerChromium::paintContentsIfDirty):
1106 * platform/graphics/chromium/RenderSurfaceChromium.h:
1107 * platform/graphics/chromium/TiledLayerChromium.cpp:
1108 * platform/graphics/chromium/TiledLayerChromium.h:
1110 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1111 (WebCore::CCLayerTreeHost::paintContentsIfDirty):
1112 (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
1113 (WebCore::CCLayerTreeHost::paintLayerContents):
1114 * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1116 * platform/graphics/chromium/cc/CCQuadCuller.cpp:
1117 (WebCore::enclosedIntRect):
1120 2012-01-30 Raymond Liu <raymond.liu@intel.com>
1122 Fix ASSERT fail within AudioBus::processWithGainFrom()
1123 https://bugs.webkit.org/show_bug.cgi?id=76685
1125 Reviewed by Daniel Bates.
1127 Test: webaudio/audionode-connect-order.html
1129 * webaudio/AudioBasicProcessorNode.cpp:
1130 (WebCore::AudioBasicProcessorNode::AudioBasicProcessorNode):
1132 2012-01-30 Roland Steiner <rolandsteiner@chromium.org>
1134 <style scoped>: Implement scoped stylesheets and basic application
1135 https://bugs.webkit.org/show_bug.cgi?id=73190
1137 Implementing support for <style scoped>:
1138 Add a vector stack to CSSStyleSelector that keeps track of encountered scoping elements. This is
1139 used for O(1) access to all relevant style sheets for a given element.
1140 Adapt matching of author style sheets to also consult appropriate scoped sheets.
1141 Finally, prevent style sharing from crossing into/out of scoped style boundaries.
1143 Reviewed by Antti Koivisto.
1145 Tests: fast/css/style-scoped/style-scoped-attach.html
1146 fast/css/style-scoped/style-scoped-basic.html
1147 fast/css/style-scoped/style-scoped-detach.html
1148 fast/css/style-scoped/style-scoped-remove-scoped.html
1149 fast/css/style-scoped/style-scoped-set-scoped.html
1151 * css/CSSStyleSelector.cpp:
1153 (WebCore::CSSStyleSelector::CSSStyleSelector): add code for scoped style sheets
1154 (WebCore::CSSStyleSelector::collectFeatures): ditto
1156 (WebCore::CSSStyleSelector::determineScopingElement): determine whether an author sheet is scoped (and to which scope), or global
1157 (WebCore::CSSStyleSelector::scopedRuleSetForElement): returns the RuleSet for the <style scoped> contained by the passed-in element (if any), or 0
1158 (WebCore::CSSStyleSelector::appendAuthorStylesheets): add code for scoped style sheets
1159 (WebCore::CSSStyleSelector::setupScopingElementStack): determine scoping element ancestors of the given element
1160 (WebCore::CSSStyleSelector::pushParent): simplify and refactor SelectorChecker::pushParent, as code in CSStyleSelector needs partial access
1161 (WebCore::CSSStyleSelector::popParent): ditto
1162 (WebCore::CSSStyleSelector::sortAndTransferMatchedRules): helper function
1163 (WebCore::CSSStyleSelector::matchAuthorRules): use AuthorRuleSetIterator to iterate over all relevant RuleSets
1164 (WebCore::CSSStyleSelector::matchRules): adapt for scoped style rules
1165 (WebCore::CSSStyleSelector::matchAllRules): ditto
1166 (WebCore::CSSStyleSelector::locateCousinList): prevent style sharing across scope boundaries
1167 (WebCore::CSSStyleSelector::canShareStyleWithElement): ditto
1168 (WebCore::CSSStyleSelector::locateSharedStyle): ditto
1169 (WebCore::CSSStyleSelector::pseudoStyleForElement): changed call to matchAuthorRules
1170 (WebCore::CSSStyleSelector::styleForPage): add comment
1171 (WebCore::CSSStyleSelector::checkRegionStyle): add global scope parameter
1172 (WebCore::CSSStyleSelector::pseudoStyleRulesForElement): changed call to matchAuthorRules
1173 (WebCore::RuleSet::addRulesFromSheet): adapt for scoped style rules
1174 * css/CSSStyleSelector.h:
1176 (WebCore::CSSStyleSelector::ScopeStackFrame::ScopeStackFrame): struct holding an Element pointer and a RuleSet pointer, to be used in a Vector
1177 (WebCore::CSSStyleSelector::scopingElementStackIsConsistent): returns if the last seen parent matches the passed-in element
1178 * css/SelectorChecker.cpp:
1179 (WebCore::SelectorChecker::setupParentStack): set up the parent stack (refactoring)
1180 (WebCore::SelectorChecker::pushParent): simplify and refactor
1181 * css/SelectorChecker.h:
1182 (WebCore::SelectorChecker::popParent): ditto
1183 (WebCore::SelectorChecker::parentStackIsEmpty): ditto
1184 (WebCore::SelectorChecker::parentStackIsConsistent): make parameter const
1186 2012-01-30 Dana Jansens <danakj@chromium.org>
1188 [chromium] Compute occlusion during paint loop
1189 https://bugs.webkit.org/show_bug.cgi?id=76858
1191 Reviewed by James Robinson.
1193 New unit tests in TiledLayerChromiumTest.cpp, CCLayerTreeHostCommonTest.cpp, CCLayerTreeHostTest.cpp
1195 * platform/graphics/FloatRect.cpp:
1196 (WebCore::enclosedIntRect):
1198 * platform/graphics/FloatRect.h:
1200 * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
1201 (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
1202 * platform/graphics/chromium/Canvas2DLayerChromium.h:
1203 (Canvas2DLayerChromium):
1204 * platform/graphics/chromium/ContentLayerChromium.cpp:
1205 (WebCore::ContentLayerChromium::paintContentsIfDirty):
1206 * platform/graphics/chromium/ContentLayerChromium.h:
1207 (ContentLayerChromium):
1208 * platform/graphics/chromium/ImageLayerChromium.cpp:
1209 (WebCore::ImageLayerChromium::paintContentsIfDirty):
1210 * platform/graphics/chromium/ImageLayerChromium.h:
1211 (ImageLayerChromium):
1212 * platform/graphics/chromium/LayerChromium.cpp:
1213 (WebCore::LayerChromium::contentToScreenSpaceTransform):
1215 (WebCore::LayerChromium::addSelfToOccludedScreenSpace):
1216 (WebCore::LayerChromium::isPaintedAxisAlignedInScreen):
1217 * platform/graphics/chromium/LayerChromium.h:
1219 (WebCore::LayerChromium::paintContentsIfDirty):
1221 * platform/graphics/chromium/RenderSurfaceChromium.h:
1222 (RenderSurfaceChromium):
1223 * platform/graphics/chromium/TiledLayerChromium.cpp:
1224 (WebCore::TiledLayerChromium::addSelfToOccludedScreenSpace):
1225 * platform/graphics/chromium/TiledLayerChromium.h:
1228 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1229 (WebCore::CCLayerTreeHost::paintContentsIfDirty):
1230 (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
1231 (RenderSurfaceRegion):
1233 (WebCore::pushTargetRenderSurfaceRegion):
1234 (WebCore::popAndPushTargetRenderSurfaceRegion):
1235 (WebCore::CCLayerTreeHost::paintLayerContents):
1236 * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1239 * platform/graphics/chromium/cc/CCQuadCuller.cpp:
1241 2012-01-30 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
1243 Add ElementAttributeData class to replace internal uses of NamedNodeMap
1244 https://bugs.webkit.org/show_bug.cgi?id=77233
1246 Reviewed by Andreas Kling.
1248 Move part of non-DOM functionality of NamedNodeMap into a separate class. This is
1249 the first step toward the goal of separating NamedNodeMap from internal attribute
1250 storage, as described in https://bugs.webkit.org/show_bug.cgi?id=75069.
1252 The internal attribute storage is exposed as attributeData() in Element, and when
1253 necessary (because it has no back pointer to Element) via methods in Element.
1255 No new tests. Except from setClass() change this is just moving the code, no new
1259 * GNUmakefile.list.am:
1262 * WebCore.xcodeproj/project.pbxproj:
1263 * dom/DOMAllInOne.cpp:
1265 (WebCore::Element::idAttributeChanged):
1267 (WebCore::Element::attributeData):
1268 (WebCore::Element::ensureAttributeData):
1270 (WebCore::Element::idForStyleResolution):
1271 * dom/ElementAttributeData.cpp: Added.
1273 (WebCore::ElementAttributeData::setClass): the only caller of this function
1274 already deal with the case when the element has no class, so don't do it here.
1275 * dom/ElementAttributeData.h: Added.
1277 (ElementAttributeData):
1278 (WebCore::ElementAttributeData::clearClass):
1279 (WebCore::ElementAttributeData::classNames):
1280 (WebCore::ElementAttributeData::idForStyleResolution):
1281 (WebCore::ElementAttributeData::setIdForStyleResolution):
1282 (WebCore::ElementAttributeData::ElementAttributeData):
1283 * dom/NamedNodeMap.cpp:
1284 (WebCore::NamedNodeMap::clearAttributes):
1285 * dom/NamedNodeMap.h:
1286 (WebCore::NamedNodeMap::attributeData):
1288 * dom/StyledElement.cpp:
1289 (WebCore::StyledElement::classAttributeChanged):
1290 * dom/StyledElement.h:
1291 (WebCore::StyledElement::classNames):
1292 * html/ClassList.cpp:
1293 (WebCore::ClassList::classNames):
1295 2012-01-30 Gregg Tavares <gman@chromium.org>
1297 Add Plumming to get graphics error messages to JS Console
1298 https://bugs.webkit.org/show_bug.cgi?id=77238
1300 Reviewed by Kenneth Russell.
1302 No new tests. No change in behavior.
1304 * html/canvas/WebGLRenderingContext.cpp:
1305 (WebGLRenderingContextErrorMessageCallback):
1306 (WebCore::WebGLRenderingContextErrorMessageCallback::WebGLRenderingContextErrorMessageCallback):
1307 (WebCore::WebGLRenderingContextErrorMessageCallback::onErrorMessage):
1308 (WebCore::WebGLRenderingContextErrorMessageCallback::~WebGLRenderingContextErrorMessageCallback):
1310 (WebCore::WebGLRenderingContext::create):
1311 (WebCore::WebGLRenderingContext::initializeNewContext):
1312 (WebCore::WebGLRenderingContext::~WebGLRenderingContext):
1313 * html/canvas/WebGLRenderingContext.h:
1314 (WebGLRenderingContext):
1315 * platform/graphics/GraphicsContext3D.h:
1316 (ErrorMessageCallback):
1317 (WebCore::GraphicsContext3D::ErrorMessageCallback::~ErrorMessageCallback):
1318 (GraphicsContext3D):
1319 * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
1320 (WebCore::GraphicsContext3D::setErrorMessageCallback):
1322 * platform/graphics/efl/GraphicsContext3DEfl.cpp:
1323 (WebCore::GraphicsContext3D::setErrorMessageCallback):
1325 * platform/graphics/qt/GraphicsContext3DQt.cpp:
1326 (WebCore::GraphicsContext3D::setErrorMessageCallback):
1329 2012-01-30 Anders Carlsson <andersca@apple.com>
1331 Simplify RenderLayerCompositor::frameViewDidScroll
1332 https://bugs.webkit.org/show_bug.cgi?id=77398
1334 Reviewed by Sam Weinig.
1336 Remove the scrollPosition parameter from RenderLayerCompositor::frameViewDidScroll; we can just get it
1337 from the associated FrameView object.
1339 * page/FrameView.cpp:
1340 (WebCore::FrameView::scrollPositionChanged):
1341 * rendering/RenderLayerCompositor.cpp:
1342 (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
1343 Call frameViewDidScroll() here instead of setting the scroll layer position explicitly.
1345 (WebCore::RenderLayerCompositor::frameViewDidScroll):
1346 (WebCore::RenderLayerCompositor::ensureRootLayer):
1347 * rendering/RenderLayerCompositor.h:
1348 (RenderLayerCompositor):
1350 2012-01-30 Pablo Flouret <pablof@motorola.com>
1352 Don't select the next selectable index when deselecting an option in select elements with size set to a value greater than one.
1353 https://bugs.webkit.org/show_bug.cgi?id=76389
1355 Reviewed by Kent Tamura.
1357 This behavior matches the rest of the browsers.
1359 Test: fast/forms/select/option-selecting.html
1361 * html/HTMLSelectElement.cpp:
1362 (WebCore::HTMLSelectElement::optionSelectionStateChanged):
1364 2012-01-30 Anders Carlsson <andersca@apple.com>
1366 Scrollbars don't show when scrolling on the scrolling thread
1367 https://bugs.webkit.org/show_bug.cgi?id=77396
1368 <rdar://problem/10710736>
1370 Reviewed by Sam Weinig.
1372 Use ScrollAnimator::scrollToOffsetWithoutAnimation when updating the frame view scroll offset,
1373 since that function will end up invalidating the scrollbars correctly.
1375 * page/ScrollingCoordinator.cpp:
1376 (WebCore::ScrollingCoordinator::didUpdateMainFrameScrollPosition):
1378 2012-01-30 Anders Carlsson <andersca@apple.com>
1380 Show repaint counters in individual tiles
1381 https://bugs.webkit.org/show_bug.cgi?id=77390
1382 <rdar://problem/10767967>
1384 Reviewed by Darin Adler.
1386 * platform/graphics/ca/mac/TileCache.h:
1387 * platform/graphics/ca/mac/TileCache.mm:
1388 (WebCore::TileCache::setNeedsDisplayInRect):
1389 Make sure to invalidate the repaint counter rect if necessary.
1391 (WebCore::TileCache::drawLayer):
1392 Draw the repaint counter.
1394 (WebCore::TileCache::showRepaintCounter):
1395 New function that determines whether we should show repaint counters for the given tile cache.
1397 * platform/graphics/ca/mac/WebTileLayer.h:
1398 * platform/graphics/ca/mac/WebTileLayer.mm:
1399 (-[WebTileLayer incrementRepaintCount]):
1400 Add method for getting the repaint count.
1402 2012-01-30 Dan Bernstein <mitz@apple.com>
1404 <rdar://problem/10778045> REGRESSION (r91935): text-combine fails
1405 https://bugs.webkit.org/show_bug.cgi?id=77373
1407 Reviewed by Darin Adler.
1409 Removed tests that were failing because of this bug from the Lion skipped
1412 * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
1413 (WebCore::GlyphPage::fill): Changed to use CTFontGetGlyphsForCharacters,
1414 rather than wkGetVerticalGlyphsForCharacters, for non-fullwidth fonts.
1416 2012-01-30 Christopher Hutten-Czapski <chutten@rim.com>
1418 BlackBerry - Support Proxy-Authenticate headers when a proxy is configured
1419 https://bugs.webkit.org/show_bug.cgi?id=77361
1421 Though we have a proxy configured, we might not have the auth
1422 credentials it requires. Support Proxy-Authenticate for that case.
1424 Reviewed by George Staikos.
1426 * platform/network/blackberry/NetworkJob.cpp:
1427 (WebCore::NetworkJob::handleNotifyHeaderReceived):
1428 (WebCore::NetworkJob::handleAuthHeader):
1429 (WebCore::NetworkJob::sendRequestWithCredentials):
1430 * platform/network/blackberry/NetworkJob.h:
1431 * platform/network/blackberry/NetworkManager.cpp:
1432 (WebCore::NetworkManager::startJob):
1434 2012-01-27 James Robinson <jamesr@chromium.org>
1436 [chromium] Remove unnecessary retry logic in LayerRendererChromium initialization for accelerated painting
1437 https://bugs.webkit.org/show_bug.cgi?id=77247
1439 Reviewed by Kenneth Russell.
1441 The accelerate painting setting is done differently from other capability-dependent settings for no good reason,
1442 requiring that we retry initialization with different settings. For all other settings we set the capabilities
1443 bit to true if the setting is requested and if the required capabilities exist on the underlying context.
1445 * platform/graphics/chromium/LayerRendererChromium.cpp:
1446 (WebCore::LayerRendererChromium::create):
1447 (WebCore::LayerRendererChromium::initialize):
1448 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1449 (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
1451 2012-01-30 Brady Eidson <beidson@apple.com>
1453 <rdar://problem/10707072>
1454 Crashes in WebProcess at WebCore::Node::rendererIsNeeded
1456 Reviewed by Darin Adler.
1458 In specific circumstances a plugin element can be without a render style at the point in time where
1459 the page navigated and enters the page cache.
1461 When this is the cash, the element should not enter into the "custom style for renderer" mode and should
1462 instead use the default render style machinery.
1464 Test: plugins/crash-restoring-pluging-page-from-page-cache.html
1466 * html/HTMLPlugInImageElement.cpp:
1467 (WebCore::HTMLPlugInImageElement::documentWillSuspendForPageCache): Only setHasCustomStyleForRenderer and
1468 forceRecalc if there actually is a custom style to be used.
1469 (WebCore::HTMLPlugInImageElement::documentDidResumeFromPageCache): Only clearHasCustomStyleForRenderer if there
1470 actually was a custom style to be cleared.
1471 (WebCore::HTMLPlugInImageElement::customStyleForRenderer): This should only be called if there actually is a
1472 custom style to be used. Otherwise the element would have to fallback to the "normal" RenderStyle which might
1475 2012-01-30 Anders Carlsson <andersca@apple.com>
1477 Show debug borders for individual tile cache tiles
1478 https://bugs.webkit.org/show_bug.cgi?id=77388
1480 Reviewed by Sam Weinig.
1482 * platform/graphics/GraphicsLayer.cpp:
1483 (WebCore::GraphicsLayer::updateDebugIndicators):
1484 Give tile cache tiles a thin dark blue border.
1486 * platform/graphics/ca/mac/TileCache.h:
1487 (WebCore::TileCache::tileDebugBorderWidth):
1488 (WebCore::TileCache::tileDebugBorderColor):
1489 Add getters and member variables for the tile debug border width and color.
1491 * platform/graphics/ca/mac/TileCache.mm:
1492 (WebCore::TileCache::TileCache):
1493 Initialize m_tileDebugBorderWidth.
1495 (WebCore::TileCache::setTileDebugBorderWidth):
1496 Update the border width of each tile layer.
1498 (WebCore::TileCache::setTileDebugBorderColor):
1499 Update the border color of each tile layer.
1501 (WebCore::TileCache::createTileLayer):
1502 Set the border color and border width.
1504 * platform/graphics/ca/mac/WebTileCacheLayer.h:
1505 * platform/graphics/ca/mac/WebTileCacheLayer.mm:
1506 (-[WebTileCacheLayer borderColor]):
1507 (-[WebTileCacheLayer setBorderColor:]):
1508 (-[WebTileCacheLayer borderWidth]):
1509 (-[WebTileCacheLayer setBorderWidth:]):
1510 Call through to the TileCache.
1512 * platform/graphics/mac/WebLayer.mm:
1513 (drawLayerContents):
1514 Don't draw the repaint counter for tile cache layers, each tile will maintain its own repaint counter.
1516 2012-01-30 Rakesh KN <rakesh.kn@motorola.com>
1518 single-file input elements should refuse multi-file drags
1519 https://bugs.webkit.org/show_bug.cgi?id=25913
1521 Reviewed by Eric Seidel.
1523 Refuse the multiple file drags onto a single file input element.
1525 No new tests: Covered by existing tests, updated the expected results.
1527 * page/DragController.cpp:
1528 (WebCore::DragController::tryDocumentDrag):
1529 Setting the dragSession.numberOfItemsToBeAccepted to 0 so that drag operation is none if the
1530 file input element under mouse is single input type and number of files dragged onto that
1531 input element are more than 1.
1533 2012-01-30 Dana Jansens <danakj@chromium.org>
1535 [chromium] Use region reported painted opaque for draw culling
1536 https://bugs.webkit.org/show_bug.cgi?id=76015
1538 Reviewed by James Robinson.
1540 New unit tests in CCTiledLayerImplTest.cpp, CCQuadCullerTest.cpp, CCLayerTreeHostImplTest.cpp
1542 * platform/graphics/chromium/LayerChromium.cpp:
1543 (WebCore::LayerChromium::setOpaque):
1544 * platform/graphics/chromium/TiledLayerChromium.cpp:
1546 (WebCore::TiledLayerChromium::pushPropertiesTo):
1547 (WebCore::TiledLayerChromium::prepareToUpdateTiles):
1548 * platform/graphics/chromium/cc/CCDrawQuad.cpp:
1549 (WebCore::CCDrawQuad::opaqueRect):
1551 * platform/graphics/chromium/cc/CCDrawQuad.h:
1553 (WebCore::CCDrawQuad::needsBlending):
1554 * platform/graphics/chromium/cc/CCQuadCuller.cpp:
1555 (WebCore::CCQuadCuller::cullOccludedQuads):
1556 * platform/graphics/chromium/cc/CCSolidColorDrawQuad.cpp:
1557 (WebCore::CCSolidColorDrawQuad::CCSolidColorDrawQuad):
1558 * platform/graphics/chromium/cc/CCTileDrawQuad.cpp:
1559 (WebCore::CCTileDrawQuad::create):
1560 (WebCore::CCTileDrawQuad::CCTileDrawQuad):
1561 * platform/graphics/chromium/cc/CCTileDrawQuad.h:
1563 * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
1565 (WebCore::DrawableTile::opaqueRect):
1566 (WebCore::DrawableTile::setOpaqueRect):
1567 (WebCore::CCTiledLayerImpl::appendQuads):
1568 (WebCore::CCTiledLayerImpl::pushTileProperties):
1569 * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
1572 2012-01-30 Ryosuke Niwa <rniwa@webkit.org>
1574 Crash in previousLinePosition when moving into a root inline box without leaves
1575 https://bugs.webkit.org/show_bug.cgi?id=76812
1577 Reviewed by Enrica Casucci.
1579 The crash was caused by us assuming that every root inline box has at least one leaf,
1580 which isn't true when we create inline boxes for an empty text run with margin, border, etc...
1582 Test: editing/selection/move-into-empty-root-inline-box.html
1584 * editing/visible_units.cpp:
1585 (WebCore::previousLinePosition):
1586 (WebCore::nextLinePosition):
1588 2012-01-30 Levi Weintraub <leviw@chromium.org>
1590 !m_insideRegionPaint assertion in RenderRegion.cpp is invalid
1591 https://bugs.webkit.org/show_bug.cgi?id=77372
1593 Reviewed by David Hyatt.
1595 Removing the !m_insideRegionPaint assertion that's in three functions in
1596 RenderRegion. It's triggering in numerous layout tests and isn't valid.
1598 No new tests as this just removes assertions.
1600 * rendering/RenderRegion.cpp:
1601 (WebCore::RenderRegion::setRenderBoxRegionInfo):
1602 (WebCore::RenderRegion::takeRenderBoxRegionInfo):
1603 (WebCore::RenderRegion::removeRenderBoxRegionInfo):
1605 2012-01-30 Adrienne Walker <enne@google.com>
1607 [chromium] Always pre-reserve scrollbar and scroll corner textures
1608 https://bugs.webkit.org/show_bug.cgi?id=77251
1610 Reviewed by James Robinson.
1612 Add a flag to LayerChromium that says that a layer's textures should
1613 always be reserved. Prior to painting layers, find all layers marked
1614 as such and reserve their textures. This will prevent texture memory
1615 limits from being hit before the root layer's scrollbars are reserved
1618 * platform/graphics/chromium/LayerChromium.cpp:
1619 (WebCore::LayerChromium::LayerChromium):
1620 * platform/graphics/chromium/LayerChromium.h:
1622 (WebCore::LayerChromium::reserveTextures):
1623 (WebCore::LayerChromium::setAlwaysReserveTextures):
1624 (WebCore::LayerChromium::alwaysReserveTextures):
1625 * platform/graphics/chromium/TiledLayerChromium.cpp:
1626 (WebCore::TiledLayerChromium::reserveTextures):
1627 * platform/graphics/chromium/TiledLayerChromium.h:
1629 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1630 (WebCore::CCLayerTreeHost::updateLayers):
1631 (WebCore::CCLayerTreeHost::reserveTextures):
1633 * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1636 2012-01-30 Beth Dakin <bdakin@apple.com>
1638 Speculative 32-bit build-fix.
1642 2012-01-30 Mihnea Ovidenie <mihnea@adobe.com>
1644 [CSSRegions]Add support for background-color in region styling
1645 https://bugs.webkit.org/show_bug.cgi?id=71488
1647 Reviewed by David Hyatt.
1649 Based on work by Alexandru Chiculita (achicu@adobe.com).
1650 Previous patches for region styling were touching RenderObject::style() method. After several attempts to avoid regressions
1651 (including caching of RenderObject::style() pointer in most used methods), we decided to attempt a different approach:
1652 Step1: before each region is repainted, we compute the style for each box that falls into the region
1653 Step2: before paint, we store the box original style
1654 Step3: paint the region contents using the style in region
1655 Step4: after paint is finished, we restore the box original style (and store the box style in region for future region paint)
1657 Tests for region styling are also enabled with this patch.
1660 * rendering/RenderFlowThread.cpp:
1661 (WebCore::RenderFlowThread::clearRenderBoxCustomStyle):
1662 (WebCore::RenderFlowThread::setRegionRangeForBox):
1663 * rendering/RenderFlowThread.h:
1665 * rendering/RenderLayer.cpp:
1666 (WebCore::RenderLayer::paint):
1667 (WebCore::RenderLayer::hitTest):
1668 * rendering/RenderObject.cpp:
1669 * rendering/RenderObject.h:
1670 (WebCore::RenderObject::style):
1672 * rendering/RenderObjectChildList.cpp:
1673 (WebCore::RenderObjectChildList::removeChildNode):
1674 * rendering/RenderRegion.cpp:
1675 (WebCore::RenderRegion::RenderRegion):
1676 (WebCore::RenderRegion::setRegionBoxesRegionStyle):
1678 (WebCore::RenderRegion::restoreRegionBoxesOriginalStyle):
1679 (WebCore::RenderRegion::paintReplaced):
1680 (WebCore::RenderRegion::setRenderBoxRegionInfo):
1681 (WebCore::RenderRegion::takeRenderBoxRegionInfo):
1682 (WebCore::RenderRegion::removeRenderBoxRegionInfo):
1683 (WebCore::RenderRegion::renderBoxRegionStyle):
1684 (WebCore::RenderRegion::computeStyleInRegion):
1685 (WebCore::RenderRegion::clearBoxStyleInRegion):
1686 * rendering/RenderRegion.h:
1688 * rendering/RenderView.cpp:
1689 (WebCore::RenderView::RenderView):
1690 * rendering/RenderView.h:
1694 2012-01-30 Jessie Berlin <jberlin@apple.com>
1696 WebCore build exceeds address space on 32-bit Windows builders (again).
1697 https://bugs.webkit.org/show_bug.cgi?id=77357
1699 Reviewed by Adam Roben.
1701 Add an Inspector All-In-One file, but only use it in Release and Production builds.
1702 This differs from our other All-In-One files, but it is a better approach because it makes
1703 debugging possible in the Debug configuration (the symbols will be in the correct .obj file
1704 for the original .cpp files).
1706 * WebCore.vcproj/WebCore.vcproj:
1707 Also, let VS have its way with the vcproj file.
1708 * inspector/InspectorAllInOne.cpp: Added.
1710 2012-01-28 Matthew Delaney <mdelaney@apple.com>
1712 Limit periodic flushing inside ImageBufferCG to just Lion
1713 https://bugs.webkit.org/show_bug.cgi?id=77353
1714 <rdar://problem/10328309>
1716 Reviewed by Chris Marrin.
1718 * platform/graphics/cg/ImageBufferCG.cpp:
1719 * platform/graphics/cg/ImageBufferDataCG.h:
1721 2012-01-30 Tommy Widenflycht <tommyw@google.com>
1723 Memory leak caused by PeerConnection add a NULL media stream
1724 https://bugs.webkit.org/show_bug.cgi?id=76150
1726 It was my missunderstanding that the IDL keyword [StrictTypeChecking] also protects against
1727 null or undefined arguments, it doesn't. Added checks for null pointers.
1729 Reviewed by Adam Barth.
1731 Test: fast/mediastream/peerconnection-addstream.html
1733 * mediastream/PeerConnection.cpp:
1734 (WebCore::PeerConnection::addStream):
1735 (WebCore::PeerConnection::removeStream):
1737 2012-01-26 Andy Estes <aestes@apple.com>
1739 [Windows] Optionally invert colors when drawing to a WebView's backing store.
1740 https://bugs.webkit.org/show_bug.cgi?id=77168
1742 Reviewed by Sam Weinig.
1744 * css/CSSPrimitiveValueMappings.h: Assert that CompositeDifference is
1745 not converted to a CSS value. Exposing a new compositing operation to
1746 CSS is outside the scope of this patch.
1747 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1748 * platform/graphics/GraphicsTypes.h: Add CompositeDifference as a
1749 CompositeOperator. Also, remove an outdated comment.
1750 * platform/graphics/cg/GraphicsContextCG.cpp:
1751 (WebCore::GraphicsContext::setPlatformCompositeOperation): Map
1752 CompositeDifference to kCGBlendModeDifference.
1754 2012-01-28 Matthew Delaney <mdelaney@apple.com>
1756 Limit the shadow offset CG hack to just SL and Lion
1757 https://bugs.webkit.org/show_bug.cgi?id=77348
1758 <rdar://problem/10158016>
1760 Reviewed by Chris Marrin.
1762 No new tests, current tests cover this.
1764 * platform/graphics/cg/GraphicsContextCG.cpp:
1765 (WebCore::GraphicsContext::setPlatformShadow):
1767 2012-01-30 Beth Dakin <bdakin@apple.com>
1769 https://bugs.webkit.org/show_bug.cgi?id=77263
1770 PlatformScreenMac should not rely on NSWindow for important bits of data
1772 Reviewed by Geoff Garen.
1774 The main problem is that we cannot rely on the NSWindow for information about
1775 the deviceScaleFactor because we cannot access an NSWindow from within
1776 WebCore for WebKit2 windows. Instead, we can fetch it from
1777 WebCore::deviceScaleFactor(), but we need a Frame to call that. So
1778 screenAvailableRect and screenRect both now take a FrameView* instead of a
1779 Widget*. All existing call sites actually sent a FrameView in anyway, so this
1780 is not a big change, but it does require touching a lot of platforms.
1782 * platform/PlatformScreen.h:
1784 * platform/blackberry/PlatformScreenBlackBerry.cpp:
1785 (WebCore::screenAvailableRect):
1786 (WebCore::screenRect):
1787 * platform/chromium/PlatformScreenChromium.cpp:
1788 (WebCore::screenRect):
1789 (WebCore::screenAvailableRect):
1790 * platform/chromium/PlatformSupport.h:
1794 * platform/efl/PlatformScreenEfl.cpp:
1795 (WebCore::screenRect):
1796 (WebCore::screenAvailableRect):
1797 * platform/gtk/PlatformScreenGtk.cpp:
1798 (WebCore::screenRect):
1799 (WebCore::screenAvailableRect):
1800 * platform/qt/PlatformScreenQt.cpp:
1801 (WebCore::screenRect):
1802 (WebCore::screenAvailableRect):
1803 * platform/win/PlatformScreenWin.cpp:
1804 (WebCore::screenRect):
1805 (WebCore::screenAvailableRect):
1806 * platform/wx/ScreenWx.cpp:
1807 (WebCore::screenRect):
1808 (WebCore::screenAvailableRect):
1810 The Mac-only functions toUserSpace() and toDeviceSpace() were also updated to
1811 take a parameter for the deviceScaleFactor.
1812 * platform/mac/PlatformScreenMac.mm:
1813 (WebCore::screenRect):
1814 (WebCore::screenAvailableRect):
1815 (WebCore::toUserSpace):
1816 (WebCore::toDeviceSpace):
1818 2012-01-30 Antti Koivisto <antti@apple.com>
1820 Kill CSSMutableStyleDeclarationConstIterator
1821 https://bugs.webkit.org/show_bug.cgi?id=77342
1823 Reviewed by Sam Weinig.
1825 CSSMutableStyleDeclaration is an array and should be iterated using an index. This simplifies the code.
1827 * css/CSSMutableStyleDeclaration.cpp:
1828 (WebCore::CSSMutableStyleDeclaration::copyPropertiesFrom):
1829 (WebCore::CSSMutableStyleDeclaration::removeProperty):
1830 (WebCore::CSSMutableStyleDeclaration::setProperty):
1831 (WebCore::CSSMutableStyleDeclaration::setPropertyInternal):
1832 (WebCore::CSSMutableStyleDeclaration::parseDeclaration):
1833 (WebCore::CSSMutableStyleDeclaration::addParsedProperties):
1834 (WebCore::CSSMutableStyleDeclaration::addParsedProperty):
1835 (WebCore::CSSMutableStyleDeclaration::merge):
1836 (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet):
1837 * css/CSSMutableStyleDeclaration.h:
1839 (WebCore::CSSMutableStyleDeclaration::createForSVGFontFaceElement):
1840 (CSSMutableStyleDeclaration):
1841 * css/CSSStyleDeclaration.cpp:
1842 (WebCore::CSSStyleDeclaration::CSSStyleDeclaration):
1843 * css/CSSStyleDeclaration.h:
1844 (CSSStyleDeclaration):
1846 * css/CSSStyleSelector.cpp:
1847 (WebCore::CSSStyleSelector::styleForKeyframe):
1848 (WebCore::CSSStyleSelector::applyDeclaration):
1849 * editing/EditingStyle.cpp:
1851 2012-01-30 Michael Saboff <msaboff@apple.com>
1853 Dromaeo tests call parseSimpleLengthValue() on 8 bit strings
1854 https://bugs.webkit.org/show_bug.cgi?id=76649
1856 Reviewed by Geoffrey Garen.
1858 No functionality change, therefore no new tests.
1860 Added 8 bit patch for parseSimpleLengthValue().
1862 * css/CSSParser.cpp:
1863 (WebCore::parseSimpleLengthValue):
1865 2012-01-30 Michael Saboff <msaboff@apple.com>
1867 WebCore decodeEscapeSequences unnecessarily converts 8 bit strings to 16 bit when decoding.
1868 https://bugs.webkit.org/show_bug.cgi?id=76648
1870 Reviewed by Geoffrey Garen.
1872 Using new overloaded append(String&, offset, length) member to build result string.
1873 The new member properly handles 8/16 bit-ness of strings.
1875 Functionality not changed, therefore no new tests.
1877 * platform/text/DecodeEscapeSequences.h:
1878 (WebCore::decodeEscapeSequences):
1880 2012-01-30 Pavel Feldman <pfeldman@google.com>
1882 Not reviewed: follow up to r105625, use proper event categoty in inspector frontend.
1884 * inspector/front-end/BreakpointsSidebarPane.js:
1885 (WebInspector.EventListenerBreakpointsSidebarPane):
1887 2012-01-30 Parag Radke <nrqv63@motorola.com>
1889 REGRESSION (r82580): Reproducible crash in CSSPrimitiveValue::computeLengthDouble
1890 https://bugs.webkit.org/show_bug.cgi?id=61989
1892 Reviewed by Simon Fraser.
1894 According to css3 specs when font-size is specified in 'rems' for an element implies the font-size
1895 of the root element. In this case as HTML element has a property 'display:none' and hence renderer
1896 is NULL causes this crash.
1898 Test: fast/css/fontsize-unit-rems-crash.html
1900 * css/CSSPrimitiveValue.cpp:
1901 (WebCore::CSSPrimitiveValue::computeLengthDouble):
1902 Added a null check for the root element's RenderStyle as it can be null in case of html has a property
1903 hidden or display:none.
1905 2012-01-26 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
1907 [Qt] WKTR: Use a software rendering pipiline when running tests.
1908 https://bugs.webkit.org/show_bug.cgi?id=76708
1910 Reviewed by Kenneth Rohde Christiansen.
1912 * platform/graphics/qt/TextureMapperQt.cpp: Allow setting the context to null.
1913 (WebCore::TextureMapperQt::setGraphicsContext):
1914 * platform/graphics/qt/TextureMapperQt.h:
1915 (WebCore::TextureMapperQt::initialize):
1917 2012-01-27 Enrica Casucci <enrica@apple.com>
1919 Remove all references to NSPasteboard objects from the Pasteboard
1920 class interface on Mac.
1921 https://bugs.webkit.org/show_bug.cgi?id=77261
1923 This is cleanup work needed as first step in the direction of
1924 removing access to NSPasteboard from the WebProcess.
1925 This way all access to the NSPasteboard object are internal to
1927 Removed static methods taking NSPasteboard as paramenter and changed
1928 the constructor of the class to take the pasteboard name instead of
1929 the NSPasteboard object.
1931 Reviewed by Alexey Proskuryakov.
1933 No new tests. There is no change in behavior.
1935 * editing/Editor.cpp: Removed ununsed private method writeSelectionToPasteboard.
1937 * editing/Editor.h: Ditto.
1940 * editing/mac/EditorMac.mm:
1941 (WebCore::Editor::writeSelectionToPasteboard):
1942 (WebCore::Editor::readSelectionFromPasteboard):
1943 * platform/Pasteboard.h:
1945 * platform/mac/ClipboardMac.mm:
1946 (WebCore::ClipboardMac::writeRange):
1947 (WebCore::ClipboardMac::writePlainText):
1948 (WebCore::ClipboardMac::writeURL):
1949 * platform/mac/DragDataMac.mm:
1950 (WebCore::DragData::asPlainText):
1951 (WebCore::DragData::asURL):
1952 (WebCore::DragData::asFragment):
1953 * platform/mac/PasteboardMac.mm:
1954 (WebCore::Pasteboard::generalPasteboard):
1955 (WebCore::Pasteboard::Pasteboard):
1956 (WebCore::Pasteboard::writeSelectionForTypes): Added.
1957 (WebCore::Pasteboard::writePlainText):
1958 (WebCore::Pasteboard::writeSelection):
1959 (WebCore::Pasteboard::writeURLForTypes): Added.
1960 (WebCore::Pasteboard::writeURL):
1961 (WebCore::Pasteboard::writeImage):
1963 2012-01-29 Antti Koivisto <antti@apple.com>
1965 Reduce non-CSSOM API of CSSStyleDeclaration
1966 https://bugs.webkit.org/show_bug.cgi?id=77299
1968 Reviewed by Andreas Kling.
1970 CSSStyleDeclaration should expose the CSSOM API only. Subclasses should expose the internal API only.
1971 This will move us closer to being able to split the CSSOM API from the internal implementation.
1973 - Make CSSStyleDeclaration CSSOM functions virtual, internal functions non-virtual.
1974 - Move implementations to subclasses (CSSComputedStyleDeclaration, CSSMutableStyleDeclaration).
1975 - Make CSSOM functions in the subclasses private (making it harder to invoke them internally).
1976 - Switch a bunch of places to use internal API instead of CSSOM.
1978 * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
1979 (WebCore::V8CSSStyleDeclaration::namedPropertyGetter):
1980 (WebCore::V8CSSStyleDeclaration::namedPropertySetter):
1982 Switch to *Internal versions of the CSSOM functions.
1984 * css/CSSComputedStyleDeclaration.cpp:
1986 (WebCore::CSSComputedStyleDeclaration::length):
1987 (WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
1988 (WebCore::CSSComputedStyleDeclaration::copyPropertiesInSet):
1990 Move copyPropertiesInSet to subclasses, devirtualize.
1992 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1993 (WebCore::CSSComputedStyleDeclaration::getPropertyValue):
1994 (WebCore::CSSComputedStyleDeclaration::getPropertyPriority):
1995 (WebCore::CSSComputedStyleDeclaration::getPropertyShorthand):
1996 (WebCore::CSSComputedStyleDeclaration::isPropertyImplicit):
1997 (WebCore::CSSComputedStyleDeclaration::setProperty):
1998 (WebCore::CSSComputedStyleDeclaration::removeProperty):
1999 * css/CSSComputedStyleDeclaration.h:
2000 (CSSComputedStyleDeclaration):
2001 * css/CSSFontFaceRule.cpp:
2002 (WebCore::CSSFontFaceRule::cssText):
2003 * css/CSSMutableStyleDeclaration.cpp:
2004 (WebCore::CSSMutableStyleDeclaration::length):
2005 (WebCore::CSSMutableStyleDeclaration::asText):
2006 (WebCore::CSSMutableStyleDeclaration::cssText):
2008 (WebCore::CSSMutableStyleDeclaration::getPropertyCSSValue):
2009 (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
2010 (WebCore::CSSMutableStyleDeclaration::getPropertyPriority):
2011 (WebCore::CSSMutableStyleDeclaration::getPropertyShorthand):
2012 (WebCore::CSSMutableStyleDeclaration::isPropertyImplicit):
2013 (WebCore::CSSMutableStyleDeclaration::setProperty):
2014 (WebCore::CSSMutableStyleDeclaration::removeProperty):
2015 (WebCore::CSSMutableStyleDeclaration::copyPropertiesInSet):
2017 Move copyPropertiesInSet to subclasses, devirtualize.
2019 (WebCore::CSSMutableStyleDeclaration::cssPropertyMatches):
2020 (WebCore::CSSMutableStyleDeclaration::removeEquivalentProperties):
2022 Move diff() to CSSMutableStyleDeclaration, rename to removeEquivalentProperties, switch to mutate
2023 this object instead of the argument object.
2025 * css/CSSMutableStyleDeclaration.h:
2026 (CSSMutableStyleDeclaration):
2027 (WebCore::CSSMutableStyleDeclaration::propertyCount):
2028 (WebCore::CSSMutableStyleDeclaration::isEmpty):
2029 (WebCore::CSSMutableStyleDeclaration::propertyAt):
2031 Expose properties and property count internally (iterator should be removed in favor of these).
2033 * css/CSSStyleDeclaration.cpp:
2035 * css/CSSStyleDeclaration.h:
2036 (CSSStyleDeclaration):
2037 (WebCore::CSSStyleDeclaration::getPropertyCSSValueInternal):
2038 (WebCore::CSSStyleDeclaration::getPropertyValueInternal):
2039 (WebCore::CSSStyleDeclaration::setPropertyInternal):
2041 Add *Internal versions of some CSSOM APIs to support some editing and bindings uses.
2042 These take propertyIDs instead of strings names.
2044 * css/CSSStyleRule.cpp:
2045 (WebCore::CSSStyleRule::cssText):
2046 * css/CSSStyleSelector.cpp:
2047 (WebCore::leftToRightDeclaration):
2048 (WebCore::rightToLeftDeclaration):
2049 (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2050 (WebCore::CSSStyleSelector::matchPageRulesForList):
2051 * css/WebKitCSSKeyframeRule.cpp:
2052 (WebCore::WebKitCSSKeyframeRule::cssText):
2053 * dom/StyledElement.cpp:
2054 (WebCore::StyledElement::updateStyleAttribute):
2055 * editing/ApplyStyleCommand.cpp:
2056 (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
2057 (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
2058 (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
2059 (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown):
2060 (WebCore::ApplyStyleCommand::addBlockStyle):
2061 (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
2062 * editing/EditingStyle.cpp:
2064 (WebCore::copyEditingProperties):
2066 (WebCore::propertyCSSValue):
2067 (WebCore::getRGBAFontColor):
2068 (WebCore::EditingStyle::overrideWithStyle):
2069 (WebCore::EditingStyle::removeStyleAddedByNode):
2070 (WebCore::EditingStyle::removeStyleConflictingWithStyleOfNode):
2071 (WebCore::EditingStyle::triStateOfStyle):
2072 (WebCore::EditingStyle::styleIsPresentInComputedStyleOfNode):
2073 (WebCore::EditingStyle::prepareToApplyAt):
2074 (WebCore::removePropertiesInStyle):
2075 (WebCore::EditingStyle::removeStyleFromRulesAndContext):
2076 (WebCore::EditingStyle::removePropertiesInElementDefaultStyle):
2077 (WebCore::StyleChange::StyleChange):
2078 (WebCore::fontWeightIsBold):
2079 (WebCore::getPropertiesNotIn):
2080 (WebCore::getIdentifierValue):
2081 (WebCore::hasTransparentBackgroundColor):
2082 * editing/EditingStyle.h:
2087 * editing/ReplaceSelectionCommand.cpp:
2088 (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
2089 (WebCore::handleStyleSpansBeforeInsertion):
2090 (WebCore::ReplaceSelectionCommand::handleStyleSpans):
2091 * editing/mac/EditorMac.mm:
2092 (WebCore::styleForSelectionStart):
2093 * editing/markup.cpp:
2094 (WebCore::StyledMarkupAccumulator::appendStyleNodeOpenTag):
2095 (WebCore::StyledMarkupAccumulator::appendElement):
2096 * html/ImageDocument.cpp:
2097 (WebCore::ImageDocument::resizeImageToFit):
2098 (WebCore::ImageDocument::restoreImageSize):
2099 (WebCore::ImageDocument::windowSizeChanged):
2100 * html/canvas/CanvasRenderingContext2D.cpp:
2101 (WebCore::CanvasRenderingContext2D::setFont):
2102 * html/canvas/CanvasStyle.cpp:
2103 (WebCore::currentColor):
2104 * inspector/InspectorStyleSheet.cpp:
2105 (WebCore::InspectorStyleSheet::revalidateStyle):
2106 * page/PageSerializer.cpp:
2107 (WebCore::PageSerializer::retrieveResourcesForCSSDeclaration):
2108 * rendering/RenderTreeAsText.cpp:
2109 (WebCore::isEmptyOrUnstyledAppleStyleSpan):
2110 * svg/SVGStyledElement.cpp:
2111 (WebCore::SVGStyledElement::getPresentationAttribute):
2113 2012-01-30 Pavel Feldman <pfeldman@google.com>
2115 Web Inspector: protocol validator should fail if one of response fields turns optional
2116 https://bugs.webkit.org/show_bug.cgi?id=76452
2118 Reviewed by Yury Semikhatsky.
2120 * inspector/Inspector-0.1.json:
2121 * inspector/Inspector.json:
2122 * inspector/generate-inspector-protocol-version:
2125 (compare_params_list):
2129 2012-01-30 Yury Semikhatsky <yurys@chromium.org>
2131 Web Inspector: keyboard navigation through comparison view in heap profiler should update retainers view
2132 https://bugs.webkit.org/show_bug.cgi?id=77326
2134 Keyboard navigation in the detailed heap snapshot view now updates retainers view.
2136 Reviewed by Pavel Feldman.
2138 * inspector/front-end/DataGrid.js: Added SelectedNode/DeselectedNode events to DataGrid.
2139 (WebInspector.DataGridNode.prototype.select):
2140 (WebInspector.DataGridNode.prototype.deselect):
2141 * inspector/front-end/DetailedHeapshotView.js:
2142 (WebInspector.DetailedHeapshotView.prototype._selectionChanged):
2143 (WebInspector.DetailedHeapshotView.prototype._setRetainmentDataGridSource):
2145 2012-01-30 Yury Semikhatsky <yurys@chromium.org>
2147 Unreviewed. Fix inspector front-end compilation.
2149 * inspector/front-end/RemoteObject.js:
2150 (WebInspector.RemoteObject):
2151 (WebInspector.RemoteObject.fromPayload):
2153 2012-01-30 Roland Steiner <rolandsteiner@chromium.org>
2155 Node::parentOrHostElement(): Node::shadowHost() already returns an Element*
2156 https://bugs.webkit.org/show_bug.cgi?id=77332
2158 Reviewed by Kent Tamura.
2160 No new tests. (simple refactoring)
2163 (WebCore::Node::parentOrHostElement):
2165 2012-01-30 Carlos Garcia Campos <cgarcia@igalia.com>
2167 Unreviewed. Fix make distcheck.
2169 * GNUmakefile.am: Add idl files in Source/WebCore/html/shadow/ to
2171 * GNUmakefile.list.am: Add missing files.
2173 2012-01-27 Vsevolod Vlasov <vsevik@chromium.org>
2175 Web Inspector: TabbedEditorContainer should save open tabs.
2176 https://bugs.webkit.org/show_bug.cgi?id=76912
2178 Reviewed by Pavel Feldman.
2180 Test: inspector/tabbed-editors-history.html
2182 * inspector/front-end/ScriptsPanel.js:
2183 (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
2184 (WebInspector.ScriptsPanel.prototype._reset):
2185 (WebInspector.ScriptsPanel.prototype._showFile):
2186 (WebInspector.ScriptsPanel.prototype._updateExecutionLine):
2187 (WebInspector.ScriptsPanel.prototype._editorSelected):
2188 (WebInspector.EditorContainer.prototype.uiSourceCodeAdded):
2189 (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.showFile):
2190 (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.reset):
2191 * inspector/front-end/TabbedEditorContainer.js:
2192 (WebInspector.TabbedEditorContainer):
2193 (WebInspector.TabbedEditorContainer.prototype.showFile):
2194 (WebInspector.TabbedEditorContainer.prototype._editorClosedByUserAction):
2195 (WebInspector.TabbedEditorContainer.prototype._editorSelectedByUserAction):
2196 (WebInspector.TabbedEditorContainer.prototype._updateHistory.tabIdToURL):
2197 (WebInspector.TabbedEditorContainer.prototype._updateHistory):
2198 (WebInspector.TabbedEditorContainer.prototype._appendFileTab):
2199 (WebInspector.TabbedEditorContainer.prototype._tabClosed):
2200 (WebInspector.TabbedEditorContainer.prototype._tabSelected):
2201 (WebInspector.TabbedEditorContainer.prototype.reset):
2202 (WebInspector.TabbedEditorContainer.History):
2203 (WebInspector.TabbedEditorContainer.History.prototype.index):
2204 (WebInspector.TabbedEditorContainer.History.prototype.update):
2205 (WebInspector.TabbedEditorContainer.History.prototype.remove):
2206 (WebInspector.TabbedEditorContainer.History.prototype.save):
2207 * inspector/front-end/TabbedPane.js:
2208 (WebInspector.TabbedPane.prototype.appendTab):
2209 (WebInspector.TabbedPane.prototype.closeTab):
2210 (WebInspector.TabbedPane.prototype._innerCloseTab):
2211 (WebInspector.TabbedPane.prototype.closeAllTabs):
2212 (WebInspector.TabbedPane.prototype.lastOpenedTabIds):
2213 (WebInspector.TabbedPane.prototype._tabsSelectChanged):
2215 2012-01-30 Alexander Pavlov <apavlov@chromium.org>
2217 Web Inspector: [Styles] Unable to paste and subsequently edit multiple properties in the Styles pane
2218 https://bugs.webkit.org/show_bug.cgi?id=77209
2220 Reviewed by Pavel Feldman.
2222 Check if the property value contains a ";" before kicking the freeflow text update.
2224 * inspector/front-end/StylesSidebarPane.js:
2225 (WebInspector.StylePropertyTreeElement.prototype):
2227 2012-01-30 Vsevolod Vlasov <vsevik@chromium.org>
2229 Web Inspector: Change Open Resource and Go To function shortcuts in scripts panel.
2230 https://bugs.webkit.org/show_bug.cgi?id=77321
2232 Reviewed by Pavel Feldman.
2234 * inspector/front-end/FilteredItemSelectionDialog.js:
2235 (WebInspector.JavaScriptOutlineDialog.createShortcut):
2236 (WebInspector.OpenResourceDialog.createShortcut):
2237 * inspector/front-end/ScriptsPanel.js:
2239 2012-01-30 Yury Semikhatsky <yurys@chromium.org>
2241 Web Inspector: hide function popover in heap snapshot view before navigating to the function definition
2242 https://bugs.webkit.org/show_bug.cgi?id=77330
2244 Reviewed by Pavel Feldman.
2246 * inspector/front-end/DetailedHeapshotView.js:
2247 (WebInspector.DetailedHeapshotView.prototype.willHide):
2249 2012-01-30 Jonathan Dong <jonathan.dong@torchmobile.com.cn>
2251 [BlackBerry] Credential backing store implementation
2252 https://bugs.webkit.org/show_bug.cgi?id=76761
2254 Reviewed by Antonio Gomes.
2256 Implemented credential backing store database and related
2257 operations in class CredentialBackingStore.
2259 * platform/network/blackberry/CredentialBackingStore.cpp:
2260 (WebCore::CredentialBackingStore::~CredentialBackingStore):
2261 (WebCore::CredentialBackingStore::open):
2262 (WebCore::CredentialBackingStore::close):
2263 (WebCore::CredentialBackingStore::addLogin):
2264 (WebCore::CredentialBackingStore::updateLogin):
2265 (WebCore::CredentialBackingStore::hasLogin):
2266 (WebCore::CredentialBackingStore::getLogin):
2267 (WebCore::CredentialBackingStore::removeLogin):
2268 (WebCore::CredentialBackingStore::clear):
2270 2012-01-30 Allan Sandfeld Jensen <allan.jensen@nokia.com>
2272 Only send resize events when layout size changes.
2273 https://bugs.webkit.org/show_bug.cgi?id=77212
2275 When using fixed layout the widget size is the size of content, therefore
2276 resize checks must check against layoutsize and not widget size.
2278 Reviewed by Kenneth Rohde Christiansen.
2280 Needs to be manual tests because the test framework does not currently
2281 support testing fixed layout.
2283 Tests: ManualTests/resize-events.html
2285 * page/FrameView.cpp:
2286 (WebCore::FrameView::layout):
2287 (WebCore::FrameView::performPostLayoutTasks):
2289 2012-01-30 Pavel Feldman <pfeldman@google.com>
2291 Web Inspector: TimelinePanel does not respect InspectorFrontendHost.canSaveAs
2292 https://bugs.webkit.org/show_bug.cgi?id=77301
2294 Reviewed by Vsevolod Vlasov.
2296 * inspector/front-end/TimelinePanel.js:
2297 (WebInspector.TimelinePanel.prototype._registerShortcuts):
2299 2012-01-30 Nikolas Zimmermann <nzimmermann@rim.com>
2301 Not reviewed. Fix Clang build for real after r106218.
2303 * inspector/CodeGeneratorInspector.py:
2304 (Generator.go): Add virtual destructor to the ABCs.
2306 2012-01-30 Shinya Kawanaka <shinyak@google.com>
2308 No need to keep anonymous RenderBlock in DETAILS.
2309 https://bugs.webkit.org/show_bug.cgi?id=77322
2311 Reviewed by Hajime Morita.
2313 Anonymous RenderBlock of DETAILS element was not squashed when detaching them.
2314 However, it should be removed.
2316 No new tests. Should be covered by existing tests.
2318 * rendering/RenderBlock.cpp:
2319 (WebCore::canMergeContiguousAnonymousBlocks):
2321 2012-01-30 Zoltan Herczeg <zherczeg@webkit.org>
2323 Custom written CSS lexer
2324 https://bugs.webkit.org/show_bug.cgi?id=70107
2326 Rubber Stamped by Csaba Osztrogonác.
2328 Do not advance pointer at the end of input, just
2329 keep returning with END_TOKEN.
2331 * css/CSSParser.cpp:
2332 (WebCore::CSSParser::lex):
2334 2012-01-30 Shinya Kawanaka <shinyak@google.com>
2336 The query selector for HTMLContentElement should follow the shadow dom spec.
2337 https://bugs.webkit.org/show_bug.cgi?id=75946
2339 Reviewed by Hajime Morita.
2341 Checks the query selector of HTMLContentElement is valid.
2342 If not valid, the selector won't match anything, and shows fallback element.
2344 Test: fast/dom/shadow/content-selector-query.html
2346 * html/shadow/ContentSelectorQuery.cpp:
2347 (WebCore::ContentSelectorQuery::ContentSelectorQuery):
2348 (WebCore::ContentSelectorQuery::isValidSelector):
2349 (WebCore::ContentSelectorQuery::matches):
2350 When a select query is not valid, any element won't be matched.
2351 (WebCore::validateSubSelector):
2352 (WebCore::validateSelector):
2353 (WebCore::ContentSelectorQuery::validateSelectorList):
2355 * html/shadow/ContentSelectorQuery.h:
2356 * html/shadow/HTMLContentElement.cpp:
2357 (WebCore::HTMLContentElement::isSelectValid):
2358 Returns true if select attribute is valid.
2359 * html/shadow/HTMLContentElement.h:
2360 * testing/Internals.cpp:
2361 (WebCore::Internals::isValidContentSelect):
2362 * testing/Internals.h:
2363 * testing/Internals.idl:
2365 2012-01-30 Hans Wennborg <hans@chromium.org>
2367 Unreviewed, rolling out r106219.
2368 http://trac.webkit.org/changeset/106219
2369 https://bugs.webkit.org/show_bug.cgi?id=77083
2371 This broke Chromium's test_shell.
2373 * GNUmakefile.list.am:
2376 * WebCore.vcproj/WebCore.vcproj:
2377 * WebCore.xcodeproj/project.pbxproj:
2378 * platform/mock/SpeechInputClientMock.cpp: Added.
2380 (WebCore::SpeechInputClientMock::SpeechInputClientMock):
2381 (WebCore::SpeechInputClientMock::setListener):
2382 (WebCore::SpeechInputClientMock::startRecognition):
2383 (WebCore::SpeechInputClientMock::stopRecording):
2384 (WebCore::SpeechInputClientMock::cancelRecognition):
2385 (WebCore::SpeechInputClientMock::addRecognitionResult):
2386 (WebCore::SpeechInputClientMock::clearResults):
2387 (WebCore::SpeechInputClientMock::timerFired):
2388 * platform/mock/SpeechInputClientMock.h: Added.
2390 (SpeechInputClientMock):
2392 2012-01-30 Yury Semikhatsky <yurys@chromium.org>
2394 Unreviewed. Clang build fix after r106218
2396 * inspector/CodeGeneratorInspector.py:
2398 2012-01-30 ChangSeok Oh <shivamidow@gmail.com>
2400 Make GraphicsContext3DPrivate of GTK port shareable.
2401 https://bugs.webkit.org/show_bug.cgi?id=77296
2403 Reviewed by Eric Seidel.
2405 GraphicsContext3DPrivate.cpp/h of GTK port look shareable with another port
2406 using glx backend for WebGL. For example, EFL port.
2407 Moved GraphicsContext3DPrivate.cpp and its header into Source/WebCore/platform/graphics/glx.
2409 No new tests required, because of no new feature.
2412 * GNUmakefile.list.am:
2413 * platform/graphics/glx/GraphicsContext3DPrivate.cpp: Renamed from Source/WebCore/platform/graphics/gtk/GraphicsContext3DPrivate.cpp.
2416 (WebCore::activeGraphicsContexts):
2417 (WebCore::GraphicsContext3DPrivate::addActiveGraphicsContext):
2418 (WebCore::GraphicsContext3DPrivate::removeActiveGraphicsContext):
2419 (WebCore::GraphicsContext3DPrivate::cleanupActiveContextsAtExit):
2420 (WebCore::GraphicsContext3DPrivate::create):
2421 (WebCore::GraphicsContext3DPrivate::createPbufferContext):
2422 (WebCore::GraphicsContext3DPrivate::createPixmapContext):
2423 (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
2424 (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
2425 (WebCore::GraphicsContext3DPrivate::makeContextCurrent):
2426 * platform/graphics/glx/GraphicsContext3DPrivate.h: Renamed from Source/WebCore/platform/graphics/gtk/GraphicsContext3DPrivate.h.
2428 (GraphicsContext3DPrivate):
2430 2012-01-26 Hans Wennborg <hans@chromium.org>
2432 Speech Input: move MockSpeechInputClient into Chromium DumpRenderTree implementation
2433 https://bugs.webkit.org/show_bug.cgi?id=77083
2435 Reviewed by Darin Fisher.
2437 Remove SpeechInputClientMock. The mock is moving to the DumpRenderTree
2440 No new tests, just refactoring.
2442 * GNUmakefile.list.am:
2445 * WebCore.vcproj/WebCore.vcproj:
2446 * WebCore.xcodeproj/project.pbxproj:
2447 * platform/mock/SpeechInputClientMock.cpp: Removed.
2448 * platform/mock/SpeechInputClientMock.h: Removed.
2450 2012-01-30 Peter Rybin <peter.rybin@gmail.com>
2452 Web Inspector: CodeGeneratorInspector.py: clean InspectorBackendDispatcher.h
2453 https://bugs.webkit.org/show_bug.cgi?id=77062
2455 Reviewed by Yury Semikhatsky.
2457 Code generator is changed. Now it generates InspectorBackendDispatcher
2458 as an abstract class so that implementation details could be fully
2459 hidden in .cpp file in a separate 'impl' class. This should make .h
2461 Also new formal interfaces to domain agents are generated. This is an
2462 improvement over the current case when interfaces to agents are
2463 definen implicitly at calling sites.
2465 * inspector/CodeGeneratorInspector.py:
2467 (RawTypes.OutputPassModel):
2468 (RawTypes.OutputPassModel.ByPointer):
2469 (RawTypes.OutputPassModel.ByPointer.get_argument_prefix):
2470 (RawTypes.OutputPassModel.ByPointer.get_parameter_type_suffix):
2471 (RawTypes.OutputPassModel.ByReference):
2472 (RawTypes.OutputPassModel.ByReference.get_argument_prefix):
2473 (RawTypes.OutputPassModel.ByReference.get_parameter_type_suffix):
2474 (RawTypes.BaseType.is_event_param_check_optional):
2476 (RawTypes.String.get_output_pass_model):
2477 (RawTypes.String.is_heavy_value):
2479 (RawTypes.Int.get_output_pass_model):
2480 (RawTypes.Int.is_heavy_value):
2482 (RawTypes.Number.get_output_pass_model):
2483 (RawTypes.Number.is_heavy_value):
2484 (RawTypes.Bool.get_c_param_type):
2486 (RawTypes.Bool.get_output_pass_model):
2487 (RawTypes.Bool.is_heavy_value):
2489 (RawTypes.Object.get_output_pass_model):
2490 (RawTypes.Object.is_heavy_value):
2491 (RawTypes.Any.get_c_initializer):
2493 (RawTypes.Any.get_output_pass_model):
2494 (RawTypes.Any.is_heavy_value):
2496 (RawTypes.Array.get_output_pass_model):
2497 (RawTypes.Array.is_heavy_value):
2498 (InspectorBackendDispatcherImpl):
2502 (Generator.process_command):
2503 * inspector/InspectorController.cpp:
2504 (WebCore::InspectorController::connectFrontend):
2505 * inspector/WorkerInspectorController.cpp:
2506 (WebCore::WorkerInspectorController::connectFrontend):
2508 2012-01-29 Zoltan Herczeg <zherczeg@webkit.org>
2510 Custom written CSS lexer
2511 https://bugs.webkit.org/show_bug.cgi?id=70107
2513 Reviewed by Antti Koivisto and Oliver Hunt.
2515 This patch replaces the flex based CSS lexer to a
2516 new, custom written one. The new code is more
2517 than 2 times faster according to oprofile and CPU
2520 The code structure is quite straightforward: it choose
2521 the possible token group based on the first character
2522 and employ utility functions to parse the longer than
2523 one character long ones. Most of the utilities are inline
2524 to make the lexer fast.
2526 All build systems updated. Including removing the flex support.
2528 Existing tests cover this feature.
2531 * DerivedSources.make:
2532 * DerivedSources.pri:
2534 * GNUmakefile.list.am:
2535 * WebCore.gyp/WebCore.gyp:
2536 * WebCore.gyp/scripts/action_maketokenizer.py: Removed.
2538 * WebCore.vcproj/WebCore.vcproj:
2539 * WebCore.xcodeproj/project.pbxproj:
2540 * css/CSSParser.cpp:
2541 (WebCore::CSSParser::CSSParser):
2542 (WebCore::CSSParser::setupParser):
2543 (WebCore::parseSimpleLengthValue):
2544 (WebCore::mightBeRGBA):
2545 (WebCore::mightBeRGB):
2547 (WebCore::isCSSLetter):
2549 (WebCore::isCSSEscape):
2550 (WebCore::isURILetter):
2551 (WebCore::isIdentifierStartAfterDash):
2552 (WebCore::isEqualToCSSIdentifier):
2553 (WebCore::checkAndSkipEscape):
2554 (WebCore::skipWhiteSpace):
2555 (WebCore::CSSParser::isIdentifierStart):
2556 (WebCore::CSSParser::checkAndSkipString):
2557 (WebCore::CSSParser::parseEscape):
2558 (WebCore::CSSParser::parseIdentifier):
2559 (WebCore::CSSParser::parseString):
2560 (WebCore::CSSParser::parseURI):
2561 (WebCore::CSSParser::parseUnicodeRange):
2562 (WebCore::CSSParser::parseNthChild):
2563 (WebCore::CSSParser::parseNthChildExtra):
2564 (WebCore::CSSParser::detectFunctionTypeToken):
2565 (WebCore::CSSParser::detectMediaQueryToken):
2566 (WebCore::CSSParser::detectNumberToken):
2567 (WebCore::CSSParser::detectDashToken):
2568 (WebCore::CSSParser::detectAtToken):
2569 (WebCore::CSSParser::lex):
2570 (WebCore::CSSParser::markSelectorListStart):
2571 (WebCore::CSSParser::markSelectorListEnd):
2572 (WebCore::CSSParser::markRuleBodyStart):
2573 (WebCore::CSSParser::markRuleBodyEnd):
2574 (WebCore::CSSParser::markPropertyStart):
2575 (WebCore::CSSParser::markPropertyEnd):
2577 (WebCore::CSSParser::token):
2580 * css/tokenizer.flex: Removed.
2582 2012-01-29 Dale Curtis <dalecurtis@chromium.org>
2584 Prepare WebCore.gyp for ffmpeg source transition.
2585 https://bugs.webkit.org/show_bug.cgi?id=77254
2587 We're migrating our ffmpeg repo from a set of patches living on top of
2588 a tarball to an actual git fork of upstream. The paths have changed
2591 In order to not break the current build, we'll keep both paths around
2592 until the transition is complete. Afterward the 'patched-ffmpeg' path
2595 Reviewed by Tony Chang.
2597 No new tests. GYP change, if it doesn't work, nothing will compile.
2599 * WebCore.gyp/WebCore.gyp:
2601 2012-01-29 Hayato Ito <hayato@chromium.org>
2603 Add a ShadowRoot constructor as 'WebKitShadowRootConstructor', enabled by SHADOW_DOM flag.
2604 https://bugs.webkit.org/show_bug.cgi?id=76354
2606 Reviewed by Hajime Morita.
2608 We use vendor-prefixed name, 'WebKitShadowRoot', instead of 'ShadowRoot'
2609 since this is a feature under development.
2611 * dom/ShadowRoot.cpp:
2612 (WebCore::ShadowRoot::create):
2617 * dom/ShadowRoot.idl:
2618 * page/DOMWindow.idl:
2620 2012-01-29 Noel Gordon <noel.gordon@gmail.com>
2622 [chromium] Use decoding swizzle only on libjpeg-turbo 1.1.90+
2623 https://bugs.webkit.org/show_bug.cgi?id=74286
2625 Reviewed by Kenneth Russell.
2627 No new tests. Covered by many existing tests: in particular
2628 fast/images/*, fast/canvas/*,
2629 tables/mozilla/bugs/bug29314.html
2630 tables/mozilla/bugs/bug13169.html
2631 tables/mozilla/bugs/bug10565.html
2632 tables/mozilla/bugs/bug11026.html
2633 fast/repaint/backgroundSizeRepaint.html
2634 fast/repaint/block-layout-inline-children-replaced.html
2635 fast/repaint/clipped-relative.html
2636 fast/repaint/selected-replaced.html
2637 tables/mozilla/bugs/bug12908-1.html
2639 * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
2640 (rgbOutputColorSpace): Swizzle decode iff libjpeg-turbo is r732 or above.
2642 2012-01-29 Sheriff Bot <webkit.review.bot@gmail.com>
2644 Unreviewed, rolling out r105999.
2645 http://trac.webkit.org/changeset/105999
2646 https://bugs.webkit.org/show_bug.cgi?id=77304
2648 Validating that this caused a performance regression in page
2649 load tests. (Requested by leviw on #webkit).
2651 * dom/NamedNodeMap.cpp:
2652 * dom/NamedNodeMap.h:
2654 * dom/StyledElement.cpp:
2655 (WebCore::StyledElement::updateStyleAttribute):
2656 (WebCore::StyledElement::createInlineStyleDecl):
2658 (WebCore::StyledElement::destroyInlineStyleDecl):
2659 (WebCore::StyledElement::ensureInlineStyleDecl):
2660 (WebCore::StyledElement::style):
2661 (WebCore::StyledElement::addSubresourceAttributeURLs):
2662 * dom/StyledElement.h:
2663 (WebCore::StyledElement::inlineStyleDecl):
2666 2012-01-29 Sheriff Bot <webkit.review.bot@gmail.com>
2668 Unreviewed, rolling out r106109.
2669 http://trac.webkit.org/changeset/106109
2670 https://bugs.webkit.org/show_bug.cgi?id=77302
2672 It made tests crash (Requested by Ossy_weekend on #webkit).
2674 * platform/graphics/qt/TextureMapperQt.cpp:
2675 (WebCore::TextureMapperQt::setGraphicsContext):
2676 * platform/graphics/qt/TextureMapperQt.h:
2677 (WebCore::TextureMapperQt::initialize):
2679 2012-01-28 Alexander Færøy <ahf@0x90.dk>
2681 [Qt] Remove references to CSSBorderImageValue.h in Target.pri
2682 https://bugs.webkit.org/show_bug.cgi?id=77277
2684 Reviewed by Antonio Gomes.
2686 CSSBorderImageValue.h was removed in r105502.
2690 2012-01-28 Julien Chaffraix <jchaffraix@webkit.org>
2692 REGRESSION (r94016): Element with visibility:hidden but visible descendant may not be properly repainted
2693 https://bugs.webkit.org/show_bug.cgi?id=76126
2695 Reviewed by Simon Fraser.
2697 Tests: fast/layers/scroll-no-visible-content-but-visible-descendant-expected.html
2698 fast/layers/scroll-no-visible-content-but-visible-descendant.html
2700 The optimization missed out that if the current layer does not have some visible content
2701 (m_hasVisibleContent is false), a descendant could totally be visible and would need to
2702 have its repaint rectangles recomputed.
2704 * rendering/RenderLayer.cpp:
2705 (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
2706 Bail out only if the layer doesn't have visible content AND no visible descendants.
2708 2012-01-27 Chris Marrin <cmarrin@apple.com>
2710 Get rid of TransformOperationList
2711 https://bugs.webkit.org/show_bug.cgi?id=77249
2713 Reviewed by Dan Bernstein.
2715 Changed fetchTransformOperationList to validateTransformOperations and got rid of separately generated list
2716 of transform operations. These are not needed, they are already available in the keyframe lists and they
2717 make it more difficult to add support for hardware animated filters. No behavior changes.
2720 * platform/graphics/GraphicsLayer.cpp:
2721 (WebCore::GraphicsLayer::validateTransformOperations):
2722 * platform/graphics/GraphicsLayer.h:
2724 * platform/graphics/ca/GraphicsLayerCA.cpp:
2725 (WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
2726 (WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
2727 * platform/graphics/ca/GraphicsLayerCA.h:
2729 * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
2730 (WebCore::GraphicsLayerTextureMapper::addAnimation):
2731 * platform/graphics/texmap/TextureMapperAnimation.cpp:
2732 (WebCore::applyTransformAnimation):
2733 (WebCore::TextureMapperAnimation::TextureMapperAnimation):
2734 (WebCore::TextureMapperAnimation::applyInternal):
2735 * platform/graphics/texmap/TextureMapperAnimation.h:
2736 (TextureMapperAnimation):
2738 2012-01-27 Raymond Toy <rtoy@google.com>
2740 AudioPannerNode::setPanningModel() does not update m_panningModel properly
2741 https://bugs.webkit.org/show_bug.cgi?id=66830
2743 Reviewed by Kenneth Russell.
2745 Test: webaudio/panner-set-model.html
2747 * webaudio/AudioPannerNode.cpp:
2748 (WebCore::AudioPannerNode::setPanningModel): Update
2749 m_panningModel appropriately. Also silently do nothing if the
2752 2012-01-27 Chris Rogers <crogers@google.com>
2754 HRTFPanner could have high-quality mode for smoother transitions
2755 https://bugs.webkit.org/show_bug.cgi?id=76470
2757 Reviewed by Kenneth Russell.
2759 * platform/audio/HRTFPanner.cpp:
2761 (WebCore::HRTFPanner::HRTFPanner):
2762 (WebCore::HRTFPanner::reset):
2763 (WebCore::HRTFPanner::calculateDesiredAzimuthIndexAndBlend):
2764 (WebCore::HRTFPanner::pan):
2765 * platform/audio/HRTFPanner.h:
2769 2012-01-27 Mike Lawther <mikelawther@chromium.org>
2771 CSS calc parsing stage
2772 https://bugs.webkit.org/show_bug.cgi?id=57082
2774 This is the parsing stage of calc. The expressions are evaluated and
2775 expression trees are generated. CSS values are not created yet - that
2776 will happen in a subsequent commit.
2778 Reviewed by David Hyatt.
2780 No functional change - covered by existing tests in LayoutTests/css3/calc.
2783 * GNUmakefile.list.am:
2786 * WebCore.vcproj/WebCore.vcproj:
2787 * WebCore.xcodeproj/project.pbxproj:
2788 * css/CSSCalculationValue.cpp: Added.
2790 (WebCore::unitCategory):
2791 (WebCore::CSSCalcValue::customCssText):
2792 (WebCore::CSSCalcExpressionNode::~CSSCalcExpressionNode):
2793 (CSSCalcPrimitiveValue):
2794 (WebCore::CSSCalcPrimitiveValue::create):
2795 (WebCore::CSSCalcPrimitiveValue::cssText):
2796 (WebCore::CSSCalcPrimitiveValue::CSSCalcPrimitiveValue):
2798 (CSSCalcBinaryOperation):
2799 (WebCore::CSSCalcBinaryOperation::create):
2800 (WebCore::CSSCalcBinaryOperation::CSSCalcBinaryOperation):
2801 (WebCore::checkDepthAndIndex):
2802 (CSSCalcExpressionNodeParser):
2803 (WebCore::CSSCalcExpressionNodeParser::parseCalc):
2805 (WebCore::CSSCalcExpressionNodeParser::operatorValue):
2806 (WebCore::CSSCalcExpressionNodeParser::parseValue):
2807 (WebCore::CSSCalcExpressionNodeParser::parseValueTerm):
2808 (WebCore::CSSCalcExpressionNodeParser::parseValueMultiplicativeExpression):
2809 (WebCore::CSSCalcExpressionNodeParser::parseAdditiveValueExpression):
2810 (WebCore::CSSCalcExpressionNodeParser::parseValueExpression):
2811 (WebCore::CSSCalcValue::create):
2812 * css/CSSCalculationValue.h: Added.
2815 (CSSCalcExpressionNode):
2816 (WebCore::CSSCalcExpressionNode::category):
2817 (WebCore::CSSCalcExpressionNode::isInt):
2818 (WebCore::CSSCalcExpressionNode::isZero):
2819 (WebCore::CSSCalcExpressionNode::CSSCalcExpressionNode):
2821 (WebCore::CSSCalcValue::category):
2822 (WebCore::CSSCalcValue::isInt):
2823 (WebCore::CSSCalcValue::CSSCalcValue):
2824 * css/CSSParser.cpp:
2825 (WebCore::CSSParser::validCalculationUnit):
2827 (WebCore::CSSParser::validUnit):
2828 (WebCore::CSSParser::createPrimitiveNumericValue):
2829 (WebCore::CSSParser::parseValidPrimitive):
2830 (WebCore::CSSParser::parseValue):
2831 (WebCore::CSSParser::parseFillPositionComponent):
2832 (WebCore::CSSParser::parsedDouble):
2833 (WebCore::CSSParser::isCalculation):
2834 (WebCore::CSSParser::colorIntFromValue):
2835 (WebCore::CSSParser::parseColorParameters):
2836 (WebCore::CSSParser::parseHSLParameters):
2837 (WebCore::ShadowParseContext::ShadowParseContext):
2838 (WebCore::ShadowParseContext::commitLength):
2839 (WebCore::ShadowParseContext::commitStyle):
2840 (ShadowParseContext):
2841 (WebCore::CSSParser::parseShadow):
2842 (WebCore::BorderImageSliceParseContext::BorderImageSliceParseContext):
2843 (WebCore::BorderImageSliceParseContext::commitNumber):
2844 (WebCore::BorderImageSliceParseContext::commitBorderImageSlice):
2845 (BorderImageSliceParseContext):
2846 (WebCore::CSSParser::parseBorderImageSlice):
2847 (WebCore::BorderImageQuadParseContext::BorderImageQuadParseContext):
2848 (WebCore::BorderImageQuadParseContext::commitNumber):
2849 (WebCore::BorderImageQuadParseContext::commitBorderImageQuad):
2850 (BorderImageQuadParseContext):
2851 (WebCore::CSSParser::parseBorderImageQuad):
2852 (WebCore::CSSParser::parseCalculation):
2857 (WebCore::CSSValue::cssText):
2858 (WebCore::CSSValue::destroy):
2860 (WebCore::CSSValue::isCalculationValue):
2862 * css/SVGCSSParser.cpp:
2863 (WebCore::CSSParser::parseSVGValue):
2864 * platform/CalculationValue.cpp: Added.
2866 * platform/CalculationValue.h: Added.
2870 2012-01-27 Anders Carlsson <andersca@apple.com>
2872 WebTileLayers should honor the acceleratesDrawing flag
2873 https://bugs.webkit.org/show_bug.cgi?id=77242
2874 <rdar://problem/10622128>
2876 Reviewed by Dan Bernstein.
2878 * platform/graphics/ca/mac/TileCache.h:
2879 (WebCore::TileCache::acceleratesDrawing):
2882 * platform/graphics/ca/mac/TileCache.mm:
2883 (WebCore::TileCache::TileCache):
2884 Initialize m_acceleratesDrawing.
2886 (WebCore::TileCache::setAcceleratesDrawing):
2887 Set m_acceleratesDrawing and go through all tile layers and update the flag.
2889 (WebCore::TileCache::createTileLayer):
2890 Call -[CALayer setAcceleratesDrawing:] on the newly created layer.
2892 * platform/graphics/ca/mac/WebTileCacheLayer.mm:
2893 (-[WebTileCacheLayer setAcceleratesDrawing:]):
2894 (-[WebTileCacheLayer acceleratesDrawing]):
2895 Call through to the TileCache object.
2897 2012-01-27 Raymond Toy <rtoy@google.com>
2899 Round time to sample frame
2900 https://bugs.webkit.org/show_bug.cgi?id=76659
2902 Three major changes:
2904 1. Modify timeToSampleFrame to round the time to the sample frame
2905 and add support for Visual Studio to round the time in the same
2906 way as on gcc. (The issue is that Visual Studio uses x87
2907 instructions with 80-bit floats.) This makes Visual Studio more
2908 consistent with the results with gcc.
2910 2. Change the current time variable from keeping time in seconds
2911 to keeping time in sample frames. This minimizes rounding except
2912 when needed for the Javascript API.
2914 3. Update AudioBufferSourceNode::process to use samples (instead
2915 of time) as much as possible to reduce round-off effects.
2917 Reviewed by Kenneth Russell.
2919 Tests: Added note-grain-on test to exercise precise
2920 timing. Existing tests (gain and audiobuffersource-playbackrate)
2921 also cover some of these changes, and the equalpower panner test is
2922 modified to enable the tests for the offset of the impulses.
2924 * platform/audio/AudioUtilities.cpp:
2925 (WebCore::AudioUtilities::timeToSampleFrame): Moved from
2926 AudioParamTimeLine and slightly modified, and updated to round
2927 operations consistently. Add special flags for Visual Studio to
2928 generate code with rounding that is consistent with gcc.
2929 * platform/audio/AudioUtilities.h: Declare new function.
2930 * webaudio/AudioBufferSourceNode.cpp:
2931 (WebCore::AudioBufferSourceNode::process): Use new functions to
2932 convert time to sample frame. Update code to use integer
2933 arithmetic as much as possible.
2934 (WebCore::AudioBufferSourceNode::renderFromBuffer): Use
2935 timeToSampleFrame to convert time to sample frame.
2936 * webaudio/AudioContext.h: Define new currentSample method to get
2938 * webaudio/AudioDestinationNode.cpp:
2939 (WebCore::AudioDestinationNode::provideInput): Use new function to
2940 convert sample frame to time. Update
2941 * webaudio/AudioDestiationNode.h: Rename m_currentTime to
2942 m_currentSample, add method to return current Sample. Update
2943 currentTime() method to compute time from the current sample.
2944 * webaudio/AudioParamTimeline.cpp:
2945 (WebCore::AudioParamTimeline::valuesForTimeRangeImpl): Remove
2946 timeToSampleFrame and use new function in AudioUtilities to
2947 convert time to sample frame.
2949 2012-01-27 Adrienne Walker <enne@google.com>
2951 [chromium] Don't ever skip drawing the non-composited content layer
2952 https://bugs.webkit.org/show_bug.cgi?id=77236
2954 Reviewed by James Robinson.
2956 Since the root layer has its textures potentially reserved last in a
2957 front-to-back iteration, don't ever skip drawing it if we can't
2958 reserve its textures. Instead, checkerboard and draw background color
2959 quads instead to fill the viewport. This behavior is tied to the
2960 backgroundFillsViewport setting.
2962 * platform/graphics/chromium/TiledLayerChromium.cpp:
2963 (WebCore::TiledLayerChromium::prepareToUpdateTiles):
2964 * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
2965 (WebCore::CCLayerTilingData::reset):
2966 * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2967 (WebCore::CCTiledLayerImpl::appendQuads):
2969 2012-01-27 Martin Robinson <mrobinson@igalia.com>
2971 Fix a warning in the GTK+ build.
2973 Reviewed by Gustavo Noronha Silva.
2975 No new tests. This should not change behavior.
2977 * plugins/gtk/PluginViewGtk.cpp:
2978 (WebCore::PluginView::platformStart): Use reinterpet_cast to convert X11 Windows into void pointers.
2980 2012-01-27 Tien-Ren Chen <trchen@chromium.org>
2982 [chromium] CCLayerTreeHostImpl minor code cleanup
2983 https://bugs.webkit.org/show_bug.cgi?id=77181
2985 Fix a typo in comments and group functions properly.
2986 Replace duplicated content size code with function.
2988 Reviewed by James Robinson.
2990 No new tests. No change in behavior.
2992 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2993 (WebCore::CCLayerTreeHostImpl::startPageScaleAnimation):
2994 (WebCore::CCLayerTreeHostImpl::contentSize):
2996 (WebCore::CCLayerTreeHostImpl::updateMaxScrollPosition):
2997 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2998 (CCLayerTreeHostImpl):
3000 2012-01-27 Kevin Ollivier <kevino@theolliviers.com>
3002 [wx] Unreviewed. Build fix, add missing header.
3004 * rendering/svg/SVGImageBufferTools.h:
3006 2012-01-27 Victor Carbune <victor@rosedu.org>
3008 Added the GenericEventQueue class in order to generalize asynchronous
3009 event dispatching in HTMLMediaElement.
3011 In order to support asynchronous events dispatched by HTMLTrackElement
3012 there is a need for a generalized implementation of an event queue to
3013 be used for both HTMLMediaElement and Text Tracks.
3015 https://bugs.webkit.org/show_bug.cgi?id=76110
3017 Reviewed by Eric Carlson.
3019 No new tests. No new functionality, only refactoring.
3022 * GNUmakefile.list.am:
3025 * WebCore.vcproj/WebCore.vcproj:
3026 * WebCore.xcodeproj/project.pbxproj:
3028 * dom/GenericEventQueue.cpp: Added. Implements the abstract class EventQueue.
3029 (WebCore::GenericEventQueue::GenericEventQueue):
3030 (WebCore::GenericEventQueue::~GenericEventQueue):
3031 (WebCore::GenericEventQueue::enqueueEvent): Append an event to the current
3033 (WebCore::GenericEventQueue::cancelEvent): Removes an event from the current
3035 (WebCore::GenericEventQueue::timerFired): Callback method when the timer fires.
3036 Dispatches all events that are currently pending.
3037 (WebCore::GenericEventQueue::close): Closes the event queue such that it cannot
3039 (WebCore::GenericEventQueue::cancelAllEvents): Removes all pending events.
3040 (WebCore::GenericEventQueue::hasPendingEvents): True if there are pending events.
3041 * dom/GenericEventQueue.h: Added.
3043 * html/HTMLMediaElement.cpp:
3044 (WebCore::HTMLMediaElement::HTMLMediaElement):
3045 (WebCore::HTMLMediaElement::scheduleEvent): Refactored method to enqueue
3046 the scheduled event on the GenericEventQueue instance.
3047 (WebCore::HTMLMediaElement::cancelPendingEventsAndCallbacks): Ditto.
3048 (WebCore::HTMLMediaElement::hasPendingActivity): Ditto.
3049 (WebCore::HTMLMediaElement::dispatchEvent): This method is overriden
3050 to keep an evidence when a canPlay event is fired.
3051 * html/HTMLMediaElement.h:
3053 2012-01-27 Martin Robinson <mrobinson@igalia.com>
3055 Fix a warning in the GTK+ build.
3057 Reviewed by Gustavo Noronha Silva.
3059 No new tests. This should not change behavior.
3061 * plugins/gtk/PluginViewGtk.cpp:
3062 (WebCore::PluginView::platformStart): Use reinterpet_cast to convert X11 Windows into void pointers.
3064 2012-01-27 Benjamin Poulain <bpoulain@apple.com>
3066 Speed up the prefix matching of cssPropertyName()
3067 https://bugs.webkit.org/show_bug.cgi?id=77158
3069 Reviewed by Geoffrey Garen.
3071 This patch improves the performance by:
3072 -not checking the PropertyName with all 7 prefix
3073 (now, in the worse case, 2 prefixes are checked)
3074 -avoiding the conversion 8bits->16bits by using String::operator[]
3075 instead of ::characters()
3077 To avoid checking every prefix, the code branch based on the first
3078 characters of the propertyName.
3079 The remaining of the prefix is checked character by characters like before.
3081 When accessing CSS property, this gives a 13% improvement when there is no prefix.
3082 There is no performance regression for the matching of prefix, including for the first one
3083 of the previous matching code ("css").
3085 * bindings/js/JSCSSStyleDeclarationCustom.cpp:
3087 (WebCore::matchesCSSPropertyNamePrefix):
3089 (WebCore::getCSSPropertyNamePrefix):
3090 (WebCore::cssPropertyName):
3092 2012-01-27 Ken Buchanan <kenrb@chromium.org>
3094 Crash in updateFirstLetter() from unnecessary anonymous block
3095 https://bugs.webkit.org/show_bug.cgi?id=72675
3097 Reviewed by David Hyatt.
3099 There was a problem with anonymous blocks not getting removed when
3100 their only block flow siblings are removed if they also have non-block
3101 flow first-letter siblings (i.e. floats). This patch modifies
3102 RenderBlock::removeChild() to look for this situation and strip out
3103 unnecessary anonymous container blocks if it occurs.
3105 * rendering/RenderBlock.cpp:
3106 (WebCore::RenderBlock::removeChild):
3107 (WebCore::RenderBlock::collapseAnonymousBoxChild): Added
3108 * rendering/RenderBlock.h:
3109 (WebCore::RenderBlock::collapseAnonymousBoxChild): Added
3111 2012-01-27 Fady Samuel <fsamuel@chromium.org>
3113 Rename shouldLayoutFixedElementsRelativeToFrame and make it a setting
3114 https://bugs.webkit.org/show_bug.cgi?id=76459
3116 Reviewed by Darin Fisher.
3118 This should be a setting because it is independent of a particular frame and
3119 should be preserved even if the mainframe changes.
3121 Renamed (set)ShouldLayoutFixedElementsRelativeToFrame to
3122 (set)FixedElementsLayoutRelativeToFrame due to the connotation
3123 the word "should" may have in this context: If set,
3124 position:fixed elements will ALWAYS be laid out relative to the frame.
3128 * page/FrameView.cpp:
3129 (WebCore::FrameView::reset):
3130 (WebCore::FrameView::scrollXForFixedPosition):
3131 (WebCore::FrameView::scrollYForFixedPosition):
3132 (WebCore::FrameView::fixedElementsLayoutRelativeToFrame):
3136 * page/Settings.cpp:
3137 (WebCore::Settings::Settings):
3138 (WebCore::Settings::setFixedElementsLayoutRelativeToFrame):
3142 (WebCore::Settings::fixedElementsLayoutRelativeToFrame):
3143 * rendering/RenderBox.cpp:
3144 (WebCore::RenderBox::fixedElementLaysOutRelativeToFrame):
3145 (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
3146 (WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
3147 * rendering/RenderBox.h:
3149 * testing/InternalSettings.cpp:
3150 (WebCore::InternalSettings::setFixedElementsLayoutRelativeToFrame):
3151 * testing/InternalSettings.h:
3153 * testing/InternalSettings.idl:
3155 2012-01-27 Kentaro Hara <haraken@chromium.org>
3157 Support the [Supplemental] IDL for constants
3158 https://bugs.webkit.org/show_bug.cgi?id=77228
3160 Reviewed by Adam Barth.
3162 We have supported the [Supplemental] IDL for attributes and methods.
3163 This patch supports it for constants.
3165 Test: bindings/scripts/test/TestSupplemental.idl
3167 * bindings/scripts/generate-bindings.pl:
3168 Supported [Supplemental] constants.
3169 Updated some comments.
3171 * bindings/scripts/test/TestSupplemental.idl:
3172 Added test cases for [Supplemental] constants.
3174 * bindings/scripts/test/CPP/WebDOMTestInterface.h: Updated the test results.
3175 * bindings/scripts/test/JS/JSTestInterface.cpp: Ditto.
3176 (WebCore::JSTestInterfacePrototype::getOwnPropertySlot):
3177 (WebCore::JSTestInterfacePrototype::getOwnPropertyDescriptor):
3179 (WebCore::jsTestInterfaceSUPPLEMENTAL_CONSTANT1):
3180 (WebCore::jsTestInterfaceSUPPLEMENTAL_CONSTANT2):
3181 * bindings/scripts/test/JS/JSTestInterface.h: Ditto.
3183 * bindings/scripts/test/ObjC/DOMTestInterface.h: Ditto.
3184 * bindings/scripts/test/V8/V8TestInterface.cpp: Ditto.
3185 (WebCore::ConfigureV8TestInterfaceTemplate):
3187 2012-01-27 Anders Carlsson <andersca@apple.com>
3189 When threaded scrolling is enabled for a FrameView, always put scrollbars in layers
3190 https://bugs.webkit.org/show_bug.cgi?id=77232
3191 <rdar://problem/10766708>
3193 Reviewed by Beth Dakin.
3195 * page/ScrollingCoordinator.cpp:
3196 (WebCore::ScrollingCoordinator::coordinatesScrollingForFrameView):
3197 * page/ScrollingCoordinator.h:
3198 Add a new helper function.
3200 * rendering/RenderLayerCompositor.cpp:
3201 (WebCore::shouldCompositeOverflowControls):
3202 Make this take a FrameView, check with the scrolling coordinator if the overflow controls should be composited.
3204 (WebCore::RenderLayerCompositor::requiresHorizontalScrollbarLayer):
3205 (WebCore::RenderLayerCompositor::requiresVerticalScrollbarLayer):
3206 (WebCore::RenderLayerCompositor::requiresScrollCornerLayer):
3207 Update for the change to make shouldCompositeOverflowControls take a FrameView.
3209 2012-01-24 Vincent Scheib <scheib@chromium.org>
3211 Pointer Lock: Implement pointer interface
3212 https://bugs.webkit.org/show_bug.cgi?id=75762
3214 Reviewed by Julien Chaffraix.
3216 Implement the navigator.pointer interface via a new
3217 PointerLockController class, as per
3218 http://dvcs.w3.org/hg/webevents/raw-file/default/mouse-lock.html.
3220 The implementation is being made in steps, the feature is still behind
3221 compile-time and run-time flags, 'webkit' prefixed, and not yet enabled
3222 in any browser. (Chromium has a developer flag required.) Follow-up
3223 work will include handling DOM elements being removed, making all
3224 callbacks asynchronous, iframe permissions (similar to Full Screen),
3227 PointerLockController maintains state of which Element is the current
3228 lock target and the success and failure callbacks. ChromeClient has
3229 methods added to expose the required state change requests.
3231 Tests: pointer-lock/lock-already-locked.html
3232 pointer-lock/lock-fail-responses.html
3233 pointer-lock/mouse-event-delivery.html
3234 pointer-lock/pointerlocklost-event.html
3238 * page/ChromeClient.h:
3239 (WebCore::ChromeClient::requestPointerLock):
3240 (WebCore::ChromeClient::requestPointerUnlock):
3241 (WebCore::ChromeClient::isPointerLocked):
3242 * page/Navigator.cpp:
3243 (WebCore::Navigator::webkitPointer):
3245 (WebCore::Page::Page):
3247 (WebCore::Page::pointerLockController):
3248 * page/PointerLock.cpp:
3249 (WebCore::PointerLock::PointerLock):
3250 (WebCore::PointerLock::create):
3251 (WebCore::PointerLock::lock):
3252 (WebCore::PointerLock::unlock):
3253 (WebCore::PointerLock::isLocked):
3254 * page/PointerLock.h:
3255 (WebCore::PointerLock::create):
3256 * page/PointerLockController.cpp: Added.
3257 (WebCore::PointerLockController::PointerLockController):
3258 (WebCore::PointerLockController::requestPointerLock):
3259 (WebCore::PointerLockController::requestPointerUnlock):
3260 (WebCore::PointerLockController::isLocked):
3261 (WebCore::PointerLockController::didAcquirePointerLock):
3262 (WebCore::PointerLockController::didNotAcquirePointerLock):
3263 (WebCore::PointerLockController::didLosePointerLock):
3264 (WebCore::PointerLockController::dispatchLockedMouseEvent):
3265 * page/PointerLockController.h: Copied from Source/WebCore/page/PointerLock.h.
3267 2012-01-27 Abhishek Arya <inferno@chromium.org>
3269 Crash in DocumentLoader::detachFromFrame.
3270 https://bugs.webkit.org/show_bug.cgi?id=62764
3272 Reviewed by Brady Eidson.
3274 r105556 didn't fix the crash because canceling the
3275 main resource loader blows away both the current
3276 document loader and frame underneath. Both protectors
3277 are also used in stopLoading() when m_mainResourceLoader->cancel()
3278 is called. Also, tested the fix under ASAN.
3280 * loader/DocumentLoader.cpp:
3281 (WebCore::DocumentLoader::detachFromFrame):
3283 2012-01-27 Tony Chang <tony@chromium.org>
3285 flexbox scrollbars don't take flex-direction into account
3286 https://bugs.webkit.org/show_bug.cgi?id=70772
3288 Reviewed by Darin Adler.
3290 This fixes a bug where we always used the logicalScrollbarHeight.
3291 For column flow, this was incorrect.
3293 Also fix a bug where we didn't include the trailing border+padding+scrollbar when computing the
3294 height of a column flow.
3296 Tests: css3/flexbox/cross-axis-scrollbar-expected.html
3297 css3/flexbox/cross-axis-scrollbar.html
3299 * rendering/RenderFlexibleBox.cpp:
3300 (WebCore::RenderFlexibleBox::crossAxisScrollbarExtent): Add a direction aware method for getting the scrollbar size.
3302 (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): Use crossAxisScrollbarExtent.
3303 * rendering/RenderFlexibleBox.h:
3304 (RenderFlexibleBox):
3306 2012-01-27 Kentaro Hara <haraken@chromium.org>
3308 Unreviewed. Rebasedlined run-bindings-tests results.
3310 * bindings/scripts/test/CPP/WebDOMTestInterface.cpp:
3311 (WebDOMTestInterface::supplementalMethod1):
3312 (WebDOMTestInterface::supplementalMethod2):
3314 2012-01-27 No'am Rosenthal <noam.rosenthal@nokia.com>
3316 [Qt][WK2] Child layers appear in wrong position when scrolling
3317 https://bugs.webkit.org/show_bug.cgi?id=77063
3319 Reviewed by Simon Fraser.
3321 When using the delegatesScrolling mode in FrameView, the compositor doesn't need
3322 to control the special clip/scroll layers. Also, when we change that mode, we need to let
3323 the compositor reset its backing-stores and rebuild them without scrolling/clipping.
3325 This is tested by compositing tests, when run with Qt in touch mode.
3327 * page/FrameView.cpp:
3328 (WebCore::FrameView::delegatesScrollingDidChange):
3332 * platform/ScrollView.cpp:
3333 (WebCore::ScrollView::setDelegatesScrolling):
3334 * platform/ScrollView.h:
3335 (WebCore::ScrollView::delegatesScrollingDidChange):
3336 * rendering/RenderLayerCompositor.cpp:
3337 (WebCore::RenderLayerCompositor::requiresScrollLayer):
3339 2012-01-27 Thiago Marcos P. Santos <tmpsantos@gmail.com>
3341 Removed unused method from CSSStyleSelector
3342 https://bugs.webkit.org/show_bug.cgi?id=77190
3344 Reviewed by Andreas Kling.
3346 * css/CSSStyleSelector.h:
3349 2012-01-27 Zeno Albisser <zeno@webkit.org>
3351 [Qt][Mac] Build fails after adding ICU support (r105997).
3352 https://bugs.webkit.org/show_bug.cgi?id=77118
3354 Use SmareReplaceCF.cpp code path if platform Mac.
3356 Reviewed by Tor Arne Vestbø.
3360 2012-01-27 Ilya Tikhonovsky <loislo@chromium.org>
3362 Web Inspector: detailed heap snapshot: Replace (Native objects) root element
3363 with '(Detached DOM trees)' and '(Document DOM trees)'
3364 https://bugs.webkit.org/show_bug.cgi?id=77201
3366 I think it'd be nice to replace one group containing all native objects with
3367 separate groups for different types of native objects.
3369 Reviewed by Yury Semikhatsky.
3371 * bindings/v8/RetainedDOMInfo.cpp:
3372 (WebCore::RetainedDOMInfo::GetGroupLabel):
3374 * bindings/v8/RetainedDOMInfo.h:
3377 2012-01-27 Nikolas Zimmermann <nzimmermann@rim.com>
3379 <feImage> doesn't work with local references when using primitiveUnits="objectBoundingBox"
3380 https://bugs.webkit.org/show_bug.cgi?id=77205
3382 Reviewed by Antti Koivisto.
3384 Consider following testcase:
3385 <svg width="1000" height="500">
3387 <circle id="c" cx="50%" cy="50%" r="10%"/>
3388 <filter id="f" filterUnits="userSpaceOnUse" x="0" y="0" width="100" height="100" primitiveUnits="objectBoundingBox">
3389 <feImage xlink:href="#c"/>
3392 <rect width="100" height="100" filter="url(#f)"/>
3395 The <svg> has a viewport of 1000x50. The <circle> in the <defs> element is resolved as <circle cx="500" cy="250" r="79"/>,
3396 as the context for this element (looking at it isolated!) is the viewport of the <svg>. We then setup a 0x0 - 100x100 rect
3397 in user space, which gets filtered, by a filter, also defined in user space (for simplicity), but with primitiveUnits="objectBoundingBox".
3399 That means that the default subregion of the filter effect <feImage/> which has no inputs, is defined in the SVG 1.1 spec to be equal to
3400 the filter region, which is 0x0-100x100 in user space. This <feImage/> is supposed to produce a 100x100 image, containing a circle in the
3401 middle (aka. <circle cx="50" cy="50".../>), but it doesn't, as the <circle> it's trying to paint, is laid out at 500x250, and thus outside
3402 the 100x100 sized image buffer.
3404 So how to resolve this?
3405 The RenderSVGShape thats owned by the <circle> generates its Path value by calling cx().value(lengthContext) and the SVGLengthContext here
3406 resolves to the <svg>. That happens on _layout_. If we would want to change the SVGLengthContext in this case (what I originally planned!)
3407 to carry a custom 100x100 viewport, we'd need to relayout. Unfortunately this is not an option, as this would mean that
3408 SVGImageBufferTools::renderSubtreeToImageBuffer, would need to relayout its children first, but we produce the filter images when painting.
3409 This is very dangerous and has just recently been fixed so that SVGImageBufferTools can ASSERT(!item->needsLayout()) when painting the
3410 subtree to an image buffer.
3412 The only sane solution I see, that does not require relayouts, is to make a map between the <circle> bounding box in user space (500x250
3413 center point) to the filter primitive subregion space (here: 100x100 center point), and concat that transformation before painting the
3414 subtree to the image buffer. Of course this approach only works if all values of the <circle> are relative. If someone uses
3415 <circle id="c" cx="50%" cy="666"> the transformation that I'm looking for is undefined. We'd really need to create a new Path here, to
3416 resolve only cx against the new viewport, and not cy.
3418 Though in practice it turns out this is not a problem. All use cases of feImage + primitiveUnits="objectBoundingBox" link to elements
3419 that are completely defined in percentual values, as this is really the only thing which makes sense - otherwise you can always switch
3420 back to primtiveUnits="userSpaceOnUse". Anyhow, I'm going to fix all known wild-life test cases by my approach, and say we don't support
3421 using mixed length units when referencing those elements from feImages with primitiveUnits="objectBoundingBox".
3423 Adding lots of new testcases, trying all the different feImage modes.
3425 Tests: svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-objectBoundingBox.svg
3426 svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-userSpaceOnUse.svg
3427 svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-objectBoundingBox.svg
3428 svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-userSpaceOnUse.svg
3429 svg/filters/feImage-position.svg
3430 svg/filters/feImage-subregions-preseveAspectRatio-none-with-viewBox.svg
3431 svg/filters/feImage-subregions-preseveAspectRatio-none.svg
3432 svg/filters/feImage-subregions.svg
3434 * rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
3435 (WebCore::RenderSVGResourceFilterPrimitive::determineFilterPrimitiveSubregion): Reverse logic, simplifying the code a bit. Remove FEImage special cases (absoluteSubregion).
3436 * svg/SVGLengthContext.h: Make determineViewport() public, for use in FEImage.
3437 * svg/graphics/filters/SVGFEImage.cpp:
3438 (WebCore::FEImage::determineAbsolutePaintRect): Don't apply preserveAspectRatio transformation for local elements, it's not defined and breaks content.
3439 (WebCore::FEImage::platformApplySoftware): Figure out the absolute subregion by utilizing filterPrimitiveSubregion() as FETurbulence does.
3440 Map between filter primitive subregion and target object space for primitiveUnits="objectBoundingBox" support on SVG element references.
3441 * svg/graphics/filters/SVGFEImage.h: Remove absoluteSubregion member & setter, it's no longer needed.
3443 2012-01-26 Vsevolod Vlasov <vsevik@chromium.org>
3445 Web Inspector: Scripts panel: fix event dispatching between FileSelector and EditorContainer.
3446 https://bugs.webkit.org/show_bug.cgi?id=77126
3448 Reviewed by Pavel Feldman.
3450 * inspector/front-end/ScriptsPanel.js:
3451 (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded.get if):
3452 (WebInspector.ScriptsPanel.prototype._reset):
3453 (WebInspector.ScriptsPanel.prototype._showSourceLine):
3454 (WebInspector.ScriptsPanel.prototype._updateExecutionLine):
3455 (WebInspector.ScriptsPanel.prototype._editorClosed):
3456 (WebInspector.ScriptsPanel.prototype._editorSelected):
3457 (WebInspector.ScriptsPanel.FileSelector.prototype.revealUISourceCode):
3458 (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype.revealUISourceCode):
3459 (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._innerRevealUISourceCode):
3460 (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._addOptionToFilesSelect.insertOrdered):
3461 (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._addOptionToFilesSelect):
3462 (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._goBack):
3463 (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._goForward):
3464 (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._filesSelectChanged):
3465 * inspector/front-end/TabbedEditorContainer.js:
3466 (WebInspector.TabbedEditorContainer):
3467 (WebInspector.TabbedEditorContainer.prototype._tabClosed):
3468 (WebInspector.TabbedEditorContainer.prototype._tabSelected):
3469 (WebInspector.TabbedEditorContainer.prototype.reset):
3471 2012-01-27 Nikolas Zimmermann <nzimmermann@rim.com>
3473 <feImage> DOM mutation problems
3474 https://bugs.webkit.org/show_bug.cgi?id=77198
3476 Reviewed by Antti Koivisto.
3478 Consider <feImage xlink:href="#rect"/>, where <rect> gets dynamically added to the tree.
3479 Currently <feImage> doesn't notice this, as it doesn't register itself pending on "#rect".
3481 Integrate <feImage> properly within the pending resources concept, fixing the bug.
3483 Tests: svg/filters/feImage-target-add-to-document.svg
3484 svg/filters/feImage-target-changes-id.svg
3485 svg/filters/feImage-target-id-change.svg
3486 svg/filters/feImage-target-reappend-to-document.svg
3487 svg/filters/feImage-target-remove-from-document.svg
3489 * svg/SVGFEImageElement.cpp: Rename invalidateImageResource to clearResourceReferences.
3490 (WebCore::SVGFEImageElement::~SVGFEImageElement): Call clearResourceReferences.
3491 (WebCore::SVGFEImageElement::clearResourceReferences): Remove any occurence of m_targetImage, it's no longer used.
3492 (WebCore::SVGFEImageElement::requestImageResource): requestImageResource is now called by buildPendingResource.
3493 (WebCore::SVGFEImageElement::buildPendingResource): Called whenever any element that we depend on gets resolved - now invalidates the <filter>.
3494 (WebCore::SVGFEImageElement::parseMappedAttribute): Don't start loading from parseMappedAttribute.
3495 (WebCore::SVGFEImageElement::svgAttributeChanged): Start loading from here, for consistency with SVGImageElement.
3496 (WebCore::SVGFEImageElement::insertedIntoDocument): Invoke buildPendingResource(), if we enter the tree.
3497 (WebCore::SVGFEImageElement::removedFromDocument): Clear m_cachedImage as soon as we get removed from the tree.
3498 (WebCore::SVGFEImageElement::build): Clean up this function, m_targetImage is no longer exist.
3499 * svg/SVGFEImageElement.h: Remove OwnPtr<ImageBuffer> m_targetImage, which is no longer used.
3501 2012-01-26 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
3503 [Qt] WKTR: Use a software rendering pipiline when running tests.
3504 https://bugs.webkit.org/show_bug.cgi?id=76708
3506 Reviewed by Kenneth Rohde Christiansen.
3508 * platform/graphics/qt/TextureMapperQt.cpp: Allow setting the context to null.
3509 (WebCore::TextureMapperQt::setGraphicsContext):
3510 * platform/graphics/qt/TextureMapperQt.h:
3511 (WebCore::TextureMapperQt::initialize):
3513 2012-01-27 Branimir Lambov <blambov@google.com>
3515 SVG filters incorrectly move elements
3516 https://bugs.webkit.org/show_bug.cgi?id=73643
3518 Reviewed by Nikolas Zimmermann.
3520 Fixes SVG image buffer creation to use the enclosing integer rect
3521 instead of unstable rounded coordinates with scaling which was causing
3522 animated images to jump around under filters. The image buffer was not
3523 aligned on a pixel boundary, and thus the positions and sizes of anything
3524 drawn under that filter changed by 1-2 pixels compared to the same
3525 elements drawn without an intermediate buffer, or drawn with a buffer
3526 with a different target rectangle.
3528 The change improves the positioning of clip paths, masks and filters.
3530 Tests: svg/clip-path/clip-in-clip.svg
3531 svg/clip-path/clipper-placement-issue.svg
3532 svg/filters/filter-placement-issue.svg
3534 * platform/graphics/filters/FETile.cpp:
3535 (WebCore::FETile::platformApplySoftware):
3536 * rendering/svg/RenderSVGResourceClipper.cpp:
3537 (WebCore::RenderSVGResourceClipper::applyClippingToContext):
3538 * rendering/svg/RenderSVGResourceFilter.cpp:
3539 (WebCore::RenderSVGResourceFilter::applyResource):
3540 * rendering/svg/RenderSVGResourceGradient.cpp:
3541 (WebCore::createMaskAndSwapContextForTextGradient):
3542 (WebCore::clipToTextMask):
3543 * rendering/svg/RenderSVGResourceMasker.cpp:
3544 (WebCore::RenderSVGResourceMasker::applyResource):
3545 (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
3546 * rendering/svg/RenderSVGResourcePattern.cpp:
3547 (WebCore::RenderSVGResourcePattern::createTileImage):
3548 * rendering/svg/SVGImageBufferTools.cpp:
3549 (WebCore::SVGImageBufferTools::createImageBuffer):
3550 (WebCore::SVGImageBufferTools::createImageBufferForPattern):
3551 (WebCore::SVGImageBufferTools::clipToImageBuffer):
3552 (WebCore::SVGImageBufferTools::clampedAbsoluteTargetRect):
3553 (WebCore::SVGImageBufferTools::clampedAbsoluteSize):
3554 * rendering/svg/SVGImageBufferTools.h:
3555 (WebCore::SVGImageBufferTools::calcImageBufferRect):
3557 2012-01-25 Yury Semikhatsky <yurys@chromium.org>
3559 Web Inspector: should be possible to open function declaration from script popover
3560 https://bugs.webkit.org/show_bug.cgi?id=76913
3562 Added inferred/display function name and source location to the popover in scripts panel.
3563 Now when a function is hovered user can navigate to its definition.
3565 Reviewed by Pavel Feldman.
3567 Test: inspector/debugger/function-details.html
3569 * bindings/js/JSInjectedScriptHostCustom.cpp:
3570 (WebCore::JSInjectedScriptHost::functionDetails):
3571 * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
3572 (WebCore::V8InjectedScriptHost::functionDetailsCallback):
3573 * inspector/InjectedScript.cpp:
3574 (WebCore::InjectedScript::getFunctionDetails):
3575 * inspector/InjectedScript.h:
3577 * inspector/InjectedScriptHost.idl:
3578 * inspector/InjectedScriptSource.js:
3580 * inspector/Inspector.json:
3581 * inspector/InspectorDebuggerAgent.cpp:
3582 (WebCore::InspectorDebuggerAgent::getFunctionDetails):
3583 * inspector/InspectorDebuggerAgent.h:
3584 (InspectorDebuggerAgent):
3585 * inspector/front-end/DebuggerPresentationModel.js:
3586 (WebInspector.DebuggerPresentationModel.Linkifier.prototype.linkifyFunctionLocation):
3587 * inspector/front-end/ObjectPopoverHelper.js:
3588 (WebInspector.ObjectPopoverHelper):
3589 (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover.showObjectPopover.):
3590 (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
3591 (WebInspector.ObjectPopoverHelper.prototype._onHideObjectPopover):
3592 * inspector/front-end/ObjectPropertiesSection.js:
3593 (WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired):
3594 (WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired.revealFunction):
3595 * inspector/front-end/RemoteObject.js:
3596 (WebInspector.RemoteObject):
3597 (WebInspector.RemoteObject.fromPayload):
3598 (WebInspector.RemoteObject.prototype.get functionName):
3599 * inspector/front-end/scriptsPanel.css:
3600 (.function-location-link):
3601 (.function-popover-title):
3602 (.function-popover-title .function-name):
3604 2012-01-26 Noel Gordon <noel.gordon@gmail.com>
3606 Remove FIXME: ColorProfile encapsulation as a Vector<char> works well
3607 https://bugs.webkit.org/show_bug.cgi?id=77176
3609 Reviewed by Adam Barth.
3611 No new tests. No change in behavior.
3613 * platform/image-decoders/ImageDecoder.h:
3615 2012-01-26 Matthew Delaney <mdelaney@apple.com>
3617 ImageBuffer::draw should deep copy if drawing to an accelerated context
3618 https://bugs.webkit.org/show_bug.cgi?id=77185
3620 Reviewed by Simon Fraser.
3622 No new tests since any test for this issue would be flaky at best.
3624 * platform/graphics/cg/ImageBufferCG.cpp: Deep copy when drawing ourself into
3625 an accelerated context for both draw and drawPattern.
3626 (WebCore::ImageBuffer::draw):
3627 (WebCore::ImageBuffer::drawPattern):
3629 2012-01-26 Kevin Ollivier <kevino@theolliviers.com>
3631 [wx] Unreviewed. Build fixes.
3632 - Remove some constructors not generated by CPP bindings
3633 from being added to CPP binding headers
3634 - Keyboard event fixes after modifier changes
3635 - Add stubs for Language and RunLoop platform methods
3637 * bindings/scripts/CodeGeneratorCPP.pm:
3638 (GetNamespaceForClass):
3639 (GenerateImplementation):
3640 * platform/mac/WebCoreSystemInterface.h:
3641 * platform/wx/KeyboardEventWx.cpp:
3642 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
3643 * platform/wx/LanguageWx.cpp: Added.
3645 (WebCore::platformLanguage):
3646 (WebCore::platformUserPreferredLanguages):
3647 * platform/wx/RunLoopWx.cpp: Added.
3649 (WebCore::RunLoop::run):
3650 (WebCore::RunLoop::stop):
3651 (WebCore::RunLoop::RunLoop):
3652 (WebCore::RunLoop::~RunLoop):
3653 (WebCore::RunLoop::wakeUp):
3654 * storage/DOMWindowSQLDatabase.idl:
3655 * webaudio/DOMWindowWebAudio.idl:
3656 * websockets/DOMWindowWebSocket.idl:
3658 2012-01-26 Sheriff Bot <webkit.review.bot@gmail.com>
3660 Unreviewed, rolling out r105486.
3661 http://trac.webkit.org/changeset/105486
3662 https://bugs.webkit.org/show_bug.cgi?id=77182
3664 This patch doesn't take web workers into account. (Requested
3665 by dave_levin on #webkit).
3668 (WebCore::DOMURL::DOMURL):
3669 (WebCore::DOMURL::~DOMURL):
3670 (WebCore::DOMURL::contextDestroyed):
3672 (WebCore::DOMURL::createObjectURL):
3673 (WebCore::DOMURL::revokeObjectURL):
3675 (WebCore::DOMURL::create):
3678 * page/DOMWindow.cpp:
3680 (WebCore::DOMWindow::webkitURL):
3684 * page/DOMWindow.idl:
3685 * workers/WorkerContext.cpp:
3687 (WebCore::WorkerContext::webkitURL):
3688 (WebCore::WorkerContext::webkitRequestFileSystem):
3689 * workers/WorkerContext.h:
3692 * workers/WorkerContext.idl:
3694 2012-01-26 Noel Gordon <noel.gordon@gmail.com>
3696 Cleanup JPEGImageDecoder includes
3697 https://bugs.webkit.org/show_bug.cgi?id=77171
3699 Reviewed by Adam Barth.
3701 No new tests. Refactoring cleanup only.
3703 * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
3705 2012-01-26 Tim Horton <hortont424@gmail.com>
3707 3D transformed elements hide when showing the print dialog
3708 https://bugs.webkit.org/show_bug.cgi?id=45894
3709 <rdar://problem/7441593>
3711 Reviewed by Andy Estes.
3713 Suspend updates of the compositing layer tree while printing is taking place,
3714 preventing on-screen layers from moving to their print-mode positions.
3716 No new tests, as WebKitTestRunner doesn't support putting the document
3719 * page/FrameView.cpp:
3720 (WebCore::FrameView::syncCompositingStateForThisFrame):
3721 (WebCore::FrameView::paintContents):
3722 * platform/graphics/ca/LayerFlushScheduler.h:
3723 (WebCore::LayerFlushScheduler::isSuspended): Added.
3725 2012-01-26 Pablo Flouret <pablof@motorola.com>
3727 Fix bad code generated by the JSC idl code generator for [CachedAttribute] attributes
3728 https://bugs.webkit.org/show_bug.cgi?id=77165
3730 Reviewed by Oliver Hunt.
3732 Missing parameter in a call to deserialize() and using 'this' in the
3733 attribute accessor functions (which are static).
3735 * bindings/scripts/CodeGeneratorJS.pm:
3736 (GenerateImplementation):
3738 * bindings/scripts/test/JS/JSTestObj.cpp:
3739 (WebCore::jsTestObjCachedAttribute1):
3740 (WebCore::jsTestObjCachedAttribute2):
3741 * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
3742 (WebCore::jsTestSerializedScriptValueInterfaceValue):
3744 2012-01-26 W. James MacLean <wjmaclean@chromium.org>
3746 [chromium] Allow modification of size of partially occluded quads during culling to reduce pixel overdraw.
3747 https://bugs.webkit.org/show_bug.cgi?id=76349
3749 Reviewed by James Robinson.
3751 Prior to this patch, draw culling either rejects a DrawQuad because it is completely
3752 occluded, or draws the entire quad (even if it is largely occluded). This patch
3753 attempts to reduce the number of pixels drawn by determining if a partially
3754 occluded DrawQuad can be resized to a smaller quad, based on what portion of the
3755 DrawQuad is actually visible, and performing that resizing where possible.
3757 Added cases to existing unit tests.
3759 * platform/graphics/chromium/LayerRendererChromium.cpp:
3760 (WebCore::LayerRendererChromium::drawTileQuad):
3761 * platform/graphics/chromium/cc/CCDrawQuad.cpp:
3762 (WebCore::CCDrawQuad::CCDrawQuad):
3763 * platform/graphics/chromium/cc/CCDrawQuad.h:
3764 (WebCore::CCDrawQuad::setQuadVisibleRect):
3765 (WebCore::CCDrawQuad::quadVisibleRect):
3766 * platform/graphics/chromium/cc/CCQuadCuller.cpp:
3767 (WebCore::rectSubtractRegion):
3768 (WebCore::CCQuadCuller::cullOccludedQuads):
3770 2012-01-26 Anders Carlsson <andersca@apple.com>
3772 Scrollbars disappear when switching from legacy to overlay scrollbars
3773 https://bugs.webkit.org/show_bug.cgi?id=77166
3775 Reviewed by Dan Bernstein.
3777 * platform/ScrollView.cpp:
3778 (WebCore::ScrollView::scrollbarStyleChanged):
3779 Call positionScrollbarLayers to make sure that the new scrollbar layers are positioned correctly.
3781 * platform/mac/ScrollAnimatorMac.mm:
3782 (WebCore::ScrollAnimatorMac::updateScrollerStyle):
3783 Call ScrollbarThemeMac::setNewPainterForScrollbar after making the call to the scrollbar painter controller
3784 to set the horizontal or vertical imp, since setting the imp will reset the knob style.
3786 2012-01-26 Adam Barth <abarth@webkit.org>
3788 NULL ptr in WebCore::ContainerNode::parserAddChild
3789 https://bugs.webkit.org/show_bug.cgi?id=76258
3791 Reviewed by Eric Seidel.
3793 Test: fast/parser/nested-fragment-parser-crash.html
3795 We always need a parent element to attach to. In crazy cases, we can
3796 have elements in the stack of open elements that are already detached
3797 from the DOM. In those cases, they don't have a parent, so we aren't
3798 able to enforce the maximum DOM depth. (Fortunately, they're not
3799 attached to the DOM anymore so we don't need to enforce the maximum DOM
3802 * html/parser/HTMLConstructionSite.cpp:
3803 (WebCore::HTMLConstructionSite::attachLater):
3804 (WebCore::HTMLConstructionSite::fosterParent):
3806 2012-01-26 Cris Neckar <cdn@chromium.org>
3808 The registration of schemes is currently racey as they are not registered from the main thread.
3809 Getting rid of the assert that ensures that we are registering from the main thread until we can fix this.
3811 Thank you ap@webkit for helping us identify this.
3813 https://bugs.webkit.org/show_bug.cgi?id=77160
3815 Reviewed by Adam Barth.
3817 * platform/SchemeRegistry.cpp:
3818 (WebCore::CORSEnabledSchemes):
3820 2012-01-26 Anders Carlsson <andersca@apple.com>
3822 We don't need to always repaint overlay scrollbars if they're in layers
3823 https://bugs.webkit.org/show_bug.cgi?id=77159
3825 Reviewed by Beth Dakin.
3827 If a scrollable area has overlay scrollbars we'll always invalidate both scrollbars, regardless of
3828 whether both scroll offsets actually change since they're translucent and we want to draw the new page
3829 contents underneath.
3831 However, if the scrollbars are painted into GraphicsLayers they'll be composited by the GPU, and so we don't
3832 need to repaint them unless the corresponding scroll offset actually changes (which is handled in Scrollbar::updateThumb).
3834 * platform/ScrollableArea.cpp:
3835 (WebCore::ScrollableArea::setScrollOffsetFromAnimation):
3837 2012-01-26 Joshua Bell <jsbell@chromium.org>
3839 IndexedDB: WebCore::IDBKey objects are leaked
3840 https://bugs.webkit.org/show_bug.cgi?id=77114
3842 Reviewed by Tony Chang.
3844 Fixing memory leaks, no new tests.
3847 (WebCore::IDBKey::createInvalid):
3848 (WebCore::IDBKey::createNumber):
3849 (WebCore::IDBKey::createString):
3850 (WebCore::IDBKey::createDate):
3851 (WebCore::IDBKey::createArray):
3853 2012-01-25 Cris Neckar <cdn@chromium.org>
3855 Add a scheme registry for CORS requests. Allow simple CORS requests to be made to registered schemes.
3856 https://bugs.webkit.org/show_bug.cgi?id=77041
3858 Reviewed by Alexey Proskuryakov.
3860 * loader/DocumentThreadableLoader.cpp:
3861 (WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
3862 * platform/SchemeRegistry.cpp:
3863 (WebCore::CORSEnabledSchemes):
3865 (WebCore::SchemeRegistry::registerCORSEnabledScheme):
3866 (WebCore::SchemeRegistry::isCORSEnabledScheme):
3867 * platform/SchemeRegistry.h:
3870 2012-01-26 Noel Gordon <noel.gordon@gmail.com>
3872 File extension for webp files is .webp
3873 https://bugs.webkit.org/show_bug.cgi?id=76982
3875 Reviewed by Adam Barth.
3877 No new tests. No change in behavior.
3879 * platform/image-decoders/webp/WEBPImageDecoder.h:
3880 (WebCore::WEBPImageDecoder::filenameExtension):
3882 2012-01-26 Alok Priyadarshi <alokp@chromium.org>
3884 [chromium] Remove dead and unnecessary code related to LayerChromium::cleanupResources
3885 https://bugs.webkit.org/show_bug.cgi?id=77137
3887 Reviewed by James Robinson.
3889 No new test needed. Only removing dead code.
3891 * platform/graphics/chromium/LayerChromium.cpp:
3892 * platform/graphics/chromium/LayerChromium.h:
3893 (WebCore::LayerChromium::layerTreeHost):
3894 * platform/graphics/chromium/TiledLayerChromium.cpp:
3895 (WebCore::TiledLayerChromium::setLayerTreeHost):
3897 2012-01-26 Anders Carlsson <andersca@apple.com>
3899 Move horizontal rubber-band checks to ScrollElasticityController::handleWheelEvent
3900 https://bugs.webkit.org/show_bug.cgi?id=77147
3902 Reviewed by Adam Roben.
3904 * platform/mac/ScrollAnimatorMac.h:
3905 (ScrollAnimatorMac):
3906 * platform/mac/ScrollAnimatorMac.mm:
3907 (WebCore::ScrollAnimatorMac::handleWheelEvent):
3908 Always call ScrollElasticityController::handleWheelEvent, and only call didBeginScrollGesture and
3909 didEndScrollGesture if the event was actually handled.
3911 (WebCore::ScrollAnimatorMac::shouldRubberBandInDirection):
3914 * platform/mac/ScrollElasticityController.h:
3915 * platform/mac/ScrollElasticityController.mm:
3916 (WebCore::ScrollElasticityController::handleWheelEvent):
3917 Check if we should rubber-band and return false if we shouldn't.
3919 (WebCore::ScrollElasticityController::shouldRubberBandInHorizontalDirection):
3920 Ask the client if we should rubber-band.
3922 2012-01-19 James Robinson <jamesr@chromium.org>
3924 [chromium] Remove setLayerTreeHost nonsense on lost context
3925 https://bugs.webkit.org/show_bug.cgi?id=76675
3927 Reviewed by Kenneth Russell.
3929 This code isn't needed any more. On a lost context event, we drop all TextureManager-managed textures through
3930 the proxy and no layer types need special lost context handling.
3932 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3933 (WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
3935 2012-01-26 Anders Carlsson <andersca@apple.com>
3937 Simplify checking of whether we should rubberband horizontally
3938 https://bugs.webkit.org/show_bug.cgi?id=77141
3940 Reviewed by Adam Roben.
3942 Have a single check for horizontal rubber-banding in both directions. This is in preparation
3943 for moving this code into ScrollElasticityController.
3945 * platform/mac/ScrollAnimatorMac.mm:
3946 (WebCore::shouldRubberBandInHorizontalDirection):
3947 (WebCore::ScrollAnimatorMac::handleWheelEvent):
3949 2012-01-26 Scott Graham <scottmg@chomium.org>
3951 Fix include path in gyp file for V8InternalSettings.h
3952 https://bugs.webkit.org/show_bug.cgi?id=77128
3954 Reviewed by Kent Tamura.
3956 * WebCore.gyp/WebCore.gyp:
3958 2012-01-26 James Robinson <jamesr@chromium.org>
3960 We shouldn't synchronously update styles on all documents after running script
3961 https://bugs.webkit.org/show_bug.cgi?id=46761
3963 Reviewed by Simon Fraser.
3965 Currently we call Document::updateStyleForAllDocuments() after invoking any event or timeout handler. This is
3966 slow since it iterates over the entire document tree and defeats our recalcStyle timer batching. It is
3967 unnecessary as any code that depends on styles or the render tree being up to date must call
3968 updateStyleIfNeeded() on the document it is accessing.
3970 The first reference I can find to this code is in r798 in the file WebCore/khtml/xml/domnode_impl.cpp. It's been
3971 cargo culted forward ever since.
3973 * bindings/ScriptControllerBase.cpp:
3974 (WebCore::ScriptController::executeScript):
3975 * bindings/js/ScheduledAction.cpp:
3976 (WebCore::ScheduledAction::execute):
3977 * bindings/js/ScriptController.cpp:
3978 (WebCore::ScriptController::ScriptController):
3979 (WebCore::ScriptController::executeScriptInWorld):
3980 * bindings/js/ScriptController.h:
3981 * bindings/v8/ScheduledAction.cpp:
3982 (WebCore::ScheduledAction::execute):
3983 * bindings/v8/ScriptController.cpp:
3984 (WebCore::ScriptController::ScriptController):
3985 * bindings/v8/ScriptController.h:
3986 * dom/ScriptElement.cpp:
3987 (WebCore::ScriptElement::executeScript):
3988 * inspector/InspectorClient.cpp:
3989 (WebCore::InspectorClient::doDispatchMessageOnFrontendPage):
3991 2012-01-26 Anders Carlsson <andersca@apple.com>
3993 Get rid of ScrollElasticityController::beginScrollGesture()
3994 https://bugs.webkit.org/show_bug.cgi?id=77138
3996 Reviewed by Adam Roben.
3998 ScrollElasticityController::handleWheelEvent now checks if the wheel event phase is
3999 PlatformWheelEventPhaseBegan and sets up the gesture state if it is.
4001 * platform/mac/ScrollAnimatorMac.mm:
4002 (WebCore::ScrollAnimatorMac::handleWheelEvent):
4003 * platform/mac/ScrollElasticityController.h:
4004 (ScrollElasticityController):
4005 * platform/mac/ScrollElasticityController.mm:
4006 (WebCore::ScrollElasticityController::handleWheelEvent):
4008 2012-01-26 Anders Carlsson <andersca@apple.com>
4010 Get rid of ScrollElasticityController::endScrollGesture()
4011 https://bugs.webkit.org/show_bug.cgi?id=77134
4013 Reviewed by Adam Roben.
4015 Just make ScrollElasticityController::handleWheelEvent call snapRubberBand if the wheel
4016 event phase is PlatformWheelEventPhaseEnded.
4018 * platform/mac/ScrollAnimatorMac.mm:
4019 (WebCore::ScrollAnimatorMac::handleWheelEvent):
4020 * platform/mac/ScrollElasticityController.h:
4021 (ScrollElasticityController):
4022 * platform/mac/ScrollElasticityController.mm:
4023 (WebCore::ScrollElasticityController::handleWheelEvent):
4025 2012-01-26 Abhishek Arya <inferno@chromium.org>
4027 Crash in SVGSVGElement::currentViewBoxRect.
4028 https://bugs.webkit.org/show_bug.cgi?id=77121
4030 Reviewed by Nikolas Zimmermann.
4032 Symbols shouldn't be rendered. Revert the ASSERT
4033 from r105513 into a hard check.
4035 Test: svg/custom/symbol-viewport-element-crash.svg
4037 * svg/SVGLengthContext.cpp:
4038 (WebCore::SVGLengthContext::determineViewport):
4040 2012-01-26 Anders Carlsson <andersca@apple.com>
4042 Inline beginScrollGesture/endScrollGesture in handleWheelEvent
4043 https://bugs.webkit.org/show_bug.cgi?id=77133
4045 Reviewed by Andreas Kling.
4047 * platform/mac/ScrollAnimatorMac.h:
4048 (ScrollAnimatorMac):
4049 * platform/mac/ScrollAnimatorMac.mm:
4050 (WebCore::ScrollAnimatorMac::handleWheelEvent):
4052 2012-01-26 Anders Carlsson <andersca@apple.com>
4054 No need to set m_haveScrolledSincePageLoad in beginScrollGesture
4055 https://bugs.webkit.org/show_bug.cgi?id=77132
4057 Reviewed by Andreas Kling.
4059 m_haveScrolledSincePageLoad is already set to true in handleWheelEvent so we don't need
4060 to set it to true again.
4062 * platform/mac/ScrollAnimatorMac.mm:
4063 (WebCore::ScrollAnimatorMac::beginScrollGesture):
4065 2012-01-26 Anders Carlsson <andersca@apple.com>
4067 Simplify checking for whether we should rubberband or not when at the edge
4068 https://bugs.webkit.org/show_bug.cgi?id=77131
4070 Reviewed by Beth Dakin.
4072 We only need to check once if we're pinned at either edge whether we should rubber-band
4073 or not. Do this when the wheel event phase is PlatformWheelEventPhaseBegan. This lets us
4074 remove a bunch of code that would keep track of the current horizontal scroll direction.
4076 * platform/mac/ScrollAnimatorMac.h:
4077 (ScrollAnimatorMac):
4078 * platform/mac/ScrollAnimatorMac.mm:
4079 (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
4080 (WebCore::ScrollAnimatorMac::handleWheelEvent):
4081 (WebCore::ScrollAnimatorMac::beginScrollGesture):
4083 2012-01-26 Eli Fidler <efidler@rim.com>
4085 [JSC] Inspector instrumentation for JavaScript calls.
4086 https://bugs.webkit.org/show_bug.cgi?id=40119
4088 Reviewed by Geoffrey Garen.
4090 Covered by existing Chromium inspector tests
4092 * bindings/js/JSCallbackData.cpp:
4093 (WebCore::JSCallbackData::invokeCallback):
4094 * bindings/js/JSEventListener.cpp:
4095 (WebCore::JSEventListener::handleEvent):
4096 * bindings/js/JSMainThreadExecState.h:
4097 (WebCore::JSMainThreadExecState::instrumentedCall):
4098 * inspector/InspectorInstrumentation.cpp:
4099 (WebCore::InspectorInstrumentation::willCallFunctionImpl):
4101 2012-01-26 Mike Reed <reed@google.com>