Gmail: Remove Upgrade Button

Removes the upgrade button with data-pep-id="global-pep-gmail" from Gmail

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

You will need to install an extension such as Tampermonkey to install this script.

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==UserScript==
// @license MIT 
// @name         Gmail: Remove Upgrade Button
// @namespace    http://tampermonkey.net/
// @version      1.2
// @description  Removes the upgrade button with data-pep-id="global-pep-gmail" from Gmail
// @match        https://mail.google.com/*
// @run-at       document-start
// @grant        none
// @noframes
// ==/UserScript==

(function () {
  "use strict";

  const TARGET_SELECTOR = '[data-pep-id="global-pep-gmail"]';

  function removeUpgradeButton() {
    const element = document.querySelector(TARGET_SELECTOR);
    if (element) {
      element.remove();
      console.log("Gmail upgrade button removed");
    }
  }

  // Attempt removal multiple times during initial page load
  let attempts = 0;
  const burstInterval = setInterval(() => {
    removeUpgradeButton();
    attempts++;
    if (attempts >= 80) {
      clearInterval(burstInterval);
    }
  }, 100);

  // Watch for Gmail dynamically inserting the button later
  const observer = new MutationObserver(() => {
    removeUpgradeButton();
  });

  observer.observe(document.documentElement, {
    childList: true,
    subtree: true
  });

  // Handle Gmail's SPA navigation (view changes without full page reload)
  const originalPushState = history.pushState;
  const originalReplaceState = history.replaceState;

  history.pushState = function () {
    const result = originalPushState.apply(this, arguments);
    setTimeout(removeUpgradeButton, 0);
    return result;
  };

  history.replaceState = function () {
    const result = originalReplaceState.apply(this, arguments);
    setTimeout(removeUpgradeButton, 0);
    return result;
  };
})();