Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(183)

Issue 2455983005: Refactor AcceleratedStaticBitmapImage (Closed)

Created:
4 years, 1 month ago by xidachen
Modified:
4 years, 1 month ago
Reviewers:
Justin Novosad
CC:
chromium-reviews, krit, drott+blinkwatch_chromium.org, blink-reviews-platform-graphics_chromium.org, dshwang, pdr+graphicswatchlist_chromium.org, jbroman, Rik, f(malita), blink-reviews, piman+watch_chromium.org, danakj+watch_chromium.org, ajuma+watch_chromium.org, Stephen Chennney, rwlbuis
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Refactor AcceleratedStaticBitmapImage This CL solves this problems: Calling OffscreenCanvas's transferToImageBitmap changes WebGL's DepthTest states. The cause is that in the method DrawingBuffer::transferToStaticBitmapImage(), it calls SkImage::MakeFromAdoptedTexture(). The first parameter that we passed to MakeFromAdoptedTexture method is WebGL's GrContext, and can change all kinds of WebGL states. To solve this, we should not using a SkImage to wrap up WebGL's mailbox and syncToken. But the problem is: how are we going to keep them alive. So this CL refactors the AcceleratedStaticBitmapImage class. In particular, we designed an abstract class TextureHolder, which has two sub-classes: SkiaTextureHolder, MailboxTextureHolder. Then AcceleratedStaticBitmapImage holds an instance of TextureHolder. Being a SkiaTextureHolder means that the AcceleratedStaticBitmapImage is created from a texture-backed SkImage. Being a MailboxTextureHolder means that the AcceleratedStaticBitmapImage is created by passing in WebGL's mailbox, syncToken and associated texture Id to keep the texture alive. This CL also fixes the problem where WebGL's commit have flickering. The cause of the flickering is that in dispatchFrame() function call which takes a StaticBitmapImage |image|, we accidentally called verifyImageSize(image->imageForCurrentFrame())), the image->imageForCurrentFrame() consumes the mailbox and convert the mailbox into a texture-backed SkImage, then when we prepare transferable resources from the image, we call image->ensureMailbox() which converts the SkImage back to GPU texture again. This is totally un-necessary. The fix is just let verifyImageSize take image->size(). This CL also fixes a crash on releaseImageThreadSafe method. Currently in the AcceleratedStaticBitmapImage class, it keeps a pointer m_imageThread which stores the thread where m_image is created. Then in the method releaseImageThreadSafe(), it calls m_imageThread->getWebTaskRunner() to release the m_image on the original thread where it was created. It could crash in this case: when m_image was created on a worker thread, and then transferred to the main thread, when releaseImageThreadSafe() is invoked on the main thread, the worker thread is already out of scope. So at this moment, calling m_imageThread->getWebTaskRunner() results in a crash. The fix of it is to store a clone of the WebTaskRunner for m_imageThread. BUG=657975, 661614, 658251 Committed: https://crrev.com/5717f6e18242d06a01cab340f086624b8f55cad6 Cr-Commit-Position: refs/heads/master@{#430865}

Patch Set 1 #

Total comments: 4

Patch Set 2 : deleteTexture in desctructor #

Total comments: 13

Patch Set 3 : Add layout test, comment for PS2 not address, DO NOT COMMIT this PS #

Patch Set 4 : build is fine, layout tests still crashes #

Patch Set 5 : WeakPtr, still figuring out why one layout test timed out #

Total comments: 1

Patch Set 6 : keep originClean and isPremultiplied flag at StaticBitmap base class #

Patch Set 7 : minor clean up #

Total comments: 6

Patch Set 8 : SkiaTextureHolder keeps a clone of WebTaskRunner #

Patch Set 9 : minor clean up #

Patch Set 10 : fix compile error #

Patch Set 11 : fix crash #

Total comments: 3

Patch Set 12 : fix flickering #

Total comments: 1

Patch Set 13 : keep an additional m_imageThreadDoNotCall #

Patch Set 14 : rebase #

Total comments: 3

Patch Set 15 : release texture thread safe #

Patch Set 16 : No long keep WeakPtr<DrawingBuffer> #

Total comments: 14

Patch Set 17 : no crash! && address comments #

Total comments: 6

Patch Set 18 : Minor clean up, almost identical to PS17 #

Patch Set 19 : address comments #

Patch Set 20 : Keep a unique_ptr<WebGraphicsContext3DProvider>, otherwise crashes #

Unified diffs Side-by-side diffs Delta from patch set Stats (+737 lines, -265 lines) Patch
A third_party/WebKit/LayoutTests/fast/canvas/webgl/offscreenCanvas-APIs-NOT-alter-webgl-states.html View 1 2 1 chunk +54 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/fast/canvas/webgl/offscreenCanvas-transferToImageBitmap-texImage2D.html View 1 2 3 4 5 6 7 1 chunk +0 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +8 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +32 lines, -40 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 5 chunks +65 lines, -135 lines 0 comments Download
A third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +57 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +112 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 4 chunks +8 lines, -5 lines 0 comments Download
A third_party/WebKit/Source/platform/graphics/SkiaTextureHolder.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +50 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/platform/graphics/SkiaTextureHolder.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +93 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/StaticBitmapImage.h View 1 2 3 4 5 2 chunks +42 lines, -25 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/StaticBitmapImage.cpp View 1 2 3 4 2 chunks +10 lines, -36 lines 0 comments Download
A third_party/WebKit/Source/platform/graphics/TextureHolder.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +77 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/platform/graphics/UnacceleratedStaticBitmapImage.h View 1 2 3 4 5 1 chunk +39 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/platform/graphics/UnacceleratedStaticBitmapImage.cpp View 1 2 3 4 1 chunk +46 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/platform/graphics/WebGraphicsContext3DProviderWrapper.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +32 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 19 2 chunks +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 6 chunks +9 lines, -21 lines 0 comments Download

Messages

Total messages: 59 (21 generated)
xidachen
I have not yet create a test to make sure that this will fix the ...
4 years, 1 month ago (2016-10-27 20:20:45 UTC) #2
Fady Samuel
https://codereview.chromium.org/2455983005/diff/1/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp File third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp (right): https://codereview.chromium.org/2455983005/diff/1/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp#newcode58 third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp:58: m_gl->DeleteTextures(1, &m_textureId); Something is failing in here. It sounds ...
4 years, 1 month ago (2016-10-28 17:33:45 UTC) #4
Justin Novosad
https://codereview.chromium.org/2455983005/diff/1/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp File third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp (right): https://codereview.chromium.org/2455983005/diff/1/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp#newcode326 third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp:326: image->deleteTexture(resource.sync_token.GetConstData()); We should not be deleting any textures here. ...
4 years, 1 month ago (2016-10-28 18:08:00 UTC) #5
xidachen
https://codereview.chromium.org/2455983005/diff/1/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp File third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp (right): https://codereview.chromium.org/2455983005/diff/1/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp#newcode326 third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp:326: image->deleteTexture(resource.sync_token.GetConstData()); On 2016/10/28 18:08:00, Justin Novosad wrote: > We ...
4 years, 1 month ago (2016-10-28 21:14:15 UTC) #6
Justin Novosad
https://codereview.chromium.org/2455983005/diff/20001/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp File third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp (right): https://codereview.chromium.org/2455983005/diff/20001/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp#newcode60 third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp:60: SharedGpuContext::gl()->ProduceTextureDirectCHROMIUM( This should be moved to the destructor of ...
4 years, 1 month ago (2016-10-28 21:58:41 UTC) #7
Justin Novosad
https://codereview.chromium.org/2455983005/diff/20001/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp File third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp (right): https://codereview.chromium.org/2455983005/diff/20001/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp#newcode22 third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp:22: m_textureId(textureId), Rename this to textureIdToDeleteAfterMailboxConsumed, to make it clear ...
4 years, 1 month ago (2016-10-31 16:38:32 UTC) #8
xidachen
Summary: The patch is mostly ready now, only one layout test times out and I ...
4 years, 1 month ago (2016-11-02 01:28:08 UTC) #12
Justin Novosad
On 2016/11/02 01:28:08, xidachen wrote: > Summary: > > The patch is mostly ready now, ...
4 years, 1 month ago (2016-11-02 13:56:28 UTC) #13
xidachen
On 2016/11/02 13:56:28, Justin Novosad wrote: > On 2016/11/02 01:28:08, xidachen wrote: > > Summary: ...
4 years, 1 month ago (2016-11-02 14:00:29 UTC) #14
xidachen
On 2016/11/02 14:00:29, xidachen wrote: > On 2016/11/02 13:56:28, Justin Novosad wrote: > > On ...
4 years, 1 month ago (2016-11-02 14:24:54 UTC) #15
xidachen
PS#7 should work. The change between 5 and 7 is very small.
4 years, 1 month ago (2016-11-02 15:32:17 UTC) #16
Justin Novosad
https://codereview.chromium.org/2455983005/diff/120001/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp File third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp (right): https://codereview.chromium.org/2455983005/diff/120001/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp#newcode153 third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp:153: if (m_textureHolder->isSkiaTextureHolder()) You should avoid explicit type checking here. ...
4 years, 1 month ago (2016-11-03 17:37:47 UTC) #17
xidachen
https://codereview.chromium.org/2455983005/diff/120001/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp File third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp (right): https://codereview.chromium.org/2455983005/diff/120001/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp#newcode153 third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp:153: if (m_textureHolder->isSkiaTextureHolder()) On 2016/11/03 17:37:47, Justin Novosad wrote: > ...
4 years, 1 month ago (2016-11-03 20:03:10 UTC) #19
xidachen
+haraken@: could you please take a look at changes under public/platform and platform/scheduler? I basically ...
4 years, 1 month ago (2016-11-04 01:43:12 UTC) #22
haraken
On 2016/11/04 01:43:12, xidachen wrote: > +haraken@: could you please take a look at changes ...
4 years, 1 month ago (2016-11-04 01:58:37 UTC) #23
xidachen
https://codereview.chromium.org/2455983005/diff/200001/third_party/WebKit/Source/platform/graphics/SkiaTextureHolder.cpp File third_party/WebKit/Source/platform/graphics/SkiaTextureHolder.cpp (right): https://codereview.chromium.org/2455983005/diff/200001/third_party/WebKit/Source/platform/graphics/SkiaTextureHolder.cpp#newcode75 third_party/WebKit/Source/platform/graphics/SkiaTextureHolder.cpp:75: Platform::current()->currentThread()->getWebTaskRunner()) && haraken@: The problem is in here. Let's ...
4 years, 1 month ago (2016-11-04 02:23:35 UTC) #24
haraken
On 2016/11/04 02:23:35, xidachen wrote: > https://codereview.chromium.org/2455983005/diff/200001/third_party/WebKit/Source/platform/graphics/SkiaTextureHolder.cpp > File third_party/WebKit/Source/platform/graphics/SkiaTextureHolder.cpp (right): > > https://codereview.chromium.org/2455983005/diff/200001/third_party/WebKit/Source/platform/graphics/SkiaTextureHolder.cpp#newcode75 > ...
4 years, 1 month ago (2016-11-04 05:06:03 UTC) #25
xidachen
junov@: Please take a look at PS#12 which fixes the flickering problem. The fix is ...
4 years, 1 month ago (2016-11-04 13:18:03 UTC) #28
Justin Novosad
On 2016/11/04 05:06:03, haraken wrote: > > I feel like that the underlying problem is ...
4 years, 1 month ago (2016-11-04 13:39:03 UTC) #29
Justin Novosad
On 2016/11/04 13:18:03, xidachen wrote: > junov@: Please take a look at PS#12 which fixes ...
4 years, 1 month ago (2016-11-04 13:48:08 UTC) #30
xidachen
haraken@: FYI, I have reverted all changes to public/platform and platform/scheduler. junov@: Now keeping an ...
4 years, 1 month ago (2016-11-04 15:43:19 UTC) #31
haraken
On 2016/11/04 15:43:19, xidachen wrote: > haraken@: FYI, I have reverted all changes to public/platform ...
4 years, 1 month ago (2016-11-04 15:53:22 UTC) #32
xidachen
https://codereview.chromium.org/2455983005/diff/260001/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp File third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp (right): https://codereview.chromium.org/2455983005/diff/260001/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp#newcode149 third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp:149: m_textureHolder->deleteTexture(); junov@: Please take a look at this change ...
4 years, 1 month ago (2016-11-04 17:23:06 UTC) #33
Justin Novosad
On 2016/11/04 17:23:06, xidachen wrote: > https://codereview.chromium.org/2455983005/diff/260001/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp > File > third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp > (right): > > ...
4 years, 1 month ago (2016-11-08 14:19:13 UTC) #35
Justin Novosad
https://codereview.chromium.org/2455983005/diff/260001/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.h File third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.h (right): https://codereview.chromium.org/2455983005/diff/260001/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.h#newcode15 third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.h:15: class DrawingBuffer; The dependency on DrawingBuffer here is quite ...
4 years, 1 month ago (2016-11-08 14:33:27 UTC) #36
xidachen
PS#15 now does release texture correctly. To get rid of the WeakPtr<DrawingBuffer> in MailboxTextureHolder, I ...
4 years, 1 month ago (2016-11-08 16:54:14 UTC) #37
xidachen
https://codereview.chromium.org/2455983005/diff/300001/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp File third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp (right): https://codereview.chromium.org/2455983005/diff/300001/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp#newcode79 third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp:79: syncToken->GetData()); junov@: it is crashing at syncToken->GetData(). I did ...
4 years, 1 month ago (2016-11-08 18:46:07 UTC) #38
Justin Novosad
https://codereview.chromium.org/2455983005/diff/300001/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp File third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp (right): https://codereview.chromium.org/2455983005/diff/300001/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp#newcode76 third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp:76: std::unique_ptr<gpu::SyncToken> syncToken) { Why not just pass sync token ...
4 years, 1 month ago (2016-11-08 19:02:18 UTC) #39
xidachen
https://codereview.chromium.org/2455983005/diff/300001/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp File third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp (right): https://codereview.chromium.org/2455983005/diff/300001/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp#newcode92 third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp:92: std::move(passedSyncToken)); Also, I found that if I replace this ...
4 years, 1 month ago (2016-11-08 19:07:11 UTC) #40
Justin Novosad
https://codereview.chromium.org/2455983005/diff/300001/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp File third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp (right): https://codereview.chromium.org/2455983005/diff/300001/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp#newcode72 third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp:72: static void releaseTexture( should use unnamed namespace instead of ...
4 years, 1 month ago (2016-11-08 19:38:54 UTC) #41
xidachen
https://codereview.chromium.org/2455983005/diff/300001/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp File third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp (right): https://codereview.chromium.org/2455983005/diff/300001/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp#newcode72 third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp:72: static void releaseTexture( On 2016/11/08 19:38:54, Justin Novosad wrote: ...
4 years, 1 month ago (2016-11-08 20:30:58 UTC) #42
Justin Novosad
https://codereview.chromium.org/2455983005/diff/320001/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp File third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp (right): https://codereview.chromium.org/2455983005/diff/320001/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp#newcode154 third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp:154: m_contextProvider->contextProvider()->isSoftwareRendering()), No need for m_contextProvider-> Just: m_softwareRendering(contextProvider()->isSoftwareRendering()) https://codereview.chromium.org/2455983005/diff/320001/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp#newcode448 third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp:448: ...
4 years, 1 month ago (2016-11-08 20:41:50 UTC) #43
xidachen
https://codereview.chromium.org/2455983005/diff/320001/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp File third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp (right): https://codereview.chromium.org/2455983005/diff/320001/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp#newcode154 third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp:154: m_contextProvider->contextProvider()->isSoftwareRendering()), On 2016/11/08 20:41:50, Justin Novosad wrote: > No ...
4 years, 1 month ago (2016-11-08 21:01:54 UTC) #44
Justin Novosad
lgtm. And as an afterthough: There is a bunch of stuff in platform/graphics that should ...
4 years, 1 month ago (2016-11-08 21:07:20 UTC) #45
xidachen
On 2016/11/08 21:07:20, Justin Novosad wrote: > lgtm. > > And as an afterthough: There ...
4 years, 1 month ago (2016-11-08 21:09:08 UTC) #48
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2455983005/380001
4 years, 1 month ago (2016-11-09 03:37:32 UTC) #55
commit-bot: I haz the power
Committed patchset #20 (id:380001)
4 years, 1 month ago (2016-11-09 04:47:05 UTC) #57
commit-bot: I haz the power
4 years, 1 month ago (2016-11-09 04:51:13 UTC) #59
Message was sent while issue was closed.
Patchset 20 (id:??) landed as
https://crrev.com/5717f6e18242d06a01cab340f086624b8f55cad6
Cr-Commit-Position: refs/heads/master@{#430865}

Powered by Google App Engine
This is Rietveld 408576698