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

Issue 551843003: Persist Directory to disk when the app is backgrounded. (Closed)

Created:
6 years, 3 months ago by maxbogue
Modified:
6 years, 2 months ago
CC:
chromium-reviews, tim+watch_chromium.org, haitaol+watch_chromium.org, zea+watch_chromium.org, maniscalco+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Project:
chromium
Visibility:
Public.

Description

On Android, save the Directory when the app is backgrounded. Because we don't know when the app will be killed, the current time before Directory saves can result in lost data. This change uses the app getting backgrounded as a signal that we might be killed soon and triggers a Directory::SaveChanges(). BUG=395233 Committed: https://crrev.com/d4470ca3ec0642a68abe141b6bd69529d5814315 Cr-Commit-Position: refs/heads/master@{#297547}

Patch Set 1 #

Patch Set 2 : Use SyncBackendHost to get to the sync thread. #

Total comments: 18

Patch Set 3 : Address comments. #

Patch Set 4 : Route through SyncBackendHostCore for Thread Safety(tm). #

Total comments: 4

Patch Set 5 : Add a thread check and fix a comment. #

Total comments: 6

Patch Set 6 : Remove braces. #

Patch Set 7 : Use backend_initialized_ instead of backend_ != NULL. #

Total comments: 5

Patch Set 8 : Add a test and use SyncBackendHostCore::SaveChanges(). #

Total comments: 4

Patch Set 9 : Address nits. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+79 lines, -7 lines) Patch
M chrome/android/java/src/org/chromium/chrome/browser/sync/ProfileSyncService.java View 1 2 3 4 5 6 7 4 chunks +22 lines, -0 lines 0 comments Download
M chrome/android/sync_shell/javatests/src/chromium/chrome/browser/sync/SyncTest.java View 1 2 3 4 5 6 7 2 chunks +18 lines, -0 lines 0 comments Download
M chrome/browser/sync/glue/sync_backend_host.h View 1 2 3 4 5 6 7 1 chunk +3 lines, -0 lines 0 comments Download
M chrome/browser/sync/glue/sync_backend_host_core.h View 1 2 3 4 5 6 7 8 2 chunks +5 lines, -7 lines 0 comments Download
M chrome/browser/sync/glue/sync_backend_host_impl.h View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M chrome/browser/sync/glue/sync_backend_host_impl.cc View 1 2 3 4 5 6 7 8 1 chunk +6 lines, -0 lines 0 comments Download
M chrome/browser/sync/glue/sync_backend_host_mock.h View 1 2 3 4 5 6 7 1 chunk +2 lines, -0 lines 0 comments Download
M chrome/browser/sync/glue/sync_backend_host_mock.cc View 1 2 3 4 5 6 7 1 chunk +2 lines, -0 lines 0 comments Download
M chrome/browser/sync/profile_sync_service.h View 1 2 3 4 5 6 7 8 1 chunk +5 lines, -0 lines 0 comments Download
M chrome/browser/sync/profile_sync_service.cc View 1 2 3 4 5 6 7 8 1 chunk +7 lines, -0 lines 0 comments Download
M chrome/browser/sync/profile_sync_service_android.h View 1 2 3 4 5 6 7 1 chunk +3 lines, -0 lines 0 comments Download
M chrome/browser/sync/profile_sync_service_android.cc View 1 2 3 4 5 6 7 1 chunk +5 lines, -0 lines 0 comments Download

Messages

Total messages: 31 (4 generated)
maxbogue
I got this working. PTAL and let me know if anything could be better. Specifically, ...
6 years, 3 months ago (2014-09-10 17:31:35 UTC) #2
nyquist
https://codereview.chromium.org/551843003/diff/20001/chrome/browser/sync/glue/sync_backend_host_impl.cc File chrome/browser/sync/glue/sync_backend_host_impl.cc (right): https://codereview.chromium.org/551843003/diff/20001/chrome/browser/sync/glue/sync_backend_host_impl.cc#newcode528 chrome/browser/sync/glue/sync_backend_host_impl.cc:528: void SyncBackendHostImpl::FlushDirectory() const { Does this require the sync ...
6 years, 3 months ago (2014-09-10 17:43:09 UTC) #3
maniscalco
(drive-by) Glad to see this getting implemented! https://codereview.chromium.org/551843003/diff/20001/chrome/browser/sync/glue/sync_backend_host_impl.cc File chrome/browser/sync/glue/sync_backend_host_impl.cc (right): https://codereview.chromium.org/551843003/diff/20001/chrome/browser/sync/glue/sync_backend_host_impl.cc#newcode524 chrome/browser/sync/glue/sync_backend_host_impl.cc:524: void FlushDirectoryWrapper(syncer::syncable::Directory* ...
6 years, 3 months ago (2014-09-10 17:49:03 UTC) #5
maxbogue
https://codereview.chromium.org/551843003/diff/20001/chrome/browser/sync/glue/sync_backend_host_impl.cc File chrome/browser/sync/glue/sync_backend_host_impl.cc (right): https://codereview.chromium.org/551843003/diff/20001/chrome/browser/sync/glue/sync_backend_host_impl.cc#newcode524 chrome/browser/sync/glue/sync_backend_host_impl.cc:524: void FlushDirectoryWrapper(syncer::syncable::Directory* directory) { On 2014/09/10 17:49:03, maniscalco wrote: ...
6 years, 3 months ago (2014-09-10 20:11:02 UTC) #6
maniscalco
https://codereview.chromium.org/551843003/diff/20001/chrome/browser/sync/glue/sync_backend_host_impl.cc File chrome/browser/sync/glue/sync_backend_host_impl.cc (right): https://codereview.chromium.org/551843003/diff/20001/chrome/browser/sync/glue/sync_backend_host_impl.cc#newcode524 chrome/browser/sync/glue/sync_backend_host_impl.cc:524: void FlushDirectoryWrapper(syncer::syncable::Directory* directory) { On 2014/09/10 20:11:01, maxbogue wrote: ...
6 years, 3 months ago (2014-09-10 20:19:25 UTC) #7
maxbogue
https://codereview.chromium.org/551843003/diff/20001/chrome/browser/sync/glue/sync_backend_host_impl.cc File chrome/browser/sync/glue/sync_backend_host_impl.cc (right): https://codereview.chromium.org/551843003/diff/20001/chrome/browser/sync/glue/sync_backend_host_impl.cc#newcode524 chrome/browser/sync/glue/sync_backend_host_impl.cc:524: void FlushDirectoryWrapper(syncer::syncable::Directory* directory) { On 2014/09/10 20:19:25, maniscalco wrote: ...
6 years, 3 months ago (2014-09-12 16:45:38 UTC) #8
maniscalco
On 2014/09/12 16:45:38, maxbogue wrote: > https://codereview.chromium.org/551843003/diff/20001/chrome/browser/sync/glue/sync_backend_host_impl.cc > File chrome/browser/sync/glue/sync_backend_host_impl.cc (right): > > https://codereview.chromium.org/551843003/diff/20001/chrome/browser/sync/glue/sync_backend_host_impl.cc#newcode524 > ...
6 years, 3 months ago (2014-09-12 17:31:44 UTC) #9
maniscalco
https://codereview.chromium.org/551843003/diff/60001/chrome/browser/sync/glue/sync_backend_host_core.cc File chrome/browser/sync/glue/sync_backend_host_core.cc (right): https://codereview.chromium.org/551843003/diff/60001/chrome/browser/sync/glue/sync_backend_host_core.cc#newcode667 chrome/browser/sync/glue/sync_backend_host_core.cc:667: syncer::syncable::Directory* directory = It would be a good idea ...
6 years, 3 months ago (2014-09-12 17:42:19 UTC) #10
maxbogue
https://codereview.chromium.org/551843003/diff/60001/chrome/browser/sync/glue/sync_backend_host_core.cc File chrome/browser/sync/glue/sync_backend_host_core.cc (right): https://codereview.chromium.org/551843003/diff/60001/chrome/browser/sync/glue/sync_backend_host_core.cc#newcode667 chrome/browser/sync/glue/sync_backend_host_core.cc:667: syncer::syncable::Directory* directory = On 2014/09/12 17:42:19, maniscalco wrote: > ...
6 years, 3 months ago (2014-09-12 18:48:14 UTC) #11
maniscalco
On 2014/09/12 18:48:14, maxbogue wrote: > https://codereview.chromium.org/551843003/diff/60001/chrome/browser/sync/glue/sync_backend_host_core.cc > File chrome/browser/sync/glue/sync_backend_host_core.cc (right): > > https://codereview.chromium.org/551843003/diff/60001/chrome/browser/sync/glue/sync_backend_host_core.cc#newcode667 > ...
6 years, 3 months ago (2014-09-12 20:04:26 UTC) #12
nyquist
i don't know enough about the details about the threading models after the PSS calls ...
6 years, 3 months ago (2014-09-15 07:19:41 UTC) #13
Nicolas Zea
https://codereview.chromium.org/551843003/diff/80001/chrome/browser/sync/glue/sync_backend_host_core.cc File chrome/browser/sync/glue/sync_backend_host_core.cc (right): https://codereview.chromium.org/551843003/diff/80001/chrome/browser/sync/glue/sync_backend_host_core.cc#newcode668 chrome/browser/sync/glue/sync_backend_host_core.cc:668: syncer::syncable::Directory* directory = What will this do if the ...
6 years, 3 months ago (2014-09-15 22:39:00 UTC) #14
maxbogue
https://codereview.chromium.org/551843003/diff/80001/chrome/browser/sync/glue/sync_backend_host_core.cc File chrome/browser/sync/glue/sync_backend_host_core.cc (right): https://codereview.chromium.org/551843003/diff/80001/chrome/browser/sync/glue/sync_backend_host_core.cc#newcode668 chrome/browser/sync/glue/sync_backend_host_core.cc:668: syncer::syncable::Directory* directory = On 2014/09/15 22:38:59, Nicolas Zea wrote: ...
6 years, 3 months ago (2014-09-16 15:34:31 UTC) #15
Nicolas Zea
https://codereview.chromium.org/551843003/diff/80001/chrome/browser/sync/glue/sync_backend_host_core.cc File chrome/browser/sync/glue/sync_backend_host_core.cc (right): https://codereview.chromium.org/551843003/diff/80001/chrome/browser/sync/glue/sync_backend_host_core.cc#newcode668 chrome/browser/sync/glue/sync_backend_host_core.cc:668: syncer::syncable::Directory* directory = On 2014/09/16 15:34:31, maxbogue wrote: > ...
6 years, 3 months ago (2014-09-18 16:52:18 UTC) #16
maxbogue
https://codereview.chromium.org/551843003/diff/80001/chrome/browser/sync/glue/sync_backend_host_core.cc File chrome/browser/sync/glue/sync_backend_host_core.cc (right): https://codereview.chromium.org/551843003/diff/80001/chrome/browser/sync/glue/sync_backend_host_core.cc#newcode668 chrome/browser/sync/glue/sync_backend_host_core.cc:668: syncer::syncable::Directory* directory = On 2014/09/18 16:52:17, Nicolas Zea wrote: ...
6 years, 3 months ago (2014-09-22 17:23:25 UTC) #17
Nicolas Zea
Mostly LG. Were you going to add tests? https://codereview.chromium.org/551843003/diff/120001/chrome/browser/sync/glue/sync_backend_host_core.cc File chrome/browser/sync/glue/sync_backend_host_core.cc (right): https://codereview.chromium.org/551843003/diff/120001/chrome/browser/sync/glue/sync_backend_host_core.cc#newcode670 chrome/browser/sync/glue/sync_backend_host_core.cc:670: if ...
6 years, 3 months ago (2014-09-22 17:27:46 UTC) #18
pval...(no longer on Chromium)
https://codereview.chromium.org/551843003/diff/120001/chrome/browser/sync/glue/sync_backend_host_core.cc File chrome/browser/sync/glue/sync_backend_host_core.cc (right): https://codereview.chromium.org/551843003/diff/120001/chrome/browser/sync/glue/sync_backend_host_core.cc#newcode666 chrome/browser/sync/glue/sync_backend_host_core.cc:666: void SyncBackendHostCore::DoFlushDirectory() { Max/Nicolas: Here is an idea for ...
6 years, 3 months ago (2014-09-23 20:11:12 UTC) #20
maxbogue
On 2014/09/23 20:11:12, pvalenzuela wrote: > https://codereview.chromium.org/551843003/diff/120001/chrome/browser/sync/glue/sync_backend_host_core.cc > File chrome/browser/sync/glue/sync_backend_host_core.cc (right): > > https://codereview.chromium.org/551843003/diff/120001/chrome/browser/sync/glue/sync_backend_host_core.cc#newcode666 > ...
6 years, 3 months ago (2014-09-23 22:56:46 UTC) #21
nyquist
Would this be a member that would be cleared when flush is called again? Or ...
6 years, 3 months ago (2014-09-24 16:34:06 UTC) #22
Nicolas Zea
FYI, I just noticed the the backup/rollback tests are already checking the db last modified ...
6 years, 2 months ago (2014-09-25 18:16:48 UTC) #23
maxbogue
PTAL. I worked with Patrick to add a minimal test with a TODO for future ...
6 years, 2 months ago (2014-09-30 00:26:33 UTC) #24
pval...(no longer on Chromium)
lgtm Thanks for adding the test, Max. This will give us a really good test ...
6 years, 2 months ago (2014-09-30 17:55:21 UTC) #25
Nicolas Zea
LGTM with a couple nits https://codereview.chromium.org/551843003/diff/140001/chrome/browser/sync/glue/sync_backend_host_core.cc File chrome/browser/sync/glue/sync_backend_host_core.cc (right): https://codereview.chromium.org/551843003/diff/140001/chrome/browser/sync/glue/sync_backend_host_core.cc#newcode25 chrome/browser/sync/glue/sync_backend_host_core.cc:25: #include "sync/internal_api/public/user_share.h" Is this ...
6 years, 2 months ago (2014-09-30 21:20:22 UTC) #26
maxbogue
Comments addressed. Thanks for the reviews! https://codereview.chromium.org/551843003/diff/140001/chrome/browser/sync/glue/sync_backend_host_core.cc File chrome/browser/sync/glue/sync_backend_host_core.cc (right): https://codereview.chromium.org/551843003/diff/140001/chrome/browser/sync/glue/sync_backend_host_core.cc#newcode25 chrome/browser/sync/glue/sync_backend_host_core.cc:25: #include "sync/internal_api/public/user_share.h" On ...
6 years, 2 months ago (2014-09-30 21:59:34 UTC) #27
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/551843003/160001
6 years, 2 months ago (2014-09-30 22:01:54 UTC) #29
commit-bot: I haz the power
Committed patchset #9 (id:160001) as 0dc698045295c6474d38d0a63264d6431a94093f
6 years, 2 months ago (2014-09-30 23:38:19 UTC) #30
commit-bot: I haz the power
6 years, 2 months ago (2014-09-30 23:39:01 UTC) #31
Message was sent while issue was closed.
Patchset 9 (id:??) landed as
https://crrev.com/d4470ca3ec0642a68abe141b6bd69529d5814315
Cr-Commit-Position: refs/heads/master@{#297547}

Powered by Google App Engine
This is Rietveld 408576698