// این اسکریپت در تمام صفحات اجرا می‌شود و WebRTC را کاملاً مسدود می‌کند

function blockWebRTC() {
  // 1. غیرفعال کردن RTCPeerConnection
  if (window.RTCPeerConnection) {
    window.RTCPeerConnection = function() {
      console.log('[IPSTABLE] WebRTC blocked');
      return null;
    };
    window.RTCPeerConnection.prototype = {
      createOffer: function() { return Promise.reject(new Error('WebRTC disabled')); },
      createAnswer: function() { return Promise.reject(new Error('WebRTC disabled')); },
      setLocalDescription: function() { return Promise.reject(new Error('WebRTC disabled')); },
      setRemoteDescription: function() { return Promise.reject(new Error('WebRTC disabled')); },
      addIceCandidate: function() { return Promise.reject(new Error('WebRTC disabled')); },
      close: function() {},
      createDataChannel: function() { return null; }
    };
  }

  // 2. غیرفعال کردن getUserMedia
  if (navigator.getUserMedia) {
    navigator.getUserMedia = function() {
      return Promise.reject(new Error('[IPSTABLE] WebRTC disabled'));
    };
  }
  
  if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
    navigator.mediaDevices.getUserMedia = function() {
      return Promise.reject(new Error('[IPSTABLE] WebRTC disabled'));
    };
  }

  // 3. غیرفعال کردن MediaStreamTrack
  if (window.MediaStreamTrack) {
    window.MediaStreamTrack = function() {};
  }

  // 4. غیرفعال کردن RTCSessionDescription
  if (window.RTCSessionDescription) {
    window.RTCSessionDescription = function() { return null; };
  }

  // 5. غیرفعال کردن RTCIceCandidate
  if (window.RTCIceCandidate) {
    window.RTCIceCandidate = function() { return null; };
  }

  // 6. غیرفعال کردن RTCPeerConnectionIceEvent
  if (window.RTCPeerConnectionIceEvent) {
    window.RTCPeerConnectionIceEvent = function() { return null; };
  }
}

// بررسی وضعیت از background
chrome.storage.sync.get({ webrtcProtected: true }, (result) => {
  if (result.webrtcProtected) {
    blockWebRTC();
  }
});

// گوش دادن به تغییرات
chrome.storage.onChanged.addListener((changes, namespace) => {
  if (namespace === 'sync' && changes.webrtcProtected) {
    if (changes.webrtcProtected.newValue) {
      blockWebRTC();
    }
    // اگر غیرفعال شد، صفحه باید ریلود شود
  }
});