1 2012-03-12 Martin Robinson <mrobinson@igalia.com>
3 [GTK] Menulist buttons have separators even when the theme turns them off
4 https://bugs.webkit.org/show_bug.cgi?id=80668
6 Reviewed by Daniel Bates.
8 No new tests. GTK+ theme differences are notoriously difficult
9 to test, because consistent results depend on having certain themes
10 and certain versions of themes installed.
12 Instead of using the GTK_TYPE_BUTTON and GTK_TYPE_SEPARATOR tags to get the
13 style context, use GTK_TYPE_COMBO_BOX which should provide more accurate theme settings.
15 * platform/gtk/RenderThemeGtk3.cpp:
16 (WebCore::getComboBoxMetrics): Get metrics from a GTK_TYPE_COMBO_BOX style context.
17 (WebCore::RenderThemeGtk::paintMenuList): Get separator settings from the GTK_TYPE_COMBO_BOX style context.
19 2012-03-14 Levi Weintraub <leviw@chromium.org>
21 Implement proper sub-pixel support in RenderFileUploadControl
22 https://bugs.webkit.org/show_bug.cgi?id=80881
24 Reviewed by Dimitri Glazkov.
26 Correcting improper usage of LayoutUnits when interacting with the graphics context
27 and platform code. Specifically:
28 - pixel snapping the clip rect and paint offsets before sending values to the
29 graphics context in paintObject.
30 - using on-screen (pixel snapped) values to pass off to platform code to determine
31 the max length of the filename to be drawn.
33 No new tests. No change in behavior.
35 * rendering/RenderFileUploadControl.cpp:
37 (WebCore::RenderFileUploadControl::maxFilenameWidth):
38 (WebCore::RenderFileUploadControl::paintObject):
40 2012-03-14 Joseph Pecoraro <pecoraro@apple.com>
42 [JSC] Web Inspector: CRASH running $0, $1, etc before they are set
43 https://bugs.webkit.org/show_bug.cgi?id=81082
45 Don't return an invalid JSValue. Check if the ScriptValue
46 has no value and return undefined in that case.
48 Reviewed by Pavel Feldman.
50 Updated test: inspector/console/command-line-api.html
52 * bindings/js/JSInjectedScriptHostCustom.cpp:
53 (WebCore::JSInjectedScriptHost::inspectedObject):
55 2012-03-14 James Robinson <jamesr@chromium.org>
57 [chromium] Remove canRecoverFromContextLoss attribute, it's unused
58 https://bugs.webkit.org/show_bug.cgi?id=81158
60 Reviewed by Stephen White.
62 Canvas accelerated no longer depends on the canRecoverFromContextLoss attribute after r110716.
64 * platform/graphics/GraphicsContext3D.h:
65 (WebCore::GraphicsContext3D::Attributes::Attributes):
67 * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
68 (WebCore::SharedGraphicsContext3DImpl::get):
70 2012-03-14 Jer Noble <jer.noble@apple.com>
72 Opening a URL in a MediaDocument does not propagate MIME type info to media element
73 https://bugs.webkit.org/show_bug.cgi?id=81148
75 Reviewed by Eric Carlson.
77 Test: http/tests/media/media-document.html
79 Pass through the mime type from the DocumentLoader into the <source type=""> attribute of the
80 generated video element.
82 * html/MediaDocument.cpp:
83 (WebCore::MediaDocumentParser::createDocumentStructure):
85 2012-03-14 Stephen White <senorblanco@chromium.org>
87 [chromium] Fix accelerated Canvas2D with threaded compositing.
88 https://bugs.webkit.org/show_bug.cgi?id=80998
90 Reviewed by James Robinson.
92 Covered by unit tests Canvas2DLayerChromiumTest and
95 * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
96 (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
98 Delay creation of the front texture for double-buffering until the
99 first call to paintContentsIfDirty().
100 * platform/graphics/chromium/Canvas2DLayerChromium.h:
101 (Canvas2DLayerChromium):
102 Remove setTextureManager() and setLayerTreeHost(), since their job
103 has been subsumed by paintContentsIfDirty().
104 * platform/graphics/chromium/TreeSynchronizer.cpp:
105 (WebCore::TreeSynchronizer::updateScrollbarLayerPointersRecursive):
106 Perform an early-out if the passed-in layer is NULL.
108 2012-03-14 Mark Pilgrim <pilgrim@chromium.org>
110 Move EntriesCallback to Modules/filesystem/
111 https://bugs.webkit.org/show_bug.cgi?id=81032
113 Reviewed by Adam Barth.
115 No new tests, all existing tests pass.
118 * DerivedSources.make:
119 * DerivedSources.pri:
120 * GNUmakefile.list.am:
121 * Modules/filesystem/EntriesCallback.h: Copied from Source/WebCore/fileapi/EntriesCallback.h.
122 * Modules/filesystem/EntriesCallback.idl: Copied from Source/WebCore/fileapi/EntriesCallback.idl.
125 * WebCore.vcproj/WebCore.vcproj:
126 * WebCore.xcodeproj/project.pbxproj:
127 * fileapi/EntriesCallback.h: Removed.
128 * fileapi/EntriesCallback.idl: Removed.
130 2012-03-14 Tony Chang <tony@chromium.org>
132 multiline column flexbox with auto height wrap too much
133 https://bugs.webkit.org/show_bug.cgi?id=80929
135 Reviewed by David Hyatt.
137 Test: css3/flexbox/multiline-column-auto.html
139 * rendering/RenderBox.cpp:
140 (WebCore::RenderBox::computeLogicalHeightUsing):
142 (WebCore::RenderBox::computeContentLogicalHeightUsing): Pull out into a separate method.
143 * rendering/RenderBox.h:
145 * rendering/RenderFlexibleBox.cpp:
146 (WebCore::RenderFlexibleBox::lineBreakLength): Compute the value based on height & max-height for column layout.
148 (WebCore::RenderFlexibleBox::computeNextFlexLine):
149 * rendering/RenderFlexibleBox.h:
152 2012-03-14 Xingnan Wang <xingnan.wang@intel.com>
154 Optimize the multiply-add in Biquad.cpp::process
155 https://bugs.webkit.org/show_bug.cgi?id=75528
157 Reviewed by Chris Rogers.
159 Pipeline the multiply-add with SSE2 instructions and get about 20% improvement for the function.
161 * platform/audio/Biquad.cpp:
162 (WebCore::Biquad::process):
164 2012-03-14 James Robinson <jamesr@chromium.org>
166 [Chromium] Layout Test compositing/repaint/opacity-between-absolute.html is flaky
167 https://bugs.webkit.org/show_bug.cgi?id=79823
169 Reviewed by Adrienne Walker.
171 LayerRendererChromium was storing a weak pointer to the current render surface in m_currentRenderSurface and
172 using this in useRenderSurface() to avoid rebinding if we called useRenderSurface() multiple times in a row on
173 the same surface. This pointer was never cleared, so if any subsequent surface landed at the same address this
174 caching would misbehave and we'd fail to correctly initialize the new render surface. The caching wasn't
175 actually buying us anything anyway since we only call useRenderSurface() once per surface per frame and we
176 always set the viewport for the default render surface.
178 * platform/graphics/chromium/LayerRendererChromium.cpp:
179 (WebCore::LayerRendererChromium::beginDrawingFrame):
180 (WebCore::LayerRendererChromium::useRenderSurface):
182 2012-03-14 Zalan Bujtas <zbujtas@gmail.com>
184 Frame flattening ASSERT(!needsLayout()) in FrameView::paintContents()
185 https://bugs.webkit.org/show_bug.cgi?id=80155
187 Reviewed by Antti Koivisto.
189 This patch ensures that an iframe only schedules and calls parent's layout,
190 when it is going to be flattened. Non-flattened iframe does not affect
191 parent's layout, so normal layout flow applies. isInSubframeLayoutWithFrameFlattening()
192 function has been added to test whether a particular child frame is changing
193 parent's layout. This function also ensures that scheduleRelayout() and layout()
194 are in sync of checking againts frame flattening.
196 Test: fast/frames/flattening/iframe-flattening-fixed-width-and-height-no-scrolling-with-js-forced-layout.html
198 * page/FrameView.cpp:
199 (WebCore::FrameView::avoidScrollbarCreation):
200 (WebCore::FrameView::layout):
201 (WebCore::FrameView::scheduleRelayout):
202 (WebCore::FrameView::isInChildFrameWithFrameFlattening):
204 (WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):
207 * rendering/RenderIFrame.h:
209 (WebCore::RenderIFrame::renderName):
211 2012-03-14 Anders Carlsson <andersca@apple.com>
213 Don't cap the scroll position if layout happens when a FrameView's overhangAmount is non-zero
214 https://bugs.webkit.org/show_bug.cgi?id=81146
215 <rdar://problem/10850075>
217 Reviewed by Beth Dakin.
219 If layout happens when a page has a non-zero overhang amount, we shouldn't cap the scroll position
220 to be inside of the valid maximum/minimum scroll offsets because that will cause the page to jump back, which
221 can look really bad if layout happens in response to the page being scrolled.
223 * platform/ScrollView.cpp:
224 (WebCore::ScrollView::updateScrollbars):
226 2012-03-14 Tommy Widenflycht <tommyw@google.com>
228 MediaStream API (JSEP): Introducing IceCandidate
229 https://bugs.webkit.org/show_bug.cgi?id=80699
231 Reviewed by Adam Barth.
233 Patch #2 in a series of patches to change the PeerConnection from ROAP to JSEP,
234 see bug 80589 for more information.
235 Adding the JS object IceCandidate and its WebCore/platform sibling IceCandidateDescriptor.
236 This object will be created both from JS and the embedder.
238 Not possible to test until the entire JSEP feature is commited.
240 * GNUmakefile.list.am:
241 * Modules/mediastream/IceCandidate.cpp: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
243 (WebCore::IceCandidate::create):
244 (WebCore::IceCandidate::IceCandidate):
245 (WebCore::IceCandidate::~IceCandidate):
246 (WebCore::IceCandidate::label):
247 (WebCore::IceCandidate::candidateLine):
248 (WebCore::IceCandidate::toSdp):
249 (WebCore::IceCandidate::descriptor):
250 * Modules/mediastream/IceCandidate.h: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
253 * Modules/mediastream/IceCandidate.idl: Added.
255 * platform/mediastream/IceCandidateDescriptor.cpp: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
257 (WebCore::IceCandidateDescriptor::create):
258 (WebCore::IceCandidateDescriptor::IceCandidateDescriptor):
259 (WebCore::IceCandidateDescriptor::~IceCandidateDescriptor):
260 (WebCore::IceCandidateDescriptor::toSdp):
261 * platform/mediastream/IceCandidateDescriptor.h: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
263 (IceCandidateDescriptor):
264 (WebCore::IceCandidateDescriptor::label):
265 (WebCore::IceCandidateDescriptor::candidateLine):
266 * platform/mediastream/MediaStreamCenter.cpp:
267 (WebCore::MediaStreamCenter::constructSdp):
269 * platform/mediastream/MediaStreamCenter.h:
273 2012-03-14 Simon Fraser <simon.fraser@apple.com>
275 background-visibility:hidden should create a RenderLayer
276 https://bugs.webkit.org/show_bug.cgi?id=81134
278 Reviewed by Dean Jackson.
280 Background-visibility:hidden has to create RenderLayers, because it's implemented
281 via compositing and/or paint short-circuiting in RenderLayer code.
283 Test: transforms/3d/general/background-visibility-layers.html
285 * rendering/RenderBox.h:
286 * rendering/RenderBoxModelObject.h:
287 (WebCore::RenderBoxModelObject::requiresLayer):
288 * rendering/RenderObject.h:
289 (WebCore::RenderObject::hasHiddenBackface):
290 * rendering/RenderTableRow.h:
292 2012-03-14 Raul Hudea <rhudea@adobe.com>
294 [CSSRegions][CSSOM] Implement regionLayoutEvent
295 https://bugs.webkit.org/show_bug.cgi?id=78882
297 Reviewed by David Hyatt.
299 Adding the regionLayoutEvent that is dispatch for all regions after each flow-thread layout.
301 Tests: fast/regions/region-event-add-to-flow.html
302 fast/regions/region-event-remove-from-dom.html
303 fast/regions/region-event-remove-from-flow.html
304 fast/regions/region-event.html
307 (WebCore::Document::addListenerTypeIfNeeded): Added check for regionLayoutUpdate listeners
312 (WebCore::Node::dispatchRegionLayoutUpdateEvent):
316 * rendering/RenderFlowThread.cpp:
317 (WebCore::RenderFlowThread::RenderFlowThread):
318 (WebCore::RenderFlowThread::layout): Start the event dispatch timer but only if there are regionLayoutUpdate listeners and there is at least one region that had its layout updated.
319 (WebCore::RenderFlowThread::computeOverflowStateForRegions): Mark regions that might had a layout update
320 (WebCore::RenderFlowThread::regionLayoutUpdateEventTimerFired):
322 * rendering/RenderFlowThread.h:
323 * rendering/RenderRegion.cpp:
324 (WebCore::RenderRegion::RenderRegion):
325 * rendering/RenderRegion.h:
326 (WebCore::RenderRegion::setDispatchRegionLayoutUpdateEvent):
327 (WebCore::RenderRegion::shouldDispatchRegionLayoutUpdateEvent):
330 2012-03-14 Pierre Rossi <pierre.rossi@gmail.com>
332 [Qt] Add support for vertical sliders in mobile theme
333 https://bugs.webkit.org/show_bug.cgi?id=80179
335 This makes sliders using the "slider-vertical" appearance more sensible.
337 Reviewed by Simon Hausmann.
339 No new tests, since the mobile theme still isn't used in layout tests.
341 * platform/qt/RenderThemeQtMobile.cpp:
343 (WebCore::StylePainterMobile::drawProgress):
344 (WebCore::RenderThemeQtMobile::paintSliderTrack):
345 * platform/qt/RenderThemeQtMobile.h:
346 (StylePainterMobile):
348 2012-03-14 Jer Noble <jer.noble@apple.com>
350 WebProcess spins beneath [QTMovie movieFileTypes:]
351 https://bugs.webkit.org/show_bug.cgi?id=81133
353 Reviewed by Eric Carlson.
355 No new tests; speculative fix for top WebProcess spin.
357 When checking to see if a given mime type is supported by QuickTime,
358 immediately exclude all types that do not begin with 'audio/' or 'video/'.
359 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
360 (WebCore::MediaPlayerPrivateQTKit::supportsType):
362 2012-03-14 Zalan Bujtas <zbujtas@gmail.com>
364 Make RenderIFrame::flattenFrame() return earlier, when frame flattening is disabled.
365 https://bugs.webkit.org/show_bug.cgi?id=80301
367 Reviewed by Antti Koivisto.
369 Reorganize RenderIFrame flattenFrame() code, so that it returns
370 earlier for the normal use case, when frame flattening is disabled.
371 It also removes leftover null check.
373 No new tests, since there's no new functionality.
375 * rendering/RenderIFrame.cpp:
376 (WebCore::RenderIFrame::flattenFrame):
378 2012-03-14 James Robinson <jamesr@chromium.org>
380 [chromium] Provide explicit polling API to check if the platform is capable of accelerated 2d canvas
381 https://bugs.webkit.org/show_bug.cgi?id=80667
383 Reviewed by Darin Fisher.
385 Query the platform to see if we can instantiate a context suitable for accelerating 2d canvas. If we can't, for
386 instance if we're on a system that can't preserve a context when the screensaver comes up, then immediately fall
389 Covered by canvas layout tests in the virtual-gpu mode.
391 * html/HTMLCanvasElement.cpp:
392 (WebCore::HTMLCanvasElement::shouldAccelerate):
393 * platform/chromium/PlatformSupport.h:
395 2012-03-14 Carlos Garcia Campos <cgarcia@igalia.com>
397 [GTK] Handle printing errors in WebKit2
398 https://bugs.webkit.org/show_bug.cgi?id=77197
400 Reviewed by Gustavo Noronha Silva.
402 * platform/gtk/ErrorsGtk.cpp:
403 (WebCore::printError): Create a generic print error.
404 (WebCore::printerNotFoundError): Create a print error to notify
405 that the selected printer could not be found.
406 (WebCore::invalidPageRangeToPrint): Create a print error when the
407 selected page range is invalid and there are no pages to print.
408 * platform/gtk/ErrorsGtk.h:
409 (WebCore): Add print error doamin.
411 2012-03-14 Nikolas Zimmermann <nzimmermann@rim.com>
413 Make SVGUseElement respect & support externalResourcesRequired
414 https://bugs.webkit.org/show_bug.cgi?id=81109
416 Reviewed by Rob Buis.
418 Generalize the existing externalResourcesRequired support from SVGScriptElement
419 into SVGExternalResourcesRequired, so it can be shared with SVGUseElement, which
420 was lacking proper externalResourcesRequired support.
422 <use xlink:href="external.svg" onload="alert('hi')" externalResourcesRequired="true"/>
423 The onload handler now fires _after_ the external resources loaded, making it possible
424 to write reliable tests that switch from internal to external resources or the other
425 way around. Converted the new tests in svg/dynamic-updates/SVGUseElement* to listen
426 to SVGLoad events, to make them reliable.
428 We may be able to generalize this to cover SVGImageElement as well (the only other class which
429 is currently supporting externalResourcesRequired - but that's more involved, so I left it TODO).
431 Covered by existing tests and the changes to the new SVGUseElement tests.
434 (SVGElement): Make haveLoadedRequiredResources() public so SVGExternalResourcesRequired can call it.
435 * svg/SVGExternalResourcesRequired.cpp: Refactored code from SVGScriptElement, 1:1 copies w/o changes.
436 (WebCore::SVGExternalResourcesRequired::handleAttributeChange):
437 (WebCore::SVGExternalResourcesRequired::dispatchLoadEvent):
438 (WebCore::SVGExternalResourcesRequired::insertedIntoDocument):
439 (WebCore::SVGExternalResourcesRequired::finishParsingChildren):
440 (WebCore::SVGExternalResourcesRequired::haveLoadedRequiredResources):
441 * svg/SVGExternalResourcesRequired.h: Add new virtual functions, that must be available in classes that inherit from SVGExternalResourcesRequired.
442 (WebCore::SVGExternalResourcesRequired::setHaveFiredLoadEvent):
443 (WebCore::SVGExternalResourcesRequired::isParserInserted):
444 (WebCore::SVGExternalResourcesRequired::haveFiredLoadEvent):
445 * svg/SVGScriptElement.cpp: Refactored externalResourcesRequired handling into SVGExternalResourcesRequired.
446 (WebCore::SVGScriptElement::svgAttributeChanged):
447 (WebCore::SVGScriptElement::insertedIntoDocument):
448 (WebCore::SVGScriptElement::finishParsingChildren):
449 * svg/SVGScriptElement.h: Ditto.
450 (WebCore::SVGScriptElement::haveLoadedRequiredResources):
451 (WebCore::SVGScriptElement::dispatchLoadEvent):
452 (WebCore::SVGScriptElement::setHaveFiredLoadEvent):
453 (WebCore::SVGScriptElement::isParserInserted):
454 (WebCore::SVGScriptElement::haveFiredLoadEvent):
455 * svg/SVGTests.cpp: Fix obvious typo, that leads to an assertion. Always return true if we know the attributeName.
456 (WebCore::SVGTests::handleAttributeChange):
458 * svg/SVGTextPathElement.cpp:
459 (WebCore::SVGTextPathElement::insertedIntoDocument): Remove ambigous call warning.
460 * svg/SVGUseElement.cpp: Support externalResourcesRequired="true/false" + dynamic changes of it. Covered by existing tests.
461 (WebCore::SVGUseElement::SVGUseElement):
462 (WebCore::SVGUseElement::create):
463 (WebCore::SVGUseElement::insertedIntoDocument):
464 (WebCore::SVGUseElement::svgAttributeChanged):
465 (WebCore::SVGUseElement::notifyFinished):
466 (WebCore::SVGUseElement::finishParsingChildren):
468 * svg/SVGUseElement.h: Ditto.
469 (WebCore::SVGUseElement::haveLoadedRequiredResources):
470 (WebCore::SVGUseElement::setHaveFiredLoadEvent):
471 (WebCore::SVGUseElement::isParserInserted):
472 (WebCore::SVGUseElement::haveFiredLoadEvent):
473 * svg/svgtags.in: Pass "bool wasInsertedByParser" to SVGUseElement constructor.
475 2012-03-14 Andrew Lo <anlo@rim.com>
477 [BlackBerry] Implement REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR using AnimationFrameRateController
478 https://bugs.webkit.org/show_bug.cgi?id=81000
480 Add BlackBerry port for DisplayRefreshMonitor using AnimationFrameRateController.
481 Moved refreshDisplayOnMainThread to platform independant part of header.
483 Reviewed by Antonio Gomes.
485 requestAnimationFrame already covered by tests in LayoutTests/fast/animation.
487 * PlatformBlackBerry.cmake:
488 * platform/graphics/DisplayRefreshMonitor.cpp:
489 (WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
490 * platform/graphics/DisplayRefreshMonitor.h:
492 (DisplayAnimationClient):
493 (WebCore::DisplayAnimationClient::~DisplayAnimationClient):
494 (DisplayRefreshMonitor):
495 * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp: Added.
497 (WebCore::DisplayAnimationClient::DisplayAnimationClient):
498 (WebCore::DisplayAnimationClient::animationFrameChanged):
499 (WebCore::DisplayRefreshMonitor::~DisplayRefreshMonitor):
500 (WebCore::DisplayRefreshMonitor::startAnimationClient):
501 (WebCore::DisplayRefreshMonitor::stopAnimationClient):
502 (WebCore::DisplayRefreshMonitor::requestRefreshCallback):
503 (WebCore::DisplayRefreshMonitor::displayLinkFired):
505 2012-03-14 Yury Semikhatsky <yurys@chromium.org>
507 Web Inspector: use class name indexes instead of class names when evaluating aggregates
508 https://bugs.webkit.org/show_bug.cgi?id=81100
510 Class name and type name indexes are now used when calculating class aggregates
511 in heap snapshots instead of string lookup followed by a string comparison.
513 Class names like "Window / www.webkit.org" are now left as is in the UI (it used
514 to be trimed to just "Window").
516 Reviewed by Pavel Feldman.
518 * inspector/front-end/HeapSnapshot.js:
519 (WebInspector.HeapSnapshotNode.prototype.get classNameIndex):
520 (WebInspector.HeapSnapshotNode.prototype.hasType):
521 (WebInspector.HeapSnapshot.prototype._init):
522 (WebInspector.HeapSnapshot.prototype._buildAggregates):
524 2012-03-14 Andrey Kosyakov <caseq@chromium.org>
526 Web Inspector: add didCancelFrame timeline event
527 https://bugs.webkit.org/show_bug.cgi?id=80994
529 Reviewed by Pavel Feldman.
531 - add an ability to cancel certain timeline events, unless they've been followed by other events.
532 - implement didCancelFrame() event, fired when a platform decides not to render frame after didBeginFrame() was called.
534 Test: inspector/timeline/timeline-frames.html
537 * inspector/InspectorInstrumentation.cpp:
538 (WebCore::InspectorInstrumentation::didCancelFrameImpl):
540 * inspector/InspectorInstrumentation.h:
541 (InspectorInstrumentation):
542 (WebCore::InspectorInstrumentation::didCancelFrame):
544 * inspector/InspectorTimelineAgent.cpp:
545 (WebCore::InspectorTimelineAgent::didBeginFrame):
547 (WebCore::InspectorTimelineAgent::didCancelFrame):
548 (WebCore::InspectorTimelineAgent::appendRecord):
549 (WebCore::InspectorTimelineAgent::pushCurrentRecord):
550 (WebCore::InspectorTimelineAgent::pushCancelableRecord):
551 (WebCore::InspectorTimelineAgent::commitCancelableRecords):
552 (WebCore::InspectorTimelineAgent::cancelRecord):
553 * inspector/InspectorTimelineAgent.h:
554 (InspectorTimelineAgent):
555 (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
556 (TimelineRecordEntry):
557 * testing/Internals.cpp:
558 (WebCore::Internals::emitInspectorDidBeginFrame):
560 (WebCore::Internals::emitInspectorDidCancelFrame):
561 * testing/Internals.h:
563 * testing/Internals.idl:
565 2012-03-14 Dana Jansens <danakj@chromium.org>
567 Region can acquire an empty span by subtracting an empty Region
568 https://bugs.webkit.org/show_bug.cgi?id=81074
570 Reviewed by Anders Carlsson.
572 Subtracting an empty Region B from a Region A can cause A to end
573 up with an empty span. This violates the rule that two Regions
574 that cover the exact same area should have equal spans and segments.
576 Unit test: RegionTest.emptySpan
578 * platform/graphics/Region.cpp:
579 (WebCore::Region::subtract):
581 2012-03-14 Simon Hausmann <simon.hausmann@nokia.com>
583 [Textmap] Disable driver based BGRA swizzling for OpenGL/ES
585 Reviewed by Noam Rosenthal.
587 The current way of detecting swizzling support (check for GL_EXT_texture_format_BGRA8888)
588 is unfortunately not reliable. We need a better way of detection that (filed bug 81103).
589 In the meantime this patch reverts back to doing the swizzling in the texture mapper to
590 get pixels back onto the screen.
592 * platform/graphics/texmap/TextureMapperGL.cpp:
593 (WebCore::driverSupportsBGRASwizzling):
594 (WebCore::BitmapTextureGL::updateContents):
596 2012-03-14 Leo Yang <leo.yang@torchmobile.com.cn>
598 [BlackBerry] Upstream the BlackBerry change to platform/Cursor.h
599 https://bugs.webkit.org/show_bug.cgi?id=81086
601 Reviewed by Rob Buis.
605 (WebCore::Cursor::Cursor):
606 Add the BlackBerry specific PlatformCursor.
607 * platform/blackberry/PageClientBlackBerry.h:
608 There was an alias named PlatformCursorHandle for PlatformCursor
609 in the internal version of Cursor.h. But it's not necessary so it's
610 not included in the upstreaming version of Cursor.h. As a result,
611 use PlatformCursor directly in this file.
612 (PageClientBlackBerry):
614 2012-03-14 Simon Hausmann <simon.hausmann@nokia.com>
616 [Qt] RunLoopQt is missing reentrancy guards
617 https://bugs.webkit.org/show_bug.cgi?id=80982
619 Reviewed by Tor Arne Vestbø.
621 Avoid recursive calls to RunLoop::performWork() with a simple
622 counting mechanism, to avoid out-of-order message dispatching.
624 * platform/qt/RunLoopQt.cpp:
625 (WebCore::RunLoop::TimerObject::TimerObject):
626 (WebCore::RunLoop::TimerObject::performWork):
627 (RunLoop::TimerObject):
629 2012-03-14 Ilya Tikhonovsky <loislo@chromium.org>
631 Web Inspector: small improvement for HeapSnapshot performance ~12%.
632 https://bugs.webkit.org/show_bug.cgi?id=81033
634 Reviewed by Yury Semikhatsky.
636 * inspector/front-end/HeapSnapshot.js:
637 (WebInspector.HeapSnapshot.prototype.get nodeCount):
638 (WebInspector.HeapSnapshot.prototype.get maxNodeId):
639 (WebInspector.HeapSnapshot.prototype._buildReverseIndex):
640 (WebInspector.HeapSnapshot.prototype.get nodeIndexes):
641 (WebInspector.HeapSnapshot.prototype._buildNodeIndex):
643 2012-03-14 Kentaro Hara <haraken@chromium.org>
645 Return null when shouldAllowAccessToNode() fails
646 https://bugs.webkit.org/show_bug.cgi?id=80205
648 Reviewed by Adam Barth.
650 shouldAllowAccessToNode() is used for window.frameElement, HTMLFrameElement.contentDocument,
651 and getSVGDocument(). The spec of window.frameElement and HTMLFrameElement.contentDocument
652 requires that they should return null when the security check fails.
653 Thus this patch changes the return value from undefined to null.
655 http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#navigating-nested-browsing-contexts-in-the-dom
656 http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#dom-iframe-contentdocument
658 Tests: http/tests/security/local-iFrame-from-remote.html
659 http/tests/security/cross-frame-access-frameelement.html
660 http/tests/security/cross-frame-access-put.html
662 * bindings/scripts/CodeGeneratorJS.pm:
663 (GenerateImplementation):
664 * bindings/scripts/CodeGeneratorV8.pm:
665 (GenerateNormalAttrGetter):
666 (GenerateFunctionCallback):
668 * bindings/scripts/test/JS/JSTestObj.cpp: Updated run-bindings-tests results.
669 (WebCore::jsTestObjContentDocument):
670 (WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
671 * bindings/scripts/test/V8/V8TestObj.cpp:
672 (WebCore::TestObjInternal::contentDocumentAttrGetter):
673 (WebCore::TestObjInternal::getSVGDocumentCallback):
675 2012-03-14 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
677 Build error: DNSSoup.cpp:30: fatal error: CString.h: No such file or
679 https://bugs.webkit.org/show_bug.cgi?id=81093
681 Reviewed by Philippe Normand.
683 Fix build error introduced by r110669.
685 * platform/network/soup/DNSSoup.cpp:
687 2012-03-14 Marja Hölttä <marja@google.com>
689 WebHTTPBody: Keep track of whether the data includes passwords.
690 https://bugs.webkit.org/show_bug.cgi?id=81003
692 Reviewed by Darin Fisher.
694 This change enables Chrome to save HTTP bodies selectively, only
695 if they don't contain passwords.
697 * loader/FormSubmission.cpp:
698 (WebCore::FormSubmission::create): Check if the data contains passwords.
699 * platform/network/FormData.cpp:
700 (WebCore::FormData::FormData): Added containsPasswordData, setContainsPasswordData.
701 * platform/network/FormData.h:
702 (WebCore::FormData::containsPasswordData): Added.
703 (WebCore::FormData::setHasPasswordData): Added.
706 2012-03-14 Vsevolod Vlasov <vsevik@chromium.org>
708 Web Inspector: Add snippets tab to scripts navigator.
709 https://bugs.webkit.org/show_bug.cgi?id=81018
711 Reviewed by Pavel Feldman.
713 * English.lproj/localizedStrings.js:
714 * inspector/front-end/ScriptsNavigator.js:
715 (WebInspector.ScriptsNavigator):
716 (WebInspector.ScriptsNavigator.prototype.get defaultFocusedElement):
717 (WebInspector.ScriptsNavigator.prototype.focus):
718 (WebInspector.ScriptsNavigator.prototype._showScriptFoldersSettingChanged):
719 (WebInspector.ScriptsNavigator.prototype.reset):
720 (WebInspector.ScriptsNavigator.prototype._getOrCreateFolderTreeElement):
721 (WebInspector.ScriptsNavigator.prototype._createFolderTreeElement):
722 (WebInspector.ScriptsNavigator.prototype._getOrCreateSnippetEvaluationsFolderTreeElement):
723 (WebInspector.ScriptsNavigator.prototype._scriptFolderIdentifier):
724 (WebInspector.NavigatorTreeOutline):
725 * inspector/front-end/ScriptsPanel.js:
726 (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
727 (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
728 * inspector/front-end/SnippetsModel.js:
730 2012-03-14 Pavel Feldman <pfeldman@chromium.org>
732 Web Inspector: Copy on the Console gives a mangled result.
733 https://bugs.webkit.org/show_bug.cgi?id=81091
735 Reviewed by Vsevolod Vlasov.
737 * inspector/front-end/ConsoleMessage.js:
738 (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
739 (WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
741 2012-03-14 Nikolas Zimmermann <nzimmermann@rim.com>
743 External <use> xlink:href references do not work
744 https://bugs.webkit.org/show_bug.cgi?id=12499
746 Reviewed by Zoltan Herczeg.
748 Follow-up fix after r110676.
749 Assertions are firing due last minute changes in isExternalURIReference.
751 Fix detecting local resources properly, when the given iri contains a /complex/path.
752 Use document->completeURL() instead, and compare with the document->url() to decide
753 if its a local reference or not.
755 If an external document load fails with an error (eg. file missing) don't assert
756 in debug builds, instead handle it gracefully.
758 I decided to clean the code up as well, to make it more safe & obvious.
760 Test: svg/custom/use-external-crash.svg
762 * svg/SVGURIReference.cpp:
763 (WebCore::SVGURIReference::targetElementFromIRIString):
764 * svg/SVGURIReference.h:
765 (WebCore::SVGURIReference::isExternalURIReference):
766 * svg/SVGUseElement.cpp:
767 (WebCore::SVGUseElement::externalDocument):
768 (WebCore::SVGUseElement::buildPendingResource):
770 2012-03-14 Lars Knudsen <lars.knudsen@nokia.com>
772 3D transformed surfaces with z>0 gets cropped
773 https://bugs.webkit.org/show_bug.cgi?id=81009
775 Reviewed by Noam Rosenthal.
777 The scissor clipping in TextureMapperGL didn't take 3D transforms
778 into account when calculating the clipping region.
779 Now, it will bail out early if the transform is not affine.
781 No new tests. Tested by current compositing layout tests.
783 * platform/graphics/texmap/TextureMapperGL.cpp:
784 (WebCore::TextureMapperGL::beginScissorClip):
786 2012-03-14 Hajime Morrita <morrita@chromium.org>
788 Unreviewed build fix.
790 * html/track/TextTrackList.cpp:
791 (TextTrackList::append):
792 (TextTrackList::remove):
793 (TextTrackList::owner): Changed return type from HTMLMediaElement* to Node* and uninlined.
794 * html/track/TextTrackList.h:
797 2012-03-13 Vsevolod Vlasov <vsevik@chromium.org>
799 Web Inspector: [InspectorIndexedDB] Remote object should be released when data view is removed/updated.
800 https://bugs.webkit.org/show_bug.cgi?id=81022
802 Reviewed by Pavel Feldman.
804 * inspector/front-end/IndexedDBViews.js:
805 (WebInspector.IDBDataView):
806 (WebInspector.IDBDataView.prototype._updateData.callback):
807 (WebInspector.IDBDataView.prototype._updateData):
808 (WebInspector.IDBDataView.prototype.get statusBarItems):
809 (WebInspector.IDBDataView.prototype.clear):
810 * inspector/front-end/ResourcesPanel.js:
811 (WebInspector.IndexedDBTreeElement.prototype._indexedDBRemoved):
812 (WebInspector.IDBDatabaseTreeElement.prototype.update):
813 (WebInspector.IDBDatabaseTreeElement.prototype.onselect):
814 (WebInspector.IDBDatabaseTreeElement.prototype._objectStoreRemoved):
815 (WebInspector.IDBDatabaseTreeElement.prototype.clear):
816 (WebInspector.IDBObjectStoreTreeElement.prototype.update):
817 (WebInspector.IDBObjectStoreTreeElement.prototype.onselect):
818 (WebInspector.IDBObjectStoreTreeElement.prototype._indexRemoved):
819 (WebInspector.IDBObjectStoreTreeElement.prototype.clear):
820 (WebInspector.IDBIndexTreeElement.prototype.onselect):
821 (WebInspector.IDBIndexTreeElement.prototype.clear):
823 2012-03-12 Vsevolod Vlasov <vsevik@chromium.org>
825 Web Inspector: Introduce SnippetsScriptMapping.
826 https://bugs.webkit.org/show_bug.cgi?id=80890
828 Reviewed by Pavel Feldman.
830 * inspector/front-end/ScriptMapping.js:
831 (WebInspector.MainScriptMapping):
832 (WebInspector.MainScriptMapping.prototype.addScript):
833 (WebInspector.MainScriptMapping.prototype._mappingForScript):
834 * inspector/front-end/SnippetsModel.js:
835 (WebInspector.SnippetsModel.prototype.snippetForId):
836 (WebInspector.SnippetsModel.prototype.snippetForSourceURL):
837 (WebInspector.SnippetsScriptMapping):
838 (WebInspector.SnippetsScriptMapping.prototype.uiSourceCodeList):
839 (WebInspector.SnippetsScriptMapping.prototype.addScript):
840 (WebInspector.SnippetsScriptMapping.prototype._snippetAdded):
841 (WebInspector.SnippetsScriptMapping.prototype._releaseSnippetScript.get if):
842 (WebInspector.SnippetsScriptMapping.prototype._releaseSnippetScript):
843 (WebInspector.SnippetsScriptMapping.prototype._snippetDeleted.get this):
844 (WebInspector.SnippetsScriptMapping.prototype._snippetDeleted):
845 (WebInspector.SnippetsScriptMapping.prototype.reset):
846 (WebInspector.SnippetContentProvider):
848 2012-03-14 Sheriff Bot <webkit.review.bot@gmail.com>
850 Unreviewed, rolling out r110673.
851 http://trac.webkit.org/changeset/110673
852 https://bugs.webkit.org/show_bug.cgi?id=81090
854 "Qt minimal build broken" (Requested by yurys on #webkit).
856 * inspector/CodeGeneratorInspector.py:
857 (CommandReturnPassModel.ByPointer.get_set_return_condition):
858 (TypeModel.Enum.get_optional.EnumOptional.get_command_return_pass_model):
859 (TypeModel.ValueType.ValueOptional.get_command_return_pass_model):
860 (Generator.process_event):
861 (Generator.process_command):
862 * inspector/ContentSearchUtils.cpp:
863 (WebCore::ContentSearchUtils::buildObjectForSearchMatch):
864 (WebCore::ContentSearchUtils::searchInTextByLines):
865 * inspector/ContentSearchUtils.h:
866 (ContentSearchUtils):
867 * inspector/InjectedScript.cpp:
868 (WebCore::InjectedScript::evaluate):
869 (WebCore::InjectedScript::callFunctionOn):
870 (WebCore::InjectedScript::evaluateOnCallFrame):
871 (WebCore::InjectedScript::makeEvalCall):
872 * inspector/InjectedScript.h:
874 * inspector/InspectorDOMDebuggerAgent.cpp:
875 (WebCore::InspectorDOMDebuggerAgent::didInvalidateStyleAttr):
876 (WebCore::InspectorDOMDebuggerAgent::willInsertDOMNode):
877 (WebCore::InspectorDOMDebuggerAgent::willRemoveDOMNode):
878 (WebCore::InspectorDOMDebuggerAgent::willModifyDOMAttr):
879 (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
880 (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
881 * inspector/InspectorDebuggerAgent.cpp:
882 (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
883 (WebCore::InspectorDebuggerAgent::setBreakpoint):
884 (WebCore::InspectorDebuggerAgent::searchInContent):
885 (WebCore::InspectorDebuggerAgent::setScriptSource):
886 (WebCore::InspectorDebuggerAgent::getFunctionDetails):
887 (WebCore::InspectorDebuggerAgent::schedulePauseOnNextStatement):
888 (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
889 (WebCore::InspectorDebuggerAgent::didPause):
890 (WebCore::InspectorDebuggerAgent::breakProgram):
891 (WebCore::InspectorDebuggerAgent::clearBreakDetails):
892 * inspector/InspectorDebuggerAgent.h:
893 (InspectorDebuggerAgent):
894 * inspector/InspectorPageAgent.cpp:
895 (WebCore::buildObjectForCookie):
896 (WebCore::buildArrayForCookies):
897 (WebCore::InspectorPageAgent::getCookies):
898 (WebCore::InspectorPageAgent::getResourceTree):
899 (WebCore::InspectorPageAgent::searchInResource):
900 (WebCore::InspectorPageAgent::searchInResources):
901 (WebCore::InspectorPageAgent::buildObjectForFrame):
902 (WebCore::InspectorPageAgent::buildObjectForFrameTree):
903 * inspector/InspectorPageAgent.h:
904 * inspector/InspectorRuntimeAgent.cpp:
905 (WebCore::InspectorRuntimeAgent::evaluate):
906 (WebCore::InspectorRuntimeAgent::callFunctionOn):
908 2012-03-14 Renata Hodovan <reni@webkit.org>
910 External <use> xlink:href references do not work
911 https://bugs.webkit.org/show_bug.cgi?id=12499
913 Reviewed by Nikolas Zimmermann.
915 This is a follow-up patch after r108785.
916 In this patch we bind the previously introduced CachedSVGDocument class
917 into the caching mechanism of SVGUseElement. The mode how external resources
918 are handled is similar to the processing of internal ones. We build the instance
919 and shadow tree the same way but we have to keep in mind that the requested resources
920 maybe not loaded yet. We can check it with cachedDocumentIsStillLoading() function.
922 SVGURIReference::targetElementFromIRIString() also need to be extended. The baseURI
923 computation needs to take the referenced documents URL into account, instead of the current documents.
925 The patch affects a lot of tests which have external resources especially in svg/batik. Because
926 of the size of that test refactor they will be commited in a follow-up patch.
928 Tests: svg/W3C-SVG-1.2-Tiny/struct-use-recursion-01-t.svg
929 svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t.svg
930 svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t.svg
931 svg/custom/use-extern-href.svg
932 svg/custom/use-referencing-an-image-expected.svg
933 svg/custom/use-referencing-an-image.svg
934 svg/custom/use-referencing-indirectly-itself-expected.svg
935 svg/custom/use-referencing-indirectly-itself.svg
936 svg/custom/use-referencing-itself-expected.svg
937 svg/custom/use-referencing-itself.svg
938 svg/dynamic-updates/SVGUseElement-dom-href1-attr.html
939 svg/dynamic-updates/SVGUseElement-dom-href2-attr.html
940 svg/dynamic-updates/SVGUseElement-svgdom-href1-prop.html
941 svg/dynamic-updates/SVGUseElement-svgdom-href2-prop.html
943 * loader/cache/CachedResourceLoader.cpp:
945 (WebCore::CachedResourceLoader::requestSVGDocument):
946 * loader/cache/CachedResourceLoader.h:
948 (CachedResourceLoader):
949 * page/ContentSecurityPolicy.h:
951 (WebCore::equalIgnoringFragmentIdentifier):
952 * platform/network/chromium/ResourceRequest.h:
953 * svg/SVGURIReference.cpp:
954 (WebCore::urlFromIRIStringWithFragmentIdentifier):
956 (WebCore::SVGURIReference::targetElementFromIRIString):
957 * svg/SVGURIReference.h:
959 (WebCore::SVGURIReference::isExternalURIReference):
960 * svg/SVGUseElement.cpp:
961 (WebCore::SVGUseElement::SVGUseElement):
962 (WebCore::SVGUseElement::~SVGUseElement):
964 (WebCore::SVGUseElement::referencedDocument):
965 (WebCore::SVGUseElement::externalDocument):
966 (WebCore::SVGUseElement::svgAttributeChanged):
967 (WebCore::dumpInstanceTree):
968 (WebCore::SVGUseElement::buildPendingResource):
969 (WebCore::SVGUseElement::buildShadowAndInstanceTree):
970 (WebCore::SVGUseElement::hasCycleUseReferencing):
971 (WebCore::SVGUseElement::expandUseElementsInShadowTree):
972 (WebCore::SVGUseElement::expandSymbolElementsInShadowTree):
973 (WebCore::SVGUseElement::notifyFinished):
974 (WebCore::SVGUseElement::cachedDocumentIsStillLoading):
975 (WebCore::SVGUseElement::instanceTreeIsLoading):
976 * svg/SVGUseElement.h:
980 2012-03-14 Peter Rybin <peter.rybin@gmail.com>
982 Web Inspector: TypeBuilder: Introduce OptOutput class for optional output parameters
983 https://bugs.webkit.org/show_bug.cgi?id=80789
985 Reviewed by Yury Semikhatsky.
987 OptOutput class is added for optional return parameters.
989 Strict mode added to Generator that makes all parameter types strict
990 and drop pre-set default values for return parameters.
992 Debugger and Page domain is switched to strict mode.
995 * inspector/CodeGeneratorInspector.py:
996 (CommandReturnPassModel.ByPointer):
997 (CommandReturnPassModel):
998 (CommandReturnPassModel.OptOutput):
999 (CommandReturnPassModel.OptOutput.__init__):
1000 (CommandReturnPassModel.OptOutput.get_return_var_type):
1001 (CommandReturnPassModel.OptOutput.get_output_argument_prefix):
1002 (CommandReturnPassModel.OptOutput.get_output_to_raw_expression):
1003 (CommandReturnPassModel.OptOutput.get_output_parameter_type):
1004 (CommandReturnPassModel.OptOutput.get_set_return_condition):
1005 (TypeModel.Enum.get_optional.EnumOptional.get_command_return_pass_model):
1006 (TypeModel.ValueType.ValueOptional.get_command_return_pass_model):
1008 (Generator.process_event):
1009 (Generator.process_command):
1010 * inspector/ContentSearchUtils.cpp:
1011 (WebCore::ContentSearchUtils::buildObjectForSearchMatch):
1012 (WebCore::ContentSearchUtils::searchInTextByLines):
1013 * inspector/ContentSearchUtils.h:
1014 (ContentSearchUtils):
1015 * inspector/InjectedScript.cpp:
1016 (WebCore::InjectedScript::evaluate):
1017 (WebCore::InjectedScript::callFunctionOn):
1018 (WebCore::InjectedScript::evaluateOnCallFrame):
1019 (WebCore::InjectedScript::makeEvalCall):
1020 * inspector/InjectedScript.h:
1022 * inspector/InspectorDOMDebuggerAgent.cpp:
1024 * inspector/InspectorDebuggerAgent.cpp:
1025 (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
1026 (WebCore::InspectorDebuggerAgent::setBreakpoint):
1027 (WebCore::InspectorDebuggerAgent::searchInContent):
1028 (WebCore::InspectorDebuggerAgent::setScriptSource):
1029 (WebCore::InspectorDebuggerAgent::getFunctionDetails):
1030 (WebCore::InspectorDebuggerAgent::schedulePauseOnNextStatement):
1031 (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
1032 (WebCore::InspectorDebuggerAgent::didPause):
1033 (WebCore::InspectorDebuggerAgent::breakProgram):
1034 (WebCore::InspectorDebuggerAgent::clearBreakDetails):
1035 * inspector/InspectorDebuggerAgent.h:
1036 (InspectorDebuggerAgent):
1037 * inspector/InspectorPageAgent.cpp:
1038 (WebCore::buildObjectForCookie):
1039 (WebCore::buildArrayForCookies):
1040 (WebCore::InspectorPageAgent::getCookies):
1041 (WebCore::InspectorPageAgent::getResourceTree):
1042 (WebCore::InspectorPageAgent::searchInResource):
1043 (WebCore::InspectorPageAgent::searchInResources):
1044 (WebCore::InspectorPageAgent::buildObjectForFrame):
1045 (WebCore::InspectorPageAgent::buildObjectForFrameTree):
1046 * inspector/InspectorPageAgent.h:
1047 * inspector/InspectorRuntimeAgent.cpp:
1048 (WebCore::InspectorRuntimeAgent::evaluate):
1049 (WebCore::InspectorRuntimeAgent::callFunctionOn):
1051 2012-03-14 Sergio Villar Senin <svillar@igalia.com>
1053 Unreviewed. Build fix for EFL after r110669.
1055 * PlatformEfl.cmake: added DNSSoup.cpp
1057 2012-03-13 Sergio Villar Senin <svillar@igalia.com>
1059 [GTK] Use the same DNS prefetching path than the other ports.
1060 https://bugs.webkit.org/show_bug.cgi?id=80997
1062 Reviewed by Martin Robinson.
1064 This patch basically reverts r56128. There is no need to add an
1065 special code path for GTK+ DNS pre-fetching because the main
1066 reason to do that (some potential changes in libsoup) is not
1067 going to happen. It also reduces the amount of DNS queries by
1068 adding a NULL hostname check.
1070 No need for new tests as this just moves code around.
1072 * GNUmakefile.list.am:
1073 * html/HTMLAnchorElement.cpp:
1074 (WebCore::HTMLAnchorElement::parseAttribute):
1075 * html/HTMLLinkElement.cpp:
1076 * loader/LinkLoader.cpp:
1077 (WebCore::LinkLoader::loadLink):
1079 (WebCore::Chrome::mouseDidMoveOverElement):
1080 * platform/network/DNS.h:
1082 * platform/network/ResourceHandle.cpp:
1083 * platform/network/ResourceHandle.h:
1085 * platform/network/chromium/DNSChromium.cpp:
1086 * platform/network/soup/DNSSoup.cpp: restored.
1088 (WebCore::prefetchDNS):
1089 * platform/network/soup/ResourceHandleSoup.cpp:
1091 2012-03-14 Kentaro Hara <haraken@chromium.org>
1093 Return null when shouldAllowAccessToNode() fails
1094 https://bugs.webkit.org/show_bug.cgi?id=80205
1096 Reviewed by Adam Barth.
1098 shouldAllowAccessToNode() is used for window.frameElement, HTMLFrameElement.contentDocument,
1099 and getSVGDocument(). The spec of window.frameElement and HTMLFrameElement.contentDocument
1100 requires that they should return null when the security check fails.
1101 Thus this patch changes the return value from undefined to null.
1103 http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#navigating-nested-browsing-contexts-in-the-dom
1104 http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#dom-iframe-contentdocument
1106 Tests: http/tests/security/local-iFrame-from-remote.html
1107 http/tests/security/cross-frame-access-frameelement.html
1108 http/tests/security/cross-frame-access-put.html
1110 * bindings/scripts/CodeGeneratorJS.pm:
1111 (GenerateImplementation):
1112 * bindings/scripts/CodeGeneratorV8.pm:
1113 (GenerateNormalAttrGetter):
1114 (GenerateFunctionCallback):
1116 * bindings/scripts/test/JS/JSTestObj.cpp: Updated run-bindings-tests results.
1117 (WebCore::jsTestObjContentDocument):
1118 (WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
1119 * bindings/scripts/test/V8/V8TestObj.cpp:
1120 (WebCore::TestObjInternal::contentDocumentAttrGetter):
1121 (WebCore::TestObjInternal::getSVGDocumentCallback):
1123 2012-03-13 Yosifumi Inoue <yosin@chromium.org>
1125 [Forms] Hidden input element should not have labels.
1126 https://bugs.webkit.org/show_bug.cgi?id=80403
1128 Reviewed by Kent Tamura.
1130 This patch changes "labels" attribute behavior for hidden input type.
1131 It returns null instead of NodeList of labels or empty node list.
1133 Note: The HTML5 specification isn't clear for non-labelable element's "labels"
1134 attribute return value. Firefox and Opera return empty node list. IE returns null.
1136 No new tests. Existing tests are updated.
1138 * html/HTMLInputElement.cpp:
1139 (WebCore::HTMLInputElement::isLabelable): Added. Dispatch to InputType.
1140 * html/HiddenInputType.h: Added isLabelable returning false.
1141 * html/InputType.cpp:
1142 (WebCore::InputType::isLabelable): Added. Returning true for all input types except for "hidden" type.
1145 (InputType): Added isLabelable declaration.
1147 2012-03-13 Yosifumi Inoue <yosin@chromium.org>
1149 [Forms] The "output" element should have labels.
1150 https://bugs.webkit.org/show_bug.cgi?id=80466
1152 Reviewed by Kent Tamura.
1154 This patch enables functionality of "labels" attribute for
1155 HTMLOutputElement implemented in LabelableElement which use
1156 isLabelable predicate whether an element can have label or not.
1158 Update existing tests in fast/forms/label/ directory to cover
1159 the "output" element with the "labels" attribute.
1161 * html/HTMLOutputElement.h: Implement virtual method isLabelable.
1163 2012-03-13 Luke Macpherson <macpherson@chromium.org>
1165 Move opacity clamping into RenderStyle setter.
1166 https://bugs.webkit.org/show_bug.cgi?id=76966
1168 Reviewed by Eric Seidel.
1170 Covered by existing tests.
1172 * css/CSSStyleSelector.cpp:
1173 (WebCore::CSSStyleSelector::applyProperty):
1174 * rendering/style/RenderStyle.h:
1175 (WebCore::RenderStyleBitfields::setOpacity):
1177 2012-03-12 Igor Oliveira <igor.o@sisa.samsung.com>
1179 Split the extra logic out of RenderObjectChildList::updateBeforeAfterContent
1180 https://bugs.webkit.org/show_bug.cgi?id=80856
1182 Extra part of the generated content handling logic out of RenderObjectChildList::updateBeforeAfterContent
1184 Reviewed by Julien Chaffraix.
1186 No change in behavior expected.
1188 * rendering/RenderObjectChildList.cpp:
1189 (WebCore::RenderObjectChildList::updateBeforeAfterStyle):
1190 (WebCore::createRenderForBeforeAfterContent):
1191 (WebCore::RenderObjectChildList::updateBeforeAfterContent):
1192 * rendering/RenderObjectChildList.h:
1194 (RenderObjectChildList):
1196 2012-03-13 Simon Fraser <simon.fraser@apple.com>
1198 Fix potential crash when loading test results
1199 https://bugs.webkit.org/show_bug.cgi?id=81062
1200 <rdar://problem/11041732>
1202 Reviewed by Dean Jackson.
1204 If RenderLayerBacking::isSimpleContainerCompositingLayer() is called early,
1205 before the document has a documentElement(), then it crashes. Fix with
1206 a null check on documentElement().
1208 No test because it's timing dependent.
1210 * rendering/RenderLayerBacking.cpp:
1211 (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
1213 2012-03-13 Dan Bernstein <mitz@apple.com>
1215 <rdar://problem/11025225> Assertion failure in RenderView::computeRectForRepaint() (!repaintContainer || repaintContainer == this) at store.apple.com
1216 https://bugs.webkit.org/show_bug.cgi?id=81051
1218 Reviewed by Simon Fraser.
1220 Test: ManualTests/inline-repaint-container.html.
1222 * rendering/RenderInline.cpp:
1223 (WebCore::RenderInline::clippedOverflowRectForRepaint): This function was not handling the
1224 case of the repaint container being a descendant of the containing block correctly, leading
1225 to the assertion failure, but also to a correctness bug seen in the new test. If the repaint
1226 container is a descendant of the containing block, just return the rect in the repaint
1227 container coordinates.
1229 2012-03-13 Dan Bernstein <mitz@apple.com>
1231 <rdar://problem/11025217> [Mac] Assertion failure in collectComplexTextRunsForCharactersCoreText
1232 https://bugs.webkit.org/show_bug.cgi?id=77044
1234 Reviewed by Sam Weinig.
1236 Test: platform/mac/fast/text/core-text-fallback-to-unknown-font.html
1238 Handle the case of Core Text choosing a fallback font that NSFontManager cannot find by name.
1240 * platform/graphics/FontCache.h:
1241 (FontCache): Made ComplexTextController a friend class.
1242 * platform/graphics/mac/ComplexTextControllerCoreText.mm:
1243 (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText): Removed the
1244 failing assertion, which was not true, and added code to handle the case where a font
1245 cannot be found by name by using the font as returned from Core Text.
1247 2012-03-13 Erik Arvidsson <arv@chromium.org>
1249 [V8] Use v8::V8::AddImplicitReferences instead of SetHiddenValue
1250 https://bugs.webkit.org/show_bug.cgi?id=80880
1252 Reviewed by Adam Barth.
1254 We used to add a hidden property in the getter to the returned wrapper.
1255 With this patch we instead handle the liveness of the wrapper in the GC phase by
1256 calling v8::V8::AddHiddenReference.
1258 To reduce the amount of custom code we need, the V8 code generator now supports
1259 GenerateIsReachable (as well as CustomIsReachable) which, even though different
1260 from the JSC attribute, is used in the same cases and takes the same values (even though
1261 at the moment not all JSC values are supported by V8). Interfaces that have *IsReachable
1262 also have a dependent life time (just like if V8DependentLifetime was present).
1264 Second try. This time with an added include in TextTrackList.cpp.
1266 No new tests. Covered by existing tests.
1271 * bindings/scripts/CodeGeneratorJS.pm:
1272 (GetGenerateIsReachable):
1273 (GetCustomIsReachable):
1275 (GenerateImplementation):
1276 * bindings/scripts/CodeGeneratorV8.pm:
1277 (NeedsToVisitDOMWrapper):
1278 (GetGenerateIsReachable):
1279 (GetCustomIsReachable):
1280 (GenerateVisitDOMWrapper):
1282 (GenerateNamedConstructorCallback):
1283 (GenerateImplementation):
1284 * bindings/scripts/IDLAttributes.txt:
1285 * bindings/scripts/test/V8/V8Float64Array.cpp:
1287 * bindings/scripts/test/V8/V8Float64Array.h:
1289 * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1291 * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
1292 (V8TestActiveDOMObject):
1293 * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
1295 * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
1296 (V8TestCustomNamedGetter):
1297 * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1299 * bindings/scripts/test/V8/V8TestEventConstructor.h:
1300 (V8TestEventConstructor):
1301 * bindings/scripts/test/V8/V8TestEventTarget.cpp:
1303 * bindings/scripts/test/V8/V8TestEventTarget.h:
1304 (V8TestEventTarget):
1305 * bindings/scripts/test/V8/V8TestInterface.cpp:
1307 * bindings/scripts/test/V8/V8TestInterface.h:
1309 * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
1311 * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
1312 (V8TestMediaQueryListListener):
1313 * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1315 * bindings/scripts/test/V8/V8TestNamedConstructor.h:
1316 (V8TestNamedConstructor):
1317 * bindings/scripts/test/V8/V8TestObj.cpp:
1319 * bindings/scripts/test/V8/V8TestObj.h:
1321 * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1323 * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
1324 (V8TestSerializedScriptValueInterface):
1325 * bindings/v8/NPV8Object.cpp:
1326 (WebCore::npObjectTypeInfo):
1327 * bindings/v8/V8GCController.cpp:
1328 (WebCore::GrouperVisitor::visitDOMWrapper):
1329 * bindings/v8/WrapperTypeInfo.h:
1332 * bindings/v8/custom/V8CSSStyleSheetCustom.cpp: Removed.
1333 * bindings/v8/custom/V8DOMStringMapCustom.cpp:
1334 * bindings/v8/custom/V8DOMTokenListCustom.cpp: Removed.
1335 * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
1337 * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
1338 * bindings/v8/custom/V8StyleSheetCustom.cpp:
1340 * css/CSSStyleSheet.idl:
1341 * css/StyleSheet.idl:
1342 * dom/DOMStringMap.idl:
1343 * dom/NamedNodeMap.idl:
1344 * html/DOMTokenList.idl:
1345 * html/track/TextTrackList.cpp:
1346 * html/track/TextTrackList.idl:
1348 2012-03-13 Jacky Jiang <zhajiang@rim.com>
1350 MathML crash in WebCore::Node::previousSibling()
1351 https://bugs.webkit.org/show_bug.cgi?id=80773
1353 Reviewed by Julien Chaffraix.
1355 When adding child for msub render, if the child is mtr or mtd render,
1356 we will creat an anonymous render as the container. As the anonymous
1357 render's node is 0, accessing it directly can cause crash.
1358 We should do a valid check of the node before using. In addition to
1359 that, for msub, attach the anonymous render and it's children to render
1360 tree. For msubsup, such kind of situation should never happen based on
1361 the current codebase.
1363 Test: mathml/msub-anonymous-child-render-crash.html
1365 * rendering/mathml/RenderMathMLSubSup.cpp:
1366 (WebCore::RenderMathMLSubSup::addChild):
1368 2012-03-13 Mihnea Ovidenie <mihnea@adobe.com>
1370 [CSSRegions]NamedFlow::getRegionsByContentNode should not return a live NodeList
1371 https://bugs.webkit.org/show_bug.cgi?id=81021
1373 Reviewed by Ryosuke Niwa.
1375 Reverting the original patch as we need a better solution.
1378 * GNUmakefile.list.am:
1381 * WebCore.vcproj/WebCore.vcproj:
1382 * WebCore.xcodeproj/project.pbxproj:
1384 (WebCore::NodeListsNodeData::invalidateCaches):
1385 (WebCore::NodeListsNodeData::isEmpty):
1388 * dom/NodeRareData.h:
1389 (NodeListsNodeData):
1390 * dom/RegionNodeList.cpp: Removed.
1391 * dom/RegionNodeList.h: Removed.
1392 * dom/WebKitNamedFlow.cpp:
1393 * dom/WebKitNamedFlow.h:
1395 * dom/WebKitNamedFlow.idl:
1396 * rendering/RenderFlowThread.cpp:
1397 * rendering/RenderFlowThread.h:
1398 * rendering/RenderRegion.h:
1401 2012-03-13 Shawn Singh <shawnsingh@chromium.org>
1403 [chromium] wrong transform causing incorrect culling
1404 https://bugs.webkit.org/show_bug.cgi?id=80471
1406 Reviewed by James Robinson.
1408 Unit test added to CCRenderSurfaceTest.cpp
1410 In addition to using originTransform() instead of drawTransform(),
1411 this patch shuffles a bit of code so that a unit test can be
1414 * platform/graphics/chromium/cc/CCRenderPass.cpp:
1415 (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
1416 * platform/graphics/chromium/cc/CCRenderSurface.cpp:
1417 (WebCore::CCRenderSurface::createSharedQuadState):
1419 * platform/graphics/chromium/cc/CCRenderSurface.h:
1422 2012-03-13 Dave Tharp <dtharp@codeaurora.org>
1424 Alternate xml-stylesheets with no title are loaded, in violation of the CSSOM draft
1425 https://bugs.webkit.org/show_bug.cgi?id=77549
1427 Reviewed by David Hyatt.
1429 Amended code to ignore alternate stylesheets that do not have a title attribute.
1431 Test: fast/css/xml-stylesheet-alternate-no-title.xhtml
1433 * dom/ProcessingInstruction.cpp:
1434 (WebCore::ProcessingInstruction::checkStyleSheet):
1436 2012-03-13 Levi Weintraub <leviw@chromium.org>
1438 Revert RenderLayer::absoluteBoundingBox to an IntRect
1439 https://bugs.webkit.org/show_bug.cgi?id=81017
1441 Reviewed by Eric Seidel.
1443 Reverting RenderLayer::absoluteBoundingBox to an (pixel snapped) IntRect. Whenever
1444 possible, we use integers representing for absolute coordinates. This is especially
1445 relevant for methods, such as this one, that are exported and used in platform code.
1447 No new tests. No change in behavior.
1449 * rendering/RenderLayer.cpp:
1450 (WebCore::RenderLayer::absoluteBoundingBox):
1451 * rendering/RenderLayer.h:
1453 * rendering/RenderLayerCompositor.cpp:
1454 (WebCore::RenderLayerCompositor::requiresCompositingForPosition): This intersects
1455 the absolute bounding box with the FrameView, which uses all integer values. It's
1456 the only use of absoluteBoundingBox in WebCore.
1458 2012-03-13 Nat Duca <nduca@chromium.org>
1460 [chromium] vsync ticks are needed in invisible tabs when we are still updating resources
1461 https://bugs.webkit.org/show_bug.cgi?id=80910
1463 Reviewed by James Robinson.
1465 * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
1466 (WebCore::CCSchedulerStateMachine::vsyncCallbackNeeded):
1468 2012-03-13 Dave Tharp <dtharp@codeaurora.org>
1470 Alternate stylesheets (without title attribute) are loaded on refresh
1471 https://bugs.webkit.org/show_bug.cgi?id=24354
1473 Reviewed by David Hyatt.
1475 Alternate stylesheets are now ignored in <link> tags if
1476 they have no title attribute (per spec).
1478 Tests: fast/css/link-alternate-stylesheet-1.html
1479 fast/css/link-alternate-stylesheet-2.html
1480 fast/css/link-alternate-stylesheet-3.html
1481 fast/css/link-alternate-stylesheet-4.html
1482 fast/css/link-alternate-stylesheet-5.html
1485 (WebCore::Document::collectActiveStylesheets):
1487 2012-03-13 Dana Jansens <danakj@chromium.org>
1489 Region::contains(IntPoint) is slow
1490 https://bugs.webkit.org/show_bug.cgi?id=81008
1492 Reviewed by Anders Carlsson.
1494 Speed up Region::contains(IntPoint) by directly testing if the point
1495 is inside the Region's shape, rather than using a temporary 1x1 Region
1498 Unit test: RegionTest.containsPoint
1500 * platform/graphics/Region.cpp:
1501 (WebCore::Region::contains):
1503 2012-03-13 Adrienne Walker <enne@google.com>
1505 [chromium] Mark root layer scrollbars as always opaque to disable blending
1506 https://bugs.webkit.org/show_bug.cgi?id=79951
1508 Reviewed by James Robinson.
1510 Now that scrollbar layers exist, mark non-overlay root scrollbars as
1511 opaque. This disables blending for correctness and performance.
1513 * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
1514 (WebCore::scrollbarLayerDidChange):
1515 (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
1516 (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
1517 * platform/graphics/chromium/LayerRendererChromium.cpp:
1518 (WebCore::LayerRendererChromium::drawTileQuad):
1520 2012-03-13 Gavin Peters <gavinp@chromium.org>
1522 Remove vestigal abortEvent from image attribute.
1523 https://bugs.webkit.org/show_bug.cgi?id=80795
1525 Reviewed by Adam Barth.
1527 It seems we installed a listener for the abort event on images,
1528 but never ever raised them. So this patch removes it. This could
1529 cause different behaviour if the user sends abort events directly
1530 at an image element, although addEventListener will still work.
1532 * html/HTMLImageElement.cpp:
1533 (WebCore::HTMLImageElement::parseAttribute):
1535 2012-03-13 Nate Chapin <japhet@chromium.org>
1537 Rework how a CachedRawResource decides if it can be reused
1538 for a given ResourceRequest. Ensure method, body, cookie policy,
1539 and all headers match.
1540 http://bugs.webkit.org/show_bug.cgi?id=79325
1542 Reviewed by Oliver Hunt.
1544 Test: http/tests/cache/xhr-body.html
1546 * loader/cache/CachedRawResource.cpp:
1547 (WebCore::CachedRawResource::canReuse):
1548 * loader/cache/CachedRawResource.h: Take a ResourceRequest in canReuse().
1549 * loader/cache/CachedResourceLoader.cpp:
1550 (WebCore::CachedResourceLoader::determineRevalidationPolicy): Remove Range header
1551 check, since it is now redundant.
1553 2012-03-13 Rob Buis <rbuis@rim.com>
1555 Fix cast-align GCC warning
1556 https://bugs.webkit.org/show_bug.cgi?id=80790
1558 Reviewed by Dan Bates.
1560 This touches unpackOneRowOfBGRA8ToRGBA8.
1562 * platform/graphics/GraphicsContext3D.cpp:
1565 2012-03-12 Simon Fraser <simon.fraser@apple.com>
1567 Refactor some code that is used to check whether a layer needs backing store
1568 https://bugs.webkit.org/show_bug.cgi?id=80917
1570 Reviewed by Dean Jackson.
1572 Move some code out of isSimpleContainerCompositingLayer() in two new
1573 methods to make the code more self-descriptive.
1575 No behavior change, so no tests.
1577 * rendering/RenderLayerBacking.cpp:
1578 (WebCore::RenderLayerBacking::paintsBoxDecorations):
1579 (WebCore::RenderLayerBacking::paintsChildren):
1580 (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
1581 * rendering/RenderLayerBacking.h:
1582 (RenderLayerBacking):
1584 2012-03-13 Daniel Bates <dbates@webkit.org>
1586 REGRESSION(r99369): File input button doesn't highlight when pressed
1587 https://bugs.webkit.org/show_bug.cgi?id=79385
1589 Reviewed by Kent Tamura.
1591 Fixes an issue where the file input button doesn't highlight on mouse press.
1593 Currently we always override the active state of the button with whether
1594 a dragged file is being hovered over the file input control (i.e. can the control
1595 receive a dropped file; HTMLInputElement::canReceiveDroppedFiles()).
1596 Instead, we should only override the active state of the button when the state
1597 changes for whether we can receive dropped files (e.g. during a drag) so that
1598 we honor the active state of the button when it is pressed.
1600 Test: fast/forms/file/file-input-pressed-state.html
1602 * rendering/RenderFileUploadControl.cpp:
1603 (WebCore::RenderFileUploadControl::RenderFileUploadControl):
1604 (WebCore::RenderFileUploadControl::updateFromElement):
1605 * rendering/RenderFileUploadControl.h:
1606 (RenderFileUploadControl):
1608 2012-03-13 Dana Jansens <danakj@chromium.org>
1610 [chromium] Use CCOcclusionTracker for draw culling
1611 https://bugs.webkit.org/show_bug.cgi?id=80743
1613 Reviewed by Adrienne Walker.
1615 In this CL we enable the use of CCOcclusionTracker for draw-side
1616 culling. This means moving from a per-quad culling model to a
1619 When calculating RenderPasses, we construct the set of passes,
1620 then iterate over layers in front-to-back order. We make
1621 CCQuadCuller instantiable, and pass it to the layer
1622 appendQuads() methods instead of the bare list, where it can
1623 filter quads before the end up in the list.
1625 Covered by existing tests.
1627 * platform/graphics/chromium/LayerRendererChromium.cpp:
1628 (WebCore::LayerRendererChromium::drawRenderPass):
1629 * platform/graphics/chromium/LayerRendererChromium.h:
1630 * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
1631 (WebCore::CCCanvasLayerImpl::appendQuads):
1632 * platform/graphics/chromium/cc/CCCanvasLayerImpl.h:
1633 (CCCanvasLayerImpl):
1634 * platform/graphics/chromium/cc/CCLayerImpl.cpp:
1635 (WebCore::CCLayerImpl::appendQuads):
1636 (WebCore::CCLayerImpl::appendGutterQuads):
1637 (WebCore::CCLayerImpl::appendDebugBorderQuad):
1638 * platform/graphics/chromium/cc/CCLayerImpl.h:
1641 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1642 (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
1643 (WebCore::CCLayerTreeHostImpl::drawLayers):
1644 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1645 (CCLayerTreeHostImpl):
1646 * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
1647 (WebCore::CCPluginLayerImpl::appendQuads):
1648 * platform/graphics/chromium/cc/CCPluginLayerImpl.h:
1649 (CCPluginLayerImpl):
1650 * platform/graphics/chromium/cc/CCQuadCuller.cpp:
1651 (WebCore::CCQuadCuller::CCQuadCuller):
1652 (WebCore::CCQuadCuller::append):
1653 * platform/graphics/chromium/cc/CCQuadCuller.h:
1656 * platform/graphics/chromium/cc/CCRenderPass.cpp:
1657 (WebCore::CCRenderPass::appendQuadsForLayer):
1658 * platform/graphics/chromium/cc/CCRenderPass.h:
1661 (WebCore::CCQuadList::backToFrontBegin):
1662 (WebCore::CCQuadList::backToFrontEnd):
1664 * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
1665 (WebCore::CCScrollbarLayerImpl::appendQuads):
1666 * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
1667 (CCScrollbarLayerImpl):
1668 * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
1669 (WebCore::CCSolidColorLayerImpl::appendQuads):
1670 * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
1671 (CCSolidColorLayerImpl):
1672 * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
1673 (WebCore::CCTiledLayerImpl::appendQuads):
1674 * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
1676 * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
1677 (WebCore::CCVideoLayerImpl::appendQuads):
1678 * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
1681 2012-03-13 Adam Barth <abarth@webkit.org> && Benjamin Poulain <bpoulain@apple.com>
1683 Always enable ENABLE(CLIENT_BASED_GEOLOCATION)
1684 https://bugs.webkit.org/show_bug.cgi?id=78853
1686 Reviewed by Adam Barth.
1689 * Configurations/FeatureDefines.xcconfig:
1691 * GNUmakefile.list.am:
1692 * Modules/geolocation/Geolocation.cpp:
1694 (WebCore::createPositionError):
1695 (WebCore::Geolocation::Geolocation):
1696 (WebCore::Geolocation::stop):
1697 (WebCore::Geolocation::lastPosition):
1698 (WebCore::Geolocation::requestPermission):
1699 (WebCore::Geolocation::startUpdating):
1700 (WebCore::Geolocation::stopUpdating):
1701 * Modules/geolocation/Geolocation.h:
1704 * Modules/geolocation/GeolocationController.cpp:
1705 * Modules/geolocation/GeolocationController.h:
1706 * Modules/geolocation/GeolocationError.h:
1707 * Modules/geolocation/GeolocationPosition.h:
1711 * WebCore.vcproj/WebCore.vcproj:
1712 * bindings/js/JSGeolocationCustom.cpp:
1713 * loader/EmptyClients.h:
1714 (EmptyChromeClient):
1715 * page/ChromeClient.h:
1718 (WebCore::Page::Page):
1721 * platform/GeolocationService.cpp: Removed.
1722 * platform/GeolocationService.h: Removed.
1723 * platform/mock/GeolocationClientMock.cpp:
1724 * platform/mock/GeolocationClientMock.h:
1725 * platform/mock/GeolocationServiceMock.cpp: Removed.
1726 * platform/mock/GeolocationServiceMock.h: Removed.
1728 2012-03-12 Antonio Gomes <agomes@rim.com>
1730 Convert nodesFromRect tests to use Internals interface
1731 https://bugs.webkit.org/show_bug.cgi?id=80886
1733 Reviewed by Ryosuke Niwa.
1735 Add Internals::nodesFromRect implementation to unify
1736 the codepath for testing Document::nodesFromRect in a
1739 No new tests, since we are improving here the infra-structure
1740 for testing a specific method.
1742 * testing/Internals.cpp:
1743 (WebCore::Internals::nodesFromRect):
1745 * testing/Internals.h:
1747 * testing/Internals.idl:
1749 2012-03-13 Philip Rogers <pdr@google.com>
1751 Fix the use of stale text fragments
1752 https://bugs.webkit.org/show_bug.cgi?id=80729
1754 Reviewed by Nikolas Zimmermann.
1756 Previously, we were allowing SVGTextFragments to get out of sync with the
1757 actual text in RenderSVGInlineTextBox. This patch reuses the dirty line
1758 box code in RenderText::setTextWithOffset to force
1759 clearTextFragments() when setTextWithOffset is called, preventing the use
1760 of stale SVGTextFragments.
1762 Test: svg/custom/delete-text-crash.html
1764 * rendering/InlineBox.h:
1766 * rendering/svg/SVGInlineTextBox.cpp:
1767 (WebCore::SVGInlineTextBox::dirtyLineBoxes):
1769 * rendering/svg/SVGInlineTextBox.h:
1772 2012-03-13 Nikolas Zimmermann <nzimmermann@rim.com>
1774 SVG Animations update baseVal instead of animVal
1775 https://bugs.webkit.org/show_bug.cgi?id=12437
1777 Reviewed by Dirk Schulze.
1779 Blind fix for some GC related assertions firing on v8.
1781 Assure that animationStarted/animationEnded calls are happening
1782 on the same SVGAnimatedProperty. Always call animationEnded(),
1783 even if we shouldn't do anything for the target element, as its
1784 destructed, as we still have to reset m_isAnimating.
1786 * svg/SVGAnimateElement.cpp:
1787 (WebCore::SVGAnimateElement::SVGAnimateElement):
1788 (WebCore::SVGAnimateElement::resetToBaseValue):
1789 (WebCore::SVGAnimateElement::targetElementWillChange):
1790 * svg/SVGAnimateElement.h:
1791 (SVGAnimateElement):
1792 * svg/properties/SVGAnimatedPropertyTearOff.h:
1793 (WebCore::SVGAnimatedPropertyTearOff::animationEnded):
1795 2012-03-13 Mark Pilgrim <pilgrim@chromium.org>
1797 Move DirectoryEntry and DirectoryReader to new Modules/filesystem/ directory
1798 https://bugs.webkit.org/show_bug.cgi?id=80625
1800 Reviewed by Adam Barth.
1802 No new tests, all existing tests pass.
1805 * DerivedSources.make:
1806 * DerivedSources.pri:
1808 * GNUmakefile.list.am:
1809 * Modules/filesystem: Added.
1810 * Modules/filesystem/DirectoryEntry.cpp: Copied from Source/WebCore/fileapi/DirectoryEntry.cpp.
1811 * Modules/filesystem/DirectoryEntry.h: Copied from Source/WebCore/fileapi/DirectoryEntry.h.
1812 * Modules/filesystem/DirectoryEntry.idl: Copied from Source/WebCore/fileapi/DirectoryEntry.idl.
1813 * Modules/filesystem/DirectoryEntrySync.cpp: Copied from Source/WebCore/fileapi/DirectoryEntrySync.cpp.
1814 * Modules/filesystem/DirectoryEntrySync.h: Copied from Source/WebCore/fileapi/DirectoryEntrySync.h.
1815 * Modules/filesystem/DirectoryEntrySync.idl: Copied from Source/WebCore/fileapi/DirectoryEntrySync.idl.
1816 * Modules/filesystem/DirectoryReader.cpp: Copied from Source/WebCore/fileapi/DirectoryReader.cpp.
1817 * Modules/filesystem/DirectoryReader.h: Copied from Source/WebCore/fileapi/DirectoryReader.h.
1818 * Modules/filesystem/DirectoryReader.idl: Copied from Source/WebCore/fileapi/DirectoryReader.idl.
1819 * Modules/filesystem/DirectoryReaderBase.h: Copied from Source/WebCore/fileapi/DirectoryReaderBase.h.
1820 * Modules/filesystem/DirectoryReaderSync.cpp: Copied from Source/WebCore/fileapi/DirectoryReaderSync.cpp.
1821 * Modules/filesystem/DirectoryReaderSync.h: Copied from Source/WebCore/fileapi/DirectoryReaderSync.h.
1822 * Modules/filesystem/DirectoryReaderSync.idl: Copied from Source/WebCore/fileapi/DirectoryReaderSync.idl.
1824 * WebCore.gyp/WebCore.gyp:
1827 * WebCore.vcproj/WebCore.vcproj:
1828 * WebCore.xcodeproj/project.pbxproj:
1829 * fileapi/DirectoryEntry.cpp: Removed.
1830 * fileapi/DirectoryEntry.h: Removed.
1831 * fileapi/DirectoryEntry.idl: Removed.
1832 * fileapi/DirectoryEntrySync.cpp: Removed.
1833 * fileapi/DirectoryEntrySync.h: Removed.
1834 * fileapi/DirectoryEntrySync.idl: Removed.
1835 * fileapi/DirectoryReader.cpp: Removed.
1836 * fileapi/DirectoryReader.h: Removed.
1837 * fileapi/DirectoryReader.idl: Removed.
1838 * fileapi/DirectoryReaderBase.h: Removed.
1839 * fileapi/DirectoryReaderSync.cpp: Removed.
1840 * fileapi/DirectoryReaderSync.h: Removed.
1841 * fileapi/DirectoryReaderSync.idl: Removed.
1843 2012-03-13 Igor Oliveira <igor.o@sisa.samsung.com>
1845 animation-iteration-count does not handle floating point values correctly.
1846 https://bugs.webkit.org/show_bug.cgi?id=69531
1848 Implements support for non-integers animation-iteration-count numbers.
1849 Non-integer numbers will cause the animation to end part-way through a cycle.
1851 Reviewed by Dean Jackson.
1853 Tests: animations/fill-mode-iteration-count-non-integer.html
1854 animations/keyframes-iteration-count-non-integer.html
1856 * css/CSSComputedStyleDeclaration.cpp:
1857 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1858 * css/CSSParser.cpp:
1859 (WebCore::CSSParser::parseAnimationIterationCount):
1860 * css/CSSStyleApplyProperty.cpp:
1861 (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
1862 * css/CSSStyleSelector.cpp:
1863 (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1864 * page/animation/AnimationBase.cpp:
1865 (WebCore::AnimationBase::fractionalTime):
1866 (WebCore::AnimationBase::progress):
1867 * page/animation/CompositeAnimation.cpp:
1868 (WebCore::CompositeAnimation::pauseAnimationAtTime):
1869 * platform/animation/Animation.h:
1870 (WebCore::Animation::iterationCount):
1871 (WebCore::Animation::setIterationCount):
1873 (WebCore::Animation::initialAnimationIterationCount):
1875 2012-03-13 Tommy Widenflycht <tommyw@google.com>
1877 MediaStream API: Rename PeerConnection to DeprecatedPeerConnection
1878 https://bugs.webkit.org/show_bug.cgi?id=80692
1880 Reviewed by Adam Barth.
1882 First patch in a series of patches to change the PeerConnection from ROAP to JSEP,
1883 see bug 80589 for more information.
1885 Patch covered by modified existing tests.
1887 * GNUmakefile.list.am:
1888 * Modules/mediastream/DOMWindowMediaStream.idl:
1889 * Modules/mediastream/DeprecatedPeerConnection.cpp: Renamed from Source/WebCore/Modules/mediastream/PeerConnection.cpp.
1891 (WebCore::DeprecatedPeerConnection::create):
1892 (WebCore::DeprecatedPeerConnection::DeprecatedPeerConnection):
1893 (WebCore::DeprecatedPeerConnection::~DeprecatedPeerConnection):
1894 (WebCore::DeprecatedPeerConnection::processSignalingMessage):
1895 (WebCore::DeprecatedPeerConnection::readyState):
1896 (WebCore::DeprecatedPeerConnection::send):
1897 (WebCore::DeprecatedPeerConnection::addStream):
1898 (WebCore::DeprecatedPeerConnection::removeStream):
1899 (WebCore::DeprecatedPeerConnection::localStreams):
1900 (WebCore::DeprecatedPeerConnection::remoteStreams):
1901 (WebCore::DeprecatedPeerConnection::close):
1902 (WebCore::DeprecatedPeerConnection::didCompleteICEProcessing):
1903 (WebCore::DeprecatedPeerConnection::didGenerateSDP):
1904 (WebCore::DeprecatedPeerConnection::didReceiveDataStreamMessage):
1905 (WebCore::DeprecatedPeerConnection::didAddRemoteStream):
1906 (WebCore::DeprecatedPeerConnection::didRemoveRemoteStream):
1907 (WebCore::DeprecatedPeerConnection::interfaceName):
1908 (WebCore::DeprecatedPeerConnection::scriptExecutionContext):
1909 (WebCore::DeprecatedPeerConnection::stop):
1910 (WebCore::DeprecatedPeerConnection::eventTargetData):
1911 (WebCore::DeprecatedPeerConnection::ensureEventTargetData):
1912 (WebCore::DeprecatedPeerConnection::scheduleInitialNegotiation):
1913 (WebCore::DeprecatedPeerConnection::initialNegotiationTimerFired):
1914 (WebCore::DeprecatedPeerConnection::ensureStreamChangeScheduled):
1915 (WebCore::DeprecatedPeerConnection::streamChangeTimerFired):
1916 (WebCore::DeprecatedPeerConnection::scheduleReadyStateChange):
1917 (WebCore::DeprecatedPeerConnection::readyStateChangeTimerFired):
1918 (WebCore::DeprecatedPeerConnection::changeReadyState):
1919 * Modules/mediastream/DeprecatedPeerConnection.h: Renamed from Source/WebCore/Modules/mediastream/PeerConnection.h.
1921 (DeprecatedPeerConnection):
1922 (WebCore::DeprecatedPeerConnection::didChangeState):
1923 (WebCore::DeprecatedPeerConnection::refEventTarget):
1924 (WebCore::DeprecatedPeerConnection::derefEventTarget):
1925 * Modules/mediastream/DeprecatedPeerConnection.idl: Renamed from Source/WebCore/Modules/mediastream/PeerConnection.idl.
1926 * Modules/mediastream/SignalingCallback.h:
1928 (SignalingCallback):
1929 * Modules/mediastream/SignalingCallback.idl:
1931 * bindings/generic/RuntimeEnabledFeatures.h:
1932 (WebCore::RuntimeEnabledFeatures::webkitDeprecatedPeerConnectionEnabled):
1933 * bindings/js/JSDeprecatedPeerConnectionCustom.cpp: Renamed from Source/WebCore/bindings/js/JSPeerConnectionCustom.cpp.
1935 (WebCore::JSDeprecatedPeerConnectionConstructor::constructJSDeprecatedPeerConnection):
1936 * dom/EventTarget.h:
1938 * dom/EventTargetFactory.in:
1939 * platform/mediastream/DeprecatedPeerConnectionHandler.h: Renamed from Source/WebCore/platform/mediastream/PeerConnectionHandler.h.
1941 (DeprecatedPeerConnectionHandler):
1942 * platform/mediastream/DeprecatedPeerConnectionHandlerClient.h: Renamed from Source/WebCore/platform/mediastream/PeerConnectionHandlerClient.h.
1944 (DeprecatedPeerConnectionHandlerClient):
1945 (WebCore::DeprecatedPeerConnectionHandlerClient::~DeprecatedPeerConnectionHandlerClient):
1946 * platform/mediastream/gstreamer/DeprecatedPeerConnectionHandler.cpp: Renamed from Source/WebCore/platform/mediastream/gstreamer/PeerConnectionHandler.cpp.
1948 (WebCore::DeprecatedPeerConnectionHandler::create):
1949 (WebCore::DeprecatedPeerConnectionHandler::DeprecatedPeerConnectionHandler):
1950 (WebCore::DeprecatedPeerConnectionHandler::~DeprecatedPeerConnectionHandler):
1951 (WebCore::DeprecatedPeerConnectionHandler::produceInitialOffer):
1952 (WebCore::DeprecatedPeerConnectionHandler::handleInitialOffer):
1953 (WebCore::DeprecatedPeerConnectionHandler::processSDP):
1954 (WebCore::DeprecatedPeerConnectionHandler::processPendingStreams):
1955 (WebCore::DeprecatedPeerConnectionHandler::sendDataStreamMessage):
1956 (WebCore::DeprecatedPeerConnectionHandler::stop):
1958 2012-03-13 Pavel Feldman <pfeldman@chromium.org>
1960 Web Inspector: front-end compilation was broken while supporting large arrays.
1961 https://bugs.webkit.org/show_bug.cgi?id=81013
1963 Reviewed by Vsevolod Vlasov.
1965 * inspector/front-end/ExtensionPanel.js:
1966 * inspector/front-end/ObjectPropertiesSection.js:
1967 (WebInspector.ArrayGroupingTreeElement._populateNonIndexProperties.buildObjectFragment):
1968 * inspector/front-end/RemoteObject.js:
1970 2012-03-13 Tony Chang <tony@chromium.org>
1972 flexbox's computePreferredLogicalWidth needs to take multiline into account
1973 https://bugs.webkit.org/show_bug.cgi?id=80931
1975 Reviewed by Ojan Vafai.
1977 Tests: css3/flexbox/multiline-shrink-to-fit-expected.html
1978 css3/flexbox/multiline-shrink-to-fit.html
1980 * rendering/RenderFlexibleBox.cpp:
1981 (WebCore::RenderFlexibleBox::computePreferredLogicalWidths): Set min/max preferredLogicalWidth based on always breaking or never breaking.
1982 (WebCore::RenderFlexibleBox::computeNextFlexLine): Add a FIXME.
1983 (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): Don't change the width after computePreferredWidth has been called.
1985 2012-03-13 Sheriff Bot <webkit.review.bot@gmail.com>
1987 Unreviewed, rolling out r110469.
1988 http://trac.webkit.org/changeset/110469
1989 https://bugs.webkit.org/show_bug.cgi?id=81010
1991 This patch still appears to crash (Requested by abarth on
1994 * page/FrameView.cpp:
1995 (WebCore::FrameView::FrameView):
1996 (WebCore::FrameView::reset):
1997 (WebCore::FrameView::repaintContentRectangle):
1999 (WebCore::FrameView::endDeferredRepaints):
2000 (WebCore::FrameView::doDeferredRepaints):
2001 (WebCore::FrameView::deferredRepaintTimerFired):
2004 * rendering/RenderView.cpp:
2005 (WebCore::RenderView::shouldRepaint):
2006 * svg/graphics/SVGImage.cpp:
2007 (WebCore::SVGImage::drawSVGToImageBuffer):
2008 (WebCore::SVGImage::draw):
2009 * svg/graphics/SVGImage.h:
2010 * svg/graphics/SVGImageCache.cpp:
2011 (WebCore::SVGImageCache::imageContentChanged):
2012 (WebCore::SVGImageCache::redrawTimerFired):
2013 * svg/graphics/SVGImageCache.h:
2016 2012-03-13 Max Vujovic <mvujovic@adobe.com>
2018 Add a method to window.internals to enable testing of inspector highlight rects
2019 https://bugs.webkit.org/show_bug.cgi?id=80338
2021 Reviewed by Pavel Feldman.
2023 Add window.internals.inspectorHighlightRects, a method which makes it possible to test the
2024 positions and sizes of inspector highlight rects.
2026 Test: inspector/elements/highlight-node.html
2028 * WebCore.exp.in: Export symbols.
2029 * testing/Internals.cpp:
2030 (WebCore::Internals::inspectorHighlightRects): Call InspectorController::getHighlight and
2031 return the highlight's quads as a ClientRectList.
2033 * testing/Internals.h:
2036 * testing/Internals.idl:
2038 Add inspectorHighlightRects to the window.internals interface.
2040 2012-03-13 Konrad Piascik <kpiascik@rim.com>
2042 [BlackBerry] Remove sublayers before clamping just in case the layer already exists
2043 https://bugs.webkit.org/show_bug.cgi?id=80989
2045 Reviewed by Antonio Gomes.
2047 Discovered when trying to add a highlight sublayer for web inspector. Since that layer
2048 may already exist in the tree we need to see if it will be pruned before we clamp on the
2051 This was manually tested during the writing of another patch to add web inspector highlights
2052 to accelrated compositing.
2054 * platform/graphics/blackberry/LayerWebKitThread.cpp:
2055 (WebCore::LayerWebKitThread::insertSublayer):
2057 2012-03-13 Vsevolod Vlasov <vsevik@chromium.org>
2059 Web Inspector: Add snippets model.
2060 https://bugs.webkit.org/show_bug.cgi?id=80863
2062 Reviewed by Yury Semikhatsky.
2064 Test: inspector/debugger/snippets-model.html
2067 * WebCore.vcproj/WebCore.vcproj:
2068 * inspector/compile-front-end.py:
2069 * inspector/front-end/Settings.js:
2070 (WebInspector.ExperimentsSettings):
2071 * inspector/front-end/SnippetsModel.js: Added.
2072 * inspector/front-end/WebKit.qrc:
2073 * inspector/front-end/inspector.html:
2074 * inspector/front-end/inspector.js:
2076 2012-03-13 'Pavel Feldman' <pfeldman@chromium.org>
2078 Not reviewed: chromium build fix.
2080 * history/CachedFrame.cpp:
2082 2012-03-13 Peter Rybin <peter.rybin@gmail.com>
2084 Web Inspector: CodeGeneratorInspector.py: refactor copy-paste getter methods
2085 https://bugs.webkit.org/show_bug.cgi?id=80923
2087 Reviewed by Yury Semikhatsky.
2089 Several methods are combined in one using C++ templates.
2091 * inspector/CodeGeneratorInspector.py:
2093 2012-03-13 Rob Buis <rbuis@rim.com>
2095 [BlackBerry] Fix cast-align warning in QuotesData.cpp
2096 https://bugs.webkit.org/show_bug.cgi?id=80601
2098 Reviewed by Nikolas Zimmermann.
2100 Fix warning by adding variable of correct return type.
2102 * rendering/style/QuotesData.cpp:
2103 (WebCore::QuotesData::create):
2105 2012-03-12 Brady Eidson <beidson@apple.com>
2107 <rdar://problem/7908830> and https://bugs.webkit.org/show_bug.cgi?id=34679
2108 Location and other objects are dysfunctional after a document gets restored from page cache
2110 Reviewed by Adam Barth.
2112 Test: fast/loader/window-properties-restored-from-page-cache.html
2114 Give DOMWindowProperties the ability to reconnect to their Frame:
2115 * page/DOMWindowProperty.cpp:
2116 (WebCore::DOMWindowProperty::reconnectFrame):
2117 * page/DOMWindowProperty.h:
2118 (DOMWindowProperty):
2120 Let ApplicationCache do some extra work when reconnecting:
2121 * loader/appcache/DOMApplicationCache.cpp:
2122 (WebCore::DOMApplicationCache::reconnectFrame):
2124 * loader/appcache/DOMApplicationCache.h:
2125 (DOMApplicationCache):
2127 Let IndexDB do some extra work when reconnecting:
2128 * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
2129 (WebCore::DOMWindowIndexedDatabase::disconnectFrame):
2130 (WebCore::DOMWindowIndexedDatabase::reconnectFrame):
2131 (WebCore::DOMWindowIndexedDatabase::webkitIndexedDB):
2132 * Modules/indexeddb/DOMWindowIndexedDatabase.h:
2133 (DOMWindowIndexedDatabase):
2135 Tell the DOMWindow to suspend to the page cache:
2136 * history/CachedFrame.cpp:
2137 (WebCore::CachedFrame::CachedFrame):
2139 Tell the DOMWindow to resume from the page cache:
2140 * loader/FrameLoader.cpp:
2141 (WebCore::FrameLoader::open):
2143 * page/DOMWindow.cpp:
2144 (WebCore::DOMWindow::DOMWindow):
2145 (WebCore::DOMWindow::~DOMWindow): Call clearDOMWindowProperties directly instead of clear()
2146 (WebCore::DOMWindow::frameDestroyed): Ditto.
2147 (WebCore::DOMWindow::clear): Only clear if the DOMWindow is not suspended for the page cache.
2148 (WebCore::DOMWindow::suspendForPageCache): Disconnect properties and set the page cache flag.
2149 (WebCore::DOMWindow::resumeFromPageCache): Reconnect properties and revert the page cache flag.
2150 (WebCore::DOMWindow::disconnectDOMWindowProperties): Only disconnect the registered properties.
2151 (WebCore::DOMWindow::reconnectDOMWindowProperties):
2152 (WebCore::DOMWindow::clearDOMWindowProperties): Disconnect the registered properties then clear them out.
2154 For all of the following, if the DOMWindow is not displayed in a frame (i.e., it is suspended), do nothing:
2155 (WebCore::DOMWindow::screen):
2156 (WebCore::DOMWindow::history):
2157 (WebCore::DOMWindow::crypto):
2158 (WebCore::DOMWindow::locationbar):
2159 (WebCore::DOMWindow::menubar):
2160 (WebCore::DOMWindow::personalbar):
2161 (WebCore::DOMWindow::scrollbars):
2162 (WebCore::DOMWindow::statusbar):
2163 (WebCore::DOMWindow::toolbar):
2164 (WebCore::DOMWindow::console):
2165 (WebCore::DOMWindow::applicationCache):
2166 (WebCore::DOMWindow::navigator):
2167 (WebCore::DOMWindow::performance):
2168 (WebCore::DOMWindow::location):
2169 (WebCore::DOMWindow::sessionStorage):
2170 (WebCore::DOMWindow::localStorage):
2171 (WebCore::DOMWindow::webkitNotifications):
2172 (WebCore::DOMWindow::postMessageTimerFired):
2173 (WebCore::DOMWindow::getSelection):
2174 (WebCore::DOMWindow::styleMedia):
2175 (WebCore::DOMWindow::webkitStorageInfo):
2178 2012-03-13 Dana Jansens <danakj@chromium.org>
2180 [chromium] Use projectQuad to apply inverse mapRect
2181 https://bugs.webkit.org/show_bug.cgi?id=80741
2183 Reviewed by Adrienne Walker.
2185 Unit test: CCOcclusionTrackerTest3dTransform
2186 CCOcclusionTrackerTestPerspectiveTransform
2187 CCOcclusionTrackerTestPerspectiveTransformBehindCamera
2189 * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
2190 (WebCore::projectQuad):
2192 (WebCore::computeUnoccludedContentRect):
2194 2012-03-13 Gavin Peters <gavinp@chromium.org>
2196 New PageCache histogram which counts failures ignoring Settings.
2197 https://bugs.webkit.org/show_bug.cgi?id=80864
2199 Reviewed by Brady Eidson.
2201 Chrome has a command line switch to turn on the page cache.
2202 Currently it doesn't work, but it can cause the PageCache reasons
2203 for failure count to read lower than it should. Add a new
2204 histogram to report the corrected value.
2206 * history/PageCache.cpp:
2207 (WebCore::logCanCachePageDecision):
2209 2012-03-13 George Staikos <staikos@webkit.org>
2211 Fix signed/unsigned mismatch compiler warnings.
2212 https://bugs.webkit.org/show_bug.cgi?id=80790
2214 Reviewed by Alexey Proskuryakov.
2216 * loader/icon/IconDatabase.cpp:
2217 (WebCore::IconDatabase::synchronousLoadDecisionForIconURL):
2218 * platform/network/MIMESniffing.cpp:
2220 2012-03-13 Sheriff Bot <webkit.review.bot@gmail.com>
2222 Unreviewed, rolling out r110510.
2223 http://trac.webkit.org/changeset/110510
2224 https://bugs.webkit.org/show_bug.cgi?id=80987
2226 depends on chromium r 125700, which isn't rolled into webkit
2227 yet :-/ (Requested by thakis_ on #webkit).
2229 * WebCore.gyp/mac/adjust_visibility.sh:
2231 2012-03-13 Gavin Peters <gavinp@chromium.org>
2233 Make ApplicationCacheHost::canCacheInPageCache() non-const.
2234 https://bugs.webkit.org/show_bug.cgi?id=80904
2236 Reviewed by Alexey Proskuryakov.
2238 A const pointer to a large object like ApplicationCacheHost is not our standard
2239 practice; so remove this (implicit) one. See also https://bugs.webkit.org/show_bug.cgi?id=80898
2241 * loader/appcache/ApplicationCacheHost.cpp:
2242 (WebCore::ApplicationCacheHost::canCacheInPageCache):
2243 * loader/appcache/ApplicationCacheHost.h:
2244 (ApplicationCacheHost):
2246 2012-03-13 Stephen Chenney <schenney@chromium.org>
2248 Crash in WebCore::GraphicsContext::paintingDisabled
2249 https://bugs.webkit.org/show_bug.cgi?id=80669
2251 Reviewed by Nikolas Zimmermann.
2253 The SVGImageBufferTools::clipToImageBuffer method deletes the clip
2254 image when it thinks it is not needed. However, there are cases when
2255 it is in fact still needed, particularly when the clip buffer is
2256 coming from higher up in the stack where it may be needed again.
2258 So this patch adds a flag to only allow deletion of the image buffer
2259 if it was created at the most recent call site.
2261 Tests: svg/custom/circular-clip-path-references-crash-expected.svg
2262 svg/custom/circular-clip-path-references-crash.svg
2264 * rendering/svg/RenderSVGResourceClipper.cpp:
2265 (WebCore::RenderSVGResourceClipper::applyClippingToContext):
2266 * rendering/svg/RenderSVGResourceGradient.cpp:
2267 (WebCore::clipToTextMask):
2268 * rendering/svg/RenderSVGResourceMasker.cpp:
2269 (WebCore::RenderSVGResourceMasker::applyResource):
2270 * rendering/svg/SVGImageBufferTools.cpp:
2271 (WebCore::SVGImageBufferTools::clipToImageBuffer):
2272 * rendering/svg/SVGImageBufferTools.h:
2273 (SVGImageBufferTools):
2275 2012-03-13 Gavin Peters <gavinp@chromium.org>
2277 Fix an enumeration name in ReasonsFrameCannotBeInPageCache.
2278 https://bugs.webkit.org/show_bug.cgi?id=80849
2280 Reviewed by Brady Eidson.
2282 It seems that somebody goofed, and named one of the
2283 ReasonsFrameCannotBeInPageCache antonymically.
2285 * history/PageCache.cpp:
2286 (WebCore::logCanCacheFrameDecision):
2288 2012-03-12 Kinuko Yasuda <kinuko@chromium.org>
2290 File upload control should use File.name() rather than File.path() to show chosen filenames
2291 https://bugs.webkit.org/show_bug.cgi?id=80970
2293 In some rare cases (e.g. files from FileSystem API or files created
2294 using the newly added WebKit API) File.name has different displayName
2295 from the basename of file.path, and in the file uploader controller we
2296 should use File.name rather than File.path.
2298 Reviewed by Kent Tamura.
2300 No new tests: existing tests should pass as this should not change
2301 behavior in regular use cases. (New behavior where File.name differs
2302 from File.path can be only tested in chromeos environment, therefore
2303 not adding new tests for that)
2305 * platform/gtk/RenderThemeGtk.cpp:
2306 (WebCore::RenderThemeGtk::fileListNameForWidth): Updated to handle FileList.
2307 * platform/gtk/RenderThemeGtk.h:
2308 * platform/qt/RenderThemeQt.cpp:
2309 (WebCore::RenderThemeQt::fileListNameForWidth): Updated to handle FileList.
2310 * platform/qt/RenderThemeQt.h:
2311 * rendering/RenderFileUploadControl.cpp:
2312 (WebCore::RenderFileUploadControl::fileTextValue): Changed to pass FileList rather than FileList->paths().
2313 * rendering/RenderTheme.cpp:
2314 (WebCore::RenderTheme::fileListNameForWidth): Updated to handle FileList and use File.name for displaying the file name.
2315 * rendering/RenderTheme.h:
2316 * rendering/RenderThemeMac.h:
2317 * rendering/RenderThemeMac.mm:
2318 (WebCore::RenderThemeMac::fileListNameForWidth): Updated to handle FileList.
2320 2012-03-13 Kinuko Yasuda <kinuko@chromium.org>
2322 Allow WebFileChooser to return extra file info (like displayName) in addition to mere file paths
2323 https://bugs.webkit.org/show_bug.cgi?id=80719
2325 Reviewed by Kent Tamura.
2327 No new tests: this change itself shouldn't change existing behavior.
2330 (WebCore::createBlobDataForFileWithName): Renamed from createBlobDataForFileSystemFile.
2332 * html/FileInputType.cpp:
2333 (WebCore::FileInputType::saveFormControlState): Updated to handle File.name.
2334 (WebCore::FileInputType::restoreFormControlState): Ditto.
2335 (WebCore::FileInputType::setFileList): Changed the signature to take
2336 FileChooserFileInfo.
2337 (WebCore::FileInputType::filesChosen): Ditto.
2338 (WebCore::FileInputType::receiveDroppedFiles):
2339 * html/FileInputType.h:
2341 * platform/FileChooser.cpp:
2342 (WebCore::FileChooser::chooseFiles): Added an overloaded method that
2343 takes FileChooserFileInfo.
2345 * platform/FileChooser.h:
2346 (WebCore::FileChooserFileInfo::FileChooserFileInfo): Added.
2347 * platform/MIMETypeRegistry.cpp:
2348 (WebCore::MIMETypeRegistry::getWellKnownMIMETypeForExtension): Removed surrouonding ifdefs as this function is now used even if FILE_SYSTEM is not enabled.
2349 * platform/MIMETypeRegistry.h:
2352 2012-03-13 Vsevolod Vlasov <vsevik@chromium.org>
2354 Unreviewed inspector compilation module name fix after r110550.
2356 * inspector/compile-front-end.py:
2358 2012-03-12 Vsevolod Vlasov <vsevik@chromium.org>
2360 Web Inspector: Changes to the list of scripts for front-end compilation should not require update of number of scripts in module.
2361 https://bugs.webkit.org/show_bug.cgi?id=80872
2363 Reviewed by Pavel Feldman.
2365 * inspector/compile-front-end.py: Added.
2366 * inspector/compile-front-end.sh:
2368 2012-03-12 Pavel Podivilov <podivilov@chromium.org>
2370 Web Inspector: move ResourceScriptMapping to a separate file.
2371 https://bugs.webkit.org/show_bug.cgi?id=80859
2373 Reviewed by Vsevolod Vlasov.
2376 * WebCore.vcproj/WebCore.vcproj:
2377 * inspector/compile-front-end.sh:
2378 * inspector/front-end/ResourceScriptMapping.js: Copied from Source/WebCore/inspector/front-end/ScriptMapping.js.
2379 (WebInspector.ResourceScriptMapping):
2380 (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
2381 (WebInspector.ResourceScriptMapping.prototype.uiSourceCodeList):
2382 (WebInspector.ResourceScriptMapping.prototype._handleUISourceCodeListChanged):
2383 (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeListChanged):
2384 (WebInspector.ResourceScriptMapping.prototype._bindScriptToRawSourceCode):
2385 (WebInspector.ResourceScriptMapping.prototype.setFormatSource):
2386 (WebInspector.ResourceScriptMapping.prototype.forceUpdateSourceMapping):
2387 (WebInspector.ResourceScriptMapping.prototype.reset):
2388 * inspector/front-end/ScriptMapping.js:
2389 * inspector/front-end/WebKit.qrc:
2390 * inspector/front-end/inspector.html:
2392 2012-03-12 Kentaro Hara <haraken@chromium.org>
2394 Rename OptionsObject to Dictionary
2395 https://bugs.webkit.org/show_bug.cgi?id=80802
2397 Reviewed by Adam Barth.
2399 For clarification, rename OptionsObject.{h,cpp} to Dictionary.{h,cpp}.
2400 This patch just renames and sorts alphabetically.
2402 No tests. No change in behavior.
2404 * GNUmakefile.list.am:
2405 * Modules/indexeddb/IDBDatabase.cpp:
2406 (WebCore::IDBDatabase::createObjectStore):
2407 * Modules/indexeddb/IDBDatabase.h:
2408 (WebCore::IDBDatabase::createObjectStore):
2410 * Modules/indexeddb/IDBDatabase.idl:
2411 * Modules/indexeddb/IDBKeyRange.h:
2412 * Modules/indexeddb/IDBObjectStore.cpp:
2413 (WebCore::IDBObjectStore::createIndex):
2414 * Modules/indexeddb/IDBObjectStore.h:
2415 (WebCore::IDBObjectStore::createIndex):
2417 * Modules/indexeddb/IDBObjectStore.idl:
2421 * WebCore.vcproj/WebCore.vcproj:
2422 * bindings/js/Dictionary.h: Renamed from Source/WebCore/bindings/js/OptionsObject.h.
2425 (WebCore::Dictionary::Dictionary):
2426 (WebCore::Dictionary::isObject):
2427 (WebCore::Dictionary::isUndefinedOrNull):
2428 (WebCore::Dictionary::get):
2429 (WebCore::Dictionary::getWithUndefinedOrNullCheck):
2430 * bindings/js/IDBBindingUtilities.cpp:
2431 (WebCore::createDictionaryFromValue):
2432 * bindings/js/IDBBindingUtilities.h:
2434 * bindings/scripts/CodeGeneratorJS.pm:
2436 * bindings/scripts/CodeGeneratorV8.pm:
2438 (GenerateParametersCheck):
2439 (GenerateEventConstructorCallback):
2442 * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
2443 (WebDOMTestObj::optionsObject):
2444 * bindings/scripts/test/CPP/WebDOMTestObj.h:
2445 * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
2446 (webkit_dom_test_obj_options_object):
2447 * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
2448 * bindings/scripts/test/JS/JSTestObj.cpp:
2449 (WebCore::jsTestObjPrototypeFunctionIdbKey):
2450 (WebCore::jsTestObjPrototypeFunctionOptionsObject):
2451 * bindings/scripts/test/ObjC/DOMTestObj.h:
2452 * bindings/scripts/test/ObjC/DOMTestObj.mm:
2453 (-[DOMTestObj optionsObject:ooo:]):
2454 * bindings/scripts/test/TestObj.idl:
2455 * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2456 (WebCore::V8TestEventConstructor::constructorCallback):
2457 (WebCore::fillTestEventConstructorInit):
2458 * bindings/scripts/test/V8/V8TestEventConstructor.h:
2460 * bindings/scripts/test/V8/V8TestObj.cpp:
2461 (WebCore::TestObjInternal::optionsObjectCallback):
2462 * bindings/v8/Dictionary.cpp: Renamed from Source/WebCore/bindings/v8/OptionsObject.cpp.
2464 (WebCore::Dictionary::Dictionary):
2465 (WebCore::Dictionary::~Dictionary):
2466 (WebCore::Dictionary::operator=):
2467 (WebCore::Dictionary::isObject):
2468 (WebCore::Dictionary::isUndefinedOrNull):
2469 (WebCore::Dictionary::getKey):
2470 (WebCore::Dictionary::get):
2471 (WebCore::Dictionary::getWithUndefinedOrNullCheck):
2472 * bindings/v8/Dictionary.h: Renamed from Source/WebCore/bindings/v8/OptionsObject.h.
2475 * bindings/v8/custom/V8WebKitMutationObserverCustom.cpp:
2476 (WebCore::V8WebKitMutationObserver::observeCallback):
2478 2012-03-12 Nikolas Zimmermann <nzimmermann@rim.com>
2480 SVG Animations update baseVal instead of animVal
2481 https://bugs.webkit.org/show_bug.cgi?id=12437
2483 Reviewed by Dirk Schulze.
2485 Begin implementing the last missing core piece of the SVG DOM: proper animVal support.
2486 Most SVG DOM interfaces exposing eg. lengths use SVGAnimatedLength. eg. from SVGRectElement:
2487 "readonly attribute SVGAnimatedLength x;" SVGAnimatedXXX contains following methods:
2488 "readonly attribute SVGLength baseVal; readonly attribute SVGLength animVal;"
2489 From SVG DOM perspective, animVal and baseVal are two distinctive objects, animVal != baseVal.
2490 Its underlying value is the same though, if no animation is running on that attribute.
2492 As soon as a SMIL animation starts animating an SVGAnimated* target attribute, its
2493 baseVal and animVal may begin to differ. The animVal always reflect the current animated
2494 value (including all effects of additive/accumulated animations) which is shown on screen
2495 when eg animating the width of a <rect>. The baseVal is is equal to the underlying XML
2496 property value / SVG DOM value, but may be influenced through dynamic changes.
2497 (Consider changing rect1.width.baseVal.value while 'width' is animated)
2499 During the last year we prepared our animation code to turn on animVal support.
2500 This patch adds the last missing pieces to turn on animVal support for the SVGLength.
2501 SVGLengthList and all other types will follow, one after the other.
2503 I've decided to write an exhaustive ChangeLog, as this as the base for any future
2504 work in this area - hopefully making this more reviewable.
2506 Tests: svg/animations/additive-from-to-width-animation.html
2507 svg/animations/additive-values-width-animation.html
2508 svg/animations/change-baseVal-while-animating-fill-freeze-2.html
2509 svg/animations/change-baseVal-while-animating-fill-freeze.html
2510 svg/animations/change-baseVal-while-animating-fill-remove-2.html
2511 svg/animations/change-baseVal-while-animating-fill-remove.html
2512 svg/animations/change-target-while-animating-SVG-property.html
2513 svg/animations/multiple-animations-fill-freeze.html
2514 svg/animations/remove-animation-element-while-animation-is-running.html
2515 svg/repaint/repainting-after-animation-element-removal.svg
2517 * svg/SVGAnimateElement.cpp: Remove unnecessary std namespace inclusion.
2518 (WebCore::SVGAnimateElement::SVGAnimateElement): Remove now-obsolete m_aboutToStopAnimation.
2519 (WebCore::SVGAnimateElement::calculateAnimatedValue): Swap assertion order, to test hasTagName() _before_ casting.
2520 (WebCore::SVGAnimateElement::resetToBaseValue):
2521 Stop relying on the cached baseValue (breaking additive="sum"+values animation) for SVG DOM primitive animations.
2522 Avoid any string roundtrips previously needed to reset the SVGAnimatedType to the base value. Just grab the
2523 currentBaseValue() from the associated SVGAnimatedProperty, which includes all dynamic changes to the baseVal
2524 either by SVG DOM or setAttribute() calls - this way we don't need to utilize the buggy cache in SMILTimeContainer,
2525 which can be removed once all SVG DOM primitive types switched to the new animVal concept.
2527 NOTE: When multiple animations of the same attribute are applied to a target element, resetToBaseValue() will be called
2528 for the highest priority SVGSMILElement, on every animation step! Consider two <animate> elements, applied to a target
2529 <rect> which both animate the 'x' attribute, one from 0s to 2s, the other from 4s to 6s. The last <animate> element
2530 will reuse the SVGAnimatedType m_animatedType from the first <animate> element, and never create an own m_animatedType.
2531 When the animation starts the first time at 0s, we update the rect.x.animVals SVGLength* pointer, to point to the
2532 SVGAnimatedType of the first <animate> element, owning the m_animatedType. From that point on each call to rect.x.animVal
2533 will always return the same value as the SVGAnimatedType of the first <animate> element holds. Now after 2s the first
2534 <animate> element becomes inactive, but its m_animatedType remains alive. The bindings don't notice this change at all.
2535 Now at 4s, the second animation element gets active. It reuses the SVGAnimatedType of the first <animate> element, and
2536 applies its animation changes to that SVGAnimatedType, which is immediately reflected in the bindings w/o any additional
2537 work. It's very important for the understanding when animationStarted/animationEnded need to be called.
2539 (WebCore::SVGAnimateElement::applyResultsToTarget): Remove now-obsolete m_aboutToStopAnimation logic. No need to know it at this point.
2540 (WebCore::SVGAnimateElement::targetElementWillChange):
2541 Renamed from targetElementDidChange(). This method is called from SVGSMILElement for following conditions:
2542 - animation element is destructed
2543 - animation element is removed from document
2544 - target element of animation is destructed
2545 - target element of animation is removed from document
2546 - target element of animation changes id
2548 Whenever any of this happens, we need to reset the animVal. Resetting the animVal involves resetting the PropertyType* pointer,
2549 eg. SVGLength*, from the animVal property tear off, belonging to a certain SVGAnimatedProperty (eg. rect.x) to the initial
2550 value again, which is the 'm_x' of the SVGRectElement. This is needed as the SVGAnimatedType the animVal currently points to,
2551 if an animation is/was running, is destructed in targetElementWillChange(), to reset the SVGAnimateElement to the initial
2552 state before it received a target. This is the only place which destructed the m_animatedType, and thus the only place that
2553 needs to take care of resetting the animVal pointers.
2555 * svg/SVGAnimatedLength.cpp:
2556 (WebCore::SVGAnimatedLengthAnimator::constructFromCopy):
2557 Add a new constructFromCopy(SVGGenericAnimatedType) function to SVGAnimatedLengthAnimator.
2558 It takes a type-unsafe SVGGenericAnimatedType - the caller has to guarantee the type matches.
2559 This is strictly enforced for the single caller of constructFromCopy, and guaranteed to be safe.
2561 * svg/SVGAnimatedLength.h: Add new constructFromCopy method, which is used to avoid string-roundtrips when resetting to base values.
2562 * svg/SVGAnimatedType.cpp:
2563 (WebCore::SVGAnimatedType::supportsAnimVal): Only returns true for AnimatedLength, for now.
2564 (WebCore::SVGAnimatedType::setVariantValue): Takes a SVGGenericAnimatedType, assuming the type matches. Callers have to guarantee type-safety!
2565 * svg/SVGAnimatedType.h:
2566 (SVGAnimatedType): Add new static supportsAnimVal(AnimatedPropertyType) function.
2567 (WebCore::SVGAnimatedType::variantValue): Add a generic accessor for all animated types, called variant(). Only one place uses this.
2568 * svg/SVGAnimatedTypeAnimator.h:
2569 (WebCore::SVGAnimatedTypeAnimator::constructFromCopy):
2570 New method to construct an eg. SVGAnimatedLengthAnimator right from a SVGLength, instead of a String.
2571 In that case the SVGAnimatedType just stores a pointer to the underlying SVGLength, no copying and or other roundtrips involved.
2573 * svg/SVGAnimationElement.cpp:
2574 (WebCore::SVGAnimationElement::svgAttributeChanged):
2575 Implement this instead of attributeChanged. The previous implementation reset the animation state to Inactive, causing a full
2576 rebuild, whenever any attribute changes, even though it might not be related for the animation element, eg.
2577 animate.setAttribute("stdDeviationX", "foobar"). Fix that by checking if we support the attribute (keyTimes/keySplines/etc..)
2578 , if not pass it on to SVGSMILElement (which supports begin/end/etc..) to check if it can handle that.
2580 (WebCore::SVGAnimationElement::animationAttributeChanged):
2581 Called from our svgAttributeChanged, and/or from SVGSMILElement::svgAttributeChanged, whenever a _known_ attribute has changed.
2582 This sledgehammer should be used with care, instead of each time attributeChanged() is called :-)
2584 (WebCore::setTargetAttributeAnimatedCSSValue):
2585 Remove support for removing properties from the override style sheet. I've added this optimization too early, we should reevaluate
2586 this once more types support animVal. It currently complexifies the logic too much, requiring setAttributeAnimatedValue to know
2587 if the animation ends (and that's not easy to figure out, at least not using started/endedActiveInterval, as I anticipated).
2589 (WebCore::findMatchingAnimatedProperty):
2590 Add helper functions which retrieves a SVGAnimatedProperty* for a given SVGElement* targetElement, an attributeName, and an attribute
2591 type. eg. findMatchingAnimatedProperty(myRectElement, SVGNames::xAttr, AnimatedLength) returns the SVGAnimatedProperty which is
2592 exposed to JS, that holds: SVGProperty* baseVal, and SVGProperty* animVal. (Lazily created if they got accessed from JS.). This is
2593 used to update the animVal pointing to a new eg. SVGLength* value, once animation has started, to make rect->x() return that new
2594 SVGLength* value (internally), and to reflect the current animated value in rect.x.animVal.value from JS.
2596 (WebCore::SVGAnimationElement::applyAnimatedValue): Refactored from setTargetAttributeAnimatedValue, to simplify the code.
2597 (WebCore::notifyAnimatedPropertyAboutAnimationBeginEnd):
2598 Helper function to share code betweeen animationStarted/animationEnded.
2599 It takes a SVGAnimatedProperty* and a SVGAnimatedType* which may be zero, indicating that the animation ended.
2600 It calls animationStarted/animationEnded on the given SVGAnimatedProperty, to update the animVal state.
2601 It also figures out all instances of the target element, and their SVGAnimatedProperties that may need updating.
2603 (WebCore::SVGAnimationElement::animationStarted): Uses the helper above, passing on the given animatedType.
2604 (WebCore::SVGAnimationElement::animationEnded): Uses the helper above, passing 0 as animatedType.
2605 (WebCore::InstanceUpdateBlocker::InstanceUpdateBlocker):
2606 Added new helper struct, doing element->setInstancesUpdatedBlock(true) on construction and setInstancesUpdatesBlocked(false) on
2607 destruction, making it impossible to forget one. If we ever rewrite svgAttributeChanged & co to auto-update the cloned instances,
2610 (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
2611 Now takes an SVGAnimatedType* instead of a String parameter. In order to avoid string-roundtrips for animVal support, let us
2612 decide if we need to construct a String out of it, or not. For animations supporting animVal (only SVGLength) we don't need
2613 to update any attribute or animVal pointer here, that happens automatically! We only need to notify the targetElement eg,
2614 that its xAttr changed! Previously we had to call targetElement->setAttribute("x", "...") on every animation step for
2615 SVGLength animations - that's gone now! The SVGAnimatedType pointers remains the same during the whole animation, so there's
2616 no need to call animationStarted() at each animated step!
2618 (WebCore::SVGAnimationElement::animatedPropertyForType):
2619 Helper function returning a SVGAnimatedProperty* for the current target element & current target attribute, if the
2620 current animation is running on a type supporting animVal (SVGLength), or returning 0. This is needed for SVGAnimateElement.
2621 Reuses the existing findMatchingAnimatedProperty code.
2623 * svg/SVGAnimationElement.h:
2624 * svg/animation/SMILTimeContainer.cpp:
2625 (WebCore::SMILTimeContainer::updateAnimations):
2626 Add comment to clarify why caching baseValues is just wrong. For SVGLength animations the problem is now gone.
2627 This is exercised using the new additive-from-to-width-animation.html & additive-values-width-animation.html tests.
2629 * svg/animation/SVGSMILElement.cpp:
2630 (WebCore::SVGSMILElement::removedFromDocument):
2631 Since animVal requires that the SVGAnimatedProperties are correctly reset if an animation element is removed from the document,
2632 we have to call targetElementWillChange(0) from here. That requires to move the "m_attributeName = anyQName()" line down,
2633 otherwise targetElementWillChange() would early exit, as no valid attributeName was specified.
2635 This is verified using the new svg/animations/remove-animation-element-while-animation-is-running.html
2636 and svg/repaint/repainting-after-animation-element-removal.svg tests.
2638 (WebCore::SVGSMILElement::isSupportedAttribute): Add function like all SVG*Elements have identifying their supported attributes.
2639 (WebCore::SVGSMILElement::svgAttributeChanged):
2640 Implement svgAttributeChanged instead of attributeChanged. Only take action if the attribute is actually supported.
2641 If one of the common attributes like begin/end/etc. changed, be sure to call animationAttributeChanged() so that our
2642 ancestor-classes get notified about this and can take action as well. NOTE: This is not about animating begin/end attributes,
2643 but about pure DOM changes. begin/end/et.. are not exposed to the SVG DOM, we still reuse the svgAttributeChanged logic
2644 for consistency. (This does NOT make those attributes animatable, nothing this here as it came up while reviewing).
2646 (WebCore::SVGSMILElement::targetElement): Adapt logic to targetElementDidChange -> targetElementWillChange change.
2647 (WebCore::SVGSMILElement::targetElementWillChange):
2648 Renamed from targetElementDidChange. Added "oldTarget" as parameter as well. Our ancestor-classes like SVGAnimateElement
2649 use this to properly deregister the animVal in the old target, before resetting the SVGAnimatedType, otherwise we'd leave
2650 dangling pointers around (verified manually by guard malloc runs, that none of this happens).
2652 Also add a default implementation here in targetElementWillChange, that ancestor classes have to call.
2653 Now we properly call endedActiveInterval() if the m_activeState is currently Active, so that animations are shut-down
2654 just like if the animation properly ends (use the same cleanup routines, etc.). Not doing that now leads to assertions.
2656 (WebCore::SVGSMILElement::resetTargetElement):
2657 Instead of forcing m_activeState to be inactive, use the standard methods to end the animation.
2658 targetElementWillChange(m_targetElement, 0) and animationAttributeChanged().
2660 resetTargetElement() is only called by SVGDocumentExtensions::removeAllAnimationElementsFromTarget() for following conditions:
2661 - targetElement gets destructed
2662 - targetElement gets removed from the document
2663 - targetElement id changes
2665 If the targetElement gets destructed or removed, no actions need to be taken, as the SVGAnimatedPropertys are teared down
2666 as well. But if only the id changes, we still have to properly disconnect the animVals - this is all handled through
2667 targetElementWillChange now - that's why this has to be called from here as well.
2668 That explains why targetElementWillChange() now needs to check if the targetElement is destructing or not.
2670 * svg/properties/SVGAnimatedEnumerationPropertyTearOff.h:
2671 Pass the AnimatedPropertyType from the SVGPropertyInfo to the SVGAnimatedProperties.
2672 Requires mechanic changes in all SVGAnimated* classes. We need acccess to the AnimatedPropertyType
2673 to verify the SVGAnimatedType objects, passed to animationStarted, match our type. This is to enforce
2674 strict type-checking, whenever SVGGenericAnimatedTypes are passed around.
2676 (WebCore::SVGAnimatedEnumerationPropertyTearOff::create):
2677 (WebCore::SVGAnimatedEnumerationPropertyTearOff::SVGAnimatedEnumerationPropertyTearOff):
2678 * svg/properties/SVGAnimatedListPropertyTearOff.h: Ditto.
2679 (WebCore::SVGAnimatedListPropertyTearOff::create):
2680 (WebCore::SVGAnimatedListPropertyTearOff::SVGAnimatedListPropertyTearOff):
2681 * svg/properties/SVGAnimatedPathSegListPropertyTearOff.h: Ditto.
2682 (WebCore::SVGAnimatedPathSegListPropertyTearOff::create):
2683 (WebCore::SVGAnimatedPathSegListPropertyTearOff::SVGAnimatedPathSegListPropertyTearOff):
2684 * svg/properties/SVGAnimatedProperty.h: Store AnimatedPropertyType, add accessors.
2685 (WebCore::SVGAnimatedProperty::animatedPropertyType): Add accessor.
2686 (WebCore::SVGAnimatedProperty::animationValueChanged): New animVal related functions to be implemented in the animated tear offs.
2687 (WebCore::SVGAnimatedProperty::animationStarted): Ditto.
2688 (WebCore::SVGAnimatedProperty::animationEnded): Ditto.
2689 (WebCore::SVGAnimatedProperty::currentBaseValue):
2690 Generic accessor for the baseVal: returns a SVGGenericAnimatedType.
2691 It takes an AnimatedPropertyType as input, that's only needed to verify that the type we're returning matches
2692 the expectation of the caller. If not, return 0 to avoid any potential casting mistakes, which would lead to crashes.
2694 (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): Store m_animatedPropertyType.
2695 * svg/properties/SVGAnimatedPropertyTearOff.h:
2696 (WebCore::SVGAnimatedPropertyTearOff::create): Same changes as in the other tear offs: pass around AnimatedPropertyType.
2697 (WebCore::SVGAnimatedPropertyTearOff::currentBaseValue): Returns &m_property, if the type matches (see above).
2698 (SVGAnimatedPropertyTearOff): Pass around AnimatedPropertyType.
2699 (WebCore::SVGAnimatedPropertyTearOff::animationValueChanged): No-op for non list types, don't need to do anything here.
2700 (WebCore::SVGAnimatedPropertyTearOff::animationStarted):
2701 (WebCore::SVGAnimatedPropertyTearOff::animationEnded):
2702 Store the currently animated value in the animVal() property tear off, that's also re-used as-is for the JS bindings.
2703 As this is important, here's an example of how this affects methods like rect->x() used in the renderers.
2705 Setting m_isAnimating to true, redirects any rect->x() calls that previously returned rect->m_x, to
2706 rect->xAnimated()->animVal()->propertyReference() (which returns the same SVGLength& that the SVGAnimatedElement
2707 m_animatedType contains). Calling rect->setXBaseValue() still modifies rect->m_x, and is used by all parseAttribute()
2708 methods in svg/ as setAttribute() calls only ever modify the "baseValue", never the current animated value.
2709 rect.x.baseVal will return a SVGLength object corresponding to rect->m_x.
2710 rect.x.animVal will return a SVGLength object corresponding to rect->xAnimated()->animVal()->propertyReference().
2712 These implementation details are all hidden in the SVGAnimatedPropertyMacros. Here's an example from SVGRectElement:
2713 DECLARE_ANIMATED_LENGTH(X, x) -> Replace PropertyType with 'SVGLength', LowerProperty with 'x', and UpperProperty with 'X'.
2715 PropertyType& LowerProperty() const
2717 if (TearOffType* wrapper = SVGAnimatedProperty::lookupWrapper<UseOwnerType, TearOffType, IsDerivedFromSVGElement<UseOwnerType>::value>(this, LowerProperty##PropertyInfo())) {
2718 if (wrapper->isAnimating())
2719 return wrapper->currentAnimatedValue();
2721 return m_##LowerProperty.value;
2724 PropertyType& LowerProperty##BaseValue() const
2726 return m_##LowerProperty.value;
2729 void set##UpperProperty##BaseValue(const PropertyType& type)
2731 m_##LowerProperty.value = type;
2734 Any code outside of svg/, eg. in rendering/svg, does not need to care about any baseVal/animVal differences.
2735 During layout eg. RenderSVGRect calls rect->x().value(someLengthContext) to get the current 'x' as float. If an animation
2736 is running on that rect element it will automatically retrieve the last set animated value here - all under the hood.
2737 I hope that sheds some light in those myserious functions, they were designed with animVal in mind, but we never had that until now :-)
2739 (WebCore::SVGAnimatedPropertyTearOff::SVGAnimatedPropertyTearOff): Pass around AnimatedPropertyType.
2740 (WebCore::SVGAnimatedPropertyTearOff::~SVGAnimatedPropertyTearOff): Add destructor to debug builds veryifing that m_isAnimating is false.
2741 * svg/properties/SVGAnimatedStaticPropertyTearOff.h: Ditto.
2742 (WebCore::SVGAnimatedStaticPropertyTearOff::create):
2743 (WebCore::SVGAnimatedStaticPropertyTearOff::SVGAnimatedStaticPropertyTearOff):
2744 * svg/properties/SVGAnimatedTransformListPropertyTearOff.h: Ditto.
2745 (WebCore::SVGAnimatedTransformListPropertyTearOff::create):
2746 (WebCore::SVGAnimatedTransformListPropertyTearOff::SVGAnimatedTransformListPropertyTearOff):
2747 * svg/properties/SVGPropertyInfo.h: Add SVGGenericAnimatedType definition.
2748 * svg/properties/SVGPropertyTearOff.h: Remove obsolete updateAnimVal method - switched to using setValue directly.
2750 2012-03-13 Luke Macpherson <macpherson@chromium.org>
2752 Implement CSSPropertyTextOverflow in CSSStyleApplyProperty.
2753 https://bugs.webkit.org/show_bug.cgi?id=80934
2755 Reviewed by Andreas Kling.
2757 No new tests / refactoring only.
2759 * css/CSSStyleApplyProperty.cpp:
2760 (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
2761 * css/CSSStyleSelector.cpp:
2762 (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2764 2012-03-12 Matt Falkenhagen <falken@chromium.org>
2766 Switch Chromium from LocaleToScriptMappingICU.cpp to LocaleToScriptMappingDefault.cpp
2767 https://bugs.webkit.org/show_bug.cgi?id=80935
2769 Reviewed by Kent Tamura.
2771 ICU seems to have issues with non-well-formed locale strings.
2772 Currently, the only port that uses LocaleToScriptMappingICU.cpp is
2775 No new tests. LocaleToScriptMappingDefault.cpp is already used by
2776 other ports and covered by existing tests.
2778 * WebCore.gyp/WebCore.gyp:
2780 2012-03-12 Benjamin Poulain <bpoulain@apple.com>
2782 Fix IndexedDB build with JSC
2783 https://bugs.webkit.org/show_bug.cgi?id=80207
2785 Reviewed by Adam Barth.
2787 This fixes the build of WebKit when IndexedDB is enabled. Most functions were added
2788 empty implementation, it compiles but IndexedDB is not working.
2790 * DerivedSources.make: Added missing IDL files.
2791 * Modules/indexeddb/IDBDatabaseBackendImpl.h: Fix warnings and build errors.
2792 (IDBDatabaseBackendImpl):
2793 * Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp: ditto.
2794 (WebCore::IDBDatabaseCallbacksImpl::unregisterDatabase): ditto.
2795 * Modules/indexeddb/IDBFactoryBackendImpl.cpp: ditto.
2796 (WebCore::IDBFactoryBackendImpl::openBackingStore):
2797 * Modules/indexeddb/IDBIndexBackendImpl.cpp: ditto.
2798 (WebCore::IDBIndexBackendImpl::countInternal):
2799 * Modules/indexeddb/IDBKeyPathBackendImpl.cpp: Fix the method signature and add
2800 an empty implementation.
2802 (WebCore::IDBKeyPathBackendImpl::createIDBKeysFromSerializedValuesAndKeyPath):
2803 (WebCore::IDBKeyPathBackendImpl::injectIDBKeyIntoSerializedValue):
2804 * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp: Fix warnings.
2805 (WebCore::IDBObjectStoreBackendImpl::countInternal):
2806 * Modules/indexeddb/IDBPendingTransactionMonitor.cpp: ditto.
2807 (WebCore::transactions):
2808 * Modules/indexeddb/IDBRequest.cpp: ditto.
2809 (WebCore::IDBRequest::resetReadyState):
2810 * Modules/indexeddb/IDBRequest.h: ditto.
2811 (WebCore::IDBRequest::onSuccessWithPrefetch):
2813 (WebCore::JSIDBVersionChangeRequest::visitChildren):
2814 * WebCore.xcodeproj/project.pbxproj:
2815 * bindings/js/IDBBindingUtilities.cpp:
2816 (WebCore::createIDBKeyFromValue): Fix the creation of IDBKeys.
2817 (WebCore::createOptionsObjectFromValue): Add an empty implementation of
2818 the handling of database options (IDBObjectStoreParameters).
2820 * bindings/js/IDBBindingUtilities.h:
2822 * bindings/js/JSIDBAnyCustom.cpp:
2823 (WebCore::toJS): Add the missing IDBAny's types.
2824 * bindings/js/JSIDBKeyCustom.cpp:
2825 (WebCore::toJS): Add the missing IDBKey's types.
2826 * bindings/js/JSIDBVersionChangeRequestCustom.cpp: Added.
2827 IDBVersionChangeRequest has the attribute EventTarget so it requires
2828 the visitChildren() function. An empty implementation was added.
2829 * bindings/js/OptionsObject.h: Add an empty implementation.
2832 (WebCore::OptionsObject::OptionsObject):
2833 (WebCore::OptionsObject::isObject):
2834 (WebCore::OptionsObject::isUndefinedOrNull):
2835 (WebCore::OptionsObject::get):
2836 (WebCore::OptionsObject::getWithUndefinedOrNullCheck):
2837 * bindings/js/SerializedScriptValue.cpp: Add the missing functions needed by IndexedDB.
2839 (WebCore::SerializedScriptValue::create):
2840 (WebCore::SerializedScriptValue::toWireString):
2841 (WebCore::SerializedScriptValue::createFromWire):
2842 (WebCore::SerializedScriptValue::numberValue):
2843 (WebCore::SerializedScriptValue::deserialize):
2844 * bindings/js/SerializedScriptValue.h:
2845 (SerializedScriptValue):
2846 * bindings/scripts/CodeGeneratorJS.pm: Modify the code generator to:
2847 -Support the IDBKey type correctly.
2848 -Support the OptionsObject type.
2849 -Generate valid function call for static functions.
2850 (GenerateImplementationFunctionCall):
2853 * inspector/InspectorIndexedDBAgent.cpp:
2856 2012-03-12 Sheriff Bot <webkit.review.bot@gmail.com>
2858 Unreviewed, rolling out r110529.
2859 http://trac.webkit.org/changeset/110529
2860 https://bugs.webkit.org/show_bug.cgi?id=80969
2862 breaks mac build (Requested by morrita on #webkit).
2864 * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
2865 (WebCore::computeUnoccludedContentRect):
2867 2012-03-12 Sheriff Bot <webkit.review.bot@gmail.com>
2869 Unreviewed, rolling out r110524.
2870 http://trac.webkit.org/changeset/110524
2871 https://bugs.webkit.org/show_bug.cgi?id=80936
2873 breaks chromium win build. (Requested by morrita on #webkit).
2878 * bindings/scripts/CodeGeneratorJS.pm:
2880 (GenerateImplementation):
2881 * bindings/scripts/CodeGeneratorV8.pm:
2883 (GenerateNamedConstructorCallback):
2884 (GenerateImplementation):
2885 * bindings/scripts/IDLAttributes.txt:
2886 * bindings/scripts/test/V8/V8Float64Array.cpp:
2888 * bindings/scripts/test/V8/V8Float64Array.h:
2890 * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2892 * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
2893 (V8TestActiveDOMObject):
2894 * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2896 * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
2897 (V8TestCustomNamedGetter):
2898 * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2900 * bindings/scripts/test/V8/V8TestEventConstructor.h:
2901 (V8TestEventConstructor):
2902 * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2904 * bindings/scripts/test/V8/V8TestEventTarget.h:
2905 (V8TestEventTarget):
2906 * bindings/scripts/test/V8/V8TestInterface.cpp:
2908 * bindings/scripts/test/V8/V8TestInterface.h:
2910 * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2912 * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
2913 (V8TestMediaQueryListListener):
2914 * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2916 * bindings/scripts/test/V8/V8TestNamedConstructor.h:
2917 (V8TestNamedConstructor):
2918 * bindings/scripts/test/V8/V8TestObj.cpp:
2920 * bindings/scripts/test/V8/V8TestObj.h:
2922 * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2924 * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
2925 (V8TestSerializedScriptValueInterface):
2926 * bindings/v8/NPV8Object.cpp:
2927 (WebCore::npObjectTypeInfo):
2928 * bindings/v8/V8GCController.cpp:
2929 (WebCore::GrouperVisitor::visitDOMWrapper):
2930 * bindings/v8/WrapperTypeInfo.h:
2933 * bindings/v8/custom/V8CSSStyleSheetCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8StyleSheetCustom.cpp.
2936 * bindings/v8/custom/V8DOMStringMapCustom.cpp:
2939 * bindings/v8/custom/V8DOMTokenListCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8StyleSheetCustom.cpp.
2942 * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
2944 * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
2947 * bindings/v8/custom/V8StyleSheetCustom.cpp:
2949 * css/CSSStyleSheet.idl:
2950 * css/StyleSheet.idl:
2951 * dom/DOMStringMap.idl:
2952 * dom/NamedNodeMap.idl:
2953 * html/DOMTokenList.idl:
2954 * html/track/TextTrackList.idl:
2956 2012-03-12 Kentaro Hara <haraken@chromium.org>
2958 [V8][Refactoring] Remove getCachedWrapperSlow() from V8Bindings.cpp
2959 https://bugs.webkit.org/show_bug.cgi?id=80924
2961 Reviewed by Adam Barth.
2963 getCachedWrapperSlow() is called by getCachedWrapper() only,
2964 and getCachedWrapperSlow() just calls getCachedWrapperInline().
2965 Thus, this patch expands getCachedWrapperInline() into getCachedWrapper(),
2966 and removes getCachedWrapperSlow().
2968 No tests. No change in behavior.
2970 * bindings/v8/V8DOMWrapper.cpp:
2971 * bindings/v8/V8DOMWrapper.h:
2972 (WebCore::V8DOMWrapper::getCachedWrapper):
2974 2012-03-12 Kentaro Hara <haraken@chromium.org>
2976 [V8][Refactoring] Remove existingWrapper() from generated code
2977 https://bugs.webkit.org/show_bug.cgi?id=80927
2979 Reviewed by Adam Barth.
2981 Currently wrap() calls existingWrapper(), and existingWrapper()
2982 just calls getCachedWrapper(). We can remove existingWrapper() from the generated code.
2984 Test: bindings/scripts/test/*
2986 * bindings/scripts/CodeGeneratorV8.pm: Removed existingWrapper().
2988 (GenerateNormalAttrGetter):
2990 * bindings/scripts/test/V8/V8Float64Array.h: Updated run-bindings-tests results.
2992 (WebCore::V8Float64Array::wrap):
2993 * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
2994 (V8TestActiveDOMObject):
2995 (WebCore::V8TestActiveDOMObject::wrap):
2996 * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
2997 (V8TestCustomNamedGetter):
2998 (WebCore::V8TestCustomNamedGetter::wrap):
2999 * bindings/scripts/test/V8/V8TestEventConstructor.h:
3000 (V8TestEventConstructor):
3001 (WebCore::V8TestEventConstructor::wrap):
3002 * bindings/scripts/test/V8/V8TestEventTarget.h:
3003 (V8TestEventTarget):
3004 (WebCore::V8TestEventTarget::wrap):
3005 * bindings/scripts/test/V8/V8TestInterface.h:
3007 (WebCore::V8TestInterface::wrap):
3008 * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
3009 (V8TestMediaQueryListListener):
3010 (WebCore::V8TestMediaQueryListListener::wrap):
3011 * bindings/scripts/test/V8/V8TestNamedConstructor.h:
3012 (V8TestNamedConstructor):
3013 (WebCore::V8TestNamedConstructor::wrap):
3014 * bindings/scripts/test/V8/V8TestObj.cpp:
3015 (WebCore::TestObjInternal::readOnlyTestObjAttrAttrGetter):
3016 (WebCore::TestObjInternal::cachedAttribute1AttrGetter):
3017 (WebCore::TestObjInternal::cachedAttribute2AttrGetter):
3018 * bindings/scripts/test/V8/V8TestObj.h:
3020 (WebCore::V8TestObj::wrap):
3021 * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
3022 (V8TestSerializedScriptValueInterface):
3023 (WebCore::V8TestSerializedScriptValueInterface::wrap):
3025 2012-03-12 Dana Jansens <danakj@chromium.org>
3027 [chromium] Use tileRect instead of pointer derefs
3028 https://bugs.webkit.org/show_bug.cgi?id=80919
3030 Reviewed by Adrienne Walker.
3032 Covered by existing tests.
3034 * platform/graphics/chromium/LayerRendererChromium.cpp:
3035 (WebCore::LayerRendererChromium::drawTileQuad):
3037 2012-03-12 Hans Muller <hmuller@adobe.com>
3039 SVG should support transform-origin and relative values
3040 https://bugs.webkit.org/show_bug.cgi?id=79068
3042 Reviewed by Dirk Schulze.
3044 Added SVG support for the CSS 'transform-origin' property and for percentage
3045 values in the transform translate function. The changes conform to
3046 http://dev.w3.org/csswg/css3-transforms/.
3048 Tests: svg/transforms/percent-transform-values.xhtml
3049 svg/transforms/transform-origin-css-property.xhtml
3054 Default transform-origin for SVG elements is 0 0.
3056 * platform/Length.h:
3057 (WebCore::Length::calcFloatValue):
3058 Added a calcFloatValue overload whose max parameter (for percent lengths) is a float.
3059 The original version will be obsolete when the sub-pixel layout support is completed.
3061 * rendering/style/RenderStyle.cpp:
3062 * rendering/style/RenderStyle.h:
3064 (WebCore::requireTransformOrigin):
3065 Transforms that only include translations don't depend on the transform-origin.
3067 (WebCore::RenderStyle::applyTransform):
3068 SVG elements interpret non-percentage/keyword transform-origin values relative to their viewport,
3069 unlike HTML which interprets all transform-origin values relative to the element's origin.
3070 The new FloatRect applyTransform() function handles SVG semantics. Similarly, SVG elements interpret
3071 percentage/keyword transform-origin values relative to the origin of their objectBoundingBox(), HTML
3072 uses the borderBox. All this per http://dev.w3.org/csswg/css3-transforms/.
3074 * svg/SVGStyledTransformableElement.cpp:
3075 (WebCore::SVGStyledTransformableElement::animatedLocalTransform):
3077 2012-03-12 Dana Jansens <danakj@chromium.org>
3079 [chromium] Use projectQuad to apply inverse mapRect
3080 https://bugs.webkit.org/show_bug.cgi?id=80741
3082 Reviewed by Adrienne Walker.
3084 Unit test: CCOcclusionTrackerTest3dTransform
3085 CCOcclusionTrackerTestPerspectiveTransform
3086 CCOcclusionTrackerTestPerspectiveTransformBehindCamera
3088 * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
3089 (WebCore::projectQuad):
3091 (WebCore::computeUnoccludedContentRect):
3093 2012-03-12 Leo Yang <leo.yang@torchmobile.com.cn>
3095 [BlackBerry] Upstream the BlackBerry change to platform/graphics/FontPlatformData.h
3096 https://bugs.webkit.org/show_bug.cgi?id=80820
3098 Reviewed by Rob Buis.
3100 The BlackBerry is using the FontPlatformData from Chromium porting.
3102 * platform/graphics/FontPlatformData.h:
3104 2012-03-12 Zhenyao Mo <zmo@google.com>
3106 After webgl canvas resize, bindings might be lost
3107 https://bugs.webkit.org/show_bug.cgi?id=80895
3109 Reviewed by Stephen White.
3111 Test: fast/canvas/webgl/texture-bindings-uneffected-on-resize.html
3113 * html/canvas/WebGLRenderingContext.cpp:
3115 (WebCore::WebGLRenderingContext::reshape): recover bindings after reshape.
3117 2012-03-12 Kentaro Hara <haraken@chromium.org>
3119 [V8][Refactoring] Remove getWrapper() and getWrapperSlow()
3120 https://bugs.webkit.org/show_bug.cgi?id=80920
3122 Reviewed by Adam Barth.
3124 Now getWrapper() is the same as getExistingWrapper().
3125 getWrapperSlow() is the same as getExistingWrapperSlow().
3126 This patch removes getWrapper() and getWrapperSlow().
3127 Also this patch renames getExistingWrapper() to getCachedWrapper().
3129 No tests. No change in behavior.
3131 * bindings/scripts/CodeGeneratorV8.pm:
3133 * bindings/v8/V8DOMWrapper.cpp:
3134 (WebCore::V8DOMWrapper::getWrapperSlow):
3135 * bindings/v8/V8DOMWrapper.h:
3136 (WebCore::V8DOMWrapper::getWrapper):
3138 * bindings/v8/custom/V8NodeCustom.cpp:
3139 (WebCore::toV8Slow):
3141 2012-03-12 Erik Arvidsson <arv@chromium.org>
3143 [V8] Use v8::V8::AddHiddenReferences instead of SetHiddenValue
3144 https://bugs.webkit.org/show_bug.cgi?id=80880
3146 Reviewed by Adam Barth.
3148 We used to add a hidden property in the getter to the returned wrapper.
3149 With this patch we instead handle the liveness of the wrapper in the GC phase by
3150 calling v8::V8::AddHiddenReference.
3152 To reduce the amount of custom code we need, the V8 code generator now supports
3153 GenerateIsReachable (as well as CustomIsReachable) which, even though different
3154 from the JSC attribute, is used in the same cases and takes the same values (even though
3155 at the moment not all JSC values are supported by V8).
3157 No new tests. Covered by existing tests.
3162 * bindings/scripts/CodeGeneratorJS.pm:
3163 (GetGenerateIsReachable):
3164 (GetCustomIsReachable):
3166 (GenerateImplementation):
3167 * bindings/scripts/CodeGeneratorV8.pm:
3168 (NeedsToVisitDOMWrapper):
3169 (GetGenerateIsReachable):
3170 (GetCustomIsReachable):
3171 (GenerateVisitDOMWrapper):
3173 (GenerateNamedConstructorCallback):
3174 (GenerateImplementation):
3175 * bindings/scripts/IDLAttributes.txt:
3176 * bindings/scripts/test/V8/V8Float64Array.cpp:
3178 * bindings/scripts/test/V8/V8Float64Array.h:
3180 * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
3182 * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
3183 (V8TestActiveDOMObject):
3184 * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
3186 * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
3187 (V8TestCustomNamedGetter):
3188 * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
3190 * bindings/scripts/test/V8/V8TestEventConstructor.h:
3191 (V8TestEventConstructor):
3192 * bindings/scripts/test/V8/V8TestEventTarget.cpp:
3194 * bindings/scripts/test/V8/V8TestEventTarget.h:
3195 (V8TestEventTarget):
3196 * bindings/scripts/test/V8/V8TestInterface.cpp:
3198 * bindings/scripts/test/V8/V8TestInterface.h:
3200 * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
3202 * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
3203 (V8TestMediaQueryListListener):
3204 * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
3206 * bindings/scripts/test/V8/V8TestNamedConstructor.h:
3207 (V8TestNamedConstructor):
3208 * bindings/scripts/test/V8/V8TestObj.cpp:
3210 * bindings/scripts/test/V8/V8TestObj.h:
3212 * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
3214 * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
3215 (V8TestSerializedScriptValueInterface):
3216 * bindings/v8/NPV8Object.cpp:
3217 (WebCore::npObjectTypeInfo):
3218 * bindings/v8/V8GCController.cpp:
3219 (WebCore::GrouperVisitor::visitDOMWrapper):
3220 * bindings/v8/WrapperTypeInfo.h:
3223 * bindings/v8/custom/V8CSSStyleSheetCustom.cpp: Removed.
3224 * bindings/v8/custom/V8DOMStringMapCustom.cpp:
3225 * bindings/v8/custom/V8DOMTokenListCustom.cpp: Removed.
3226 * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
3228 * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
3229 * bindings/v8/custom/V8StyleSheetCustom.cpp:
3231 * css/CSSStyleSheet.idl:
3232 * css/StyleSheet.idl:
3233 * dom/DOMStringMap.idl:
3234 * dom/NamedNodeMap.idl:
3235 * html/DOMTokenList.idl:
3236 * html/track/TextTrackList.idl:
3238 2012-03-12 Kentaro Hara <haraken@chromium.org>
3240 [V8][Refactoring] Make getWrapperSlow() and getExistingWrapperSlow() same
3241 https://bugs.webkit.org/show_bug.cgi?id=80916
3243 Reviewed by Adam Barth.
3245 This is one of the steps for fixing bug 80841.
3246 This patch makes getWrapperSlow() and getExistingWrapperSlow() same.
3247 In the next patch, we will remove getExistingWrapper() and getExistingWrapperSlow().
3249 No tests. No change in behavior.
3251 * bindings/scripts/CodeGeneratorV8.pm:
3253 * bindings/v8/V8DOMWrapper.cpp:
3254 (WebCore::V8DOMWrapper::getWrapperSlow):
3256 2012-03-12 Kentaro Hara <haraken@chromium.org>
3258 [V8] Refactor some header includes in V8 bindings
3259 https://bugs.webkit.org/show_bug.cgi?id=80913
3261 Reviewed by Adam Barth.
3263 This patch refactors some header includes in V8 bindings
3264 required for fixing bug 80841.
3266 No tests. No change in behavior.
3268 * bindings/v8/DOMDataStore.h:
3270 * bindings/v8/V8DOMMap.h:
3271 * bindings/v8/V8DOMWrapper.cpp:
3272 * bindings/v8/V8IsolatedContext.cpp:
3273 (WebCore::V8IsolatedContext::isolatedContext):
3274 * bindings/v8/V8IsolatedContext.h:
3275 (WebCore::V8IsolatedContext::getEntered):
3276 (V8IsolatedContext):
3277 * bindings/v8/WorldContextHandle.cpp:
3279 2012-03-12 Sheriff Bot <webkit.review.bot@gmail.com>
3281 Unreviewed, rolling out r110501.
3282 http://trac.webkit.org/changeset/110501
3283 https://bugs.webkit.org/show_bug.cgi?id=80908
3285 Broke the Apple-Win build (Requested by abarth on #webkit).
3288 * DerivedSources.make:
3289 * DerivedSources.pri:
3291 * GNUmakefile.list.am:
3293 * WebCore.gyp/WebCore.gyp:
3296 * WebCore.xcodeproj/project.pbxproj:
3297 * fileapi/DirectoryEntry.cpp: Renamed from Source/WebCore/Modules/filesystem/DirectoryEntry.cpp.
3299 (WebCore::DirectoryEntry::DirectoryEntry):
3300 (WebCore::DirectoryEntry::createReader):
3301 (WebCore::DirectoryEntry::getFile):
3302 (WebCore::DirectoryEntry::getDirectory):
3303 (WebCore::DirectoryEntry::removeRecursively):
3304 * fileapi/DirectoryEntry.h: Renamed from Source/WebCore/Modules/filesystem/DirectoryEntry.h.
3307 (WebCore::DirectoryEntry::create):
3308 (WebCore::DirectoryEntry::isDirectory):
3309 * fileapi/DirectoryEntry.idl: Renamed from Source/WebCore/Modules/filesystem/DirectoryEntry.idl.
3310 * fileapi/DirectoryEntrySync.cpp: Renamed from Source/WebCore/Modules/filesystem/DirectoryEntrySync.cpp.
3312 (WebCore::DirectoryEntrySync::DirectoryEntrySync):
3313 (WebCore::DirectoryEntrySync::createReader):
3314 (WebCore::DirectoryEntrySync::getFile):
3315 (WebCore::DirectoryEntrySync::getDirectory):
3316 (WebCore::DirectoryEntrySync::removeRecursively):
3317 * fileapi/DirectoryEntrySync.h: Renamed from Source/WebCore/Modules/filesystem/DirectoryEntrySync.h.
3319 (DirectoryEntrySync):
3320 (WebCore::DirectoryEntrySync::create):
3321 (WebCore::DirectoryEntrySync::isDirectory):
3322 * fileapi/DirectoryEntrySync.idl: Renamed from Source/WebCore/Modules/filesystem/DirectoryEntrySync.idl.
3323 * fileapi/DirectoryReader.cpp: Renamed from Source/WebCore/Modules/filesystem/DirectoryReader.cpp.
3325 (WebCore::DirectoryReader::DirectoryReader):
3326 (WebCore::DirectoryReader::readEntries):
3327 * fileapi/DirectoryReader.h: Renamed from Source/WebCore/Modules/filesystem/DirectoryReader.h.
3330 (WebCore::DirectoryReader::create):
3331 (WebCore::DirectoryReader::filesystem):
3332 * fileapi/DirectoryReader.idl: Renamed from Source/WebCore/Modules/filesystem/DirectoryReader.idl.
3333 * fileapi/DirectoryReaderBase.h: Renamed from Source/WebCore/Modules/filesystem/DirectoryReaderBase.h.
3335 (DirectoryReaderBase):
3336 (WebCore::DirectoryReaderBase::filesystem):
3337 (WebCore::DirectoryReaderBase::setHasMoreEntries):
3338 (WebCore::DirectoryReaderBase::DirectoryReaderBase):
3339 * fileapi/DirectoryReaderSync.cpp: Renamed from Source/WebCore/Modules/filesystem/DirectoryReaderSync.cpp.
3341 (WebCore::DirectoryReaderSync::DirectoryReaderSync):
3342 (WebCore::DirectoryReaderSync::readEntries):
3343 * fileapi/DirectoryReaderSync.h: Renamed from Source/WebCore/Modules/filesystem/DirectoryReaderSync.h.
3345 (DirectoryReaderSync):
3346 (WebCore::DirectoryReaderSync::create):
3347 * fileapi/DirectoryReaderSync.idl: Renamed from Source/WebCore/Modules/filesystem/DirectoryReaderSync.idl.
3349 2012-03-12 Nico Weber <thakis@chromium.org>
3351 [chromium/mac] Make sure libWebKitSystemInterface.a doesn't contain ppc object files.
3352 https://bugs.webkit.org/show_bug.cgi?id=80902
3354 Reviewed by Adam Barth.
3356 Follow-up to http://codereview.chromium.org/9638015/
3358 No intended behavior change.
3360 * WebCore.gyp/mac/adjust_visibility.sh:
3362 2012-03-12 Jer Noble <jer.noble@apple.com>
3364 WebCore: Add support for AudioNode "tailTime()" and "latencyTime()"
3365 https://bugs.webkit.org/show_bug.cgi?id=74750
3367 Reviewed by Chris Rogers.
3369 No new tests; optimization of existing code path, so covered by existing tests.
3371 To account for AudioNodes which may generate non-silent audio when fed silent input
3372 for a certain amount of time after the last non-silent audio data, add two new virtual
3373 functions tailTime() and latencyTime().
3375 * webaudio/AudioNode.h:
3376 (WebCore::AudioNode::tailTime): Added. Pure virtual.
3377 (WebCore::AudioNode::latencyTime): Added. Pure virtual.
3378 * platform/audio/AudioProcessor.h:
3379 (WebCore::AudioProcessor::tailTime): Added. Pure virtual.
3380 (WebCore::AudioProcessor::latencyTime): Added. Pure virtual.
3381 * platform/audio/AudioDSPKernel.h:
3382 (WebCore::AudioDSPKernel::tailTime): Added. Pure virtual.
3383 (WebCore::AudioDSPKernel::latencyTime): Added. Pure virtual.
3385 Added tailTime() and latencyTime() overrides to the following classes:
3386 * platform/audio/AudioDSPKernelProcessor.cpp:
3387 (WebCore::AudioDSPKernelProcessor::tailTime):
3388 (WebCore::AudioDSPKernelProcessor::latencyTime):
3389 * platform/audio/AudioDSPKernelProcessor.h:
3390 * platform/audio/DynamicsCompressor.h:
3391 (WebCore::DynamicsCompressor::tailTime):
3392 (WebCore::DynamicsCompressor::latencyTime):
3393 * platform/audio/EqualPowerPanner.h:
3394 * platform/audio/HRTFPanner.cpp:
3395 (WebCore::HRTFPanner::tailTime):
3396 (WebCore::HRTFPanner::latencyTime):
3397 * platform/audio/HRTFPanner.h:
3398 * platform/audio/Panner.h:
3399 * webaudio/AudioBasicProcessorNode.cpp:
3400 (WebCore::AudioBasicProcessorNode::tailTime):
3401 (WebCore::AudioBasicProcessorNode::latencyTime):
3402 * webaudio/AudioBasicProcessorNode.h:
3403 * webaudio/AudioChannelMerger.h:
3404 * webaudio/AudioChannelSplitter.h:
3405 * webaudio/AudioDestinationNode.h:
3406 * webaudio/AudioGainNode.h:
3407 * webaudio/AudioPannerNode.h:
3408 * webaudio/AudioSourceNode.h:
3409 * webaudio/BiquadDSPKernel.cpp:
3410 (WebCore::BiquadDSPKernel::tailTime):
3411 (WebCore::BiquadDSPKernel::latencyTime):
3412 * webaudio/BiquadDSPKernel.h:
3413 * webaudio/BiquadFilterNode.h:
3414 * webaudio/ConvolverNode.cpp:
3415 (WebCore::ConvolverNode::tailTime):
3416 (WebCore::ConvolverNode::latencyTime):
3417 * webaudio/ConvolverNode.h:
3418 * webaudio/DelayDSPKernel.cpp: