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

Issue 2663003003: Fix -full fallback for diff updates (M56). (Closed)

Created:
3 years, 10 months ago by grt (UTC plus 2)
Modified:
3 years, 10 months ago
Reviewers:
huangs
CC:
chromium-reviews, grt+watch_chromium.org, pennymac+watch_chromium.org, wfh+watch_chromium.org
Target Ref:
refs/pending/branch-heads/2924
Project:
chromium
Visibility:
Public.

Description

Fix -full fallback for diff updates (M56). mini_installer will now report state properly regardless of whether updates are being delivered via Chrome's or the binaries' app guid: - "-full" is added to Chrome's "ap" value and, in case an existing multi-install Chrome is being updated, the binaries' "ap" value. - Installer results are written to Chrome's ClientState key and, as above, the binaries'. This is a partial merge of r438644. BUG=686645 NOTRY=true NOPRESUBMIT=true Review-Url: https://codereview.chromium.org/2663003003 Cr-Commit-Position: refs/branch-heads/2924@{#889} Cr-Branched-From: 3a87aecc31cd1ffe751dd72c04e5a96a1fc8108a-refs/heads/master@{#433059} Committed: https://chromium.googlesource.com/chromium/src/+/7f55b083a84bb3fc58852c6d767f1ccdedcadee3

Patch Set 1 #

Total comments: 29
Unified diffs Side-by-side diffs Delta from patch set Stats (+293 lines, -291 lines) Patch
M chrome/installer/mini_installer/BUILD.gn View 1 chunk +1 line, -0 lines 0 comments Download
M chrome/installer/mini_installer/configuration.h View 3 chunks +12 lines, -28 lines 0 comments Download
M chrome/installer/mini_installer/configuration.cc View 4 chunks +49 lines, -80 lines 2 comments Download
M chrome/installer/mini_installer/configuration_test.cc View 6 chunks +101 lines, -92 lines 16 comments Download
M chrome/installer/mini_installer/mini_installer.cc View 5 chunks +80 lines, -75 lines 7 comments Download
M chrome/installer/mini_installer/mini_installer_constants.h View 1 chunk +3 lines, -0 lines 0 comments Download
M chrome/installer/mini_installer/mini_installer_constants.cc View 2 chunks +7 lines, -0 lines 2 comments Download
M chrome/installer/mini_installer/regkey.h View 1 chunk +13 lines, -5 lines 2 comments Download
M chrome/installer/mini_installer/regkey.cc View 2 chunks +27 lines, -11 lines 0 comments Download

Messages

Total messages: 19 (13 generated)
grt (UTC plus 2)
Hi Sam. Would you review this manual merge for me? It more-or-less brings the mini_installer ...
3 years, 10 months ago (2017-01-31 13:06:26 UTC) #11
huangs
LGTM. Oops I didn't see the "manual merge" part in the comment and did a ...
3 years, 10 months ago (2017-01-31 17:40:04 UTC) #12
grt (UTC plus 2)
Thanks for the thorough review. I'll land this as-is and address your comments on ToT ...
3 years, 10 months ago (2017-01-31 19:39:57 UTC) #13
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/2663003003/1
3 years, 10 months ago (2017-01-31 19:40:53 UTC) #15
commit-bot: I haz the power
Committed patchset #1 (id:1) as https://chromium.googlesource.com/chromium/src/+/7f55b083a84bb3fc58852c6d767f1ccdedcadee3
3 years, 10 months ago (2017-01-31 19:49:40 UTC) #18
grt (UTC plus 2)
3 years, 10 months ago (2017-02-02 08:17:16 UTC) #19
Message was sent while issue was closed.
Please see https://codereview.chromium.org/2670133002/ for the cleanups. Thanks.

https://codereview.chromium.org/2663003003/diff/1/chrome/installer/mini_insta...
File chrome/installer/mini_installer/configuration.cc (right):

https://codereview.chromium.org/2663003003/diff/1/chrome/installer/mini_insta...
chrome/installer/mini_installer/configuration.cc:134: return
(OpenClientsKey(root, google_update::kAppGuid, KEY_QUERY_VALUE,
On 2017/01/31 17:40:04, huangs wrote:
> I'd prefer using |chrome_app_guid_| instead of google_update::kAppGuid, and do
> the same below. Maybe add
> 
> DCHECK_EQ(google_update::kAppGuid, chrome_app_guid_);
> 
> at 131?

Done.

https://codereview.chromium.org/2663003003/diff/1/chrome/installer/mini_insta...
File chrome/installer/mini_installer/configuration_test.cc (right):

https://codereview.chromium.org/2663003003/diff/1/chrome/installer/mini_insta...
chrome/installer/mini_installer/configuration_test.cc:13: #include
"base/test/test_reg_util_win.h"
On 2017/01/31 17:40:04, huangs wrote:
> #include "base/macros.h" for DISALLOW_COPY_AND_ASSIGN ?

Done.

https://codereview.chromium.org/2663003003/diff/1/chrome/installer/mini_insta...
chrome/installer/mini_installer/configuration_test.cc:71: #endif
On 2017/01/31 17:40:04, huangs wrote:
> #endif  // defined(GOOGLE_CHROME_BUILD)
> 
> or
> 
> #endif  // GOOGLE_CHROME_BUILD
> 
> and below if you'd prefer this style?

Done here. For the ones below that are pretty much one-liners, I find the
comments noisy rather than helpful.

https://codereview.chromium.org/2663003003/diff/1/chrome/installer/mini_insta...
chrome/installer/mini_installer/configuration_test.cc:72: static constexpr const
wchar_t* kUninstallArguments[] = {
On 2017/01/31 17:40:04, huangs wrote:
> Would it be clearer to render |kUninstallArguments| from params?  I.e.:
> 
>   std::wstring uninstall_args = std::wstring(L"--uninstall") +
>       (system_level ? L" --system-level" : L"") +
>       (multi_install ? L" --multi-install --chrome" : L"");
> 
> ...
>   
>   uninstall_args.c_str();
> 

Done.

https://codereview.chromium.org/2663003003/diff/1/chrome/installer/mini_insta...
chrome/installer/mini_installer/configuration_test.cc:78: ((system_level ? 0x02
: 0) | (multi_install ? 0x01 : 0));
On 2017/01/31 17:40:04, huangs wrote:
> NIT: Redundant outer ()?

code removed

https://codereview.chromium.org/2663003003/diff/1/chrome/installer/mini_insta...
chrome/installer/mini_installer/configuration_test.cc:80: base::win::RegKey key;
On 2017/01/31 17:40:04, huangs wrote:
> Should this be base::win::RegKey or mini_installer's own RegKey? If former,
> please add comment on why.

Done

https://codereview.chromium.org/2663003003/diff/1/chrome/installer/mini_insta...
chrome/installer/mini_installer/configuration_test.cc:172: #if
defined(GOOGLE_CHROME_BUILD)
On 2017/01/31 17:40:04, huangs wrote:
> Apply #if to the entire test, rather than leave empty test?

Done.

https://codereview.chromium.org/2663003003/diff/1/chrome/installer/mini_insta...
chrome/installer/mini_installer/configuration_test.cc:177: #endif
On 2017/01/31 17:40:04, huangs wrote:
> Is it worth testing interaction with AddChromeRegistryState()?

I'm not sure there is any interaction. chrome_app_guid()'s behavior is solely
dictated by the command line (and is documented as such).

https://codereview.chromium.org/2663003003/diff/1/chrome/installer/mini_insta...
chrome/installer/mini_installer/configuration_test.cc:202: #endif
On 2017/01/31 17:40:04, huangs wrote:
> Is it worth testing interaction with AddChromeRegistryState()?

is_side_by_side() was bad, so I've removed it.

https://codereview.chromium.org/2663003003/diff/1/chrome/installer/mini_insta...
File chrome/installer/mini_installer/mini_installer.cc (right):

https://codereview.chromium.org/2663003003/diff/1/chrome/installer/mini_insta...
chrome/installer/mini_installer/mini_installer.cc:81: // binaries; otherwise,
returns false.
On 2017/01/31 17:40:04, huangs wrote:
> NIT: "opens the key for the binaries" at end: Maybe be more specific, e.g.,
> "multi-install binaries"?

Done.

https://codereview.chromium.org/2663003003/diff/1/chrome/installer/mini_insta...
chrome/installer/mini_installer/mini_installer.cc:100: void
WriteInstallResults(const Configuration& configuration,
On 2017/01/31 17:40:04, huangs wrote:
> NIT: Rename to WriteInstallResultsToGoogleUpdate() to make it obvious in line
> 880 that this operation is only for Google Chrome?

I've added a TODO above the #if above for where I want this to go in the future.

https://codereview.chromium.org/2663003003/diff/1/chrome/installer/mini_insta...
chrome/installer/mini_installer/mini_installer.cc:109: for (int i = 0; i < 2;
++i) {
On 2017/01/31 17:40:04, huangs wrote:
> NIT: Maybe be move explicit?
> 
>   for (bool binaries : {false, true}) {
> ...

Awesome. I wasn't sure this was permitted by the style guide, but I see it done
elsewhere so it must be.

https://codereview.chromium.org/2663003003/diff/1/chrome/installer/mini_insta...
File chrome/installer/mini_installer/mini_installer_constants.cc (right):

https://codereview.chromium.org/2663003003/diff/1/chrome/installer/mini_insta...
chrome/installer/mini_installer/mini_installer_constants.cc:62: const wchar_t
kClientsKeyBase[] = L"Software\\Google\\Update\\Clients\\";
On 2017/01/31 17:40:04, huangs wrote:
> NIT: Mention that the terminating "\\" is important?

Done.

https://codereview.chromium.org/2663003003/diff/1/chrome/installer/mini_insta...
File chrome/installer/mini_installer/regkey.h (right):

https://codereview.chromium.org/2663003003/diff/1/chrome/installer/mini_insta...
chrome/installer/mini_installer/regkey.h:58: // Initializes |key| with the
desired |access| to |app_guid|'s Clients key.
On 2017/01/31 17:40:04, huangs wrote:
> I see this function in code search already; need to Sync?
> 
> Meanwhile, it looks like:
> - configuration.cc is the only user of this.
> - |app_guid| is only useful for GOOGLE_CHROME_BUILD.
> - |app_guid| is always |google_update::kAppGuid|.
> 
> I'd recommend moving OpenClientKey() and OpenClientStateKey() to local
> namespace{} inside configuration.cc, with hard-coded values. But this is
beyond
> scope of CL.

Yeah, I don't really like this either. OpenClientStateKey is used outside of
configuration.cc, so I'm going to leave these as-is for now.

Powered by Google App Engine
This is Rietveld 408576698