Created
April 1, 2017 22:37
-
-
Save daeken/ec6b84ab73b14ce2793d231ad69501f8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
------------------------------------------------------------------------ | |
r212097 | carlosgc@webkit.org | 2017-02-10 08:26:45 +0000 (Fri, 10 Feb 2017) | 5 lines | |
Changed paths: | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/WebProcess/WebPage/AcceleratedDrawingArea.cpp | |
Unreviewed. Fix GTK+ build with threaded compositor disabled. | |
* WebProcess/WebPage/AcceleratedDrawingArea.cpp: | |
(WebKit::AcceleratedDrawingArea::enterAcceleratedCompositingMode): | |
(WebKit::AcceleratedDrawingArea::exitAcceleratedCompositingModeNow): | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211967 | magomez@igalia.com | 2017-02-09 18:11:22 +0000 (Thu, 09 Feb 2017) | 23 lines | |
Changed paths: | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp | |
[GTK] scroll with transparent background not repainted after scrollY >= 32768 | |
https://bugs.webkit.org/show_bug.cgi?id=154283 | |
Reviewed by Carlos Garcia Campos. | |
Due to a limitation of the pixman backend, which uses 16 bits to hold signed integers, cairo is | |
not able to draw anything when using transformation matrices with values bigger than 32768. When | |
drawing patterns into large pages, the matrices values can overflow those 16 bits, so cairo doesn't | |
draw anything in, which causes the reported transparent backgrounds. | |
The patch modifies the transformation matrices both from the current context and the pattern we | |
are painting, to avoid them to hold values that cannot stored in 16 bits. | |
There's still the possibility that this happens, but it would require using a pattern with a size | |
bigger than 32768. | |
Based on a previous patch by Gwang Yoon Hwang <yoon@igalia.com>. | |
No new tests. | |
* platform/graphics/cairo/CairoUtilities.cpp: | |
(WebCore::drawPatternToCairoContext): | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211867 | magomez@igalia.com | 2017-02-08 12:19:05 +0000 (Wed, 08 Feb 2017) | 15 lines | |
Changed paths: | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/platform/graphics/texmap/coordinated/TiledBackingStore.cpp | |
M /trunk/Source/WebCore/platform/graphics/texmap/coordinated/TiledBackingStore.h | |
[GTK] Reduce TiledBackingStore tile coverage when on memory pressure state | |
https://bugs.webkit.org/show_bug.cgi?id=167980 | |
Reviewed by Carlos Garcia Campos. | |
Use a smaller coverAreaMultiplier in the TiledBackingStore when in memory pressure situation, to reduce | |
the amount of tiles created. | |
No new tests. | |
* platform/graphics/texmap/coordinated/TiledBackingStore.cpp: | |
(WebCore::TiledBackingStore::createTilesIfNeeded): | |
(WebCore::TiledBackingStore::createTiles): | |
* platform/graphics/texmap/coordinated/TiledBackingStore.h: | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211721 | magomez@igalia.com | 2017-02-06 12:22:04 +0000 (Mon, 06 Feb 2017) | 13 lines | |
Changed paths: | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp | |
M /trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h | |
[GTK][EFL] Release unused UpdateAtlas when in memory pressure situation | |
https://bugs.webkit.org/show_bug.cgi?id=167872 | |
Reviewed by Carlos Garcia Campos. | |
In a memory pressure situation, release all the unused UpdateAtlas as soon as possible, instead | |
of waiting 3 seconds before releasing them. | |
* WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: | |
(WebKit::CompositingCoordinator::releaseInactiveAtlasesTimerFired): | |
(WebKit::CompositingCoordinator::releaseAtlases): | |
* WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h: | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r212024 | bfulgham@apple.com | 2017-02-10 02:11:28 +0000 (Fri, 10 Feb 2017) | 23 lines | |
Changed paths: | |
M /trunk/LayoutTests/ChangeLog | |
A /trunk/LayoutTests/fast/shadow-dom/attach-shadow-teardown-expected.txt | |
A /trunk/LayoutTests/fast/shadow-dom/attach-shadow-teardown.html | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/dom/Element.cpp | |
Tear down existing renderers when adding a shadow root. | |
https://bugs.webkit.org/show_bug.cgi?id=167117 | |
Patch by Antti Koivisto <antti@apple.com> on 2017-02-09 | |
Reviewed by Andreas Kling. | |
Source/WebCore: | |
Adding a shadow root may cause children no longer be part of the flat tree. If they had renderers | |
tear down code would no longer reach them. | |
Test: fast/shadow-dom/attach-shadow-teardown.html | |
* dom/Element.cpp: | |
(WebCore::Element::addShadowRoot): | |
Tear down existing render tree when adding a shadow root. | |
LayoutTests: | |
* fast/shadow-dom/attach-shadow-teardown-expected.txt: Added. | |
* fast/shadow-dom/attach-shadow-teardown.html: Added. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r212023 | bfulgham@apple.com | 2017-02-10 02:09:25 +0000 (Fri, 10 Feb 2017) | 23 lines | |
Changed paths: | |
M /trunk/LayoutTests/ChangeLog | |
A /trunk/LayoutTests/fast/forms/input-type-change-during-selection-expected.txt | |
A /trunk/LayoutTests/fast/forms/input-type-change-during-selection.html | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp | |
Handle synchronous layout when setting a selection range | |
https://bugs.webkit.org/show_bug.cgi?id=167092 | |
<rdar://problem/30041640> | |
Reviewed by Antti Koivisto. | |
Source/WebCore: | |
The 'innerTextElement' of a form control can change during layout due | |
to arbitrary JavaScript executing. Handle the case where the inner text | |
element has changed so that current render box height is while setting | |
a selection range. | |
Test: fast/forms/input-type-change-during-selection.html | |
* html/HTMLTextFormControlElement.cpp: | |
(WebCore::HTMLTextFormControlElement::setSelectionRange): | |
LayoutTests: | |
* fast/forms/input-type-change-during-selection-expected.txt: Added. | |
* fast/forms/input-type-change-during-selection.html: Added. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211999 | bfulgham@apple.com | 2017-02-10 00:10:14 +0000 (Fri, 10 Feb 2017) | 22 lines | |
Changed paths: | |
M /trunk/LayoutTests/ChangeLog | |
A /trunk/LayoutTests/fast/shadow-dom/resources/start.html | |
A /trunk/LayoutTests/fast/shadow-dom/shadow-at-root-during-disconnect-expected.txt | |
A /trunk/LayoutTests/fast/shadow-dom/shadow-at-root-during-disconnect.html | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/dom/ContainerNodeAlgorithms.cpp | |
Disconnect shadow children of root when detaching a frame | |
https://bugs.webkit.org/show_bug.cgi?id=166851 | |
<rdar://problem/29930443> | |
Reviewed by Andy Estes. | |
Source/WebCore: | |
If the root of the tree we are disconnecting has a shadow element, include it in the set of | |
things to disconnect. | |
Tests: fast/shadow-dom/shadow-at-root-during-disconnect.html | |
* dom/ContainerNodeAlgorithms.cpp: | |
(WebCore::disconnectSubframes): | |
LayoutTests: | |
* fast/shadow-dom/resources/start.html: Added. | |
* fast/shadow-dom/shadow-at-root-during-disconnect-expected.txt: Added. | |
* fast/shadow-dom/shadow-at-root-during-disconnect.html: Added. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r209145 | bfulgham@apple.com | 2016-11-30 20:20:32 +0000 (Wed, 30 Nov 2016) | 62 lines | |
Changed paths: | |
M /trunk/LayoutTests/ChangeLog | |
A /trunk/LayoutTests/fast/shadow-dom/color-input-element-shadow-manipulation-expected.txt | |
A /trunk/LayoutTests/fast/shadow-dom/color-input-element-shadow-manipulation.html | |
A /trunk/LayoutTests/fast/shadow-dom/file-input-element-shadow-manipulation-expected.txt | |
A /trunk/LayoutTests/fast/shadow-dom/file-input-element-shadow-manipulation.html | |
A /trunk/LayoutTests/fast/shadow-dom/keygen-shadow-manipulation-expected.txt | |
A /trunk/LayoutTests/fast/shadow-dom/keygen-shadow-manipulation.html | |
A /trunk/LayoutTests/fast/shadow-dom/media-shadow-manipulation-expected.txt | |
A /trunk/LayoutTests/fast/shadow-dom/media-shadow-manipulation.html | |
A /trunk/LayoutTests/fast/shadow-dom/range-input-element-shadow-manipulation-expected.txt | |
A /trunk/LayoutTests/fast/shadow-dom/range-input-element-shadow-manipulation.html | |
A /trunk/LayoutTests/fast/shadow-dom/textarea-shadow-manipulation-expected.txt | |
A /trunk/LayoutTests/fast/shadow-dom/textarea-shadow-manipulation.html | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/dom/Element.h | |
M /trunk/Source/WebCore/html/ColorInputType.cpp | |
M /trunk/Source/WebCore/html/FileInputType.cpp | |
M /trunk/Source/WebCore/html/HTMLKeygenElement.cpp | |
M /trunk/Source/WebCore/html/HTMLMediaElement.cpp | |
M /trunk/Source/WebCore/html/HTMLTextAreaElement.cpp | |
M /trunk/Source/WebCore/html/RangeInputType.cpp | |
M /trunk/Source/WebCore/html/shadow/SliderThumbElement.h | |
M /trunk/Source/WebCore/svg/SVGUseElement.cpp | |
Use 'childOfType' template when retrieving Shadow DOM elements | |
https://bugs.webkit.org/show_bug.cgi?id=165145 | |
<rdar://problem/29331830> | |
Reviewed by Antti Koivisto. | |
Source/WebCore: | |
Tests: fast/shadow-dom/color-input-element-shadow-manipulation.html | |
fast/shadow-dom/file-input-element-shadow-manipulation.html | |
fast/shadow-dom/keygen-shadow-manipulation.html | |
fast/shadow-dom/media-shadow-manipulation.html | |
fast/shadow-dom/range-input-element-shadow-manipulation.html | |
fast/shadow-dom/textarea-shadow-manipulation.html | |
Switch to using 'childOfType' when retrieving Shadow DOM elements, rather | |
than relying on expected element positions, as these can be changed by | |
JavaScript. | |
Drive by fix: Make more use of is<> and downcast<> templates rather than blindly casting. | |
* dom/Element.h: | |
(WebCore::Element::isUploadButton): Added. | |
(WebCore::Element::isSliderContainerElement): Added. | |
* html/ColorInputType.cpp: | |
(WebCore::ColorInputType::shadowColorSwatch): Use 'childOfType' rather than assuming | |
the first child is the one we want. | |
* html/FileInputType.cpp: | |
(isType): Added. | |
(WebCore::FileInputType::disabledAttributeChanged): Use 'childOfType' rather than assuming | |
the first child is the one we want. | |
(WebCore::FileInputType::multipleAttributeChanged): Ditto. | |
* html/HTMLKeygenElement.cpp: | |
(WebCore::HTMLKeygenElement::shadowSelect): Ditto. | |
* html/HTMLMediaElement.cpp: | |
(WebCore::HTMLMediaElement::mediaControls): Ditto. | |
(WebCore::HTMLMediaElement::hasMediaControls): Ditto. | |
* html/HTMLTextAreaElement.cpp: | |
(WebCore::HTMLTextAreaElement::innerTextElement): Ditto. | |
* html/RangeInputType.cpp: | |
(WebCore::RangeInputType::sliderTrackElement): Ditto. | |
* html/shadow/SliderThumbElement.h: | |
(isType): Added. | |
* svg/SVGUseElement.cpp: | |
(WebCore::SVGUseElement::targetClone): Use 'childOfType' rather than assuming | |
the first child is the one we want. | |
LayoutTests: | |
* fast/shadow-dom/color-input-element-shadow-manipulation-expected.txt: Added. | |
* fast/shadow-dom/color-input-element-shadow-manipulation.html: Added. | |
* fast/shadow-dom/file-input-element-shadow-manipulation-expected.txt: Added. | |
* fast/shadow-dom/file-input-element-shadow-manipulation.html: Added. | |
* fast/shadow-dom/keygen-shadow-manipulation-expected.txt: Added. | |
* fast/shadow-dom/keygen-shadow-manipulation.html: Added. | |
* fast/shadow-dom/media-shadow-manipulation-expected.txt: Added. | |
* fast/shadow-dom/media-shadow-manipulation.html: Added. | |
* fast/shadow-dom/range-input-element-shadow-manipulation-expected.txt: Added. | |
* fast/shadow-dom/range-input-element-shadow-manipulation.html: Added. | |
* fast/shadow-dom/textarea-shadow-manipulation-expected.txt: Added. | |
* fast/shadow-dom/textarea-shadow-manipulation.html: Added. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r210122 | bfulgham@apple.com | 2016-12-23 00:20:27 +0000 (Fri, 23 Dec 2016) | 25 lines | |
Changed paths: | |
M /trunk/LayoutTests/ChangeLog | |
A /trunk/LayoutTests/fast/loader/nested-document-handling-expected.txt | |
A /trunk/LayoutTests/fast/loader/nested-document-handling.html | |
A /trunk/LayoutTests/fast/loader/resources/subframe-success.html | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/loader/DocumentWriter.cpp | |
M /trunk/Source/WebCore/page/Frame.cpp | |
M /trunk/Source/WebCore/page/Frame.h | |
Nested calls to setDocument can omit firing 'unload' events | |
https://bugs.webkit.org/show_bug.cgi?id=166422 | |
<rdar://problem/29763012> | |
Reviewed by Alex Christensen. | |
Source/WebCore: | |
Test: fast/loader/nested-document-handling.html | |
Only allow a single document change to be taking place during a given runloop cycle. | |
* bindings/js/ScriptController.cpp: | |
(WebCore::ScriptController::executeIfJavaScriptURL): Block script changing the document | |
when we are in the middle of changing the document. | |
* page/Frame.cpp: | |
(WebCore::Frame::setDocument): Keep track of document change state. | |
* page/Frame.h: | |
LayoutTests: | |
* fast/loader/nested-document-handling-expected.txt: Added. | |
* fast/loader/nested-document-handling.html: Added. | |
* fast/loader/resources/subframe-success.html: Added. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211254 | cdumez@apple.com | 2017-01-27 05:36:19 +0000 (Fri, 27 Jan 2017) | 121 lines | |
Changed paths: | |
M /trunk/LayoutTests/ChangeLog | |
M /trunk/LayoutTests/editing/mac/input/unconfirmed-text-navigation-with-page-cache.html | |
M /trunk/LayoutTests/fast/harness/page-cache-crash-on-data-urls.html | |
M /trunk/LayoutTests/fast/harness/use-page-cache.html | |
A /trunk/LayoutTests/fast/history/page-cache-after-window-open-expected.txt | |
A /trunk/LayoutTests/fast/history/page-cache-after-window-open.html | |
A /trunk/LayoutTests/fast/history/page-cache-back-navigation-crash-expected.txt | |
A /trunk/LayoutTests/fast/history/page-cache-back-navigation-crash.html | |
A /trunk/LayoutTests/fast/history/page-cache-with-opener-expected.txt | |
A /trunk/LayoutTests/fast/history/page-cache-with-opener.html | |
A /trunk/LayoutTests/fast/history/resources/page-cache-window-with-iframe.html | |
A /trunk/LayoutTests/fast/history/resources/page-cache-window-with-opener.html | |
M /trunk/LayoutTests/fast/loader/stateobjects/no-popstate-when-back-to-stateless-entry-with-page-cache.html | |
M /trunk/LayoutTests/fast/loader/stateobjects/popstate-fires-with-page-cache.html | |
M /trunk/LayoutTests/tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration.html | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/dom/Document.cpp | |
M /trunk/Source/WebCore/dom/Document.h | |
M /trunk/Source/WebCore/history/PageCache.cpp | |
M /trunk/Source/WebCore/page/DOMWindow.cpp | |
M /trunk/Source/WebCore/page/DiagnosticLoggingKeys.cpp | |
M /trunk/Source/WebCore/page/DiagnosticLoggingKeys.h | |
M /trunk/Source/WebCore/page/Page.cpp | |
M /trunk/Source/WebCore/page/Page.h | |
M /trunk/Source/WebCore/page/Settings.in | |
M /trunk/Source/WebKit/mac/ChangeLog | |
M /trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h | |
M /trunk/Source/WebKit/mac/WebView/WebPreferences.mm | |
M /trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h | |
M /trunk/Source/WebKit/mac/WebView/WebView.mm | |
M /trunk/Source/WebKit/win/ChangeLog | |
M /trunk/Source/WebKit/win/Interfaces/IWebPreferencesPrivate.idl | |
M /trunk/Source/WebKit/win/WebPreferenceKeysPrivate.h | |
M /trunk/Source/WebKit/win/WebPreferences.cpp | |
M /trunk/Source/WebKit/win/WebPreferences.h | |
M /trunk/Source/WebKit/win/WebView.cpp | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h | |
M /trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp | |
M /trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h | |
M /trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp | |
M /trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp | |
M /trunk/Tools/ChangeLog | |
M /trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm | |
M /trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp | |
M /trunk/Tools/WebKitTestRunner/TestController.cpp | |
Crash when navigating back to a page in PacheCache when one of its frames has been removed | |
https://bugs.webkit.org/show_bug.cgi?id=167421 | |
<rdar://problem/30188490> | |
Reviewed by Darin Adler. | |
Source/WebCore: | |
Disallow page caching of a page if: | |
1. The main window has an opener (i.e. it was opened via window.open) | |
2. It has ever used window.open() | |
This is because allowing page caching in this case would allow such | |
windows to script each other even after one of them entered Page | |
Cache. Allowing this is dangerous and easily causes crashes. | |
This is a short term workaround until we find a better solution to | |
the problem. One issue is this workaround is that navigating back | |
to a page that has an opener or used window.open() will not longer | |
get the page from PageCache. As a result, state may be lost upon | |
navigating back. However, we never guarantee that pages get page | |
cached, and Chrome does not have a PageCache. | |
Tests: fast/history/page-cache-after-window-open.html | |
fast/history/page-cache-back-navigation-crash.html | |
fast/history/page-cache-with-opener.html | |
* dom/Document.cpp: | |
(WebCore::Document::hasEverCalledWindowOpen): | |
(WebCore::Document::markHasCalledWindowOpen): | |
* dom/Document.h: | |
* history/PageCache.cpp: | |
(WebCore::canCachePage): | |
* page/DOMWindow.cpp: | |
(WebCore::DOMWindow::createWindow): | |
* page/DiagnosticLoggingKeys.cpp: | |
(WebCore::DiagnosticLoggingKeys::hasCalledWindowOpenKey): | |
(WebCore::DiagnosticLoggingKeys::hasOpenerKey): | |
* page/DiagnosticLoggingKeys.h: | |
* page/Page.cpp: | |
(WebCore::Page::openedByWindowOpen): | |
* page/Page.h: | |
* page/Settings.in: | |
Source/WebKit/mac: | |
Add a new setting allowing layout tests to enable PageCache in a window | |
that has an opener, for convenience. | |
* WebView/WebPreferenceKeysPrivate.h: | |
* WebView/WebPreferences.mm: | |
(+[WebPreferences initialize]): | |
(-[WebPreferences allowsPageCacheWithWindowOpener]): | |
(-[WebPreferences setAllowsPageCacheWithWindowOpener:]): | |
* WebView/WebPreferencesPrivate.h: | |
* WebView/WebView.mm: | |
(-[WebView _preferencesChanged:]): | |
Source/WebKit/win: | |
Add a new setting allowing layout tests to enable PageCache in a window | |
that has an opener, for convenience. | |
* WebPreferenceKeysPrivate.h: | |
* WebPreferences.cpp: | |
(WebPreferences::initializeDefaultSettings): | |
* WebPreferences.h: | |
Source/WebKit2: | |
Add a new setting allowing layout tests to enable PageCache in a window | |
that has an opener, for convenience. | |
* Shared/WebPreferencesDefinitions.h: | |
* UIProcess/API/C/WKPreferences.cpp: | |
(WKPreferencesSetAllowsPageCacheWithWindowOpener): | |
(WKPreferencesGetAllowsPageCacheWithWindowOpener): | |
* UIProcess/API/C/WKPreferencesRefPrivate.h: | |
* WebProcess/InjectedBundle/InjectedBundle.cpp: | |
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): | |
* WebProcess/WebPage/WebPage.cpp: | |
(WebKit::WebPage::updatePreferences): | |
Tools: | |
Add a new setting allowing layout tests to enable PageCache in a window | |
that has an opener, for convenience. | |
* DumpRenderTree/mac/DumpRenderTree.mm: | |
(resetWebPreferencesToConsistentValues): | |
* DumpRenderTree/win/DumpRenderTree.cpp: | |
(resetWebPreferencesToConsistentValues): | |
* WebKitTestRunner/TestController.cpp: | |
(WTR::TestController::resetPreferencesToConsistentValues): | |
LayoutTests: | |
* fast/history/page-cache-after-window-open-expected.txt: Added. | |
* fast/history/page-cache-after-window-open.html: Added. | |
* fast/history/page-cache-back-navigation-crash-expected.txt: Added. | |
* fast/history/page-cache-back-navigation-crash.html: Added. | |
* fast/history/page-cache-with-opener-expected.txt: Added. | |
* fast/history/page-cache-with-opener.html: Added. | |
* fast/history/resources/page-cache-window-with-iframe.html: Added. | |
* fast/history/resources/page-cache-window-with-opener.html: Added. | |
Add layout test coverage. | |
* editing/mac/input/unconfirmed-text-navigation-with-page-cache.html: | |
* fast/harness/page-cache-crash-on-data-urls.html: | |
* fast/harness/use-page-cache.html: | |
* fast/history/page-cache-after-window-open-expected.txt: Added. | |
* fast/history/page-cache-after-window-open.html: Added. | |
* fast/history/page-cache-with-opener-expected.txt: Added. | |
* fast/history/page-cache-with-opener.html: Added. | |
* fast/history/resources/page-cache-window-with-opener.html: Added. | |
* fast/loader/stateobjects/no-popstate-when-back-to-stateless-entry-with-page-cache.html: | |
* fast/loader/stateobjects/popstate-fires-with-page-cache.html: | |
* tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration.html: | |
These tests relied on using window.open() to test PageCache for convenience. They now | |
need to override a setting in order to be allowed to do so. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r210120 | zalan@apple.com | 2016-12-22 23:48:53 +0000 (Thu, 22 Dec 2016) | 21 lines | |
Changed paths: | |
M /trunk/LayoutTests/ChangeLog | |
A /trunk/LayoutTests/fast/regions/flow-fragment-as-anonymous-block-crash-expected.txt | |
A /trunk/LayoutTests/fast/regions/flow-fragment-as-anonymous-block-crash.html | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/rendering/RenderObject.h | |
Do not destroy the RenderNamedFlowFragment as leftover anonymous block. | |
https://bugs.webkit.org/show_bug.cgi?id=166436 | |
rdar://problem/29772233 | |
Reviewed by Simon Fraser. | |
Source/WebCore: | |
When as the result of certain style change, the generated anonymous block is not needed anymore, we | |
move its descendants up to the parent and destroy the generated box. While RenderNamedFlowFragment is a generated | |
block, the cleanup code should just ignore it the same way we ignore boxes like multicolumn, mathml etc. | |
Test: fast/regions/flow-fragment-as-anonymous-block-crash.html | |
* rendering/RenderObject.h: | |
(WebCore::RenderObject::isAnonymousBlock): | |
LayoutTests: | |
* fast/regions/flow-fragment-as-anonymous-block-crash-expected.txt: Added. | |
* fast/regions/flow-fragment-as-anonymous-block-crash.html: Added. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r209926 | zalan@apple.com | 2016-12-16 18:48:31 +0000 (Fri, 16 Dec 2016) | 29 lines | |
Changed paths: | |
M /trunk/LayoutTests/ChangeLog | |
A /trunk/LayoutTests/accessibility/accessibility-crash-with-dynamic-inline-content-expected.txt | |
A /trunk/LayoutTests/accessibility/accessibility-crash-with-dynamic-inline-content.html | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/accessibility/AXObjectCache.cpp | |
M /trunk/Source/WebCore/accessibility/AXObjectCache.h | |
M /trunk/Source/WebCore/page/FrameView.cpp | |
M /trunk/Source/WebCore/rendering/RenderBlock.cpp | |
M /trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp | |
Defer certain accessibility callbacks until after layout is finished. | |
https://bugs.webkit.org/show_bug.cgi?id=165861 | |
rdar://problem/29646301 | |
Reviewed by Chris Fleizach. | |
Source/WebCore: | |
Currently with certain AXObjectCache callbacks, we can end up in a layout while the render tree is being mutated. | |
This patch ensures that such callbacks are deferred until after tree mutation/layout is finished. | |
Test: accessibility/accessibility-crash-with-dynamic-inline-content.html | |
* accessibility/AXObjectCache.cpp: | |
(WebCore::AXObjectCache::remove): | |
(WebCore::AXObjectCache::performDeferredIsIgnoredChange): | |
(WebCore::AXObjectCache::insertDeferredIsIgnoredChange): | |
* accessibility/AXObjectCache.h: | |
* page/FrameView.cpp: | |
(WebCore::FrameView::performPostLayoutTasks): | |
* rendering/RenderBlock.cpp: | |
(WebCore::RenderBlock::deleteLines): | |
* rendering/RenderBlockLineLayout.cpp: | |
(WebCore::RenderBlockFlow::createAndAppendRootInlineBox): | |
LayoutTests: | |
* accessibility/accessibility-crash-with-dynamic-inline-content-expected.txt: Added. | |
* accessibility/accessibility-crash-with-dynamic-inline-content.html: Added. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r210288 | bfulgham@apple.com | 2017-01-04 22:35:44 +0000 (Wed, 04 Jan 2017) | 26 lines | |
Changed paths: | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/bindings/js/ScriptController.cpp | |
M /trunk/Source/WebCore/bindings/js/ScriptController.h | |
M /trunk/Source/WebCore/loader/FrameLoader.cpp | |
Correct DOMWindow handling during FrameLoader::clear | |
https://bugs.webkit.org/show_bug.cgi?id=166357 | |
<rdar://problem/29741862> | |
Reviewed by Andy Estes. | |
Make sure that we always clean up the DOM window when clearing Window properties, even if the document will | |
remain in the page cache. Since 'clearWindowShell' is only used in FrameLoader, divide it's beahvior into | |
two steps: | |
1. Rename 'clearWindowShell' to 'clearWIndowShellsNotMatchingDOMWindow' to better describe its function. | |
Switch to a modern C++ loop. Do not switch to the new DOMWindow here, but detach and clear existing | |
DOMWindow connections. | |
2. Add a new method 'setDOMWindowForWindowShell'. Complete switch to the new DOMWindow. | |
This change allows us to disconnect the old DOMWindow, perform the 'setDocument(nullptr)' operation, and then | |
connect to the new Window without leaving the loader in an inconsistent state. | |
* loader/bindings/js/ScriptController.cpp: | |
(WebCore::clearWindowShellsNotMatchingDOMWindow): Renamed from 'clearWindowShell' | |
(WebCore::setDOMWindowForWindowShell): Added. | |
* loader/bindings/js/ScriptController.h: | |
* loader/FrameLoader.cpp: | |
(WebCore::FrameLoader::clear): Revise to use the new two-step DOMWindow switch logic. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r209990 | bfulgham@apple.com | 2016-12-19 19:05:36 +0000 (Mon, 19 Dec 2016) | 28 lines | |
Changed paths: | |
M /trunk/LayoutTests/ChangeLog | |
A /trunk/LayoutTests/fast/html/form-mutate-expected.txt | |
A /trunk/LayoutTests/fast/html/form-mutate.html | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/html/HTMLFormElement.cpp | |
M /trunk/Source/WebCore/html/HTMLFormElement.h | |
Side effects while restting form elements | |
https://bugs.webkit.org/show_bug.cgi?id=165959 | |
<rdar://problem/29705967> | |
Reviewed by Anders Carlsson. | |
Source/WebCore: | |
JavaScript logic can run while resetting FormElement objects. This can | |
lead to unintended side-effets and other unwanted behavior. We should | |
protect these elements during the reset. | |
Test: fast/html/form-mutate.html | |
* html/HTMLFormElement.cpp: | |
(WebCore::HTMLFormElement::HTMLFormElement): Switch to C++11 initialization. | |
(WebCore::HTMLFormElement::reset): Protect elements until the reset | |
operation is finished. | |
(WebCore::HTMLFormElement::resetAssociatedFormControlElements): Added to share | |
code with 'resumeFromDocument'. | |
(WebCore::HTMLFormElement::resumeFromDocument): Protect elements until the | |
reset operation is finished. | |
LayoutTests: | |
* fast/html/form-mutate-expected.txt: Added. | |
* fast/html/form-mutate.html: Added. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r209424 | mark.lam@apple.com | 2016-12-06 22:43:16 +0000 (Tue, 06 Dec 2016) | 107 lines | |
Changed paths: | |
M /trunk/JSTests/ChangeLog | |
M /trunk/JSTests/stress/get-from-scope-dynamic-onto-proxy.js | |
D /trunk/JSTests/stress/proxy-dont-infinite-loop.js | |
D /trunk/JSTests/stress/proxy-json-path.js | |
D /trunk/JSTests/stress/rest-parameter-allocation-elimination-watchpoints-6.js | |
M /trunk/LayoutTests/ChangeLog | |
M /trunk/LayoutTests/TestExpectations | |
M /trunk/LayoutTests/http/tests/security/window-named-valueOf-expected.txt | |
M /trunk/LayoutTests/js/dom/proxy-is-not-allowed-in-global-prototype-chain-expected.txt | |
M /trunk/LayoutTests/js/dom/proxy-is-not-allowed-in-global-prototype-chain.html | |
A /trunk/LayoutTests/js/prototype-assignment-expected.txt | |
A /trunk/LayoutTests/js/prototype-assignment.html | |
A /trunk/LayoutTests/js/script-tests/prototype-assignment.js | |
M /trunk/LayoutTests/js/setPrototypeOf-expected.txt | |
M /trunk/Source/JavaScriptCore/ChangeLog | |
M /trunk/Source/JavaScriptCore/runtime/JSObject.cpp | |
M /trunk/Source/JavaScriptCore/runtime/JSTypeInfo.h | |
M /trunk/Source/JavaScriptCore/runtime/ObjectConstructor.cpp | |
M /trunk/Source/JavaScriptCore/runtime/ObjectPrototype.h | |
M /trunk/Source/JavaScriptCore/runtime/Structure.h | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/bindings/js/JSDOMWindowProperties.h | |
M /trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm | |
M /trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt | |
M /trunk/Source/WebCore/dom/EventTarget.idl | |
M /trunk/Source/WebCore/page/DOMWindow.idl | |
Introduce the concept of Immutable Prototype Exotic Objects to comply with the spec. | |
https://bugs.webkit.org/show_bug.cgi?id=165227 | |
<rdar://problem/29442665> | |
Reviewed by Saam Barati. | |
JSTests: | |
* stress/get-from-scope-dynamic-onto-proxy.js: | |
- Updated error message. | |
* stress/proxy-dont-infinite-loop.js: Removed. | |
* stress/proxy-json-path.js: Removed. | |
* stress/rest-parameter-allocation-elimination-watchpoints-6.js: Removed. | |
- Removed these tests because the issue they are testing relies on being able to | |
set Object.prototype.__proto__ to something else (which is now not possible). | |
Source/JavaScriptCore: | |
* runtime/JSObject.cpp: | |
(JSC::JSObject::setPrototypeWithCycleCheck): | |
- This is where we check for immutable prototype exotic objects and refuse to set | |
the prototype if needed. | |
See https://tc39.github.io/ecma262/#sec-immutable-prototype-exotic-objects. | |
* runtime/JSTypeInfo.h: | |
(JSC::TypeInfo::isImmutablePrototypeExoticObject): | |
* runtime/Structure.h: | |
- Add flag for declaring immutable prototype exotic objects. | |
* runtime/ObjectPrototype.h: | |
- Declare that Object.prototype is an immutable prototype exotic object. | |
See https://tc39.github.io/ecma262/#sec-properties-of-the-object-prototype-object. | |
* runtime/ObjectConstructor.cpp: | |
(JSC::objectConstructorSetPrototypeOf): | |
- Use better error messages. | |
Source/WebCore: | |
Make all objects in window.__proto__'s prototype chain immutable prototype exotic | |
objects. This gives us roughly equivalent behavior to other browsers. | |
Firefox's behavior differ slightly in that Firefox will fail any attempted | |
assignment their __proto__, while the immutable prototype exotic objects will | |
only fail if the assignment is of a different value. See | |
https://tc39.github.io/ecma262/#sec-immutable-prototype-exotic-objects. | |
Chrome differs in that assignment to window.__proto__ is also handled like an | |
immutable prototype exotic object. Instead we adhere to the current HTML spec | |
that says that the assignment should fail unconditionally. See | |
https://html.spec.whatwg.org/#the-windowproxy-exotic-object and | |
https://html.spec.whatwg.org/#windowproxy-setprototypeof. | |
If the HTML spec is changed to make the WindowProxy and Location objects into | |
immutable prototype exotic objects later, we can update to match the spec then. | |
Test: js/prototype-assignment.html | |
* bindings/js/JSDOMWindowProperties.h: | |
* bindings/scripts/CodeGeneratorJS.pm: | |
(GenerateHeader): | |
(GeneratePrototypeDeclaration): | |
* bindings/scripts/IDLAttributes.txt: | |
* dom/EventTarget.idl: | |
* page/DOMWindow.idl: | |
LayoutTests: | |
The new prototype-assignment.js test is currently only enabled for LLInt only | |
run in the JSC tests until webkit.org/b/165401 is fixed. | |
* TestExpectations: | |
- Skip js/prototype-assignment.html for now until webkit.org/b/165401 is fixed. | |
* http/tests/security/window-named-valueOf-expected.txt: | |
* js/dom/proxy-is-not-allowed-in-global-prototype-chain-expected.txt: | |
* js/dom/proxy-is-not-allowed-in-global-prototype-chain.html: | |
- Updated error messages. | |
* js/prototype-assignment-expected.txt: Added. | |
* js/prototype-assignment.html: Added. | |
* js/script-tests/prototype-assignment.js: Added. | |
(else): | |
(reportError): | |
(shouldEqual): | |
(shouldThrow): | |
(stringify): | |
(makeTestID): | |
(doInternalSetPrototypeOf): | |
(ordinarySetPrototypeOf): | |
(setImmutablePrototype): | |
(windowProxySetPrototypeOf): | |
(initSetterExpectation): | |
(throwIfNoExceptionPending): | |
(objectSetPrototypeOf): | |
(setUnderscoreProto): | |
(reflectSetPrototypeOf): | |
(newObjectProto.toString): | |
(this.testObject.targets.push.value): | |
(this.testProxy.targets.push.setPrototypeOf): | |
(Symbol): | |
(test): | |
(runTests): | |
* js/setPrototypeOf-expected.txt: | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r209149 | mark.lam@apple.com | 2016-11-30 21:13:42 +0000 (Wed, 30 Nov 2016) | 17 lines | |
Changed paths: | |
M /trunk/LayoutTests/ChangeLog | |
A /trunk/LayoutTests/js/dom/proxy-is-not-allowed-in-global-prototype-chain-expected.txt | |
A /trunk/LayoutTests/js/dom/proxy-is-not-allowed-in-global-prototype-chain.html | |
M /trunk/Source/JavaScriptCore/ChangeLog | |
M /trunk/Source/JavaScriptCore/runtime/ProgramExecutable.cpp | |
Proxy is not allowed in the global prototype chain. | |
https://bugs.webkit.org/show_bug.cgi?id=165205 | |
Reviewed by Geoffrey Garen. | |
Source/JavaScriptCore: | |
* runtime/ProgramExecutable.cpp: | |
(JSC::ProgramExecutable::initializeGlobalProperties): | |
- We'll now throw a TypeError if we detect a Proxy in the global prototype chain. | |
LayoutTests: | |
* js/dom/proxy-is-not-allowed-in-global-prototype-chain-expected.txt: Added. | |
* js/dom/proxy-is-not-allowed-in-global-prototype-chain.html: Added. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r208745 | bfulgham@apple.com | 2016-11-15 20:14:02 +0000 (Tue, 15 Nov 2016) | 27 lines | |
Changed paths: | |
M /trunk/LayoutTests/ChangeLog | |
A /trunk/LayoutTests/fast/forms/search-cancel-button-change-input-expected.txt | |
A /trunk/LayoutTests/fast/forms/search-cancel-button-change-input.html | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/WebCore.order | |
M /trunk/Source/WebCore/html/HTMLInputElement.cpp | |
M /trunk/Source/WebCore/html/InputType.h | |
M /trunk/Source/WebCore/html/SearchInputType.h | |
Correct handling of changing input type | |
https://bugs.webkit.org/show_bug.cgi?id=164759 | |
<rdar://problem/29211174> | |
Reviewed by Darin Adler. | |
Source/WebCore: | |
Test: fast/forms/search-cancel-button-change-input.html | |
It is possible for JavaScript to change the type property of an input field. WebKit | |
needs to gracefully handle this case. | |
Add a type traits specialization so we can properly downcast InputType elements. | |
Use this to only call search functions on actual search input types. | |
* html/HTMLInputElement.cpp: | |
(WebCore::HTMLInputElement::onSearch): Only perform search functions if the | |
input type is actually a search field. | |
* html/InputType.h: Add type traits specialization for 'downcast' template. | |
* html/SearchInputType.h: Ditto. | |
LayoutTests: | |
* fast/forms/search-cancel-button-change-input-expected.txt: Added. | |
* fast/forms/search-cancel-button-change-input.html: Added. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r208628 | bfulgham@apple.com | 2016-11-12 00:32:59 +0000 (Sat, 12 Nov 2016) | 20 lines | |
Changed paths: | |
M /trunk/LayoutTests/ChangeLog | |
A /trunk/LayoutTests/fast/canvas/neutered-imagedata-expected.txt | |
A /trunk/LayoutTests/fast/canvas/neutered-imagedata.html | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp | |
Neutered ArrayBuffers are not properly serialized | |
https://bugs.webkit.org/show_bug.cgi?id=164647 | |
<rdar://problem/29213490> | |
Reviewed by David Kilzer. | |
Source/WebCore: | |
Correct binding logic to handle ImageBuffers being deserialized from neutered ArrayBuffers. | |
Test: fast/canvas/neutered-imagedata.html | |
* bindings/js/SerializedScriptValue.cpp: | |
(WebCore::CloneDeserializer::readTerminal): | |
LayoutTests: | |
* fast/canvas/neutered-imagedata-expected.txt: Added. | |
* fast/canvas/neutered-imagedata.html: Added. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r208825 | bfulgham@apple.com | 2016-11-17 00:35:32 +0000 (Thu, 17 Nov 2016) | 24 lines | |
Changed paths: | |
M /trunk/LayoutTests/ChangeLog | |
A /trunk/LayoutTests/media/track/audio-track-add-remove-expected.txt | |
A /trunk/LayoutTests/media/track/audio-track-add-remove.html | |
A /trunk/LayoutTests/media/track/video-track-add-remove-expected.txt | |
A /trunk/LayoutTests/media/track/video-track-add-remove.html | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/html/HTMLMediaElement.cpp | |
Clear track client when removing a track | |
https://bugs.webkit.org/show_bug.cgi?id=164842 | |
<rdar://problem/29213621> | |
Reviewed by Eric Carlson. | |
Source/WebCore: | |
Call 'clearClient' when removing a track from an HTMLMediaElement. | |
Test: media/track/audio-track-add-remove.html | |
media/track/video-track-add-remove.html | |
* html/HTMLMediaElement.cpp: | |
(WebCore::HTMLMediaElement::removeAudioTrack): Call 'clearClient' | |
(WebCore::HTMLMediaElement::removeVideoTrack): Ditto. | |
LayoutTests: | |
* media/track/audio-track-add-remove-expected.txt: Added. | |
* media/track/audio-track-add-remove.html: Added. | |
* media/track/video-track-add-remove-expected.txt: Added. | |
* media/track/video-track-add-remove.html: Added. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r210112 | dbates@webkit.org | 2016-12-22 22:20:25 +0000 (Thu, 22 Dec 2016) | 24 lines | |
Changed paths: | |
M /trunk/LayoutTests/ChangeLog | |
A /trunk/LayoutTests/fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame-expected.txt | |
A /trunk/LayoutTests/fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame.html | |
A /trunk/LayoutTests/fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame2-expected.txt | |
A /trunk/LayoutTests/fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame2.html | |
A /trunk/LayoutTests/fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame-expected.txt | |
A /trunk/LayoutTests/fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame.html | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/page/DOMWindow.cpp | |
Bypass pop-up blocker from cross-origin or sandboxed frame | |
https://bugs.webkit.org/show_bug.cgi?id=166290 | |
<rdar://problem/29742039> | |
Reviewed by Darin Adler. | |
Source/WebCore: | |
Tests: fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame.html | |
fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame2.html | |
fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame.html | |
* page/DOMWindow.cpp: | |
(WebCore::DOMWindow::open): Use FrameLoader::findFrameForNavigation() to find the | |
target frame to navigate with respect to the active document just as we do in WebCore::createWindow(). | |
LayoutTests: | |
* fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame-expected.txt: Added. | |
* fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame.html: Added. | |
* fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame2-expected.txt: Added. | |
* fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame2.html: Added. | |
* fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame-expected.txt: Added. | |
* fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame.html: Added. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211040 | gns@gnome.org | 2017-01-23 18:20:10 +0000 (Mon, 23 Jan 2017) | 12 lines | |
Changed paths: | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/platform/text/hyphen/HyphenationLibHyphen.cpp | |
[GTK] asserting on unknown locale for hyphenation is wrong | |
https://bugs.webkit.org/show_bug.cgi?id=167312 | |
Reviewed by Carlos Garcia Campos. | |
The fact that we hit the assert on a test called 'hyphenation-unknown-locale' is already | |
a strong indication we should not have it. In addition to that, Carlos Lopez pointed out | |
a similar assert was removed from the Mac codepaths when the test was introduced. | |
* platform/text/hyphen/HyphenationLibHyphen.cpp: | |
(WebCore::lastHyphenLocation): early return when a locale that is not available is provided | |
for hyphenation, instead of asserting. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211627 | eocanha@igalia.com | 2017-02-03 12:03:10 +0000 (Fri, 03 Feb 2017) | 24 lines | |
Changed paths: | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp | |
M /trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h | |
[GStreamer] Store preloaded media in webkit's cache | |
https://bugs.webkit.org/show_bug.cgi?id=119477 | |
Reviewed by Xabier Rodriguez-Calvar. | |
Files cached on disk by MediaPlayerPrivateGStreamer are deleted only when the player is closed. If the | |
WebProcess crashed, they're just left there in the cache directory. This patch changes the location | |
of those temporary files to a proper temporary directory (/var/tmp, as those files aren't actually | |
reusable, so they don't belong to a cache directory, and /tmp is a bad place because it's RAM-based on | |
some distros), unlinks (deletes) them right after creation and also deletes any other stalled temporary | |
file on the old legacy cache directory. | |
There's no API in GstPlaybin to control the temporary file location, so we do it manually by locating | |
the GstDownloadBuffer element in the pipeline as soon as it's created, reconfiguring it with the right | |
temporary file path and deleting the file as soon as it's created. | |
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: | |
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer): Stop listening to element-added. | |
(WebCore::MediaPlayerPrivateGStreamer::uriDecodeBinElementAddedCallback): Look for GstDownloadBuffer. | |
(WebCore::MediaPlayerPrivateGStreamer::downloadBufferFileCreatedCallback): Remove the file after creation. | |
(WebCore::MediaPlayerPrivateGStreamer::purgeOldDownloadFiles): Delete legacy files. | |
(WebCore::MediaPlayerPrivateGStreamer::sourceChanged): Listen to element-added signals on GstUriDecodeBin. | |
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: New reference to GstDownloadBuffer. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211225 | eocanha@igalia.com | 2017-01-26 20:39:57 +0000 (Thu, 26 Jan 2017) | 10 lines | |
Changed paths: | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp | |
[GStreamer] ASSERTION FAILED: !g_object_is_floating(ptr) in adoptGRef(GstContext* ptr) | |
https://bugs.webkit.org/show_bug.cgi?id=167458 | |
Reviewed by Xabier Rodriguez-Calvar. | |
GstContext is a mini_object, not a GObject. Therefore it shouldn't (and can't) be checked for floatingness. | |
* platform/graphics/gstreamer/GRefPtrGStreamer.cpp: | |
(WTF::adoptGRef): Removed incorrect assertion. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211815 | carlosgc@webkit.org | 2017-02-07 18:04:50 +0000 (Tue, 07 Feb 2017) | 9 lines | |
Changed paths: | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp | |
[GStreamer] Deadlock when media player is destroyed | |
https://bugs.webkit.org/show_bug.cgi?id=167861 | |
Reviewed by Michael Catanzaro. | |
The problem is that we are calling notifyOne() for the draw mutex without taking the lock. | |
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: | |
(WebCore::MediaPlayerPrivateGStreamerBase::repaint): | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211816 | carlosgc@webkit.org | 2017-02-07 18:08:56 +0000 (Tue, 07 Feb 2017) | 10 lines | |
Changed paths: | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/WebProcess/soup/WebKitSoupRequestInputStream.cpp | |
[Soup] WebKitSoupRequestInputStream can still leave requests unfinished after r211773 | |
https://bugs.webkit.org/show_bug.cgi?id=167929 | |
Reviewed by Michael Catanzaro. | |
The while loop to process the pending data requests was not a good idea, because having a new pending request | |
doesn't mean we have more data available, but that more data was requested. | |
* WebProcess/soup/WebKitSoupRequestInputStream.cpp: | |
(webkitSoupRequestInputStreamPendingReadAsyncComplete): Process only one request if needed. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211773 | carlosgc@webkit.org | 2017-02-07 06:12:53 +0000 (Tue, 07 Feb 2017) | 19 lines | |
Changed paths: | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/WebProcess/soup/WebKitSoupRequestInputStream.cpp | |
[Soup] Long resources loaded by custom protocols sometimes never finish loading | |
https://bugs.webkit.org/show_bug.cgi?id=167890 | |
Reviewed by Michael Catanzaro. | |
It's another bug that has appeared in WebKitSoupRequestInputStream after moving the custom protocols handling to | |
the main thread. The problem is that webkitSoupRequestInputStreamPendingReadAsyncComplete invalidates | |
pendingAsyncRead after calling webkitSoupRequestInputStreamReadAsyncResultComplete, but in some cases | |
webkitSoupRequestInputStreamReadAsyncResultComplete completes the task in the same run loop iteration. In that | |
case webkitSoupRequestInputStreamReadAsync is called again creating a new AsyncReadData that is destroyed right | |
after webkitSoupRequestInputStreamReadAsyncResultComplete returns. | |
* WebProcess/soup/WebKitSoupRequestInputStream.cpp: | |
(AsyncReadData::AsyncReadData): Use an rvalue reference for the task. | |
(webkitSoupRequestInputStreamPendingReadAsyncComplete): Use WTFMove to ensure pendingAsyncRead is cleared before | |
webkitSoupRequestInputStreamReadAsyncResultComplete is called, and continue processing pending requests if there | |
are new ones after webkitSoupRequestInputStreamReadAsyncResultComplete. | |
(webkitSoupRequestInputStreamReadAsync): Use WTFMove to transfer the task to AsyncReadData. | |
(webkitSoupRequestInputStreamDidFailWithError): Use WTFMove to ensure pendingAsyncRead is cleared. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211734 | carlosgc@webkit.org | 2017-02-06 18:00:52 +0000 (Mon, 06 Feb 2017) | 14 lines | |
Changed paths: | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/WebProcess/soup/WebKitSoupRequestInputStream.cpp | |
[Soup] Deadlock in NetworkProcess | |
https://bugs.webkit.org/show_bug.cgi?id=167876 | |
Reviewed by Michael Catanzaro. | |
WebKitSoupRequestInputStream uses a read lock. What is happening is that webkitSoupRequestInputStreamAddData | |
takes the lock, and it calls webkitSoupRequestInputStreamPendingReadAsyncComplete with the lock help. That | |
causes webkitSoupRequestInputStreamReadAsync to be called again to read the next chunk, but in the same run loop | |
operation. We don't really need the read lock because both webkitSoupRequestInputStreamAddData and | |
webkitSoupRequestInputStreamReadAsync shoudl always be called from the main thread. | |
* WebProcess/soup/WebKitSoupRequestInputStream.cpp: | |
(webkitSoupRequestInputStreamReadAsync): Remove the read lock and assert if called from a secondary thread. | |
(webkitSoupRequestInputStreamAddData): Ditto. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211775 | carlosgc@webkit.org | 2017-02-07 06:45:43 +0000 (Tue, 07 Feb 2017) | 36 lines | |
Changed paths: | |
M /trunk/LayoutTests/ChangeLog | |
A /trunk/LayoutTests/fast/scrolling/scroll-animator-overlay-scrollbars-clicked-expected.txt | |
A /trunk/LayoutTests/fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html | |
M /trunk/LayoutTests/platform/ios-simulator/TestExpectations | |
M /trunk/LayoutTests/platform/mac-wk1/TestExpectations | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/page/EventHandler.cpp | |
M /trunk/Source/WebCore/page/EventHandler.h | |
Overlay scrolling with iframe-s broken | |
https://bugs.webkit.org/show_bug.cgi?id=165056 | |
Reviewed by Antonio Gomes. | |
Source/WebCore: | |
Mouse press events for overlay scrollbars are ignored if there's a subframe under the scrollbar. This doesn't | |
happen with normal scrollbars, because the subframe is not really under the scrollbar, so events are always | |
correctly passed to the scrollbar. With overlay scrollbars, the hit test detects the scrollbar, but events are | |
always passed first to the subframe. Scrollbars are correctly updated on hover though, because | |
handleMouseMoveEvent checks the presence of scrollbars before checking for subframes and move events are | |
actually passed to both, the scrollbar and the subframe. Overlay scrollbars should always take precedence over | |
subframes to handle mouse press events, so we should check first if mouse is over a scrollbar and never pass the | |
event to a subframe in that case. Another problem is that the cursor is not updated either when the overlay | |
scrollbar is hovered and there's a subframe. This is because in handleMouseMoveEvent we pass the event to both | |
the scrollbar and subframe but we never update the cursor when a suframe was found. So, here again we need to make | |
an exception for scrollbars and upate the cursor when mouse is over the scrollbar even if a subframe was found. | |
Test: fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html | |
* page/EventHandler.cpp: | |
(WebCore::EventHandler::handleMousePressEvent): Move the scrollbar check before the subframe check. | |
(WebCore::EventHandler::handleMouseMoveEvent): Update the cursor when hovering a scrollbar even if a subframe | |
was found. | |
(WebCore::EventHandler::updateLastScrollbarUnderMouse): Use an enum instead of a boolean for setLast parameter. | |
* page/EventHandler.h: | |
LayoutTests: | |
Add a new test to check that clicking on an overlay scrollbar works even it's over a subframe. | |
* fast/scrolling/scroll-animator-overlay-scrollbars-clicked-expected.txt: Added. | |
* fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html: Added. | |
* platform/ios-simulator/TestExpectations: | |
* platform/mac-wk1/TestExpectations: | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211366 | carlosgc@webkit.org | 2017-01-30 16:47:15 +0000 (Mon, 30 Jan 2017) | 6 lines | |
Changed paths: | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/WebProcess/WebPage/AcceleratedDrawingArea.cpp | |
Unreviewed. Fix GTK+ debug build after r211365. | |
Remove invalid assert. | |
* WebProcess/WebPage/AcceleratedDrawingArea.cpp: | |
(WebKit::AcceleratedDrawingArea::exitAcceleratedCompositingModeNow): | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211206 | zandobersek@gmail.com | 2017-01-26 09:21:46 +0000 (Thu, 26 Jan 2017) | 22 lines | |
Changed paths: | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp | |
ImageBufferCairo: cairo_image_surface should use bmalloc-allocated memory | |
https://bugs.webkit.org/show_bug.cgi?id=165751 | |
Reviewed by Carlos Garcia Campos. | |
Allocate the underlying memory for cairo_image_surface objects through FastMalloc. | |
This way we can steer such large allocations away from the default libc allocator. | |
Objects of this class can create Cairo surfaces that need as much as 4MB of memory | |
for the underlying pixel buffer. Allocating such objects through the default | |
libc allocator can lead to increased memory usage because of non-optimal allocation | |
strategy in libc. In contrast, bmalloc performs large allocations by directly using | |
mmap() to reserve the necessary memory. | |
The improvements can be significant. On nytimes.com, with the threaded version of | |
the CoordinatedGraphics system, the memory consumption can drop by roughly 20%. | |
* platform/graphics/cairo/ImageBufferCairo.cpp: | |
(WebCore::ImageBuffer::ImageBuffer): Zero-allocate the necessary memory via FastMalloc. | |
Tie that memory lifetime to the lifetime of the surface by using | |
cairo_surface_set_user_data() with the specific user data key. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211277 | carlosgc@webkit.org | 2017-01-27 08:54:23 +0000 (Fri, 27 Jan 2017) | 15 lines | |
Changed paths: | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/UIProcess/gtk/WebPreferencesGtk.cpp | |
[GTK] Stop forcing accelerated compositing by default | |
https://bugs.webkit.org/show_bug.cgi?id=167492 | |
Reviewed by Žan Doberšek. | |
We are now ready to bring back the on demand accelerated compositing mode with the threaded | |
compositor. Unfortunately, having AC always enabled brought a lot of issues for many people. Not only it | |
requires a lot more memory but also caused rendering issues (or even nothing rendered at all) with some graphics | |
drivers. People started to use WEBKIT_DISABLE_COMPOSITING_MODE as a workaround, but that was not expected to be | |
used by users. So, entering/leaving AC when required by web contents is not actually the solution but a huge | |
improvement for many people. If we are eventually ready to force AC mode again, we'll change this again. Note | |
that we still have WEBKIT_DISABLE_COMPOSITING_MODE, but now also WEBKIT_FORCE_COMPOSITING_MODE for testing and debugging. | |
* UIProcess/gtk/WebPreferencesGtk.cpp: | |
(WebKit::WebPreferences::platformInitializeStore): | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211365 | carlosgc@webkit.org | 2017-01-30 16:42:12 +0000 (Mon, 30 Jan 2017) | 44 lines | |
Changed paths: | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/WebProcess/WebPage/AcceleratedDrawingArea.cpp | |
M /trunk/Source/WebKit2/WebProcess/WebPage/AcceleratedDrawingArea.h | |
M /trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp | |
M /trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h | |
M /trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp | |
M /trunk/Source/WebKit2/WebProcess/WebPage/LayerTreeHost.h | |
[GTK] Do not release OpenGL resource immediately when leaving accelerated compositing mode | |
https://bugs.webkit.org/show_bug.cgi?id=167544 | |
Reviewed by Michael Catanzaro. | |
Sometimes the conditions to be in AC mode or not change quickly, and then we leave AC mode just enter it again | |
after a very short period of time. In those cases we are dropping all the GL resources and the compositor | |
thread, and creating it again. We could keep the layer tree host alive for a while when exiting AC mode, and | |
reuse it if we enter AC mode before the previous one has been discarded. While the previous layer tree host is | |
alive we still need to keep it up to date, for example if the web view is resized or contents size change, and | |
synchronize with the threaded compositor when it becomes the layer tree host again. | |
* WebProcess/WebPage/AcceleratedDrawingArea.cpp: | |
(WebKit::AcceleratedDrawingArea::~AcceleratedDrawingArea): Discard the previous layer tree host. | |
(WebKit::AcceleratedDrawingArea::AcceleratedDrawingArea): Initialize the timer to discard the previous layer | |
tree host. | |
(WebKit::AcceleratedDrawingArea::pageBackgroundTransparencyChanged): Notify the previous layer tree host if needed. | |
(WebKit::AcceleratedDrawingArea::mainFrameContentSizeChanged): Ditto. | |
(WebKit::AcceleratedDrawingArea::updateBackingStoreState): Ditto. | |
(WebKit::AcceleratedDrawingArea::enterAcceleratedCompositingMode): Reuse the previous layer tree host if possible. | |
(WebKit::AcceleratedDrawingArea::exitAcceleratedCompositingModeNow): Exit AC mode and save the layer tree host | |
starting a timer of 5 seconds to discard it if not reused. | |
(WebKit::AcceleratedDrawingArea::discardPreviousLayerTreeHost): Invalidate and destroy the previous layer tree host. | |
(WebKit::AcceleratedDrawingArea::didChangeViewportAttributes): Notify the previous layer tree host if needed. | |
(WebKit::AcceleratedDrawingArea::deviceOrPageScaleFactorChanged): Ditto. | |
* WebProcess/WebPage/AcceleratedDrawingArea.h: | |
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp: | |
(WebKit::ThreadedCoordinatedLayerTreeHost::scrollNonCompositedContents): If it's discardable add the action to | |
be synchronized instead. | |
(WebKit::ThreadedCoordinatedLayerTreeHost::contentsSizeChanged): Ditto. | |
(WebKit::ThreadedCoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged): Ditto. | |
(WebKit::ThreadedCoordinatedLayerTreeHost::pageBackgroundTransparencyChanged): Ditto. | |
(WebKit::ThreadedCoordinatedLayerTreeHost::sizeDidChange): Ditto. | |
(WebKit::ThreadedCoordinatedLayerTreeHost::didChangeViewportAttributes): Ditto. | |
(WebKit::ThreadedCoordinatedLayerTreeHost::setIsDiscardable): When the layer tree host becomes discardable, | |
reset the sync actions and return. When it becomes the real layer tree host again, apply all pending actions to | |
synchronize with the threaded compositor. | |
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h: | |
* WebProcess/WebPage/DrawingAreaImpl.cpp: | |
(WebKit::DrawingAreaImpl::scroll): Notify the previous layer tree host if needed. | |
(WebKit::DrawingAreaImpl::mainFrameContentSizeChanged): Ditto. | |
(WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode): Use AcceleratedDrawingArea::exitAcceleratedCompositingModeNow(). | |
* WebProcess/WebPage/LayerTreeHost.h: | |
(WebKit::LayerTreeHost::setIsDiscardable): Added. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211350 | carlosgc@webkit.org | 2017-01-29 10:06:30 +0000 (Sun, 29 Jan 2017) | 30 lines | |
Changed paths: | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/Shared/CoordinatedGraphics/SimpleViewportController.cpp | |
M /trunk/Source/WebKit2/Shared/CoordinatedGraphics/SimpleViewportController.h | |
M /trunk/Source/WebKit2/WebProcess/WebPage/AcceleratedDrawingArea.cpp | |
M /trunk/Source/WebKit2/WebProcess/WebPage/AcceleratedDrawingArea.h | |
M /trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp | |
M /trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h | |
M /trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.h | |
M /trunk/Source/WebKit2/WebProcess/WebPage/LayerTreeHost.h | |
M /trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp | |
[Coordinated Graphics] WebPage shouldn't use the layerTreeHost directly | |
https://bugs.webkit.org/show_bug.cgi?id=167494 | |
Reviewed by Michael Catanzaro. | |
In Coordinated Graphics we have a couple of methods that the WebPage uses directly from the layer tree host, | |
instead of using the drawing area interface. This patch adds DrawingArea::didChangeViewportAttributes and | |
DrawingArea::deviceOrPageScaleFactorChanged and renames LayerTreeHost::didChangeViewportProperties as | |
LayerTreeHost::didChangeViewportAttributes for consistency. | |
* Shared/CoordinatedGraphics/SimpleViewportController.cpp: | |
(WebKit::SimpleViewportController::didChangeViewportAttributes): Receive an rvalue reference to avoid copies. | |
* Shared/CoordinatedGraphics/SimpleViewportController.h: | |
* WebProcess/WebPage/AcceleratedDrawingArea.cpp: | |
(WebKit::AcceleratedDrawingArea::didChangeViewportAttributes): Forward it to the layer tree host if any. | |
(WebKit::AcceleratedDrawingArea::deviceOrPageScaleFactorChanged): Ditto. | |
* WebProcess/WebPage/AcceleratedDrawingArea.h: | |
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp: | |
(WebKit::ThreadedCoordinatedLayerTreeHost::didChangeViewportAttributes): Renamed and updated to pass an rvalue reference. | |
(WebKit::ThreadedCoordinatedLayerTreeHost::didChangeViewportProperties): Deleted. | |
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h: | |
* WebProcess/WebPage/DrawingArea.h: | |
* WebProcess/WebPage/LayerTreeHost.h: | |
(WebKit::LayerTreeHost::didChangeViewportAttributes): Renamed and updated to pass an rvalue reference. | |
(WebKit::LayerTreeHost::didChangeViewportProperties): Deleted. | |
* WebProcess/WebPage/WebPage.cpp: | |
(WebKit::WebPage::sendViewportAttributesChanged): Use the drawing area. | |
(WebKit::WebPage::scalePage): Ditto | |
(WebKit::WebPage::setDeviceScaleFactor): Ditto. | |
(WebKit::WebPage::viewportPropertiesDidChange): Ditto. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211358 | carlosgc@webkit.org | 2017-01-30 08:47:30 +0000 (Mon, 30 Jan 2017) | 11 lines | |
Changed paths: | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp | |
[Threaded Compositor] Crash in GraphicsContext3D::deleteTexture when destroying TextureMapperPlatformLayerProxy | |
https://bugs.webkit.org/show_bug.cgi?id=167575 | |
Reviewed by Žan Doberšek. | |
We should clear all the buffers on invalidate to ensure we don't have textures alive after CoordinatedGraphicsScene::purgeGLResources(). | |
Fix crash in media/video-poster-background.html. | |
* platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp: | |
(WebCore::TextureMapperPlatformLayerProxy::invalidate): Clear current, pending and all used buffers. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211357 | carlosgc@webkit.org | 2017-01-30 05:55:34 +0000 (Mon, 30 Jan 2017) | 20 lines | |
Changed paths: | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp | |
[Threaded Compositor] Crash on WebCore::GLContext::version() | |
https://bugs.webkit.org/show_bug.cgi?id=167559 | |
Reviewed by Michael Catanzaro. | |
Source/WebCore: | |
Fixes crashes in several media tests. | |
* platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp: | |
(WebCore::TextureMapperPlatformLayerProxy::invalidate): Clear m_compositorThreadUpdateTimer and call the update function. | |
Source/WebKit2: | |
This is happening because TextureMapperPlatformLayerProxy::compositorThreadUpdateTimerFired() is fired after the | |
threaded compositor is deleted. CoordinatedGraphicsScene::purgeGLResources() should invalidate the proxies | |
before clearing the map. | |
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: | |
(WebKit::CoordinatedGraphicsScene::purgeGLResources): | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211367 | magomez@igalia.com | 2017-01-30 16:53:09 +0000 (Mon, 30 Jan 2017) | 12 lines | |
Changed paths: | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp | |
[GTK] Scrolling iframes, doesn't redraw their content | |
https://bugs.webkit.org/show_bug.cgi?id=167581 | |
Reviewed by Carlos Garcia Campos. | |
Take into account whether we are using AC or not in order to repaint an area after scrolling. | |
No behaviour change, no new tests. | |
* WebProcess/WebCoreSupport/WebChromeClient.cpp: | |
(WebKit::WebChromeClient::invalidateContentsForSlowScroll): | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211348 | carlosgc@webkit.org | 2017-01-29 07:16:51 +0000 (Sun, 29 Jan 2017) | 10 lines | |
Changed paths: | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp | |
[Threaded Compositor] Crash when detaching the CoordinatedGraphicsScene | |
https://bugs.webkit.org/show_bug.cgi?id=167547 | |
Reviewed by Michael Catanzaro. | |
It seems that commitSceneState() can be called after the CoordinatedGraphicsScene has been detached. | |
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: | |
(WebKit::CoordinatedGraphicsScene::commitSceneState): Return early if scene has been detached. | |
(WebKit::CoordinatedGraphicsScene::detach): Take the render queue lock before clearing the render queue. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211347 | carlosgc@webkit.org | 2017-01-29 07:15:33 +0000 (Sun, 29 Jan 2017) | 11 lines | |
Changed paths: | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp | |
[Threaded Compositor] Crash when deleting the compositor run loop | |
https://bugs.webkit.org/show_bug.cgi?id=167545 | |
Reviewed by Michael Catanzaro. | |
The problem is that we are releasing the WorkQueue before the update timer that keeps a reference to the run | |
loop, destroyed by the WorkQueue. So, invalidate the WorkQueue in the next run loop iteration to ensure it | |
happens after the CompositingRunLoop destructor. | |
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp: | |
(WebKit::CompositingRunLoop::~CompositingRunLoop): | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211346 | carlosgc@webkit.org | 2017-01-29 07:14:12 +0000 (Sun, 29 Jan 2017) | 13 lines | |
Changed paths: | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp | |
[GTK] ASSERTION FAILED: !m_layerTreeHost in DrawingAreaImpl::display() | |
https://bugs.webkit.org/show_bug.cgi?id=167548 | |
Reviewed by Michael Catanzaro. | |
The problem is that non accelerated compositing forceRepaint implementation is doing a layout and then calling | |
display. The layout makes the drawing area enter in AC mode and display asserts that we have a layer tree | |
host. forceRepaint shouldn't do the layout because display already does that and it correctly handles the case | |
of entering AC mode during the layout. It shouldn't call setNeedsDisplay either, because that schedules a | |
display, but we are going to display synchronously. | |
* WebProcess/WebPage/DrawingAreaImpl.cpp: | |
(WebKit::DrawingAreaImpl::forceRepaint): | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211281 | carlosgc@webkit.org | 2017-01-27 12:10:56 +0000 (Fri, 27 Jan 2017) | 22 lines | |
Changed paths: | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp | |
M /trunk/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h | |
[Threaded Compositor] Stop creating the GLContext on demand the first time makeContextCurrent is called | |
https://bugs.webkit.org/show_bug.cgi?id=167496 | |
Reviewed by Žan Doberšek. | |
This is causing problems with animations when entering AC mode on demand. What happens is that the threaded | |
compositor is created, then the animation is scheduled and during the first animation iteration the GLContext is | |
created, making the first frame of the animation quite slow. In my computer creating the GLContext takes 0.8 | |
seconds. If the animation duration is less than the time it takes to create the GLContext, the animation ends | |
without iterating. This causing timeouts in the bots in tests like | |
animations/animation-iteration-event-destroy-renderer.html that expect webkitAnimationIteration events that | |
never fire. | |
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: | |
(WebKit::ThreadedCompositor::ThreadedCompositor): Create the GLContext right after the compositing thread is | |
created if we already have a native surface handle. | |
(WebKit::ThreadedCompositor::createGLContext): Helper to create the GLContext. | |
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing): Create the GLContext when a native surface | |
handle is given. | |
(WebKit::ThreadedCompositor::makeContextCurrent): Deleted. | |
(WebKit::ThreadedCompositor::renderLayerTree): Make the context cunrrent directly here. | |
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211205 | carlosgc@webkit.org | 2017-01-26 09:19:48 +0000 (Thu, 26 Jan 2017) | 12 lines | |
Changed paths: | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp | |
[Threaded Compositor] Update also the contents size when creating the threaded compositor | |
https://bugs.webkit.org/show_bug.cgi?id=167452 | |
Reviewed by Žan Doberšek. | |
In r210954 we ensured that the threaded compositor and the viewport controller were created with the initial web | |
page size. If we don't update the contents size, the visible rectangle will be empty and tiles won't be created | |
until contentsSizeDidChange is called. It's even possible, when entering AC mode on demand, that we create the | |
layer tree host after the contents size changed, in which case nothing is rendered unless we resize the window. | |
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp: | |
(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost): | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211204 | magomez@igalia.com | 2017-01-26 09:05:01 +0000 (Thu, 26 Jan 2017) | 13 lines | |
Changed paths: | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp | |
[GTK] WebProcess from WebKitGtk+ 2.15.3 SIGSEVs in WebCore::GraphicsContext3D::drawArrays(unsigned int, int, int) at Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:740 | |
https://bugs.webkit.org/show_bug.cgi?id=167296 | |
Reviewed by Sergio Villar Senin. | |
Use a VBO to pass the vertex data when using the stencil for clipping. Passing a custom array without | |
using an VBO is deprecated when using OpenGL >= 3.0 and a Core profile. | |
No behaviour change, no new tests. | |
* platform/graphics/texmap/TextureMapperGL.cpp: | |
(WebCore::TextureMapperGL::beginClip): | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211145 | carlosgc@webkit.org | 2017-01-25 16:54:28 +0000 (Wed, 25 Jan 2017) | 25 lines | |
Changed paths: | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp | |
M /trunk/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.h | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/UIProcess/gtk/AcceleratedBackingStoreX11.cpp | |
M /trunk/Source/WebKit2/UIProcess/gtk/WebPreferencesGtk.cpp | |
[GTK] UIProcess from WebKitGtk+ 2.15.x SIGSEGVs because of X Error BadDamage in WebKit::AcceleratedBackingStoreX11::update(WebKit::LayerTreeContext const&) () at Source/WebKit2/UIProcess/gtk/AcceleratedBackingStoreX11.cpp:145 | |
https://bugs.webkit.org/show_bug.cgi?id=165656 | |
Reviewed by Michael Catanzaro. | |
Source/WebCore: | |
Also return the base error code from PlatformDisplayX11::supportsXDamage(). | |
* platform/graphics/x11/PlatformDisplayX11.cpp: | |
(WebCore::PlatformDisplayX11::supportsXDamage): | |
* platform/graphics/x11/PlatformDisplayX11.h: | |
Source/WebKit2: | |
We are incorrectly handling BadDamage errors because the BadDamage value we pass to the XErrorTrapper is not | |
the actual error code used by X11. Since XDamage is an extension, it has its own errors and a base error | |
code. We need to use the base error code we get when calling XDamageQueryExtension to pass the right error code | |
to the XErrorTrapper. | |
* UIProcess/gtk/AcceleratedBackingStoreX11.cpp: | |
(WebKit::AcceleratedBackingStoreX11::create): Get also the damage base error. | |
(WebKit::xDamageErrorCode): Helper to get the actual error code. | |
(WebKit::AcceleratedBackingStoreX11::~AcceleratedBackingStoreX11): Use xDamageErrorCode(). | |
(WebKit::AcceleratedBackingStoreX11::update): Ditto. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211141 | magomez@igalia.com | 2017-01-25 13:26:01 +0000 (Wed, 25 Jan 2017) | 31 lines | |
Changed paths: | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/page/PageOverlayController.cpp | |
M /trunk/Source/WebCore/page/PageOverlayController.h | |
M /trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp | |
[GTK] The inspector is broken when AC support is disabled | |
https://bugs.webkit.org/show_bug.cgi?id=165237 | |
Reviewed by Carlos Garcia Campos. | |
Source/WebCore: | |
Ensure that PageOverlayController destroys its root GraphicsLayers when leaving AC. They | |
will be recreated if we enter AC again, avoiding a crash because the layers don't belong to | |
the appropriate compositor. Also, don't append the document overlay layers if we are not | |
in compositing mode. | |
No new tests added. | |
* page/PageOverlayController.cpp: | |
(WebCore::PageOverlayController::willDetachRootLayer): | |
* page/PageOverlayController.h: | |
* rendering/RenderLayerCompositor.cpp: | |
(WebCore::RenderLayerCompositor::appendDocumentOverlayLayers): | |
(WebCore::RenderLayerCompositor::detachRootLayer): | |
Source/WebKit2: | |
WebInspector must not use PageOverlays or GraphicsLayers when AC is not avaialable. | |
No new tests added. | |
* WebProcess/WebCoreSupport/WebInspectorClient.cpp: | |
(WebKit::WebInspectorClient::highlight): | |
(WebKit::WebInspectorClient::showPaintRect): | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211084 | magomez@igalia.com | 2017-01-24 16:25:31 +0000 (Tue, 24 Jan 2017) | 13 lines | |
Changed paths: | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/rendering/RenderLayerBacking.cpp | |
[GTK] Do not paint non composited content into the window when using the threaded compositor | |
https://bugs.webkit.org/show_bug.cgi?id=167367 | |
Reviewed by Carlos Garcia Campos. | |
When using the threaded compositor we need to send the non composited content for compositing as well, | |
not painting it directly into the window. | |
No new tests. | |
* rendering/RenderLayerBacking.cpp: | |
(WebCore::RenderLayerBacking::paintsIntoWindow): | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r210954 | carlosgc@webkit.org | 2017-01-20 06:55:46 +0000 (Fri, 20 Jan 2017) | 22 lines | |
Changed paths: | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/Shared/CoordinatedGraphics/SimpleViewportController.cpp | |
M /trunk/Source/WebKit2/Shared/CoordinatedGraphics/SimpleViewportController.h | |
M /trunk/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp | |
M /trunk/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h | |
M /trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp | |
[Threaded Compositor] Initialize the threaded compositor with the current size | |
https://bugs.webkit.org/show_bug.cgi?id=167196 | |
Reviewed by Žan Doberšek. | |
We are always creating the threaded compositor with an empty size and then a sizeDidChange always happen when | |
the backing store state changes. This is always happening because the threaded compositor is created before the | |
first backing store state, but if we wanted to create it later, for example to enter/leave AC mode on demand, | |
the threaded compositor will not have the viewport size unless the window is resized, or sizeDidChange is called | |
manually when entering AC mode. Creating the threaded compositor is sync and changing the size too, so it's | |
better to do both things at the same time using the same sync operation. | |
* Shared/CoordinatedGraphics/SimpleViewportController.cpp: | |
(WebKit::SimpleViewportController::SimpleViewportController): Pass an initial size to the constructor. | |
* Shared/CoordinatedGraphics/SimpleViewportController.h: | |
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: | |
(WebKit::ThreadedCompositor::create): Add viewportSize and scaleFactor construction parameters, | |
(WebKit::ThreadedCompositor::ThreadedCompositor): Ditto. Also mark as needs resize if the given size is not empty. | |
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: | |
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp: | |
(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost): Initialize the threaded compositor | |
with an initial viewport size and scale factor. | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r211083 | magomez@igalia.com | 2017-01-24 14:10:43 +0000 (Tue, 24 Jan 2017) | 14 lines | |
Changed paths: | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/WebProcess/WebPage/AcceleratedDrawingArea.cpp | |
[Coordinated Graphics] Ensure that we're in AC mode before trying to create GraphicsLayers | |
https://bugs.webkit.org/show_bug.cgi?id=167365 | |
Reviewed by Carlos Garcia Campos. | |
When entering AC on demand, the RenderLayerCompositor wants to create the root GraphicsLayer before the | |
AcceleratedDrawingArea is in AC mode. This means there's no LayerTreeHost to request the GraphicsLayerFactory, | |
so no layers are created. Ensure that we are in AC mode before requesting the GraphicsLayerFactory. | |
No behaviour change, no new tests. | |
* WebProcess/WebPage/AcceleratedDrawingArea.cpp: | |
(WebKit::AcceleratedDrawingArea::graphicsLayerFactory): | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r210920 | carlosgc@webkit.org | 2017-01-19 08:59:42 +0000 (Thu, 19 Jan 2017) | 17 lines | |
Changed paths: | |
M /trunk/Source/WebKit2/ChangeLog | |
M /trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.cpp | |
[GTK] Do not update the backing store state unnecessarily when page visibility changes | |
https://bugs.webkit.org/show_bug.cgi?id=167195 | |
Reviewed by Sergio Villar Senin. | |
I've noticed that we are receiving UpdateBackingStoreState messages in the web process even when size and scale | |
factor didn't change. That's quite unfortunate because we do a lot of work unnecessarily and we tell the | |
threaded compositor that the size changed. This is not only a problem because it's not true, but also because | |
changing the size is a sync operation in the threaded compositor, so we block the compositing thread for | |
nothing. This is happening because the WebPageProxy notifies the drawing area that the backing store is | |
discardable when the page is not visible, and that always produces a new backing store state. In accelerating | |
compositing mode we don't even have a backing store to discard, so we should check we have something to discard | |
and also make sure we only generate a new backing store state if we really discarded the backing store. | |
* UIProcess/DrawingAreaProxyImpl.cpp: | |
(WebKit::DrawingAreaProxyImpl::discardBackingStoreSoon): | |
(WebKit::DrawingAreaProxyImpl::discardBackingStore): | |
------------------------------------------------------------------------ | |
------------------------------------------------------------------------ | |
r210847 | magomez@igalia.com | 2017-01-18 08:50:16 +0000 (Wed, 18 Jan 2017) | 19 lines | |
Changed paths: | |
M /trunk/Source/WebCore/ChangeLog | |
M /trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp | |
M /trunk/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp | |
M /trunk/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.h | |
[GTK] [TextureMapper] [GLES2] Draw repeated patterns for NPOT textures manually | |
https://bugs.webkit.org/show_bug.cgi?id=167118 | |
Reviewed by Žan Doberšek. | |
When using GLES2 without the GL_OES_texture_npot extension, some implementations fail to properly | |
draw repeated patters from a texture (using GL_REPEAT). For those cases, perform the repetition | |
manually using the shader. | |
Covered by existent tests. | |
* platform/graphics/texmap/TextureMapperGL.cpp: | |
(WebCore::driverSupportsNPOTTextures): | |
(WebCore::TextureMapperGL::drawTexture): | |
(WebCore::TextureMapperGL::drawTexturedQuadWithProgram): | |
* platform/graphics/texmap/TextureMapperShaderProgram.cpp: | |
(WebCore::TextureMapperShaderProgram::create): | |
* platform/graphics/texmap/TextureMapperShaderProgram.h: | |
------------------------------------------------------------------------ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment