자주 묻는 질문(FAQ)

여기에서 질문에 대한 답변을 찾을 수 없는 경우 Chrome 웹 스토어 FAQ를 확인해 보세요. Stack Overflow의 [google-chrome-extension] 태그, chromium-extensions 그룹 또는 스토어 도움말을 참고하세요.

일반

Chrome 확장 프로그램이란 무엇인가요?

Chrome 확장 프로그램은 Chrome 브라우저 내에서 실행되며 기능, 타사 웹사이트 또는 서비스와의 통합, 맞춤형 브라우징 있습니다.

확장 프로그램 개발을 위해 Chrome을 설정하려면 어떻게 해야 하나요?

확장 프로그램을 지원하는 Chrome 버전을 사용 중이라면 직접 확장 프로그램을 작성해야 합니다. 개발자 모드를 사용 설정하여 시작할 수 있습니다.

Chrome 메뉴 아이콘을 클릭하고 도구 메뉴에서 확장 프로그램을 선택합니다. '개발자 모드' 오른쪽 상단의 체크박스가 선택되어 있는지 확인합니다. 이제 새로고침할 수 있습니다. 마치 패키징된 확장 프로그램인 것처럼 압축해제된 파일 디렉터리를 로드하는 등의 작업을 수행해야 합니다. 자세한 내용은 시작하기를 참조하세요.

Chrome용 확장 프로그램을 작성하는 데 사용되는 기술은 무엇인가요?

확장 프로그램은 개발자가 콘텐츠를 만드는 데 사용하는 것과 동일한 표준 웹 기술을 사용하여 작성됩니다. 있습니다. HTML은 콘텐츠 마크업 언어로, CSS는 스타일 지정에 사용되며, 자바스크립트는 있습니다. Chrome은 HTML5 및 CSS3를 지원하므로 개발자는 최신 오픈 웹을 사용할 수 있습니다. 캔버스 및 CSS 애니메이션과 같은 기술을 지원합니다. 확장 프로그램은 여러 JavaScript API는 JSON 인코딩 및 JSON 인코딩과 같은 기능을 수행하는 데 도움을 줍니다. 있습니다.

브라우저가 로드될 때마다 웹에서 확장 프로그램을 가져오나요?

확장 프로그램은 설치 시 Chrome 브라우저에 의해 다운로드되며 로컬 디스크를 만들어야 합니다. 하지만 새 버전의 확장 프로그램이 푸시되고 백그라운드에서 확장 프로그램을 사용하고 있는 모든 사용자에게 자동으로 다운로드됩니다. 설치해야 합니다. 또한 확장 프로그램은 상호작용하기 위해 언제든지 원격 콘텐츠를 요청할 수 있습니다. 웹 서비스를 사용하거나 웹에서 새 콘텐츠를 가져올 수 있습니다.

어떤 버전의 Chrome이 어떤 채널에 배포되었는지 어떻게 알 수 있나요?

현재 각 플랫폼에서 사용할 수 있는 Chrome 버전을 확인하려면 다음 단계를 따르세요. omahaproxy.appspot.com을 방문합니다. 이 사이트에서 다음과 유사한 형식의 데이터가 표시됩니다.

cf,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cf,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cf,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,canary,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cros,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cros,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####

각 줄은 다양한 플랫폼 및 채널 조합에 대한 정보를 나타냅니다. 나열된 플랫폼에는 cf (Chrome 프레임), linux, mac, win, cros (Google ChromeOS)가 있습니다. 이 canary, dev, beta, stable 채널입니다. 두 부분으로 된 네 부분으로 된 숫자는 채널은 해당 플랫폼 채널에 배포된 현재 및 이전 버전의 Chrome을 나타냅니다. 조합할 수 있습니다. 나머지 정보는 발표곡이 처음 푸시된 시점에 관한 메타데이터입니다. 각 빌드와 연결된 버전 번호가 포함됩니다

기능

확장 프로그램에서 교차 도메인 Ajax 요청을 할 수 있나요?

예. 확장 프로그램에서 교차 도메인 요청을 할 수 있습니다. 자세한 내용은 이 페이지를 참고하세요.

확장 프로그램에서 타사 웹 서비스를 사용할 수 있나요?

예. 확장 프로그램은 교차 도메인 Ajax 요청을 할 수 있으므로 원격 API를 호출할 수 있습니다. 바로 그것입니다. JSON 형식의 데이터를 제공하는 API는 특히 사용하기 쉽습니다.

확장 프로그램이 JSON 데이터를 인코딩/디코딩할 수 있나요?

예, V8 (Chrome의 JavaScript 엔진)은 JSON.stringify 및 JSON.parse를 기본적으로 지원하므로 는 여기에 설명된 대로 확장 프로그램에서 이러한 기능을 JSON 라이브러리를 사용할 수도 있습니다.

확장 프로그램에서 데이터를 로컬에 저장할 수 있나요?

예. 확장 프로그램은 localStorage를 사용하여 문자열 데이터를 영구적으로 저장할 수 있습니다. Chrome에 내장된 JSON 함수를 사용하면 복잡한 데이터 구조를 localStorage에 저장할 수 있습니다. 확장 프로그램을 설치해야 하는 경우 저장된 데이터에서 SQL 쿼리를 실행하는 등 Chrome은 클라이언트 측 SQL 데이터베이스를 구현합니다. 사용할 수 있습니다.

확장 프로그램에서 OAuth를 사용할 수 있나요?

예, OAuth를 사용하여 원격 데이터 API에 액세스하는 확장 프로그램이 있습니다. 대부분의 개발자는 JavaScript OAuth 라이브러리를 편리하게 사용하여 OAuth에 서명하는 프로세스를 간소화할 수 있습니다. 요청을 처리합니다

확장 프로그램이 렌더링된 웹페이지 외부에서 UI를 만들 수 있나요?

예, 확장 프로그램에서 Chrome 브라우저의 사용자 인터페이스에 버튼을 추가할 수 있습니다. 브라우저 참고 작업페이지 작업을 참조하세요.

또한 확장 프로그램에서 브라우저 창 외부에 팝업 알림을 만들 수도 있습니다. 자세한 내용은 데스크톱 알림 문서를 참고하세요.

확장 프로그램이 Chrome 탭과 탐색 버튼의 클릭을 들을 수 있나요?

아니요. 확장 프로그램은 API 문서에 설명된 이벤트를 리슨하도록 제한됩니다.

두 개의 확장 프로그램이 서로 통신할 수 있나요?

예, 확장 프로그램이 다른 확장 프로그램으로 메시지를 전송할 수 있습니다. 메일 전달 문서 참조 를 참조하세요.

확장 프로그램에서 Google 애널리틱스를 사용할 수 있나요?

예, 확장 프로그램은 웹사이트처럼 구축되므로 Google 애널리틱스를 사용하여 추적할 수 있습니다. 사용합니다 그러나 Google 애널리틱스의 HTTPS 버전을 가져오려면 추적 코드를 수정해야 합니다. 있습니다. 자세한 내용은 이 가이드를 참조하세요.

확장 프로그램이 chrome:// URL을 수정할 수 있나요?

아니요. 확장 프로그램 API는 발생할 수 있는 이전 버전과의 호환성 문제를 최소화하도록 설계되었습니다. 새 버전의 브라우저가 푸시될 때 URL chrome://개에서 콘텐츠 스크립트를 허용하면 개발자는 이러한 페이지의 DOM, CSS 및 JavaScript에 의존하여 동일하게 유지하기 시작할 것입니다. 이러한 페이지는 현재 업데이트되는 것만큼 빠르게 업데이트되지 않는 것이 가장 좋습니다. 최악의 경우 이러한 페이지 중 하나를 업데이트할 경우 깨져서 브라우저의 주요 부분이 해당 확장 프로그램의 사용자에게 작동하지 않게 됩니다.

이러한 URL에서 호스팅되는 콘텐츠를 완전히 교체하는 것은 허용되는 이유는 다음과 같습니다. 확장 프로그램 개발자가 애플리케이션에 종속되지 않고 원하는 모든 기능을 구현하도록 그대로 유지할 수 있습니다.

확장 프로그램에서 사용자 상호작용 없이 브라우저/페이지 작업 팝업을 열 수 있나요?

아니요. 팝업은 사용자가 해당 페이지 또는 브라우저 작업을 클릭하는 경우에만 열 수 있습니다. 확장 프로그램이 프로그래매틱 방식으로 팝업을 열 수 없습니다.

사용자가 팝업을 클릭하여 닫은 후에도 확장 프로그램이 팝업을 계속 열어둘 수 있나요?

아니요, 사용자가 브라우저의 일부분에 포커스를 맞추면 팝업이 자동으로 닫힙니다. 팝업이 표시됩니다. 사용자가 클릭한 후에도 팝업이 계속 열려 있도록 할 수 있는 방법은 없습니다.

확장 프로그램이 설치/제거될 때 알림을 받을 수 있나요?

runtime.onInstalled 이벤트를 수신하면 확장 프로그램이 Chrome 자체가 업데이트될 때. 다음에 해당하는 이벤트가 없습니다. 확장 프로그램이 제거됩니다.

개발

확장 프로그램의 UI는 어떻게 빌드하나요?

확장 프로그램은 HTML 및 CSS를 사용하여 사용자 인터페이스를 정의하므로 표준 양식 컨트롤을 사용할 수 있습니다. 웹페이지와 마찬가지로 UI를 빌드하거나 CSS로 인터페이스의 스타일을 지정할 수 있습니다. 또한 확장 프로그램은 일부 제한된 UI 요소를 Chrome 자체에 추가할 수 있습니다.

localStorage에 데이터를 얼마나 저장할 수 있나요?

확장 프로그램은 localStorage에 최대 5MB의 데이터를 저장할 수 있습니다.

애플리케이션에 대한 옵션 메뉴를 만들려면 어떻게 해야 하나요?

옵션 페이지를 만들어 사용자가 확장 프로그램의 옵션을 설정하도록 허용할 수 있습니다. 사용자가 '옵션'을 클릭할 때 로드되는 간단한 HTML 페이지 버튼을 클릭합니다. 이 페이지에서는 설정을 localStorage에 읽고 쓸 수 있으며, 심지어 웹 서버에 옵션을 전송하여 브라우저 간에 유지될 수 있습니다.

확장 프로그램 개발자는 어떤 디버깅 도구를 사용할 수 있나요?

Chrome에 내장된 개발자 도구를 사용하여 확장 프로그램과 웹페이지를 디버그할 수 있습니다. 보기 확장 프로그램 디버깅 튜토리얼을 참조하세요.

최상위 도메인 (TLD)에서 와일드 카드 일치가 작동하지 않는 이유는 무엇인가요?

http://google.*/*와 같은 와일드 카드 일치 패턴을 사용하여 TLD를 일치시킬 수 없습니다 (예: http://google.eshttp://google.fr)을 실제로 제한하는 것이 복잡하기 때문입니다. 원하는 도메인과만 일치시킵니다.

http://google.*/*의 경우 Google 도메인이 일치하지만 http://google.someotherdomain.com입니다. 또한 많은 사이트가 자체 TLD의 모든 TLD를 소유하지는 않습니다. 있습니다. 예를 들어 http://example.*/*를 사용하여 http://example.com와 일치한다고 가정해 보겠습니다. 및 http://example.es이지만 http://example.net은(는) 적대적인 사이트입니다. 확장 프로그램에 버그가 있는 경우 적대적인 사이트는 잠재적으로 확장 프로그램의 네트워크에 액세스하기 위해 확장 프로그램을 공격할 수 있습니다. 권한을 늘렸습니다.

확장 프로그램을 실행할 TLD를 명시적으로 열거해야 합니다.

확장 프로그램이 설치/제거될 때 관리 API에서 이벤트를 실행하지 않는 이유는 무엇인가요?

management API는 새 탭 페이지 대체 확장 프로그램을 만드는 데 도움이 되도록 고안되었습니다. 아니었음 현재 확장 프로그램의 설치/제거 이벤트를 실행합니다.

확장 프로그램이 처음 실행되는지 여부를 어떻게 판단할 수 있나요?

runtime.onInstalled 이벤트를 수신 대기할 수 있습니다. 이 FAQ 항목을 참고하세요.

기능 및 버그

버그를 발견한 것 같아! 문제가 해결되었는지 확인하려면 어떻게 해야 하나요?

확장 프로그램을 개발하는 동안 확장 프로그램과 일치하지 않는 동작이 발생할 수 있습니다. Chrome 버그로 인한 문제일 수 있습니다. 가장 좋은 방법은 Chromium 팀에 문제를 재현하기에 충분한 정보가 있어야 합니다. 있습니다.

다음과 같은 단계를 따라야 합니다.

  1. 신고하려는 문제를 입증할 수 있는 최소한의 테스트 확장 프로그램을 제출합니다. 이 확장 프로그램은 버그를 보여주기 위해 가능한 한 적은 코드를 포함해야 하며, 일반적으로는 다음과 같아야 합니다. 코드는 100줄 이하여야 합니다. 개발자가 문제를 재현할 수 없는 경우가 많습니다. 이는 버그가 자체 코드에 있음을 나타내는 좋은 지표입니다.
  2. http://crbug.com에서 Issue Tracker를 검색하여 누군가 유사한 문제를 신고했는지 확인합니다. 있습니다. 확장 프로그램과 관련된 대부분의 문제는 component=Platform>Extensions에 있으므로 chrome.tabs.executeScript 함수와 관련된 확장 프로그램 버그를 찾습니다 (예:). 'component=Platform>Extensions Type=Bug chrome.tabs.executeScript'을(를) 검색하면 이 결과 목록을 확인할 수 있습니다.
  3. 문제를 설명하는 버그를 발견한 경우 버그 발생 시 알림을 받으려면 별표 아이콘을 클릭합니다. 업데이트를 수신합니다. 버그에 '동감'으로 응답하지 마세요. 또는 "언제 출시되는지 수정되었나요?" 이러한 업데이트로 인해 수백 개의 이메일이 전송될 수 있습니다. 다음과 같은 경우에만 댓글을 추가하세요. 도움이 될 만한 정보 (예: 더 나은 테스트 사례 또는 추천 수정 사항)를 제공할 수도 있습니다.
  4. 별표표시할 적절한 버그를 찾지 못한 경우 http://crbug.com/new에서 새로운 문제 신고를 제출하세요. 양식을 작성할 때는 구체적인 제목을 선택하고 예상 동작과 실제 동작을 설명해야 합니다. 테스트 첨부 보고서에 예시를 추가하고 필요한 경우 스크린샷을 추가합니다. 보고서를 쉽게 만들수록 다른 사람이 문제를 재현할 수 있게 되면 버그가 신속하게 수정될 가능성이 높아집니다.
  5. 버그가 업데이트될 때까지 기다립니다. 새로운 버그는 대부분 1주일 이내에 분류되지만, 경우에 따라 업데이트에 시간이 더 걸릴 수 있습니다 문제가 언제 해결될지 묻는 버그에 답장하지 마세요. 문제가 해결되었습니다 2주가 지난 후에도 버그가 수정되지 않을 경우 토론방에 추가해 주세요.
  6. 처음에 토론방에서 버그를 신고했고 이 FAQ 항목으로 연결된 경우, 별표 표시하거나 신고한 버그의 링크를 포함하여 원래 대화목록에 답장합니다. 이렇게 하면 같은 문제를 겪고 있는 다른 사람이 올바른 버그를 더 쉽게 찾을 수 있습니다.

기능 요청이 있습니다. 어떻게 신고해야 하나요?

확장 프로그램 개발 환경을 개선할 수 있도록 문제에 적절한 요청이 제출되었는지 확인하세요. 있습니다.

다음과 같은 단계를 따라야 합니다.

  1. http://crbug.com에서 Issue Tracker를 검색하여 누군가가 나와 있습니다. 확장 프로그램과 관련된 대부분의 요청은 component=Platform>Extensions. 단축키 (예: 'component=Platform>Extensions Type=Feature shortcuts'을 사용하면 다음의 결과를 참고하세요.
  2. 요청과 일치하는 티켓을 찾으면 별표 아이콘을 클릭하여 버그가 발생했을 때 알림을 받습니다. 업데이트를 수신합니다. 버그에 '동감'으로 응답하지 마세요. 또는 "언제 출시되는지 implemented?"; 이러한 업데이트로 인해 수백 개의 이메일이 전송될 수 있습니다.
  3. 별표표시할 적절한 티켓을 찾지 못한 경우 http://crbug.com/new에서 새 요청을 제출하세요. CANNOT TRANSLATE 양식을 작성할 때 최대한 자세히 설명: 구체적인 제목을 선택하고 정확히 어떤 기능을 원하는지, 어떻게 사용할 계획인지 생각해 보세요.
  4. 티켓이 업데이트될 때까지 기다립니다. 대부분의 신규 요청은 일주일 이내에 분류되지만 경우에 따라 업데이트에 시간이 더 걸릴 수 있습니다 기능이 언제 제공되는지 묻는 티켓에 답장하지 마세요. 추가되었습니다. 2주가 지난 후에도 티켓이 수정되지 않을 경우 토론방에 제출해 주세요.
  5. 처음에 토론방에서 요청을 신고했으며 이 FAQ로 이동한 경우 제출하려는 경우 별표표시하거나 연 티켓의 링크를 포함하여 원래 대화목록에 답장합니다. 이렇게 하면 같은 요청을 하는 다른 사람들이 올바른 티켓을 더 쉽게 찾을 수 있습니다.