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

Issue 2859693002: Filter redundant JumpList favicons' fetching and related (Closed)

Created:
3 years, 7 months ago by chengx
Modified:
3 years, 7 months ago
CC:
chromium-reviews
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Filter redundant JumpList favicons' fetching and related In the current JumpList implementation, each time when the TopSites service or the TabRestore service has updates, the JumpList being an observer of them will start an update. This update consists of the following steps: 1) Retrieve updated URLs, create ShellLinkItem and fetch the favicons for these URLs; 2) Schedule a RunUpdateJumpList run to update icons in jumplisticon folders and notify the shell. Currently, there's a delay of 3500 ms before each RunUpdateJumpList call so that other RunUpdateJumpList calls requested in this period will be collapsed into one which can prevent update storms. This says that we are coalescing step 2 of jumplist updates which are close to each other in time. However, we're not coalescing step 1 of those jumplist updates, which makes some of them completely wasted. Therefore, we should apply this "delay and coalesce" strategy to step 1 as well. Moreover, in JumpList::OnMostVisitedURLsAvailable(), we're processing more URLs (typically 24) than needed (typically between 5 to 9). The work of creating ShellLinkItems and fetching favicons for these URLs is wasted. Note that all these tasks are running on UI thread. Therefore, it's very important to optimize them which otherwise can possibly hang Chrome. BUG=40407, 179576, 717236 Review-Url: https://codereview.chromium.org/2859693002 Cr-Commit-Position: refs/heads/master@{#470091} Committed: https://chromium.googlesource.com/chromium/src/+/9c0c398442ed5dc4d3c52f735b57cb84a22c977d

Patch Set 1 #

Total comments: 12

Patch Set 2 : Address comments: update callback function calls and more #

Total comments: 4

Patch Set 3 : Merge branch 'master' of https://chromium.googlesource.com/chromium/src into faviconloadingdelay #

Patch Set 4 : Fix nits #

Unified diffs Side-by-side diffs Delta from patch set Stats (+108 lines, -70 lines) Patch
M chrome/browser/win/jumplist.h View 1 2 3 2 chunks +20 lines, -11 lines 0 comments Download
M chrome/browser/win/jumplist.cc View 1 2 3 5 chunks +88 lines, -59 lines 0 comments Download

Messages

Total messages: 66 (55 generated)
chengx
PTAL, thanks! Hi Greg, you may have noticed that I've sent you another CL crrev.com/2860573005, ...
3 years, 7 months ago (2017-05-02 23:53:28 UTC) #12
grt (UTC plus 2)
https://codereview.chromium.org/2859693002/diff/20001/chrome/browser/win/jumplist.cc File chrome/browser/win/jumplist.cc (right): https://codereview.chromium.org/2859693002/diff/20001/chrome/browser/win/jumplist.cc#newcode442 chrome/browser/win/jumplist.cc:442: void JumpList::Terminate() { stop the timers in here, no? ...
3 years, 7 months ago (2017-05-03 10:51:48 UTC) #22
chengx
PTAL, thanks! https://codereview.chromium.org/2859693002/diff/20001/chrome/browser/win/jumplist.cc File chrome/browser/win/jumplist.cc (right): https://codereview.chromium.org/2859693002/diff/20001/chrome/browser/win/jumplist.cc#newcode442 chrome/browser/win/jumplist.cc:442: void JumpList::Terminate() { On 2017/05/03 10:51:48, grt ...
3 years, 7 months ago (2017-05-03 20:45:14 UTC) #25
grt (UTC plus 2)
lgtm w/nits https://codereview.chromium.org/2859693002/diff/40001/chrome/browser/win/jumplist.h File chrome/browser/win/jumplist.h (right): https://codereview.chromium.org/2859693002/diff/40001/chrome/browser/win/jumplist.h#newcode105 chrome/browser/win/jumplist.h:105: // Called on a timer to update ...
3 years, 7 months ago (2017-05-04 11:32:43 UTC) #28
chengx
I've fixed all the nits in the new patch set. Thanks! https://codereview.chromium.org/2859693002/diff/40001/chrome/browser/win/jumplist.h File chrome/browser/win/jumplist.h (right): ...
3 years, 7 months ago (2017-05-04 20:48:04 UTC) #36
chengx
Hi Bruce, FYI this is the CL where I extend your "delay and coalesce" idea ...
3 years, 7 months ago (2017-05-04 21:26:53 UTC) #38
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/2859693002/100001
3 years, 7 months ago (2017-05-08 16:15:58 UTC) #43
commit-bot: I haz the power
Try jobs failed on following builders: ios-simulator on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator/builds/209671)
3 years, 7 months ago (2017-05-08 16:35:39 UTC) #45
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/2859693002/140001
3 years, 7 months ago (2017-05-08 18:44:49 UTC) #59
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/2859693002/140001
3 years, 7 months ago (2017-05-08 19:02:01 UTC) #63
commit-bot: I haz the power
3 years, 7 months ago (2017-05-08 19:58:03 UTC) #66
Message was sent while issue was closed.
Committed patchset #4 (id:140001) as
https://chromium.googlesource.com/chromium/src/+/9c0c398442ed5dc4d3c52f735b57...

Powered by Google App Engine
This is Rietveld 408576698