1. 程式人生 > >chromium 15 chromium 讓低於30.x.x.x(含)的版本號支援擴充套件安裝

chromium 15 chromium 讓低於30.x.x.x(含)的版本號支援擴充套件安裝

01 自己修改版本號導致 chromium extension 下載失敗

自己修改版本號,如: src\chrome\VERSION

MAJOR=1
MINOR=0
BUILD=0
PATCH=10

自己修改了chromium版號後,在google 外掛市場下載擴充套件外掛時,會產生下載錯誤,主要是谷歌擴充套件商店會進行版本檢查引起的。30.x.x.x以前的版本號,都會失敗。31.x.x.x以後的版本號會正常。 具體錯誤為:Download interrupted,可以在程式碼中搜索到這個字串。

Download interrupted

02 問題分析

主要是在 src\chrome\browser\update_client\chrome_update_query_params_delegate.cc

中,version_info::GetVersionNumber()獲取的版本號。只要把這裡修改為原始版本號即可。

std::string ChromeUpdateQueryParamsDelegate::GetExtraParams() {
  return base::StringPrintf("&prodchannel=%s&prodversion=%s&lang=%s",
                            chrome::GetChannelName().c_str(),
                            version_info::GetVersionNumber().c_str(),
                            GetLang());
}

如,修改為"68.0.3440.105":

std::string ChromeUpdateQueryParamsDelegate::GetExtraParams() {
  return base::StringPrintf("&prodchannel=%s&prodversion=%s&lang=%s",
                            chrome::GetChannelName().c_str(),
                            "68.0.3440.105",
                            GetLang());
}

03 擴充套件安裝過程涉及的幾個主要檔案

src\chrome\browser\update_client\chrome_update_query_params_delegate.cc src\chrome\browser\extensions\webstore_install_helper.cc src\chrome\browser\extensions\api\webstore_private\webstore_private_api.cc src\chrome\browser\extensions\webstore_installer.cc webstore_installer.cc