禁用" chrome已过期"通知

时间:2015-01-15 11:32:30

标签: google-chrome

我有一个优化的触摸屏应用程序并在Chrome自助服务终端模式下运行。它完全脱机运行,由于Chrome的一些更新打破了应用程序,我不得不将其锁定到固定版本的Chrome(v37.x)。 我已经能够阻止Chrome使用ADM / gpedit方法(http://www.wikihow.com/Completely-Disable-Google-Chrome-Update)自动更新,但Chrome现在在屏幕上显示一条消息,说明它已过期。

Chrom is out of date message

有没有人能够找到禁用此通知的方法?

6 个答案:

答案 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;

https://chromium.googlesource.com/chromium/src.git/+/lkcr/chrome/browser/ui/views/outdated_upgrade_bubble_view.h档案

// 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)

第一步:

  1. 运行:gpedit.msc

  2. 导航至: “本地计算机政策”&gt; <计算机配置>管理模板。 右键单击“管理模板”,然后选择“添加/删除模板”。 通过对话框添加chrome.adm(必须下载此模板)模板。

  3. 转到经典管理模板/ Google / Google更新/偏好设置 “启用”自动更新检查周期策略覆盖状态,并禁用所有自动更新检查。

  4. 转到Google Update - &gt; Applications-&gt; Google Chrome “启用”更新策略覆盖状态,并将策略设置为禁用更新

  5. 转到Google Update-&gt;应用程序 - &gt; Google Chrome二进制文件 “启用”更新策略覆盖状态,并将策略设置为禁用更新

  6. 转到Google更新 - &gt;应用程序 - >更新策略覆盖默认值 “启用”更新策略覆盖状态,并将策略设置为禁用更新

  7. 第二步: 转到任务计划程序(通过管理工具)转到任务计划程序库并禁用两个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自动更新或尝试进行更新。

电子对我们来说很棒。