Add multiarch specification to apt repo config.

TBR=phajdan.jr@chromium.org, thestig@chromium.org
BUG=591480
NOTRY=true
NOPRESUBMIT=true

Review URL: https://codereview.chromium.org/1759243002

Cr-Commit-Position: refs/heads/master@{#379305}
(cherry picked from commit 9f2c239a6ece2f510fac2f1be1ca1811f0deb9a4)

Review URL: https://codereview.chromium.org/1769533003

Cr-Commit-Position: refs/branch-heads/2623@{#578}
Cr-Branched-From: 92d77538a86529ca35f9220bd3cd512cbea1f086-refs/heads/master@{#369907}
diff --git a/chrome/installer/linux/common/apt.include b/chrome/installer/linux/common/apt.include
index 77d418c1..aabca09 100644
--- a/chrome/installer/linux/common/apt.include
+++ b/chrome/installer/linux/common/apt.include
@@ -87,7 +87,7 @@
   ACTIVECONFIGS=$(grep -v "^[[:space:]]*\(#.*\)\?$" "$SOURCELIST" 2>/dev/null)
 
   # Check if the correct repository configuration is in there.
-  REPOMATCH=$(grep -E "^[[:space:]#]*\b($REPOCONFIG|$SSLREPOCONFIG)\b" "$SOURCELIST" \
+  REPOMATCH=$(grep -E "^[[:space:]#]*\b$REPOCONFIGREGEX\b" "$SOURCELIST" \
     2>/dev/null)
 
   # Check if the correct repository is disabled.
@@ -174,9 +174,9 @@
   find_apt_sources
   SOURCELIST="$APT_SOURCESDIR/@@PACKAGE@@.list"
   if [ -r "$SOURCELIST" ]; then
-    REPOLINE=$(grep -E "^[[:space:]]*#[[:space:]]*($REPOCONFIG|$SSLREPOCONFIG)[[:space:]]*# disabled on upgrade to .*" "$SOURCELIST")
+    REPOLINE=$(grep -E "^[[:space:]]*#[[:space:]]*$REPOCONFIGREGEX[[:space:]]*# disabled on upgrade to .*" "$SOURCELIST")
     if [ $? -eq 0 ]; then
-      sed -i -e "s,^[[:space:]]*#[[:space:]]*\($REPOCONFIG\|$SSLREPOCONFIG\)[[:space:]]*# disabled on upgrade to .*,\1," \
+      sed -i -e "s,^[[:space:]]*#[[:space:]]*\(.*\)[[:space:]]*# disabled on upgrade to .*,\1," \
         "$SOURCELIST"
       LOGGER=$(which logger 2> /dev/null)
       if [ "$LOGGER" ]; then
diff --git a/chrome/installer/linux/common/installer.include b/chrome/installer/linux/common/installer.include
index 68c6555e..386d4877 100644
--- a/chrome/installer/linux/common/installer.include
+++ b/chrome/installer/linux/common/installer.include
@@ -73,7 +73,7 @@
     -e "s#@@MAINTNAME@@#${MAINTNAME}#g" \
     -e "s#@@MAINTMAIL@@#${MAINTMAIL}#g" \
     -e "s#@@REPOCONFIG@@#${REPOCONFIG}#g" \
-    -e "s#@@SSLREPOCONFIG@@#${SSLREPOCONFIG}#g" \
+    -e "s#@@REPOCONFIGREGEX@@#${REPOCONFIGREGEX}#g" \
     -e "s#@@SHORTDESC@@#${SHORTDESC}#g" \
     -e "s#@@FULLDESC@@#${FULLDESC}#g" \
     -e "s#@@DEFAULT_FLAGS@@#${DEFAULT_FLAGS:-}#g" \
diff --git a/chrome/installer/linux/common/variables.include b/chrome/installer/linux/common/variables.include
index 79340cd..be94314 100644
--- a/chrome/installer/linux/common/variables.include
+++ b/chrome/installer/linux/common/variables.include
@@ -3,4 +3,4 @@
 
 # sources.list setting for @@PACKAGE@@ updates.
 REPOCONFIG="@@REPOCONFIG@@"
-SSLREPOCONFIG="@@SSLREPOCONFIG@@"
+REPOCONFIGREGEX="@@REPOCONFIGREGEX@@"
diff --git a/chrome/installer/linux/debian/build.sh b/chrome/installer/linux/debian/build.sh
index bf84089ec..77bf7a9 100755
--- a/chrome/installer/linux/debian/build.sh
+++ b/chrome/installer/linux/debian/build.sh
@@ -236,8 +236,6 @@
 eval $(sed -e "s/^\([^=]\+\)=\(.*\)$/export \1='\2'/" \
   "${BUILDDIR}/installer/theme/BRANDING")
 
-REPOCONFIG="deb http://dl.google.com/linux/chrome/deb/ stable main"
-SSLREPOCONFIG="deb https://dl.google.com/linux/chrome/deb/ stable main"
 verify_channel
 
 # Some Debian packaging tools want these set.
@@ -314,11 +312,9 @@
 case "$TARGETARCH" in
   ia32 )
     export ARCHITECTURE="i386"
-    stage_install_debian
     ;;
   x64 )
     export ARCHITECTURE="amd64"
-    stage_install_debian
     ;;
   * )
     echo
@@ -327,5 +323,14 @@
     exit 1
     ;;
 esac
+BASEREPOCONFIG="dl.google.com/linux/chrome/deb/ stable main"
+# Only use the default REPOCONFIG if it's unset (e.g. verify_channel might have
+# set it to an empty string)
+REPOCONFIG="${REPOCONFIG-deb [arch=${ARCHITECTURE}] http://${BASEREPOCONFIG}}"
+# Allowed configs include optional HTTPS support and explicit multiarch
+# platforms.
+REPOCONFIGREGEX="deb (\\\\[arch=[^]]*\\\\b${ARCHITECTURE}\\\\b[^]]*\\\\]"
+REPOCONFIGREGEX+="[[:space:]]*)?https?://${BASEREPOCONFIG}"
+stage_install_debian
 
 do_package
diff --git a/chrome/installer/linux/rpm/build.sh b/chrome/installer/linux/rpm/build.sh
index 8ac54efc..4fb1ebb 100755
--- a/chrome/installer/linux/rpm/build.sh
+++ b/chrome/installer/linux/rpm/build.sh
@@ -288,7 +288,6 @@
   "${BUILDDIR}/installer/theme/BRANDING")
 
 REPOCONFIG="http://dl.google.com/linux/${PACKAGE#google-}/rpm/stable"
-SSLREPOCONFIG="https://dl.google.com/linux/${PACKAGE#google-}/rpm/stable"
 verify_channel
 export USR_BIN_SYMLINK_NAME="${PACKAGE}-${CHANNEL}"