WebKit Bugzilla
Attachment 345784 Details for
Bug 187980
: After replaying a DisplayList, the state of the drawing context has to be restored
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch for Review
187980-review.patch (text/plain), 1.73 KB, created by
Said Abou-Hallawa
on 2018-07-25 14:30:09 PDT
(
hide
)
Description:
Patch for Review
Filename:
MIME Type:
Creator:
Said Abou-Hallawa
Created:
2018-07-25 14:30:09 PDT
Size:
1.73 KB
patch
obsolete
>diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 8ead222fe60..477dcfb7719 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,18 @@ >+2018-07-24 Said Abou-Hallawa <sabouhallawa@apple.com> >+ >+ After replaying a DisplayList, the state of the drawing context has to be restored >+ https://bugs.webkit.org/show_bug.cgi?id=187980 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ A problem could happen if we are replaying multiple display lists to the >+ same drawing context. When replaying its DisplayListItems, the DisplayList >+ expects to find the state of the drawing context to be exactly the same >+ it was at the time it was recorded. >+ >+ * platform/graphics/displaylists/DisplayListReplayer.cpp: >+ (WebCore::DisplayList::Replayer::replay): >+ > 2018-07-23 Said Abou-Hallawa <sabouhallawa@apple.com> > > DisplayList::DrawRect() should take half of the border thickness into account when calculating the localBounds. >diff --git a/Source/WebCore/platform/graphics/displaylists/DisplayListReplayer.cpp b/Source/WebCore/platform/graphics/displaylists/DisplayListReplayer.cpp >index edb9af459ca..f31c85b28ee 100644 >--- a/Source/WebCore/platform/graphics/displaylists/DisplayListReplayer.cpp >+++ b/Source/WebCore/platform/graphics/displaylists/DisplayListReplayer.cpp >@@ -49,6 +49,8 @@ std::unique_ptr<DisplayList> Replayer::replay(const FloatRect& initialClip, bool > if (UNLIKELY(trackReplayList)) > replayList = std::make_unique<DisplayList>(); > >+ GraphicsContextStateSaver stateSaver(m_context); >+ > size_t numItems = m_displayList.itemCount(); > for (size_t i = 0; i < numItems; ++i) { > auto& item = m_displayList.list()[i].get();
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 187980
:
345728
| 345784