2

ActiveDirectory 도메인을 통해 Chrome 용 WebExtension을 배포하고 있습니다. 이 도메인의 컴퓨터는 인터넷에 연결할 수 없습니다. 인트라넷에서 호스팅되는 웹 사이트 만 사용할 수 있습니다. 결과 Chrome 웹 스토어에 업로드하지 않고 Chrome에 WebExtension을 설치하기 위해 ExtensionInstallForcelist 정책을 사용하고 있습니다. 인트라넷에는 WebExtension (.crx 파일) 및 업데이트 매니페스트 XML 파일 (.crx 파일을 가리킴)을 호스팅하는 서버가 있습니다.크롬 버전 63.0.3239.84 이후의 ExtensionInstallForForist 정책 문제

Chrome 버전 62.0.3202.94로 모든 것이 작동합니다. 정책이 적용되면 Chrome에 WebExtension이 설치됩니다. WebExtension은 강제 설치되므로 사용자가 수동으로 활성화 할 필요가 없습니다.

하지만 Chrome 버전 63.0.3239.84 이후로 문제가 발생했습니다. WebExtension은 설치되었지만 즉시 비활성화됩니다. 게다가 나는 이상한 행동을 관찰했다. Chrome을 시작하면 잠시 WebExtension이 활성화되지만 그 후에 바로 비활성화됩니다. 이것은 행동이 가라 앉을 때까지 여러 번 발생합니다. Chrome을 닫았다가 다시 시작하면이 동작이 반복됩니다. 이 문제는 여러 장치 및 다른 도메인의 컴퓨터에서 발생합니다.

url chrome : // 정책을 확인했습니다. ExtensionInstallForcelist 항목이 올바르게 적용됩니다.

chrome_debug.log에서 Chrome은 일부 URL에서 WebExtension을 검사하려고 시도하지만 확인에 실패합니다. 이 문제는 "버전 63.0.3239.108"및 "버전 64.0.3282.24 (공식 빌드) 베타 (64 비트)"에서도 발생합니다. 동일한 컴퓨터에 버전 62.0.3202.94가 있으면 모든 것이 작동합니다. 더 나은 개요 내가 chrome_debug.log chrome_debug.log에서

{extensionID} : The ID of my WebExtension 
{url_to_update_manifest} : The url which delivers the update manifest XML file 
{value} : A value 

추출물에서 추출에서 다음과 같은 대체를 사용하는 경우

는 :

VERBOSE1:content_hash_fetcher.cc(252)] Missing verified contents for {extensionID}, fetching... 
VERBOSE1:network_delegate.cc(30)] NetworkDelegate::NotifyBeforeURLRequest: https://clients2.google.com/service/update2/crx?response=redirect&x=uc%26installsource%3Dsignature%26id%3D{extensionID}%26v%3D1.0.1 
VERBOSE1:network_delegate.cc(30)] NetworkDelegate::NotifyBeforeURLRequest: chrome-extension://{extensionID}/background.js 
VERBOSE1:content_verify_job.cc(230)] job failed for {extensionID} background.js reason:1 
VERBOSE1:content_verifier.cc(144)] VerifyFailed {extensionID} reason:1 
VERBOSE1:script_context.cc(111)] Created context: [...] 
VERBOSE1:content_hash_fetcher.cc(301)] URLFetchComplete for {extensionID} is_success:1 https://clients2.google.com/service/update2/crx?response=redirect&x=uc%26installsource%3Dsignature%26id%3D{extensionID}%26v%3D1.0.1 
VERBOSE1:content_verifier.cc(229)] OnFetchComplete {extensionID} success:0 
WARNING:chrome_content_verifier_delegate.cc(197)] Corruption detected in policy extension {extensionID} installed at: C:\Users\Testuser\AppData\Local\Google\Chrome\User Data\Default\Extensions\{extensionID}\1.0.1_2 
VERBOSE1:network_delegate.cc(30)] NetworkDelegate::NotifyBeforeURLRequest: http://{url_to_update_manifest}/?os=win&arch=x64&nacl_arch=x86-64&prod=chromecrx&prodchannel=&prodversion=63.0.3239.108&lang=de&acceptformat=crx2,crx3&x=id%3D{extensionID}%26v%3D0.0.0.0%26installsource%3Dreinstall%26uc 
VERBOSE1:network_delegate.cc(30)] NetworkDelegate::NotifyBeforeURLRequest: http://{url_to_update_manifest} 
VERBOSE1:pending_extension_manager.cc(305)] Extension id {extensionID} was entered for update more than once. old location: 7 new location: 7 old version: invalid new version: invalid 
VERBOSE1:install_signer.cc(435)] Sending request: {"hash":"{value}=","ids":["{value}","{value}","{value}","{value}","{extensionID}","{value}","{value}"],"protocol_version":1} 
VERBOSE1:network_delegate.cc(30)] NetworkDelegate::NotifyBeforeURLRequest: https://www.googleapis.com/chromewebstore/v1.1/items/verify 
VERBOSE1:install_signer.cc(460)] Got response: {"protocol_version":1,"invalid_ids":["{extensionID}"],"signature":"{value}==","expiry":"2018-03-13","pubkey_sha1_hash":"{value}"} 
VERBOSE1:content_verify_job.cc(230)] job failed for {extensionID} background.js reason:1 
VERBOSE1:content_verifier.cc(144)] VerifyFailed {extensionID} reason:1 

나는 또한 변경 내역과에보고 Chromium 소스 코드가 있지만이 동작에 대한 이유를 찾을 수 없습니다.

https://chromium.googlesource.com/chromium/src/+log/62.0.3202.94..63.0.3239.84?pretty=fuller&n=10000

https://cs.chromium.org/chromium/src/extensions/browser/content_verifier.cc?sq=package:chromium&l=144

어떤 도움을 이해할 수있을 것이다, 감사합니다!

답변

0

로그에 따르면 Chrome은 확장 프로그램의 변경 사항을 감지하여 '로컬 저장소'뿐만 아니라 Chrome 웹 스토어에서도 확장 프로그램을 업데이트하려고합니다.

그래서 확장 프로그램에 사용 된 업데이트 URL을 확인해야합니다. 또한 manifest.json을에 UPDATE_URL 정의 크롬 63