How Blink Work [번역]

Page, Frame, Document, DOMWindow etc

Page, Frame, Document, DOMWindow etc

Concepts

페이지, 프레임, 도큐멘트, Execution컨텍스트, DOM윈도우의 개념은 다음과 같습니다:

 

  • 페이지는 탭의 개념에 해당합니다 (아래에 설명 된 OOPIF가 활성화되지 않은 경우). 각 렌더러 프로세스는 여러 탭을 포함 할 수 있습니다.
  • 프레임은 프레임(메인프레임 또는 iframe)에 해당하는 개념입니다. 각 페이지는 트리 계층 구조로 정렬된 하나 이상의 프레임을 포함할 수 있습니다.
  • DOM윈도우는 자바스크립트 window 객체에 해당합니다. 각 프레임은 하나의 DOM윈도우를 가집니다.
  • 도큐멘트는 자바스크립트의 window.document 객체에 해당합니다. 각 프레임은 하나의 도큐멘트를 가집니다.
  • Execution컨텍스트는 도큐멘트(메인 쓰레드의 경우)와 WorkerGlobalScope(워커 쓰레드의 경우)를 추상화한 개념입니다.

 

Renderer process : Page = 1 : N.

 

Page : Frame = 1 : M.

 

프레임 : DOMWindow : Document (또는 ExecutionContext) = 1 : 1 : 1 이지만, 시간이 지남에 따라 매핑이 변경 될 수 있습니다. 예를 들어 다음 코드를 생각해보십시오:

 

iframe.contentWindow.location.href = "https://example.com";

 

이 경우, https://example.com을 위한 새 Window와 새 Document가 생성됩니다. 그러나 프레임은 재사용될 수 있습니다.

 

(참고: 정확하게 말하면, 어떤 경우에는 Document는 새로 생성되지만 Window와 프레임은 재사용됩니다. 더 복잡한 경우도 있습니다.)

 

If you want to learn more:

 

  • core/frame/FrameLifecycle.md (주: 파일을 찾을 수 없음)

 

Out-of-Process iframes (OOPIF)

사이트 격리는 상황을 더욱 안전하지만 복잡하게 만듭니다. :) 사이트 격리의 개념은 사이트 당 하나의 렌더러 프로세스를 만드는 것입니다. (사이트는 페이지의 등록 가능한 도메인 + 1 레이블 및 URL 스키마입니다. 예: https://mail.example.com과 https://chat.example.com은 같은 사이트에 있지만 https://noodles.com 및 https://pumpkins.com은 그렇지 않습니다.) 한 페이지에 하나의 교차 사이트 iframe이 포함 된 경우 페이지는 두 개의 렌더러 프로세스에 의해 호스팅 될 것입니다. 다음 페이지를 고려하십시오:

 

<!-- https://example.com -->

<body>

<iframe src="https://example2.com"></iframe>

</body>

 

메인 프레임과 <iframe>은 서로 다른 렌더러 프로세스에 의해 호스팅 될 수 있습니다. 렌더러 프로세스에게 로컬인 프레임은 LocalFrame으로 표시되고, 렌더러 프로세스에게 로컬이 아닌 프레임은 RemoteFrame으로 표시됩니다.

 

메인 프레임의 관점으로는, 메인 프레임은 LocalFrame이고 <iframe>은 RemoteFrame입니다. <iframe>의 관점으로는, 메인 프레임은 RemoteFrame이고 <iframe>은 LocalFrame입니다.

 

LocalFrame과 RemoteFrame(각각 서로 다른 렌더러 프로세스에 있을 수 있는) 간의 통신은 브라우저 프로세스를 통하여 처리됩니다.

 

If you want to learn more:

 

  • Design docs: Site isolation design docs
  • How to write code with site isolation: core/frame/SiteIsolation.md (주: 파일 찾을 수 없음)

 

Detached Frame / Document

프레임 / 문서가 분리 상태 일 수 있습니다. 다음과 같은 경우를 고려하십시오:

 

doc = iframe.contentDocument;

iframe.remove();  // The iframe is detached from the DOM tree.

doc.createElement("div");  // But you still can run scripts on the detached frame.

 

까다로운 사실은, 분리된 프레임에서 여전히 스크립트 또는 DOM 작업을 실행할 수 있다는 것입니다. 프레임이 이미 분리 되었기 때문에 대부분의 DOM 작업은 실패하고 오류가 발생합니다. 안타깝게도 분리된 프레임에 대한 동작은 브라우저 간에 실제로 상호 작용할 수 없으며 사양에서도 잘 정의되어 있습니다. 기본적으로 자바 스크립트는 계속 실행되어야하지만 대부분의 DOM 작업은 몇 가지 예외와 함께 실패해야 합니다, 다음과 같이:

 

void someDOMOperation(...) {

 if (!script_state_->ContextIsValid()) { // The frame is already detached

   …; // Set an exception etc

   return;

 }

}

 

즉, 일반적인 경우 Blink는 프레임이 분리 될 때 정리 작업을 해야합니다. ContextLifecycleObserver를 상속 받음으로써 이것을 구현할 수 있습니다, 다음과 같이:

 

class SomeObject : public GarbageCollected<SomeObject>, public ContextLifecycleObserver {

  void ContextDestroyed() override {

    // Do clean-up operations here.

  }

 ~SomeObject() {

    // It's not a good idea to do clean-up operations here because it's too late to do them. Also a destructor is not allowed to touch any other objects on Oilpan's heap.

  }

};

 

댓글

댓글 본문
작성자
비밀번호
  1. ZZYYTT
    http://www.mbtshoesonline.com
    http://www.kevindurant-shoes.us.com
    http://www.yeezy-boost.us.com
    http://www.goyardbags.us
    http://www.katespadehandbags-outlet.us.com
    http://www.yeezy-shoes.org.uk
    http://www.balenciaga.us.com
    http://www.ultraboost.us.com
    http://www.longchamphandbagsoutlets.com
    http://www.yesyeezy.shop......tml
    http://www.kd11.us
    http://www.adidas-tubular.us.com
    http://www.mlbjerseys.in.net
    http://www.yeezyboost-350v2.us.com
    http://www.jordan6.us.com
    http://www.supremeclothing.us
    http://www.balenciagashoes.us.org
    http://www.airmax90.us.org
    http://www.yeezyshoesuk.com
    http://www.goldengoosesneakers.us
    http://www.yeezy-boost350.us.com
    http://www.calvinkleinoutlet.us.com
    http://www.lebronjames-shoes.us.com
    http://www.supremehoodie.us.com
    http://www.yeezysuk.com
    http://www.yeezyboost.in.net
    http://www.goyardhandbags.us.com
    http://www.hermesbelts.com
    http://www.michael-kors-handbags.org.uk
    http://www.balenciagashoes.us.com
    http://www.coachoutletstorefactory.com
    http://www.jordan13.us.com
    http://www.rolex-replica.us.com
    http://www.hermes-belt.us.com
    http://www.coachoutletssale.com
    http://www.nhljerseysshop.us.com
    http://www.yesyeezy.shop......tml
    http://www.kyrie3.us.com
    http://www.michaelkors-outletonlines.us.com
    http://www.nike-shox.us.com
    http://www.cheap-airjordans.us.com
    http://www.jordanssneakers.us.com
    http://www.nikejordans.us.com
    http://www.nikebasketballshoes.us.com
    http://www.yesyeezy.shop
    http://www.adidasultraboost.us.org
    http://www.jordan11retro.us.com
    http://www.chromeheartsstore.us
    http://www.goldengoose.us.com
    http://www.paulgeorgeshoes.us.com
    http://www.yeezy-500.us.com
    http://www.michaeljordanshoes.us.com
    http://www.adidas-nmds.us.com
    http://www.nikeairforce1.us.com
    http://www.redbottom-shoes.us.com
    http://www.adidasstansmith.uk
    http://www.goldengoose-sneakers.com
    http://www.lebron16.us.com
    http://www.hermeshandbags.us.org
    http://www.adidasnmds.com
    http://www.offwhite.us.com
    http://www.yeezysshoes.us.com
    http://www.airjordanretro.uk
    http://www.lacostepolo.us.com
    http://www.toryburchs.us
    http://www.adidaszxflux.com
    http://www.monclerjackets.us
    http://www.yeezy-shoes.org
    http://www.long-champ.us.com
    http://www.kd11.us.com
    http://www.lebron16.us
    http://www.filashoes.org
    http://www.goyard-handbags.us.com
    http://www.hermes-birkin.us.com
    http://www.monclerjacket.net
    http://www.nikeair-max.us.com
    http://www.hardenshoes.us.com
    http://www.ferragamobelt.us.org
    http://www.converseoutlet.us.com
    http://www.chromehearts.name
    http://www.yeezy-shoes.ca
    http://www.linksoflondon.us.com
    http://www.goyardhandbags.org
    http://www.nikehuaracheshoes.us.com
    http://www.adidasiniki.us
    http://www.lacosteonlineshop.us.com
    http://www.jordanshoes.org.uk
    http://www.yesyeezy.shop/adidas-yeezy-desert-rat-500-blush-db2908-p-425.html
    http://www.caterpillarboots.us.com
    http://www.canada--goose.co.uk
    http://www.nike-hyperdunk.us.com
    http://www.guccibelt.us.com
    http://www.off-whiteshoes.us.com
    http://www.bape-hoodie.us.com
    http://www.nikefoamposite.us.com
    http://www.pandorabracelet.in.net
    http://www.outlettimberland.us.org
    http://www.kyrie4.org
    http://www.yeezyboost.com.co
    http://www.handbagsmichaelkors.com
    http://www.nike-roshe.us.com
    http://www.nikecortez.us.com
    http://www.goyard.us.com
    http://www.long-champhandbags.org.uk
    http://www.polosralphlaurenuk.com
    http://www.russellwestbrookshoes.us.com
    http://www.jordansshoes.us.org
    http://www.michael-korsoutlets.us
    http://www.shoesjordan.us.com
    http://www.yeezy700.us.com
    http://www.vans-outlet.us.com
    http://www.michael-kors-handbags.com.co
    http://www.goldengoose-sneakers.us
    http://www.lacostepolosshirts.com
    http://www.golden-goose.us.com
    http://www.kd-10.us
    http://www.longchamp-bags.us.org
    http://www.hermes-handbags.us.com
    http://www.yesyeezy.shop/supreme-x-nike-air-more-uptempo-varsity-redwhite-902290600-p-592.html
    http://www.hoganoutletonline.us.com
    http://www.nikepolo.us
    http://www.longchamphandbagsonlines.com
    http://www.retro-jordans.us.com
    http://www.curry5.us
    http://www.nikeairmax2018.us.com
    http://www.kobeshoes.uk
    http://www.michaelkors-outletstore.com
    http://www.nike-airmax2017.us.com
    http://www.asics-shoes.us.org
    http://www.adidasgazelle.us.com
    http://www.yeezy-boosts.us.com
    http://www.yeezyboost350v2.org.uk
    http://www.fila.us.org
    http://www.yesyeezy.shop/adidas-ultra-boost-c-82_89.html
    http://www.kobe-shoes.us.com
    http://www.lebron15.net
    http://www.hermesbelts.co.uk
    http://www.yesyeezy.shop/adidas-yeezy-boost-350-v2-beluga-solar-red-bb1826-p-422.html
    http://www.outletlacoste.us.com
    http://www.adidasshoesonline.com
    http://www.adidasstansmith.us.com
    http://www.adidasyeezys.us
    http://www.kobesneakers.com
    http://www.adidasyeezys.us.com
    http://www.jordan-retro.us.com
    http://www.goldengooseoutlet.us
    http://www.kyrieirving-shoes.us.com
    http://www.kobebasketballshoes.net
    http://www.fakerolex.us.com
    http://www.coachsonline.us.com
    http://www.coachoutletsfactory.com
    http://www.nikeairmax2019.us.com
    http://www.nikereact.org
    http://www.nikereact.us.com
    http://www.jordan12.us.com
    http://www.michaelkors-outletfactory.us.org
    http://www.vapormaxshoes.us
    http://www.jordan4.us.com
    http://www.offwhiteclothing.us.com
    http://www.birkinbag.us.com
    http://www.adidaseqts.com
    http://www.adidas-crazyexplosive.us.com
    http://www.yesyeezy.shop/adidas-yeezy-700-boost-wave-runner-b75571-p-428.html
    http://www.filas.us.com
    http://www.jordansforcheap.us.com
    http://www.yeezyboost-350.uk
    http://www.yesyeezy.shop/nike-air-max-197-sean-wotherspoon-aj4219400-p-66.html
    http://www.yeezy500.us
    http://www.outletmichael-kors.us.com
    http://www.nikeflyknit.us.com
    http://www.airmax270.us.com
    http://www.curry5.us.com
    http://www.adidas-pureboost.us.com
    http://www.curry4shoes.us.com
    http://www.valentinos.us.com
    http://www.cheapnbajerseyswholesales.us.com
    http://www.chromehearts.com.co
    http://www.bapehoodie.us
    http://www.nike-huarache.com
    http://www.adidasnmduk.com
    http://www.goldengoose-outlet.us.com
    http://www.coachoutlets.name
    http://www.offwhitexjordan1.com
    http://www.lebron16.net
    http://www.yesyeezy.shop/adidas-pharrell-williams-c-82_88.html
    http://www.yesyeezy.shop/offwhite-air-jordan-1-retro-chicago-the-ten-aa3834101-p-837.html
    http://www.yeezyboost350v2shoes.us.com
    http://www.adidasoutletonline.com
    http://www.yslhandbags.net
    http://www.yesyeezy.shop/offwhite-x-nike-air-presto-black-aa3830002-p-291.html
    http://www.air-max.us.com
    http://www.hermesonlineshop.com
    http://www.michaelkorsoutletonlineus.com
    http://www.outletonline-michaelkors.us.org
    http://www.yesyeezy.shop/balenciaga-17fw-triple-s-black-pink-women-sneaker-483523w06e38080-p-618.html
    http://www.michael--korsoutlet.us.org
    http://www.yesyeezy.shop/balenciaga-17fw-triple-s-trainer-black-red-mens-w05m23972-p-613.html
    http://www.jimmychoo-shoes.us.com
    http://www.reebokoutlet.us.org
    http://www.offwhitehoodie.us.com
    http://www.nikesneakers.us.com
    http://www.yeezy-shoes.us.org
    http://www.curry4.us.com
    http://www.adidasyeezy.co.uk
    http://www.monclersoutlet.us.com
    http://www.nfljerseys.us.org
    http://www.ferragamobelt.us
    http://www.fitflops-saleclearance.us.com
    http://www.adidassuperstar.us.com
    http://www.fila-shoes.us.com
    http://www.louboutinshoes.uk
버전 관리
지니
현재 버전
선택 버전
graphittie 자세히 보기