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

Issue 174323003: Expose locks for CopyFromCompositingSurface/CopyFromBackingStore API (Closed)

Created:
6 years, 10 months ago by powei
Modified:
6 years, 9 months ago
Reviewers:
jam, no sievers, piman
CC:
chromium-reviews, yusukes+watch_chromium.org, yukishiino+watch_chromium.org, jam, penghuang+watch_chromium.org, joi+watch-content_chromium.org, nona+watch_chromium.org, darin-cc_chromium.org, James Su, miu+watch_chromium.org, aelias_OOO_until_Jul13
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Visibility:
Public.

Description

Expose locks for CopyFromCompositingSurface/CopyFromBackingStore API For async implementation of CopyFromCompositingSurface/CopyFromBackingStore in RenderWidgetHostView and RenderWidgetHost, we need locks to ensure that the content cannot be evicted during copy. BUG=326363 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=258476

Patch Set 1 #

Patch Set 2 : upload error #

Total comments: 4

Patch Set 3 : addressed comments #

Total comments: 2

Patch Set 4 : reworded and added comments #

Total comments: 7

Patch Set 5 : added android-side change #

Total comments: 2

Patch Set 6 : added NOTIMPLEMENTED() and put back CanCopyFromBackingStore() #

Total comments: 4

Patch Set 7 : changed lock/unlock implementation to accommodate for CVC being swapped out #

Patch Set 8 : rebased #

Patch Set 9 : addressed comments #

Total comments: 6

Patch Set 10 : addressed comments #

Total comments: 2

Patch Set 11 : addressed comment about saving last frame during lock #

Total comments: 2

Patch Set 12 : nit and removed incorrect early out #

Total comments: 8

Patch Set 13 : addressed comments #

Total comments: 4

Patch Set 14 : addressed comment about comment #

Patch Set 15 : LockSurface -> LockCompositingSurface #

Patch Set 16 : fix android clang bot #

Patch Set 17 : fix android clang bot try 2 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+151 lines, -17 lines) Patch
M content/browser/renderer_host/delegated_frame_evictor.h View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +5 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +18 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_android.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 4 chunks +27 lines, -3 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_android.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 11 chunks +80 lines, -14 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_base.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_base.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +8 lines, -0 lines 0 comments Download
M content/port/browser/render_widget_host_view_port.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +4 lines, -0 lines 0 comments Download
M content/public/browser/render_widget_host.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +6 lines, -0 lines 0 comments Download

Messages

Total messages: 60 (0 generated)
powei
ptal sievers@. piman@ is OOO for a little over a week. Would you recommend I ...
6 years, 10 months ago (2014-02-20 22:19:51 UTC) #1
no sievers
https://codereview.chromium.org/174323003/diff/90001/content/browser/renderer_host/render_widget_host_impl.cc File content/browser/renderer_host/render_widget_host_impl.cc (right): https://codereview.chromium.org/174323003/diff/90001/content/browser/renderer_host/render_widget_host_impl.cc#newcode753 content/browser/renderer_host/render_widget_host_impl.cc:753: view_->IsSurfaceAvailableForCopy(); return view_->IsSurfaceAvailableForCopy(); https://codereview.chromium.org/174323003/diff/90001/content/public/browser/render_widget_host_view.h File content/public/browser/render_widget_host_view.h (right): https://codereview.chromium.org/174323003/diff/90001/content/public/browser/render_widget_host_view.h#newcode90 content/public/browser/render_widget_host_view.h:90: ...
6 years, 10 months ago (2014-02-21 02:01:37 UTC) #2
powei
https://codereview.chromium.org/174323003/diff/90001/content/browser/renderer_host/render_widget_host_impl.cc File content/browser/renderer_host/render_widget_host_impl.cc (right): https://codereview.chromium.org/174323003/diff/90001/content/browser/renderer_host/render_widget_host_impl.cc#newcode753 content/browser/renderer_host/render_widget_host_impl.cc:753: view_->IsSurfaceAvailableForCopy(); On 2014/02/21 02:01:37, sievers wrote: > return view_->IsSurfaceAvailableForCopy(); ...
6 years, 10 months ago (2014-02-21 02:27:22 UTC) #3
no sievers
+jam https://codereview.chromium.org/174323003/diff/220002/content/port/browser/render_widget_host_view_port.h File content/port/browser/render_widget_host_view_port.h (right): https://codereview.chromium.org/174323003/diff/220002/content/port/browser/render_widget_host_view_port.h#newcode188 content/port/browser/render_widget_host_view_port.h:188: // content is not evicted while copying. I'd ...
6 years, 10 months ago (2014-02-21 02:34:10 UTC) #4
powei
https://codereview.chromium.org/174323003/diff/220002/content/port/browser/render_widget_host_view_port.h File content/port/browser/render_widget_host_view_port.h (right): https://codereview.chromium.org/174323003/diff/220002/content/port/browser/render_widget_host_view_port.h#newcode188 content/port/browser/render_widget_host_view_port.h:188: // content is not evicted while copying. On 2014/02/21 ...
6 years, 10 months ago (2014-02-21 18:41:15 UTC) #5
no sievers
lgtm
6 years, 10 months ago (2014-02-21 19:53:49 UTC) #6
no sievers
needs jam@ for OWNERS
6 years, 10 months ago (2014-02-24 21:49:37 UTC) #7
jam
https://codereview.chromium.org/174323003/diff/350001/content/browser/renderer_host/render_widget_host_view_base.cc File content/browser/renderer_host/render_widget_host_view_base.cc (right): https://codereview.chromium.org/174323003/diff/350001/content/browser/renderer_host/render_widget_host_view_base.cc#newcode596 content/browser/renderer_host/render_widget_host_view_base.cc:596: void RenderWidgetHostViewBase::LockSurfaceForCopy() {} where is the implementation of this? ...
6 years, 10 months ago (2014-02-26 00:09:53 UTC) #8
no sievers
https://codereview.chromium.org/174323003/diff/350001/content/public/browser/render_widget_host.h File content/public/browser/render_widget_host.h (right): https://codereview.chromium.org/174323003/diff/350001/content/public/browser/render_widget_host.h#newcode203 content/public/browser/render_widget_host.h:203: virtual bool CanCopyFromBackingStore() = 0; On 2014/02/26 00:09:54, jam ...
6 years, 10 months ago (2014-02-26 00:25:55 UTC) #9
no sievers
On 2014/02/26 00:25:55, sievers wrote: > https://codereview.chromium.org/174323003/diff/350001/content/public/browser/render_widget_host.h > File content/public/browser/render_widget_host.h (right): > > https://codereview.chromium.org/174323003/diff/350001/content/public/browser/render_widget_host.h#newcode203 > ...
6 years, 10 months ago (2014-02-26 00:27:54 UTC) #10
jam
https://codereview.chromium.org/174323003/diff/350001/content/public/browser/render_widget_host.h File content/public/browser/render_widget_host.h (right): https://codereview.chromium.org/174323003/diff/350001/content/public/browser/render_widget_host.h#newcode206 content/public/browser/render_widget_host.h:206: virtual void UnlockForCopyFromBackingStore() = 0; On 2014/02/26 00:25:56, sievers ...
6 years, 10 months ago (2014-02-26 17:37:29 UTC) #11
no sievers
On 2014/02/26 17:37:29, jam wrote: > https://codereview.chromium.org/174323003/diff/350001/content/public/browser/render_widget_host.h > File content/public/browser/render_widget_host.h (right): > > https://codereview.chromium.org/174323003/diff/350001/content/public/browser/render_widget_host.h#newcode206 > ...
6 years, 10 months ago (2014-02-26 17:43:44 UTC) #12
no sievers
On 2014/02/26 17:43:44, sievers wrote: > On 2014/02/26 17:37:29, jam wrote: > > > https://codereview.chromium.org/174323003/diff/350001/content/public/browser/render_widget_host.h ...
6 years, 10 months ago (2014-02-26 17:45:45 UTC) #13
no sievers
On 2014/02/26 17:45:45, sievers wrote: > On 2014/02/26 17:43:44, sievers wrote: > > On 2014/02/26 ...
6 years, 10 months ago (2014-02-26 17:47:21 UTC) #14
powei
On 2014/02/26 17:47:21, sievers wrote: > On 2014/02/26 17:45:45, sievers wrote: > > On 2014/02/26 ...
6 years, 10 months ago (2014-02-26 18:11:32 UTC) #15
powei
https://codereview.chromium.org/174323003/diff/350001/content/public/browser/render_widget_host.h File content/public/browser/render_widget_host.h (right): https://codereview.chromium.org/174323003/diff/350001/content/public/browser/render_widget_host.h#newcode203 content/public/browser/render_widget_host.h:203: virtual bool CanCopyFromBackingStore() = 0; On 2014/02/26 00:25:56, sievers ...
6 years, 10 months ago (2014-02-26 18:42:38 UTC) #16
no sievers
https://codereview.chromium.org/174323003/diff/390001/content/browser/renderer_host/render_widget_host_view_base.cc File content/browser/renderer_host/render_widget_host_view_base.cc (right): https://codereview.chromium.org/174323003/diff/390001/content/browser/renderer_host/render_widget_host_view_base.cc#newcode596 content/browser/renderer_host/render_widget_host_view_base.cc:596: void RenderWidgetHostViewBase::LockSurfaceForCopy() {} I'd put NOTIMPLEMENTED() here and below ...
6 years, 10 months ago (2014-02-26 19:49:38 UTC) #17
no sievers
On 2014/02/26 18:42:38, powei wrote: > https://codereview.chromium.org/174323003/diff/350001/content/public/browser/render_widget_host.h > File content/public/browser/render_widget_host.h (right): > > https://codereview.chromium.org/174323003/diff/350001/content/public/browser/render_widget_host.h#newcode203 > ...
6 years, 10 months ago (2014-02-26 19:51:59 UTC) #18
powei
+piman@ for RendererFrameManager/DelegatedFrameEvictor sievers@, not sure if you looked over RWHVAndroid yet. If not, would ...
6 years, 10 months ago (2014-02-26 22:35:24 UTC) #19
jam
just some nits I don't really understand this code, so I feel like I'm not ...
6 years, 10 months ago (2014-02-26 22:57:51 UTC) #20
powei
https://codereview.chromium.org/174323003/diff/410001/content/browser/renderer_host/render_widget_host_view_android.h File content/browser/renderer_host/render_widget_host_view_android.h (right): https://codereview.chromium.org/174323003/diff/410001/content/browser/renderer_host/render_widget_host_view_android.h#newcode220 content/browser/renderer_host/render_widget_host_view_android.h:220: virtual void LockSurfaceForCopy() OVERRIDE; On 2014/02/26 22:57:52, jam wrote: ...
6 years, 9 months ago (2014-03-03 09:20:54 UTC) #21
piman
https://codereview.chromium.org/174323003/diff/490001/content/browser/renderer_host/delegated_frame_evictor.cc File content/browser/renderer_host/delegated_frame_evictor.cc (right): https://codereview.chromium.org/174323003/diff/490001/content/browser/renderer_host/delegated_frame_evictor.cc#newcode52 content/browser/renderer_host/delegated_frame_evictor.cc:52: if (!has_frame_) return 0; nit: return on next line ...
6 years, 9 months ago (2014-03-04 19:09:54 UTC) #22
powei
https://codereview.chromium.org/174323003/diff/490001/content/browser/renderer_host/delegated_frame_evictor.cc File content/browser/renderer_host/delegated_frame_evictor.cc (right): https://codereview.chromium.org/174323003/diff/490001/content/browser/renderer_host/delegated_frame_evictor.cc#newcode52 content/browser/renderer_host/delegated_frame_evictor.cc:52: if (!has_frame_) return 0; On 2014/03/04 19:09:55, piman (OOO ...
6 years, 9 months ago (2014-03-04 20:49:21 UTC) #23
piman
https://codereview.chromium.org/174323003/diff/530001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/174323003/diff/530001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode840 content/browser/renderer_host/render_widget_host_view_android.cc:840: return; So, if my understanding is correct, while there ...
6 years, 9 months ago (2014-03-05 20:14:35 UTC) #24
powei
https://codereview.chromium.org/174323003/diff/530001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/174323003/diff/530001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode840 content/browser/renderer_host/render_widget_host_view_android.cc:840: return; On 2014/03/05 20:14:36, piman wrote: > So, if ...
6 years, 9 months ago (2014-03-06 07:41:40 UTC) #25
piman
LGTM+nit. Daniel should review the latest logic though. https://codereview.chromium.org/174323003/diff/560001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/174323003/diff/560001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode868 content/browser/renderer_host/render_widget_host_view_android.cc:868: void ...
6 years, 9 months ago (2014-03-06 21:11:28 UTC) #26
powei
https://codereview.chromium.org/174323003/diff/560001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/174323003/diff/560001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode868 content/browser/renderer_host/render_widget_host_view_android.cc:868: void RenderWidgetHostViewAndroid::DropFrame( On 2014/03/06 21:11:28, piman wrote: > nit: ...
6 years, 9 months ago (2014-03-06 21:26:09 UTC) #27
powei
ping sievers@ for another scan of render_widget_host_view_android.cc. Thanks!
6 years, 9 months ago (2014-03-10 05:38:39 UTC) #28
no sievers
On 2014/03/10 05:38:39, powei wrote: > ping sievers@ for another scan of render_widget_host_view_android.cc. Thanks! Do ...
6 years, 9 months ago (2014-03-17 19:18:21 UTC) #29
no sievers
On 2014/03/17 19:18:21, sievers wrote: > On 2014/03/10 05:38:39, powei wrote: > > ping sievers@ ...
6 years, 9 months ago (2014-03-17 19:20:28 UTC) #30
powei
On 2014/03/17 19:18:21, sievers wrote: > On 2014/03/10 05:38:39, powei wrote: > > ping sievers@ ...
6 years, 9 months ago (2014-03-17 20:30:05 UTC) #31
powei
On 2014/03/17 19:20:28, sievers wrote: > On 2014/03/17 19:18:21, sievers wrote: > > On 2014/03/10 ...
6 years, 9 months ago (2014-03-17 20:32:34 UTC) #32
no sievers
Thinking about it a bit more, retaining the frame but inhibiting the swap sounds better ...
6 years, 9 months ago (2014-03-18 23:44:06 UTC) #33
powei
Also removed "ForCopy" notation https://codereview.chromium.org/174323003/diff/580001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/174323003/diff/580001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode779 content/browser/renderer_host/render_widget_host_view_android.cc:779: ack_callback.Run(); On 2014/03/18 23:44:07, sievers ...
6 years, 9 months ago (2014-03-19 17:50:41 UTC) #34
no sievers
LGTM, nice. https://codereview.chromium.org/174323003/diff/600001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/174323003/diff/600001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode879 content/browser/renderer_host/render_widget_host_view_android.cc:879: // acknowledgement and drop it. nit: comment, ...
6 years, 9 months ago (2014-03-19 19:22:25 UTC) #35
powei
ping jam@ and piman@. Any preference between the naming scheme of Lock/UnlockSurface and Lock/UnlockCompositingSurface ?
6 years, 9 months ago (2014-03-19 19:38:07 UTC) #36
piman
On 2014/03/19 19:38:07, powei wrote: > ping jam@ and piman@. > > Any preference between ...
6 years, 9 months ago (2014-03-19 20:35:05 UTC) #37
powei
https://codereview.chromium.org/174323003/diff/600001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/174323003/diff/600001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode879 content/browser/renderer_host/render_widget_host_view_android.cc:879: // acknowledgement and drop it. On 2014/03/19 19:22:26, sievers ...
6 years, 9 months ago (2014-03-19 21:14:07 UTC) #38
powei
On 2014/03/19 20:35:05, piman wrote: > On 2014/03/19 19:38:07, powei wrote: > > ping jam@ ...
6 years, 9 months ago (2014-03-19 21:14:54 UTC) #39
powei
The CQ bit was checked by powei@chromium.org
6 years, 9 months ago (2014-03-19 21:15:04 UTC) #40
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/powei@chromium.org/174323003/660001
6 years, 9 months ago (2014-03-19 21:17:25 UTC) #41
powei
The CQ bit was unchecked by powei@chromium.org
6 years, 9 months ago (2014-03-19 21:47:22 UTC) #42
powei
The CQ bit was checked by powei@chromium.org
6 years, 9 months ago (2014-03-20 05:50:34 UTC) #43
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/powei@chromium.org/174323003/680001
6 years, 9 months ago (2014-03-20 05:51:03 UTC) #44
powei
The CQ bit was unchecked by powei@chromium.org
6 years, 9 months ago (2014-03-20 06:17:54 UTC) #45
powei
The CQ bit was checked by powei@chromium.org
6 years, 9 months ago (2014-03-20 06:34:31 UTC) #46
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/powei@chromium.org/174323003/700001
6 years, 9 months ago (2014-03-20 06:34:41 UTC) #47
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 9 months ago (2014-03-20 06:36:41 UTC) #48
commit-bot: I haz the power
Try jobs failed on following builders: tryserver.chromium on linux_chromium_clang_dbg
6 years, 9 months ago (2014-03-20 06:36:41 UTC) #49
powei
The CQ bit was checked by powei@chromium.org
6 years, 9 months ago (2014-03-20 07:09:34 UTC) #50
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/powei@chromium.org/174323003/700001
6 years, 9 months ago (2014-03-20 07:10:14 UTC) #51
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 9 months ago (2014-03-20 07:12:48 UTC) #52
commit-bot: I haz the power
Try jobs failed on following builders: tryserver.chromium on linux_chromium_clang_dbg
6 years, 9 months ago (2014-03-20 07:12:48 UTC) #53
powei
The CQ bit was checked by powei@chromium.org
6 years, 9 months ago (2014-03-20 15:47:07 UTC) #54
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/powei@chromium.org/174323003/700001
6 years, 9 months ago (2014-03-20 15:47:22 UTC) #55
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 9 months ago (2014-03-20 19:28:52 UTC) #56
commit-bot: I haz the power
Retried try job too often on win_rel for step(s) browser_tests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=win_rel&number=285255
6 years, 9 months ago (2014-03-20 19:28:53 UTC) #57
powei
The CQ bit was checked by powei@chromium.org
6 years, 9 months ago (2014-03-20 22:01:58 UTC) #58
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/powei@chromium.org/174323003/700001
6 years, 9 months ago (2014-03-20 22:06:07 UTC) #59
commit-bot: I haz the power
6 years, 9 months ago (2014-03-21 00:50:48 UTC) #60
Message was sent while issue was closed.
Change committed as 258476

Powered by Google App Engine
This is Rietveld 408576698