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

Issue 6625037: Make the toast more reliable and less dangerous... (Closed)

Created:
9 years, 9 months ago by cpu_(ooo_6.6-7.5)
Modified:
9 years, 7 months ago
Reviewers:
Finnur, Mark Larson
CC:
chromium-reviews, brettw-cc_chromium.org
Visibility:
Public.

Description

Make the toast more reliable and less dangerous The current toast (re-activation) experiment suffers from the following problems: 1- False negative: the toast can be triggered even if chrome is being used 2- Nested message loop crash: If chrome tries to run while the toast is being shown, it crashes This change addresses both conditions. Before running the toast we leverage the process_singleton to detect another instance. If so we abort with "no thanks". When showing the toast and its nested message loop we take the process_singleton lock which inhibits dispatch of the wm_copydata message which spawns new tabs in the current process if we try to span a new tab while in the nested message loop we crash. BUG=32026 TES=see bug Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=77214

Patch Set 1 #

Total comments: 4

Patch Set 2 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+35 lines, -6 lines) Patch
M chrome/browser/browser_main.cc View 1 chunk +10 lines, -1 line 0 comments Download
M chrome/browser/first_run/first_run.h View 1 1 chunk +4 lines, -1 line 0 comments Download
M chrome/browser/first_run/first_run_win.cc View 1 4 chunks +11 lines, -4 lines 0 comments Download
M chrome/browser/process_singleton.h View 1 1 chunk +10 lines, -0 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
cpu_(ooo_6.6-7.5)
9 years, 9 months ago (2011-03-05 04:08:19 UTC) #1
cpu_(ooo_6.6-7.5)
9 years, 9 months ago (2011-03-07 17:48:37 UTC) #2
Finnur
9 years, 9 months ago (2011-03-07 22:35:10 UTC) #3
OK

http://codereview.chromium.org/6625037/diff/1/chrome/browser/first_run/first_...
File chrome/browser/first_run/first_run.h (right):

http://codereview.chromium.org/6625037/diff/1/chrome/browser/first_run/first_...
chrome/browser/first_run/first_run.h:249: ProcessSingleton* process_singleton);
Please document the new param.

http://codereview.chromium.org/6625037/diff/1/chrome/browser/first_run/first_...
File chrome/browser/first_run/first_run_win.cc (right):

http://codereview.chromium.org/6625037/diff/1/chrome/browser/first_run/first_...
chrome/browser/first_run/first_run_win.cc:867: Upgrade::TryResult
Upgrade::ShowTryChromeDialog(size_t version,
nit: move param |version| down to the line below.

http://codereview.chromium.org/6625037/diff/1/chrome/browser/process_singleton.h
File chrome/browser/process_singleton.h (right):

http://codereview.chromium.org/6625037/diff/1/chrome/browser/process_singleto...
chrome/browser/process_singleton.h:82: // Used in specific cases to let us know
that there an existing instance
nit: s/an/is an/

http://codereview.chromium.org/6625037/diff/1/chrome/browser/process_singleto...
chrome/browser/process_singleton.h:83: // of chrome running with this profile.
In general, you should not use this
nit: s/chrome/Chrome/

Powered by Google App Engine
This is Rietveld 408576698