X-Posed: Account Location & Device Info ์ ์์: Alexander Hagenah
See where X users are located and what devices they use. Country flags & device icons next to every username. Optional geo-blocking.
์ฌ์ฉ์ 3๋ช
์ฌ์ฉ์ 3๋ช
ํ์ฅ ๋ฉํ ๋ฐ์ดํฐ
์ ๋ณด
๐ Changelog
[2.2.0] - 2024-11-30
โจ New Features
[2.1.0] - 2024-11-29
โจ New Features
๐ง Code Quality
[2.0.3] - 2024-11-28
๐ Security
โก Performance
๐ง Memory & Stability
๐ง Code Quality
๐ง Build System
[2.0.2] - 2024-11-28
๐จ Device Detection Overhaul
๐ Security Hardening
โก Performance
๐ง Memory Management
๐ Stability
๐ง Code Quality
[2.0.1] - 2024-11-28
๐ Bug Fixes
โจ Enhancements
[2.0.0] - 2024-11-27
๐๏ธ Architecture
โจ New Features
๐จ UI/UX
[2.2.0] - 2024-11-30
โจ New Features
- Region Blocking โ Block entire geographic regions (Africa, Europe, South Asia, etc.)
- Some X users show regional locations like "South Asia" or "Europe" instead of specific countries
- New tabbed interface in sidebar modal and options page (Countries | Regions)
- Geographic globe emojis: ๐ Africa/Europe/West Asia, ๐ Americas, ๐ Asia/Oceania
- Blocked regions can be managed separately from blocked countries
- Export/Import now includes blocked regions
- Highlight Mode โ NEW alternative to hiding blocked tweets
- Toggle in Options page: "Hide blocked tweets" vs "Highlight blocked tweets"
- Highlighted tweets shown with subtle amber left border instead of being hidden
- Useful for users who want to see content but be warned about location
- Setting syncs with Export/Import
[2.1.0] - 2024-11-29
โจ New Features
- Show VPN Users Toggle โ New option (default ON) to show/hide tweets from users detected as using VPN/proxy
- Available in both popup and options page
- Instantly hides/shows VPN user tweets without reload
- Enhanced Export/Import โ Full configuration backup and restore
- Export now includes: settings, blocked countries, cache with metadata (version, timestamp)
- New Import function to restore configurations across devices or browsers
- JSON format with validation and confirmation dialog
- Enhanced VPN/Proxy Statistics โ Statistics now show VPN user count with percentage (e.g.,
๐ VPN/Proxy (17%)) - Rate Limit Status Indicator โ Real-time display in popup and options page showing API rate limit status
๐ง Code Quality
- Fixed all ESLint warnings (13 โ 0)
- Removed unused imports and variables across codebase
- Improved code consistency with underscore-prefixed unused parameters
[2.0.3] - 2024-11-28
๐ Security
- XSS prevention: All dynamic content now uses safe DOM methods instead of innerHTML
- Fixed unsafe innerHTML in popup.js clear cache feedback
- Fixed innerHTML SVG injection in sidebar "Block Countries" link
- Fixed innerHTML SVG in toast close button
- Input validation: Screen names validated (1-15 chars, alphanumeric + underscore)
- Sanitized toast/modal content with strict character escaping
โก Performance
- Smart version management: Single source of truth in package.json, injected at build time
- Throttled theme observer prevents excessive re-renders on theme changes
- Combined DOM selectors reduce query overhead in MutationObserver
- Cached combined selector at module level (avoids repeated string creation)
- Memoized function creation in content script initialization
- Removed keep-alive console spam in service worker
๐ง Memory & Stability
- New shared
lru-cache.jsmodule eliminates code duplication - Fixed memory leak in UI cleanup function registry (bounded Map with 1000 max entries)
- Bounded processingQueue (200 max entries with LRU eviction)
- Added 30-second cleanup timeout for stale RequestDeduplicator entries
- Proper async error boundaries prevent cascade failures
- Added error boundary for badge creation to prevent observer crashes
- Fixed race conditions in processingQueue with deferred promise pattern
- Fixed inconsistent async in storage clear() method
๐ง Code Quality
- Replaced deprecated
substr()withsubstring()throughout codebase - ESLint auto-fix applied for consistent quote style
- Removed unused function parameters in constants.js
- Consolidated LRU cache: storage.js and observer.js now import from shared module
- Magic numbers moved to TIMING constants (rate limit cooldown, keep-alive interval, etc.)
๐ง Build System
- Version now auto-syncs from package.json to manifest.json and all JS bundles
- Added
@rollup/plugin-replacefor build-time constant injection - Separate CHANGELOG.md with nice README integration
[2.0.2] - 2024-11-28
๐จ Device Detection Overhaul
- New distinct device emojis: ๐ iOS, ๐ค Android, ๐ Web, โ Unknown
- Removed misleading "Desktop" category (X API doesn't distinguish desktop from mobile web)
- Statistics now show accurate platform breakdown
๐ Security Hardening
- Fixed XSS vulnerability in badge creation (now uses safe DOM methods)
- Replaced remaining innerHTML with safe DOM methods in modal and evidence capture
- Safe flag emoji handling with validated Twemoji images
- Added input sanitization for cloud cache data
โก Performance
- Intersection Observer for lazy element processing (only visible elements)
- Reduced unnecessary API calls for off-screen content
- Memoized country list filtering for improved rendering performance
๐ง Memory Management
- Bounded pendingVisibility Map (500 max entries with LRU eviction)
- Bounded RequestDeduplicator Map (200 max entries)
- Periodic cleanup of expired notFoundCache entries
๐ Stability
- Service Worker keep-alive prevents Chrome MV3 termination
- Cache negative results (not found users) to avoid repeat API calls
- Error boundary for element processing prevents cascade failures
- Fixed memory leaks and async handling issues
- Added retry logic with exponential backoff for transient failures
๐ง Code Quality
- Modernized APIs, centralized constants, improved accessibility
- Added unified logging and JSDoc documentation
[2.0.1] - 2024-11-28
๐ Bug Fixes
- Fixed
getComputedStyleโwindow.getComputedStylefor Zen/Firefox compatibility (#4) - Fixed sidebar "Block Countries" breaking compact layout (#3)
โจ Enhancements
- Toggle-able sidebar "Block Countries" link โ can be hidden via Options (#2)
- Full country blocker UI in Options page โ manage blocked countries without visiting X
- Support for followers/following/verified followers pages
- Sidebar link adapts automatically on window resize (compact โ normal mode)
[2.0.0] - 2024-11-27
๐๏ธ Architecture
- Modular TypeScript-ready codebase with Rollup
- Cross-browser: Chrome MV3 + Firefox MV3
- LRU cache with 50,000 entry limit
โจ New Features
- Community Cloud Cache with Cloudflare Workers
- Evidence Screenshot Generator โ capture tweets with metadata overlay (location, device, VPN status, timestamp)
- Statistics dashboard with analytics
- Theme sync (Light/Dim/Dark)
- Options page with full configuration
- Bulk sync local cache to cloud
๐จ UI/UX
- Popup with quick toggles
- Camera icon on badges for instant evidence capture
- Light mode fully supported
- Real-time theme detection
2๋ช
์ด 4.5์ ์ผ๋ก ํ๊ฐํจ
๊ถํ ๋ฐ ๋ฐ์ดํฐ
ํ์ ๊ถํ:
- x.com ๋๋ฉ์ธ์ ์ฌ์ดํธ์์ ์ฌ์ฉ์์ ๋ฐ์ดํฐ์ ์ ๊ทผ
- twitter.com ๋๋ฉ์ธ์ ์ฌ์ดํธ์์ ์ฌ์ฉ์์ ๋ฐ์ดํฐ์ ์ ๊ทผ
์ ํ์ ๊ถํ:
- x.com ๋๋ฉ์ธ์ ์ฌ์ดํธ์์ ์ฌ์ฉ์์ ๋ฐ์ดํฐ์ ์ ๊ทผ
- twitter.com ๋๋ฉ์ธ์ ์ฌ์ดํธ์์ ์ฌ์ฉ์์ ๋ฐ์ดํฐ์ ์ ๊ทผ
๋ฐ์ดํฐ ์์ง:
- ๊ฐ๋ฐ์๊ฐ ์ด ํ์ฅ ๊ธฐ๋ฅ์ ๋ฐ์ดํฐ ์์ง์ด ํ์ํ์ง ์๋ค๊ณ ํฉ๋๋ค.
์ถ๊ฐ ์ ๋ณด
- ๋ถ๊ฐ ๊ธฐ๋ฅ ๋งํฌ
- ๋ฒ์
- 2.2.0
- ํฌ๊ธฐ
- 84.26 KB
- ๋ง์ง๋ง ์ ๋ฐ์ดํธ
- 10์ผ ์ (2025๋ 11์ 30์ผ)
- ๊ด๋ จ ์นดํ ๊ณ ๋ฆฌ
- ๋ผ์ด์ ์ค
- MIT ๋ผ์ด์ ์ค
- ๊ฐ์ธ์ ๋ณด์ฒ๋ฆฌ๋ฐฉ์นจ
- ์ด ๋ถ๊ฐ ๊ธฐ๋ฅ์ ๋ํ ๊ฐ์ธ์ ๋ณด์ฒ๋ฆฌ๋ฐฉ์นจ ์ฝ๊ธฐ
- ๋ฒ์ ๋ชฉ๋ก
- ํ๊ทธ
- ๋ชจ์์ง์ ์ถ๊ฐ