我有一个优化的触摸屏应用程序并在Chrome自助服务终端模式下运行。它完全脱机运行,由于Chrome的一些更新打破了应用程序,我不得不将其锁定到固定版本的Chrome(v37.x)。 我已经能够阻止Chrome使用ADM / gpedit方法(http://www.wikihow.com/Completely-Disable-Google-Chrome-Update)自动更新,但Chrome现在在屏幕上显示一条消息,说明它已过期。
有没有人能够找到禁用此通知的方法?
答案 0 :(得分:2)
Ubuntu + Chrome
对我有用的参数--simulate-outdated-no-au='Tue, 31 Dec 2099 23:59:59 GMT'
完整启动命令:
google-chrome --start-fullscreen --incognito --simulate-outdated-no-au='Tue, 31 Dec 2099 23:59:59 GMT' "http://127.0.0.1/" &
答案 1 :(得分:1)
您可能想尝试编辑来源: https://chromium.googlesource.com/chromium/src.git/+/lkcr/chrome/browser/ui/views/outdated_upgrade_bubble_view.cc(或者只是阅读它们以获得通知的逻辑)
// static
void OutdatedUpgradeBubbleView::ShowBubble
如果已显示气泡,则不要显示通知气泡:
// The currently showing bubble.
OutdatedUpgradeBubbleView* g_upgrade_bubble = nullptr;
...
if (g_upgrade_bubble)
return;
小部件在某些操作系统(基于Linux的桌面Chrome操作系统)上不可用,并且可在Windows,MacOSX和非ChromeOS Linux上使用:
bool OutdatedUpgradeBubbleView::IsAvailable() {
// This should only work on non-Chrome OS desktop platforms.
#if defined(OS_WIN) || defined(OS_MACOSX) || \
(defined(OS_LINUX) && !defined(OS_CHROMEOS))
return true;
#else
return false;
#endif
它们具有气泡忽略的最大数量,但这仅用于遥测(指标),而不是禁用气泡:
// The maximum number of ignored bubble we track in the NumLaterPerReinstall
// histogram.
const int kMaxIgnored = 50;
// OutdatedUpgradeBubbleView warns the user that an upgrade is long overdue.
// It is intended to be used as the content of a bubble anchored off of the
// Chrome toolbar. Don't create an OutdatedUpgradeBubbleView directly,
// instead use the static ShowBubble method.
最简单的编辑方法是将g_upgrade_bubble
设置为非零值。使用代码编辑或使用调试器进行运行时内存编辑,或者使用game trainer,如Cheat Engine或smth或使用" chrome.dll"修补。
气泡是从src/chrome/browser/ui/views/toolbar/toolbar_view.cc
https://cs.chromium.org/chromium/src/chrome/browser/ui/views/toolbar/toolbar_view.cc?q=OutdatedUpgradeBubbleView
if (OutdatedUpgradeBubbleView::IsAvailable()) {
registrar_.Add(this, chrome::NOTIFICATION_OUTDATED_INSTALL,
content::NotificationService::AllSources());
registrar_.Add(this, chrome::NOTIFICATION_OUTDATED_INSTALL_NO_AU,
content::NotificationService::AllSources());
void ToolbarView::Observe(...
switch (type) {
case chrome::NOTIFICATION_OUTDATED_INSTALL:
ShowOutdatedInstallNotification(true);
break;
case chrome::NOTIFICATION_OUTDATED_INSTALL_NO_AU:
ShowOutdatedInstallNotification(false);
break;
void ToolbarView::ShowOutdatedInstallNotification(bool auto_update_enabled) {
if (OutdatedUpgradeBubbleView::IsAvailable()) {
OutdatedUpgradeBubbleView::ShowBubble(app_menu_button_, browser_,
auto_update_enabled);
}
}
由src / chrome / browser / upgrade_detector.cc触发" NOTIFICATION_OUTDATED_INSTALL
" https://cs.chromium.org/chromium/src/chrome/browser/upgrade_detector.cc?q=NOTIFICATION_OUTDATED_INSTALL&sq=package:chromium&dr=C
void UpgradeDetector::NotifyUpgradeRecommended() {
notify_upgrade_ = true;
TriggerNotification(chrome::NOTIFICATION_UPGRADE_RECOMMENDED);
if (upgrade_available_ == UPGRADE_NEEDED_OUTDATED_INSTALL) {
TriggerNotification(chrome::NOTIFICATION_OUTDATED_INSTALL);
} else if (upgrade_available_ == UPGRADE_NEEDED_OUTDATED_INSTALL_NO_AU) {
TriggerNotification(chrome::NOTIFICATION_OUTDATED_INSTALL_NO_AU);
} else if (upgrade_available_ == UPGRADE_AVAILABLE_CRITICAL ||
critical_experiment_updates_available_) {
TriggerCriticalUpdate();
}
}
来自void UpgradeDetectorImpl::NotifyOnUpgradeWithTimePassed
https://cs.chromium.org/chromium/src/chrome/browser/upgrade_detector_impl.cc?rcl=0&l=455
const base::TimeDelta multiplier = IsTesting() ?
base::TimeDelta::FromSeconds(10) : base::TimeDelta::FromDays(1);
// 14 days when not testing, otherwise 140 seconds.
const base::TimeDelta severe_threshold = 14 * multiplier;
const base::TimeDelta high_threshold = 7 * multiplier;
const base::TimeDelta elevated_threshold = 4 * multiplier;
const base::TimeDelta low_threshold = 2 * multiplier;
// These if statements must be sorted (highest interval first).
if (time_passed >= severe_threshold || is_critical_or_outdated) {
set_upgrade_notification_stage(
is_critical_or_outdated ? UPGRADE_ANNOYANCE_CRITICAL :
UPGRADE_ANNOYANCE_SEVERE);
// We can't get any higher, baby.
upgrade_notification_timer_.Stop();
} else if (time_passed >= high_threshold) {
set_upgrade_notification_stage(UPGRADE_ANNOYANCE_HIGH);
} else if (time_passed >= elevated_threshold) {
set_upgrade_notification_stage(UPGRADE_ANNOYANCE_ELEVATED);
} else if (time_passed >= low_threshold) {
set_upgrade_notification_stage(UPGRADE_ANNOYANCE_LOW);
} else {
return; // Not ready to recommend upgrade.
}
}
NotifyUpgradeRecommended();
答案 2 :(得分:0)
On the google forum some guy writes,为了禁用包括通知在内的自动更新,您可以设置特定的GPO。
答案 3 :(得分:0)
我们遇到了同样的问题,但我的一位同事得到了答案(到目前为止)。
我们在启动时使用Windows批处理文件,用于启动Chrome以及隐身信息亭和更新间隔。
{{1}}
答案 4 :(得分:0)
第一步:
运行:gpedit.msc
导航至: “本地计算机政策”&gt; <计算机配置>管理模板。 右键单击“管理模板”,然后选择“添加/删除模板”。 通过对话框添加chrome.adm(必须下载此模板)模板。
转到经典管理模板/ Google / Google更新/偏好设置 “启用”自动更新检查周期策略覆盖状态,并禁用所有自动更新检查。
转到Google Update - &gt; Applications-&gt; Google Chrome “启用”更新策略覆盖状态,并将策略设置为禁用更新
转到Google Update-&gt;应用程序 - &gt; Google Chrome二进制文件 “启用”更新策略覆盖状态,并将策略设置为禁用更新
转到Google更新 - &gt;应用程序 - >更新策略覆盖默认值 “启用”更新策略覆盖状态,并将策略设置为禁用更新
第二步: 转到任务计划程序(通过管理工具)转到任务计划程序库并禁用两个Chrome更新条目。
第三步: 在Chrome快捷方式属性上,将目标更改为: “C:\ Program Files(x86)\ Google \ Chrome \ Application \ chrome.exe”/ high-dpi-support = 1 / force-device-scale-factor = 1 --check-for-update-interval = 604800 < / p>
答案 5 :(得分:0)
其他答案在这里解决了核心问题,即有关修改Chrome或以某种方式运行它的问题,但我会给出替代方法...
我们构建了一个在组织内使用的具有类似特征的应用程序-全屏显示,必须脱机工作,某些安装将无法上网(无法获取更新)等。两个Chrome弹出式窗口令人讨厌,即“还原会话” ?和“ chrome已过期”。
这些弹出窗口对于浏览器来说很有意义,但我们的应用实质上不再是浏览器。
解决方案:内置到电子应用程序中。信息亭模式和其他好处(访问操作系统,开发人员可以显示菜单和开发工具等)。这也意味着您可以控制何时进行更新,而不是Chrome自动更新或尝试进行更新。
电子对我们来说很棒。