[webkit-changes] [212603] trunk/Source/WebInspectorUI
Title: [212603] trunk/Source/WebInspectorUI Revision 212603 Author nvasil...@apple.com Date 2017-02-17 22:57:42 -0800 (Fri, 17 Feb 2017) Log Message Web Inspector: Use Maps in FrameResourceManager instead of objects https://bugs.webkit.org/show_bug.cgi?id=168549 Reviewed by Joseph Pecoraro. Use Map for _frameIdentifierMap and _resourceRequestIdentifierMap. * UserInterface/Controllers/FrameResourceManager.js: (WebInspector.FrameResourceManager.prototype.initialize): (WebInspector.FrameResourceManager.prototype.get frames): (WebInspector.FrameResourceManager.prototype.frameForIdentifier): (WebInspector.FrameResourceManager.prototype.frameDidDetach): (WebInspector.FrameResourceManager.prototype.resourceRequestWillBeSent): (WebInspector.FrameResourceManager.prototype.markResourceRequestAsServedFromMemoryCache): (WebInspector.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache): (WebInspector.FrameResourceManager.prototype.resourceRequestDidReceiveResponse): (WebInspector.FrameResourceManager.prototype.resourceRequestDidReceiveData): (WebInspector.FrameResourceManager.prototype.resourceRequestDidFinishLoading): (WebInspector.FrameResourceManager.prototype.resourceRequestDidFailLoading): (WebInspector.FrameResourceManager.prototype._addNewResourceToFrameOrTarget): (WebInspector.FrameResourceManager.prototype._processMainFrameResourceTreePayload): (WebInspector.FrameResourceManager.prototype._createFrame): Modified Paths trunk/Source/WebInspectorUI/ChangeLog trunk/Source/WebInspectorUI/UserInterface/Controllers/FrameResourceManager.js Diff Modified: trunk/Source/WebInspectorUI/ChangeLog (212602 => 212603) --- trunk/Source/WebInspectorUI/ChangeLog 2017-02-18 06:41:48 UTC (rev 212602) +++ trunk/Source/WebInspectorUI/ChangeLog 2017-02-18 06:57:42 UTC (rev 212603) @@ -1,3 +1,29 @@ +2017-02-17 Nikita Vasilyev + +Web Inspector: Use Maps in FrameResourceManager instead of objects +https://bugs.webkit.org/show_bug.cgi?id=168549 + + +Reviewed by Joseph Pecoraro. + +Use Map for _frameIdentifierMap and _resourceRequestIdentifierMap. + +* UserInterface/Controllers/FrameResourceManager.js: +(WebInspector.FrameResourceManager.prototype.initialize): +(WebInspector.FrameResourceManager.prototype.get frames): +(WebInspector.FrameResourceManager.prototype.frameForIdentifier): +(WebInspector.FrameResourceManager.prototype.frameDidDetach): +(WebInspector.FrameResourceManager.prototype.resourceRequestWillBeSent): +(WebInspector.FrameResourceManager.prototype.markResourceRequestAsServedFromMemoryCache): +(WebInspector.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache): +(WebInspector.FrameResourceManager.prototype.resourceRequestDidReceiveResponse): +(WebInspector.FrameResourceManager.prototype.resourceRequestDidReceiveData): +(WebInspector.FrameResourceManager.prototype.resourceRequestDidFinishLoading): +(WebInspector.FrameResourceManager.prototype.resourceRequestDidFailLoading): +(WebInspector.FrameResourceManager.prototype._addNewResourceToFrameOrTarget): +(WebInspector.FrameResourceManager.prototype._processMainFrameResourceTreePayload): +(WebInspector.FrameResourceManager.prototype._createFrame): + 2017-02-17 Brian Burg Web Inspector: RTL: Inspector window should dock to the left when using RTL layout direction Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/FrameResourceManager.js (212602 => 212603) --- trunk/Source/WebInspectorUI/UserInterface/Controllers/FrameResourceManager.js 2017-02-18 06:41:48 UTC (rev 212602) +++ trunk/Source/WebInspectorUI/UserInterface/Controllers/FrameResourceManager.js 2017-02-18 06:57:42 UTC (rev 212603) @@ -45,9 +45,9 @@ { var oldMainFrame = this._mainFrame; -this._frameIdentifierMap = {}; +this._frameIdentifierMap = new Map; this._mainFrame = null; -this._resourceRequestIdentifierMap = {}; +this._resourceRequestIdentifierMap = new Map; this._orphanedResources = new Map; if (this._mainFrame !== oldMainFrame) @@ -65,16 +65,12 @@ get frames() { -var frames = []; -for (var key in this._frameIdentifierMap) -frames.push(this._frameIdentifierMap[key]); - -return frames; +return [...this._frameIdentifierMap.values()]; } frameForIdentifier(frameId) { -return this._frameIdentifierMap[frameId] || null; +return this._frameIdentifierMap.get(frameId) || null; } frameDidNavigate(framePayload) @@ -155,7 +151,7 @@ if (frame.parentFrame) frame.parentFrame.removeChildFrame(frame); -delete this._frameIdentifierMap[frame.id]; +this._frameIdentifierMap.delete(frame.id); var oldMainFrame = this._mainFrame; @@ -186,7 +182,7 @@ var o
[webkit-changes] [212602] trunk/Source/WebCore
Title: [212602] trunk/Source/WebCore Revision 212602 Author simon.fra...@apple.com Date 2017-02-17 22:41:48 -0800 (Fri, 17 Feb 2017) Log Message Allow properties in CSSProperties.json that don't trigger code generation https://bugs.webkit.org/show_bug.cgi?id=168535 Reviewed by Sam Weinig. In order to track the development of CSS properties that we have not yet implemented, support '"skip-codegen" : true' in "codegen-properties". Test by adding a few fill-related properties with this attribute. * css/CSSProperties.json: * css/makeprop.pl: (isPropertyEnabled): (addProperty): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/css/CSSProperties.json trunk/Source/WebCore/css/makeprop.pl Diff Modified: trunk/Source/WebCore/ChangeLog (212601 => 212602) --- trunk/Source/WebCore/ChangeLog 2017-02-18 01:13:01 UTC (rev 212601) +++ trunk/Source/WebCore/ChangeLog 2017-02-18 06:41:48 UTC (rev 212602) @@ -1,3 +1,20 @@ +2017-02-17 Simon Fraser + +Allow properties in CSSProperties.json that don't trigger code generation +https://bugs.webkit.org/show_bug.cgi?id=168535 + +Reviewed by Sam Weinig. + +In order to track the development of CSS properties that we have not yet implemented, +support '"skip-codegen" : true' in "codegen-properties". + +Test by adding a few fill-related properties with this attribute. + +* css/CSSProperties.json: +* css/makeprop.pl: +(isPropertyEnabled): +(addProperty): + 2017-02-17 Brian Burg Web Inspector: RTL: Inspector window should dock to the left when using RTL layout direction Modified: trunk/Source/WebCore/css/CSSProperties.json (212601 => 212602) --- trunk/Source/WebCore/css/CSSProperties.json 2017-02-18 01:13:01 UTC (rev 212601) +++ trunk/Source/WebCore/css/CSSProperties.json 2017-02-18 06:41:48 UTC (rev 212602) @@ -4200,6 +4200,26 @@ "codegen-properties": { "enable-if": "ENABLE_APPLE_PAY" } +}, +"fill-color" : { +"codegen-properties": { +"skip-codegen": true +} +}, +"fill-image" : { +"codegen-properties": { +"skip-codegen": true +} +}, +"fill-origin" : { +"codegen-properties": { +"skip-codegen": true +} +}, +"fill-position" : { +"codegen-properties": { +"skip-codegen": true +} } } } Modified: trunk/Source/WebCore/css/makeprop.pl (212601 => 212602) --- trunk/Source/WebCore/css/makeprop.pl 2017-02-18 01:13:01 UTC (rev 212601) +++ trunk/Source/WebCore/css/makeprop.pl 2017-02-18 06:41:48 UTC (rev 212602) @@ -106,9 +106,16 @@ sub isPropertyEnabled($) { my ($optionsHashRef) = @_; -if (!$optionsHashRef->{"codegen-properties"} || !$optionsHashRef->{"codegen-properties"}{"enable-if"}) { + +if (!exists($optionsHashRef->{"codegen-properties"})) { return 1; } +if ($optionsHashRef->{"codegen-properties"}{"skip-codegen"}) { +return 0; +} +if (!exists($optionsHashRef->{"codegen-properties"}{"enable-if"})) { +return 1; +} if (exists($defines{$optionsHashRef->{"codegen-properties"}{"enable-if"}})) { return 1; } @@ -134,6 +141,8 @@ for my $codegenOptionName (keys %$codegenProperties) { if ($codegenOptionName eq "enable-if") { next; +} elsif ($codegenOptionName eq "skip-codegen") { +next; } elsif ($codegenOptionName eq "high-priority") { $nameIsHighPriority{$name} = 1; } elsif ($codegenOptionName eq "aliases") { @@ -144,7 +153,7 @@ # internal-only properties exist to make it easier to parse compound properties (e.g. background-repeat) as if they were shorthands. push @internalProprerties, $name } else { -die "Unrecognized codegen property \"$optionName\" for $name property."; +die "Unrecognized codegen property \"$codegenOptionName\" for $name property."; } } } elsif ($optionName eq "animatable") { ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [212601] branches/safari-603-branch/Source/WebCore
Title: [212601] branches/safari-603-branch/Source/WebCore Revision 212601 Author matthew_han...@apple.com Date 2017-02-17 17:13:01 -0800 (Fri, 17 Feb 2017) Log Message Merge r212554. rdar://problem/30339638 Modified Paths branches/safari-603-branch/Source/WebCore/ChangeLog branches/safari-603-branch/Source/WebCore/dom/Document.cpp branches/safari-603-branch/Source/WebCore/dom/Document.h branches/safari-603-branch/Source/WebCore/page/Frame.cpp Diff Modified: branches/safari-603-branch/Source/WebCore/ChangeLog (212600 => 212601) --- branches/safari-603-branch/Source/WebCore/ChangeLog 2017-02-18 01:12:58 UTC (rev 212600) +++ branches/safari-603-branch/Source/WebCore/ChangeLog 2017-02-18 01:13:01 UTC (rev 212601) @@ -1,5 +1,31 @@ 2017-02-17 Matthew Hanson +Merge r212554. rdar://problem/30339638 + +2017-02-16 Brent Fulgham + +RenderView needs to be updated when FrameView changes +https://bugs.webkit.org/show_bug.cgi?id=168481 + + +Reviewed by Andreas Kling. + +The state of the Document's RenderView can get out of sync with the Frame's FrameView. +We need a notification mechanism so that modifications to the Frame's view are properly +relayed to Document so that it can have a correct RenderView. + +* dom/Document.cpp: +(WebCore::Document::didBecomeCurrentDocumentInView): Create an updated render tree (if +one does not already exist). +(WebCore::Document::destroyRenderTree): Remove an incorrect ASSERT. We may enter this +code when the Frame uses 'setView(nullptr)', which happens during certain updates. +* dom/Document.h: +* page/Frame.cpp: +(WebCore::Frame::setView): Destroy the old render tree (if present) before switching to +the new view. Then notify the document that it is now the current document in the new view. + +2017-02-17 Matthew Hanson + Merge r212354. rdar://problem/30450371 2017-02-14 Ryosuke Niwa Modified: branches/safari-603-branch/Source/WebCore/dom/Document.cpp (212600 => 212601) --- branches/safari-603-branch/Source/WebCore/dom/Document.cpp 2017-02-18 01:12:58 UTC (rev 212600) +++ branches/safari-603-branch/Source/WebCore/dom/Document.cpp 2017-02-18 01:13:01 UTC (rev 212601) @@ -2227,6 +2227,13 @@ observeFrame(nullptr); } +void Document::didBecomeCurrentDocumentInView() +{ +ASSERT(view()); +if (!hasLivingRenderTree()) +createRenderTree(); +} + void Document::frameDestroyed() { // disconnectFromFrame() must be called before destroying the Frame. Modified: branches/safari-603-branch/Source/WebCore/dom/Document.h (212600 => 212601) --- branches/safari-603-branch/Source/WebCore/dom/Document.h 2017-02-18 01:12:58 UTC (rev 212600) +++ branches/safari-603-branch/Source/WebCore/dom/Document.h 2017-02-18 01:13:01 UTC (rev 212601) @@ -566,6 +566,7 @@ void destroyRenderTree(); void disconnectFromFrame(); void prepareForDestruction(); +void didBecomeCurrentDocumentInView(); // Override ScriptExecutionContext methods to do additional work bool shouldBypassMainWorldContentSecurityPolicy() const final; Modified: branches/safari-603-branch/Source/WebCore/page/Frame.cpp (212600 => 212601) --- branches/safari-603-branch/Source/WebCore/page/Frame.cpp 2017-02-18 01:12:58 UTC (rev 212600) +++ branches/safari-603-branch/Source/WebCore/page/Frame.cpp 2017-02-18 01:13:01 UTC (rev 212601) @@ -256,8 +256,15 @@ if (m_eventHandler) m_eventHandler->clear(); +bool hadLivingRenderTree = m_doc ? m_doc->hasLivingRenderTree() : false; +if (hadLivingRenderTree) +m_doc->destroyRenderTree(); + m_view = WTFMove(view); +if (hadLivingRenderTree && m_view) +m_doc->didBecomeCurrentDocumentInView(); + // Only one form submission is allowed per view of a part. // Since this part may be getting reused as a result of being // pulled from the back/forward cache, reset this flag. ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [212599] branches/safari-603-branch
Title: [212599] branches/safari-603-branch Revision 212599 Author matthew_han...@apple.com Date 2017-02-17 17:12:53 -0800 (Fri, 17 Feb 2017) Log Message Merge r212265. rdar://problem/30231732 Modified Paths branches/safari-603-branch/LayoutTests/ChangeLog branches/safari-603-branch/Source/WTF/ChangeLog branches/safari-603-branch/Source/WTF/wtf/Assertions.h branches/safari-603-branch/Source/WebCore/ChangeLog branches/safari-603-branch/Source/WebCore/platform/graphics/BitmapImage.cpp branches/safari-603-branch/Source/WebCore/platform/graphics/BitmapImage.h branches/safari-603-branch/Source/WebCore/platform/graphics/ImageFrameCache.cpp branches/safari-603-branch/Source/WebCore/platform/graphics/ImageFrameCache.h branches/safari-603-branch/Source/WebCore/platform/graphics/ImageSource.cpp branches/safari-603-branch/Source/WebCore/platform/graphics/ImageSource.h Added Paths branches/safari-603-branch/LayoutTests/fast/images/animated-image-draw-while-decode-expected.txt branches/safari-603-branch/LayoutTests/fast/images/animated-image-draw-while-decode.html Diff Modified: branches/safari-603-branch/LayoutTests/ChangeLog (212598 => 212599) --- branches/safari-603-branch/LayoutTests/ChangeLog 2017-02-18 01:12:47 UTC (rev 212598) +++ branches/safari-603-branch/LayoutTests/ChangeLog 2017-02-18 01:12:53 UTC (rev 212599) @@ -1,5 +1,25 @@ 2017-02-17 Matthew Hanson +Merge r212265. rdar://problem/30231732 + +2017-02-13 Said Abou-Hallawa + +The current frame of an image should not deleted if another frame is asynchronously being decoded +https://bugs.webkit.org/show_bug.cgi?id=167618 + +Reviewed by Simon Fraser. + +This test did not crash on Mac when running it without this patch. But +the new ASSERT_IMPLIES(), which is added to BitmapImage::draw(), fires +when the other changes are not included. So the bug could have happened +without the patch but the crash did not since it requires a thread +contention in the system underlying components. + +* fast/images/animated-image-draw-while-decode-expected.txt: Added. +* fast/images/animated-image-draw-while-decode.html: Added. + +2017-02-17 Matthew Hanson + Merge r212218. rdar://problem/30339793 2017-02-12 Ryosuke Niwa Added: branches/safari-603-branch/LayoutTests/fast/images/animated-image-draw-while-decode-expected.txt (0 => 212599) --- branches/safari-603-branch/LayoutTests/fast/images/animated-image-draw-while-decode-expected.txt (rev 0) +++ branches/safari-603-branch/LayoutTests/fast/images/animated-image-draw-while-decode-expected.txt 2017-02-18 01:12:53 UTC (rev 212599) @@ -0,0 +1 @@ +PASS. WebKit didn't crash. Added: branches/safari-603-branch/LayoutTests/fast/images/animated-image-draw-while-decode.html (0 => 212599) --- branches/safari-603-branch/LayoutTests/fast/images/animated-image-draw-while-decode.html (rev 0) +++ branches/safari-603-branch/LayoutTests/fast/images/animated-image-draw-while-decode.html 2017-02-18 01:12:53 UTC (rev 212599) @@ -0,0 +1,64 @@ + + + +canvas { +width: 100px; +height: 100px; +} + + + + +function drawFrame(image) { +return new Promise((resolve) => { +let canvas = document.getElementById("canvas"); +let context = canvas.getContext("2d"); +context.drawImage(image, 0, 0, canvas.width, canvas.height); +setTimeout(() => { +resolve(); +}, 20); +}); +} + +function drawImage(image, frameCount) { +let promise = drawFrame(image); +for (let frame = 1; frame < frameCount; ++frame) { +promise = promise.then(() => { +// This forces destroyDecodedData() to be called. +internals.pruneMemoryCacheToSize(0); +return drawFrame(image); +}); +} +return promise; +} + +function loadImage(src, frameCount) { +return new Promise((resolve) => { +let image = new Image; +image._onload_ = (() => { +if (!window.internals) +return; +// This forces aysnc image decoding. +internals.setImageFrameDecodingDuration(image, 0.030); +drawImage(image, frameCount).then(resolve); +}); +image.src = "" +}); +} + +(function() { +if (window.testRunner) { +testRunner.dumpAsText(); +testRunner.waitUntilDone(); +} + +loadImage("resources/animated-red-green-blue.gif", 10).then(() => { +if (window.testRunner) { +documen
[webkit-changes] [212600] branches/safari-603-branch
Title: [212600] branches/safari-603-branch Revision 212600 Author matthew_han...@apple.com Date 2017-02-17 17:12:58 -0800 (Fri, 17 Feb 2017) Log Message Merge r212354. rdar://problem/30450371 Modified Paths branches/safari-603-branch/LayoutTests/ChangeLog branches/safari-603-branch/Source/WebCore/ChangeLog branches/safari-603-branch/Source/WebCore/dom/ContainerNode.cpp branches/safari-603-branch/Source/WebCore/dom/ContainerNodeAlgorithms.cpp Added Paths branches/safari-603-branch/LayoutTests/http/tests/security/move-iframe-within-focus-handler-inside-removal-expected.txt branches/safari-603-branch/LayoutTests/http/tests/security/move-iframe-within-focus-handler-inside-removal.html Diff Modified: branches/safari-603-branch/LayoutTests/ChangeLog (212599 => 212600) --- branches/safari-603-branch/LayoutTests/ChangeLog 2017-02-18 01:12:53 UTC (rev 212599) +++ branches/safari-603-branch/LayoutTests/ChangeLog 2017-02-18 01:12:58 UTC (rev 212600) @@ -1,5 +1,19 @@ 2017-02-17 Matthew Hanson +Merge r212354. rdar://problem/30450371 + +2017-02-14 Ryosuke Niwa + +An assertion failure inside removeChildren +https://bugs.webkit.org/show_bug.cgi?id=168069 + +Reviewed by Brent Fulgham. + +* http/tests/security/move-iframe-within-focus-handler-inside-removal-expected.txt: Added. +* http/tests/security/move-iframe-within-focus-handler-inside-removal.html: Added. + +2017-02-17 Matthew Hanson + Merge r212265. rdar://problem/30231732 2017-02-13 Said Abou-Hallawa Added: branches/safari-603-branch/LayoutTests/http/tests/security/move-iframe-within-focus-handler-inside-removal-expected.txt (0 => 212600) --- branches/safari-603-branch/LayoutTests/http/tests/security/move-iframe-within-focus-handler-inside-removal-expected.txt (rev 0) +++ branches/safari-603-branch/LayoutTests/http/tests/security/move-iframe-within-focus-handler-inside-removal-expected.txt 2017-02-18 01:12:58 UTC (rev 212600) @@ -0,0 +1,11 @@ +Tests moving an iframe inside a focus event handler while removing a node. +To manually test, open this page on a new window/tab each time. Reloading would not work. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS newGlobal is not oldGlobal +PASS successfullyParsed is true + +TEST COMPLETE + Added: branches/safari-603-branch/LayoutTests/http/tests/security/move-iframe-within-focus-handler-inside-removal.html (0 => 212600) --- branches/safari-603-branch/LayoutTests/http/tests/security/move-iframe-within-focus-handler-inside-removal.html (rev 0) +++ branches/safari-603-branch/LayoutTests/http/tests/security/move-iframe-within-focus-handler-inside-removal.html 2017-02-18 01:12:58 UTC (rev 212600) @@ -0,0 +1,44 @@ + + + + +description(`Tests moving an iframe inside a focus event handler while removing a node.
+To manually test, open this page on a new window/tab each time. Reloading would not work.`); + +const iframe = document.createElement('iframe'); +document.body.appendChild(iframe); +const doc = iframe.contentDocument; + +doc.body.innerHTML = ` { +linkParent.appendChild(movedFrame); +const helperContent = `