확장 프로그램은 네트워크 요청을 전혀 하지 않습니다. 확장 프로그램이 읽는 어떤 정보도 브라우저 밖으로 나가지 않습니다. 전송이라는 의미에서의 데이터 수집은 이루어지지 않습니다. 배틀 데이터가 당사나 다른 누구에게도 전송되지 않으므로, 당사는 사용자의 배틀을 볼 수 없습니다.
확장 프로그램이 저장하는 정보와 저장 위치
모든 정보는 브라우저 프로필에 로컬로 저장됩니다. 두 가지 저장 방식이 사용됩니다.
1. IndexedDB — 데이터베이스 pokestrat-tracker
세 개의 객체 저장소를 사용합니다:
battles— 완료된 배틀당 하나의 기록입니다. 각 기록에는 Showdown 배틀 프로토콜이 이미 사용자의 브라우저에 표시한 정보만 포함됩니다:- 배틀의 room id(리플레이 링크 생성에 사용) 및 배틀 형식;
- 시작 및 종료 시각;
- 배틀에 표시된 두 플레이어 이름 및 사용자의 진영;
- 사용자 팀과 상대 팀(팀 미리보기에서 공개된 종);
- 턴 수, 승자 및 결과(승리 / 패배 / 무승부 / 기권);
- 배틀 전후의 사용자 래더 평점 및 해당 형식에서 제공되는 경우 상대의 평점.
meta— 데이터베이스 자체를 위한 소규모 내부 관리 값입니다.debug_logs— 기본적으로 꺼져 있습니다. History 페이지에서 「디버그 로깅」을 켤 때에만 확장 프로그램이 배틀의 원시 WebSocket 프레임을 보관하며, 사용자는 이를 내보내 버그 보고서에 첨부할 수 있습니다. 버퍼에는 제한이 적용됩니다(배틀 20개, 총 6 MB, 배틀당 1 MB). 스위치를 끄면 기록이 중단됩니다. 이 로그는 다른 모든 정보와 마찬가지로 로컬에 저장되며, 사용자가 파일을 내보내 직접 어딘가로 전송하는 경우에만 공유됩니다.
2. chrome.storage.local — 설정 및 플래그
모두 작은 크기이며 개인정보가 아닌 여섯 개의 키입니다:
ui_locale— 사용자가 선택한 인터페이스 언어;ui_theme— 밝은 테마 / 어두운 테마 선택;ui_overlay_collapsed— 페이지 내 정찰 패널이 접혀 있는지 여부;debugLogging— 디버그 로깅 스위치(기본값: 꺼짐);storage_quota_exceeded— 브라우저가 프로필의 디스크 공간 부족으로 쓰기를 거부한 경우 설정되는 플래그이며, History 페이지에서 경고를 표시할 수 있도록 합니다;pokestrat_diag— WebSocket 후크의 진단 카운터(탭 연결 여부, 프레임 수)이며, 확장 프로그램이 기록하지 않는 것으로 보일 때 History 페이지에 표시됩니다.
확장 프로그램이 하지 않는 일
- 데이터를 어디에도 전송하지 않습니다. 당사 서버를 포함하여 어떤 서버에도 요청을 보내지 않습니다. 코드의 유일한
fetch()호출은chrome-extension://URL을 통해 확장 프로그램 패키지 안에 포함된 파일, 즉 사용 통계 스냅샷, Pokédex 표, 번역문, 스타일시트 및 글꼴을 읽습니다. - 분석 도구, 추적 픽셀, 쿠키, 광고 ID 또는 제3자 SDK를 사용하지 않습니다.
- 제3자에게 데이터를 판매, 대여, 공유 또는 이전하지 않습니다. 이전할 데이터 자체가 없습니다.
- Pokémon Showdown 연결에 어떤 것도 전송하지 않습니다. WebSocket은 읽기 전용으로 감싸집니다. 확장 프로그램은 이미 브라우저에 도착한 메시지만 관찰하며, 소켓에 쓰지 않고, 행동을 자동화하지 않으며, 사용자를 대신하여 플레이하지 않습니다.
- Showdown 비밀번호나 세션 쿠키를 읽지 않으며,
play.pokemonshowdown.com이외의 사이트에는 접근하지 않습니다. - 계정, 로그인 또는 개인정보를 요구하지 않습니다.
권한 및 각 권한이 필요한 이유
storage— 위에 나열된 설정을 브라우저 프로필에 보관하기 위해 사용합니다.host_permissions: https://play.pokemonshowdown.com/*— 확장 프로그램은 Showdown 플레이 사이트에서만 작동합니다. 클라이언트가 이미 수신하는 배틀 프로토콜을 관찰하고 배틀 페이지에 팀 미리보기 정찰 패널을 표시하려면 이곳에서 실행되어야 합니다. 다른 호스트 권한은 요청하지 않으므로, 사용자가 방문하는 다른 모든 웹사이트에서는 확장 프로그램이 작동하지 않습니다.content_scripts와 함께 사용하는"world": "MAIN"— 탭은 페이지 자체 JavaScript 컨텍스트에서window.WebSocket를 감싸는 방식으로 작동합니다. 이는 메인 월드에서만 가능하며, 격리된 월드의 스크립트는 별도의window를 사용하므로 Showdown 클라이언트의 소켓을 볼 수 없습니다. 메인 월드 스크립트는 정확히 한 가지, 즉 수신되는 프레임의 복사본을 확장 프로그램에 전달하는 일만 합니다. 프레임을 전송하거나 수정하지 않고, 페이지 변수·양식 필드·쿠키도 읽지 않습니다. 프레임은postMessage를 통해window.location.origin을 대상으로 전달되며*를 대상으로 하지 않으므로, 배틀 텍스트가 페이지의 다른 스크립트에 브로드캐스트되지 않습니다.
데이터 보관 및 삭제
사용자가 삭제할 때까지 데이터는 유지됩니다. 사용자가 항상 관리할 수 있습니다:
- 배틀 하나 삭제 — History 페이지의 해당 행에 있는 삭제 버튼을 사용합니다.
- 모든 배틀 삭제 — History 페이지의 「기록 지우기」 버튼을 사용합니다(먼저 확인을 요청합니다).
- 디버그 로그 삭제 — 기록 페이지의 별도 버튼입니다. 배틀 기록을 지워도 디버그 로그는 의도적으로 삭제되지 않으며, 그 반대도 마찬가지입니다.
- 모든 정보 삭제 —
chrome://extensions에서 확장 프로그램을 제거합니다. Chrome은 확장 프로그램의 IndexedDB 데이터베이스와storage.local항목을 함께 삭제합니다. 다른 곳에는 어떤 정보도 저장된 적이 없으므로, 다른 위치에 남는 정보는 없습니다.
언제든지 배틀 기록을 JSON 파일로 내보내고 다시 가져올 수 있습니다. 내보낸 파일은 브라우저가 사용자의 디스크에 작성하며, 어디에도 업로드되지 않습니다.
아동의 개인정보 보호
확장 프로그램은 아동을 포함한 누구로부터도 개인정보를 수집하지 않습니다.
본 정책의 변경
확장 프로그램이 데이터를 전송하기 시작하는 경우, 해당 버전이 출시되기 전에 본 정책을 업데이트하며 변경 사항은 확장 프로그램의 Chrome Web Store 등록 페이지와 이 페이지에서 확인할 수 있습니다.
문의
본 정책에 관한 문의: [email protected]
웹사이트: www.pokestrat.top