Hacker DirectoryHacker Directory
Öğrenmeye devam et
ENHTML kaydet ↓

WEB / WEB-10.01

Browser processes ve navigation

Browser UI, network loading ve renderer document state’ini ownership sınırlarıyla oku.

CORE · RED · BLUE · ARTIFACT · PRACTICE

1. Core · Mekanizma

Hareket olmadan bütün senaryoları oku

HTML commit

  1. Document A active

    Document A aktiftir; B için navigation henüz commit edilmedi. Network service metadata’sı browser’a, commit renderer’a, confirmation tekrar browser’a ulaştığında ayrı state’ler değişir. A’nın aktif olması burada pixel ölçümü değildir.

    Browser UI
    Active: A
    Network service
    Response B: absent
    Renderer
    Document A
  2. Navigation intent

    Browser yeni HTML navigation adayını seçer; önceki document henüz active kalır.

    Browser UI
    Intent: B; active A
    Network service
    Response B: pending
    Renderer
    Document A
  3. Response prepared locally

    Seçilmiş response metadata ve stream Network service’de hazır olur; DNS/TLS/HTTP exchange çalıştırılmış sayılmaz.

    Browser UI
    Intent B; active A
    Network service
    HTML metadata + stream ready
    Renderer
    Document A
  4. HTML response ready

    Network service metadata browser’a ulaşır; renderer henüz yeni document’i almaz.

    Browser UI
    Intent B; response ready
    Network service
    HTML headers/body available
    Renderer
    Document A
  5. Renderer selected

    Bu profilde Renderer B seçilir; selection yeni document commit değildir.

    Browser UI
    Renderer B selected
    Network service
    HTML stream available
    Renderer
    B ready; document absent
  6. Commit delivered

    Commit ve stream handoff renderer’a ulaşır; Document B loading olur.

    Browser UI
    Confirmation pending; active A
    Network service
    Stream handoff complete
    Renderer
    Document B: loading
  7. Confirmation received

    Renderer confirmation browser’a ulaşır; active document ve URL kaydı B olur.

    Browser UI
    Active: B; URL B
    Network service
    Response B consumed
    Renderer
    Document B: loading
  8. Rendering remains separate

    Parsing devam edebilir; ilk pixel ve load timing’i bu modelde ölçülmez.

    Browser UI
    Active: B
    Network service
    No fresh request implied
    Renderer
    DOM work available; pixels unmeasured

Fragment · same DOM

  1. Document A active

    A document’i ve içindeki summary hedefi zaten vardır; network işi yok.

    Browser UI
    Active: A
    Network service
    Not required
    Renderer
    Document A: summary exists
  2. Fragment chosen

    Mevcut document’in summary fragment’i seçilir; Document A identity korunur.

    Browser UI
    Intent: A#summary
    Network service
    Not required
    Renderer
    Document A unchanged
  3. History updated

    Same-document URL/history değişir; yeni HTML response veya commit yaratılmaz.

    Browser UI
    URL: A#summary; active A
    Network service
    Not required
    Renderer
    Document A unchanged
  4. Existing target used

    Mevcut summary hedefi uygulanır; DOM node’lar yeni response’tan üretilmez.

    Browser UI
    URL: A#summary
    Network service
    Not required
    Renderer
    Same Document A; target summary

File · no new DOM

  1. Document A active

    Eski document active durur; download fixture response’u henüz seçilmedi.

    Browser UI
    Active: A
    Network service
    File response pending
    Renderer
    Document A
  2. File intent

    Browser dosya response adayını işler; renderer için HTML varsaymaz.

    Browser UI
    Intent: file; active A
    Network service
    Attachment profile
    Renderer
    Document A
  3. File metadata ready

    Network service seçilmiş dosya metadata’sını hazır tutar; browser henüz download kararını almaz.

    Browser UI
    Intent file; active A
    Network service
    File metadata + bytes ready
    Renderer
    Document A
  4. File response delivered

    Seçilmiş attachment response metadata’sı ulaşır; yeni document commit edilmez.

    Browser UI
    Attachment ready; active A
    Network service
    File bytes available
    Renderer
    Document A
  5. Download branch selected

    Response file handler’a yönelir; Renderer B’de yeni HTML document yoktur.

    Browser UI
    Download selected; active A
    Network service
    File handing off
    Renderer
    No Document B
  6. Boundary retained

    Download seçimi rendering başarısı değildir; eski document identity korunur.

    Browser UI
    Active: A
    Network service
    No HTML commit
    Renderer
    Document A retained

ROLLER · STATE · VERİ AKIŞI

Browser bir uygulama ortamıdır

Adres çubuğu, document ve network socket aynı şey değildir. Browser, gelen bytes’ı web platform kuralları içinde document’e dönüştüren; script çalıştıran, storage ve permissions yöneten, kullanıcıya frame gösteren bir uygulamadır. Bir sayfanın başarısı yalnız server’ın 200 göndermesine bağlı değildir. Response doğru biçimde seçilmeli, document oluşmalı, code ve kaynaklar işlenmeli, sonra kullanılabilir bir görünüm üretilmelidir.

Bir kitap kataloğu düşün: adres çubuğunda /catalog yazması browser’ın bu adresi kabul ettiğini gösterir. DOM içinde Atlas başlığının bulunması başka bir gözlemdir; o başlığın ekranda görülebilmesi üçüncü bir gözlemdir. Bu ders üçünü ayrı kayıtlar olarak tutar. Network hizmetini, renderer’ın local çalışmasını ve browser UI’yı tek bir yeşil “loaded” kutusuna sıkıştırmaz.

Process ile thread’i ayır

Process, işletim sisteminin yönettiği bir çalışma ve kaynak sınırıdır; thread o process içindeki execution akışlarından biridir. Chromium, browser UI ve ayrı renderer işlerini process’lere böler. Renderer içinde main thread, compositor ve yardımcı işler bulunabilir; network ve GPU/Viz gibi hizmetlerin yerleşimi de implementation’a bağlıdır. Aynı programın birçok işi yapması, bütün işlerin aynı call stack üzerinde yapıldığı anlamına gelmez.

Bu ayrım günlük bir arızayı okumayı kolaylaştırır: yoğun bir sayfanın main thread’i meşgulken tab düğmesinin yanıt verebilmesi, document script’i ile browser UI’nın aynı görev olmadığını gösterir. Burada belirli bir PID, RAM miktarı veya CPU süresi üretilmez. Kartlar sorumlulukları gösterir; gerçek process sayısını öğrenmek için ilgili browser sürümünün kendi process gözlemi gerekir.

Tab sayısı process sayısı değildir

“Bir tab, bir renderer” başlangıç için akılda kalır ama güvenilir bir mimari kural değildir. Chromium process model’i document ve worker’ların birlikte yaşama gereksinimlerini, security principal’ı, browsing context group’u ve platform kaynaklarını dikkate alır. Aynı tab içindeki cross-site iframe ayrı renderer kullanabilir; aynı site’a ait ilgili document’lar bazı koşullarda bir process’i paylaşabilir. Site Isolation ve origin-level policy ayrıntıları da platforma göre değişir.

Dolayısıyla iki tab görüp iki ayrı güvenlik sınırı varsayma. Process ayrımı browser’ın savunmasını güçlendirebilir; application resource authorization’ın yerine geçmez. Katalog API’sinin bir kaydı kime vereceğine yine server karar verir. Buradaki Renderer A/B adları instructional alias’tır; gerçek browser’ın her navigation için mutlaka yeni process başlattığı iddiası değildir.

Navigation intent, response ve commit

Yeni bir HTML document’e navigation, bir URL adayını seçmekle başlar. Browser loading kararlarını yürütür, gerekirse network response alır ve uygun document hedefini seçer. Redirect varsa final hedef değişebilir; cache veya service worker devredeyse her navigation’ın yeni DNS/TLS yaptığı da söylenemez. Scene, normal HTML response hazır olduğundan sonraki browser/renderer koordinasyonunu seçilmiş bir Chromium profili olarak gösterir.

Commit mesajının renderer’a ulaşması yeni document yüklemesini başlatır; browser’a confirmation dönmesi UI/history kaydını ilerletir. Bu IPC bytes’ları burada capture edilmez, wire format isimleri uydurulmaz. Transfer çizgisi bir mesajın tamamlanmış delivery’sini temsil eder. Onay gelmeden browser UI kartı Document B’yi active göstermediği için ownership sınırı görünür kalır.

Aynı document içinde URL değişebilir

Katalog sayfasındaki #summary link’i aynı document’e fragment navigation olabilir. Document kimliği korunurken URL/history ve scroll hedefi değişebilir; yeni HTML response zorunlu değildir. History API ile URL/history update de yeni document yaratmadan adres değiştirebilir, fakat fragment navigation ile tüm observable event davranışları aynı değildir. Bu ders yalnız mevcut #summary hedefi seçilen fragment fixture’ını gösterir.

Önemli karşılaştırma, değişen adresi gören gözlemci ile document identity’yi izleyen gözlemcinin aynı sonuca hemen varamamasıdır. Bir SPA route adı değişince session veya server izinleri kendiliğinden yenilenmez. Artifact’in same-document satırında activeDocument=A kalır; networkFetchRequired=false bu seçilmiş fragment işleminin özelliğidir, bütün navigation türlerinin özelliği değildir.

Commit, readiness ve pixels ayrı kapılardır

Document.readyState loading, interactive ve complete ayrımı document lifecycle hakkında bilgi verir. DOMContentLoaded genellikle parsing tamamlanıp deferred/module scripts işlendiğinde gelir; tüm image veya async script’leri bekleyen bir “her şey bitti” kanıtı değildir. load daha geniş kaynak yükleme sınırını temsil eder; lazy resource ve sonradan fetch edilen data ayrı kalabilir. Bu events’ten birini ilk görünür pixel’in tam zamanı diye kaydetmek doğru değildir.

Download branch’inde response bir dosya olarak ele alınır ve Renderer B’ye yeni HTML document commit edilmez. Normal branch’in son kartı da “DOM başlayabilir; pixels ölçülmedi” der. Öğrenci transfer’i oynatınca byte delivery ile ekranda yeni frame gösterilmesinin farklı koşullar olduğunu görür. Bu fark, boş ekranı otomatik bir server hatası olarak yorumlamayı önler.

2. Red · Güven ve etki

Hareket olmadan bütün senaryoları oku

Commit scope

  1. Initial document yeni response’tan ayrıldı

    InitialDocument A’dır; normal response HTML seçer ve newDocument B ister. Response-ready event’i tek başına current document’in değiştiğini göstermez. Response, seçilmiş renderer ve commit farklı milestones’dır.

    Navigation ledger
    Document A / HTML response B ready
    Lifecycle boundary
    Lifecycle gate bekliyor
    Presentation/authority
    Outcome bilinmiyor
  2. Commit ownership renderer bilgisine bağlandı

    normalEvents renderer-seçilmiş sonrasında commit-delivered verir. Bu seçilmiş Chromium-style coordination’da renderer B yeni document’i bilir. Alias process allocation guarantee veya gerçek IPC wire record değildir.

    Navigation ledger
    Document A / HTML response B ready
    Lifecycle boundary
    Commit delivered / renderer knows B
    Presentation/authority
    Outcome bilinmiyor
  3. First-pixel sonucu commit’ten çıkarılmadı

    pixelsMeasured false’tur. Renderer’ın document B’yi bilmesi ekranda first pixel ölçüldüğünü söylemez. Presentation, lifecycle receipt ve application data permission farklı sorulardır.

    Navigation ledger
    Document A / HTML response B ready
    Lifecycle boundary
    Commit delivered / renderer knows B
    Presentation/authority
    Document B known / pixels unmeasured
  4. Confirmation ayrı acknowledgement olarak okundu

    Normal record confirmationReceived true verir ve event sırası confirmation-received ile biter. Browser UI/state update’i bu seçilmiş acknowledgement’dan sonra açıklanır. Commit gönderimi browser’ın confirmation aldığı anlamına gelmez.

    Navigation ledger
    Confirmation received after commit
    Lifecycle boundary
    Commit delivered / renderer knows B
    Presentation/authority
    Document B known / pixels unmeasured
  5. Process label resource authority olmadı

    A/B document aliases ile process veya sandbox sınırları application tenant/action kararına dönüştürülmez. Aynı process’te olmak grant vermez; ayrı process’te olmak API data confidentiality’yi kanıtlamaz.

    Navigation ledger
    Confirmation received after commit
    Lifecycle boundary
    Lifecycle ownership ≠ resource permission
    Presentation/authority
    Document B known / pixels unmeasured
  6. Outcome en küçük gözlenen milestones ile verildi

    Bu ledger normal commit ve confirmation sağlar; actualNetworkExecuted false ve pixelsMeasured false kalır. “Document B seçildi ve confirmation alındı” sonucu uygundur. Network, pixel veya server authorization başarısı eklenmez.

    Navigation ledger
    Confirmation received after commit
    Lifecycle boundary
    Lifecycle ownership ≠ resource permission
    Presentation/authority
    Commit/confirmation supplied / pixels-authz unmeasured

Download branch

  1. Response kind yeni document ihtiyacından ayrıldı

    Download case responseKind seçilmiş-attachment ve downloadSelected true verir. newDocument null, retainedDocument A’dır. Başarılı download kararı, yeni HTML document oluşturma branch’i değildir.

    Navigation ledger
    Attachment selected / document A retained
    Lifecycle boundary
    Lifecycle gate bekliyor
    Presentation/authority
    Outcome bilinmiyor
  2. Yanlış inspected object varsayımı durduruldu

    Bu branch’te yeni document B inspect etmek doğru değildir; A korunur. Response status/type, document identity ve seçilmiş download ayrı kayıtlar olarak okunur. Dosya seçildi diye yeni DOM beklemek lifecycle’ı yanlış yorumlar.

    Navigation ledger
    Attachment selected / document A retained
    Lifecycle boundary
    No new document / inspect retained A separately
    Presentation/authority
    Outcome bilinmiyor
  3. Download kararı dosya güvenliği verdict’i olmadı

    Seçilen attachment, bytes’ın güvenli veya user’a authorized olduğunu kanıtlamaz. Bu fixture download transfer, file write veya content analysis çalıştırmaz. Response branch selection, application policy’den ayrı kalır.

    Navigation ledger
    Attachment selected / document A retained
    Lifecycle boundary
    No new document / inspect retained A separately
    Presentation/authority
    Download selected / transfer-content safety unmeasured
  4. Same-document normal negative comparison oldu

    Same-document case fragment summary seçer, newDocument null ve networkFetchRequired false verir. A yine retained olur, fakat bu download branch’i değildir. İki null newDocument sonucu aynı mekanizma diye birleştirilmez.

    Navigation ledger
    Same-document fragment summary / no new fetch required
    Lifecycle boundary
    No new document / inspect retained A separately
    Presentation/authority
    Download selected / transfer-content safety unmeasured
  5. Navigation türü correction owner’ını değiştirdi

    HTML commit, same-document fragment ve seçilmiş attachment farklı expected work üretir. Sorun incelemesi önce navigation kind’ini belirler. Generic “load failed” etiketi hangi aşamanın yapılmadığını veya gereksiz olduğunu gizler.

    Navigation ledger
    Same-document fragment summary / no new fetch required
    Lifecycle boundary
    HTML / fragment / attachment classified separately
    Presentation/authority
    Download selected / transfer-content safety unmeasured
  6. Navigation explanation platform claim’i olmadı

    Bu seçilmiş profile allocation veya bütün browser/platform davranışını genellemez. Download ve same-document branch’lerinde pixelsMeasured false’tur. Sonuç gerçek screenshot veya sandbox verification diye sunulmaz.

    Navigation ledger
    Same-document fragment summary / no new fetch required
    Lifecycle boundary
    HTML / fragment / attachment classified separately
    Presentation/authority
    Branch known / platform and pixels unmeasured

VARSAYIM · SINIR · KONTROL

Gördüğün sinyalin sahibini sor

Yetkili bir incelemede ilk iş “sayfa açıldı mı?” sorusunu gözlemlere bölmektir. Address bar ve final URL, response status/Content-Type, document identity ve rendered view ayrı kaynaklardan gelir. Bir redirect chain’in son URL’sini kaydetmek önceki response’u silmez. Bir dosya indirildiyse HTML document inspect etmeye çalışmak da yanlış nesne üzerinde çalışma olur.

Artifact’i okuyarak üç tahmin yap: normal branch’te hangi adımda Renderer B yeni document’i bilir; browser UI bunu hangi acknowledgement sonrasında bilir; same-document branch’inde ne hiç değişmez? Bu sorular normal ve sentetik girdilerle mekanizma okuma pratiğidir. Process sayısına veya bir screenshot’a bakarak application data erişiminin onaylandığını varsayma.

Navigation record’unu content kararından ayır

Bir sayfa takıldığında network kaydı eldeki response’u gösterebilir, DOM incelemesi current document’i gösterebilir, performance kaydı ise renderer işlerini açıklayabilir. Bunlar birbirini tamamlar; tek başına bütün timeline’ı kanıtlamaz. İncelemede sürüm, navigation türü ve kullanılan kaynak yolu belirtilir; cache üzerinden gelen response’u yeni bir wire capture gibi sunma.

Scene’de A/B alias’larını ve selected profile sınırını koru. Bir başarısız UI yenilemesini renderer sandbox bypass’ı veya server authorization failure’ı diye adlandırmak için burada kanıt yoktur. Kesinleşen en küçük olayı yaz: “commit confirmation ulaşmadı”, “Document A korunuyor” ya da “dosya branch’i seçildi”. Böylece bulgu, testin gerçekten gözlediği mekanizmaya bağlı kalır.

3. Blue · Güvenli geliştirme ve savunma

Hareket olmadan bütün senaryoları oku

Milestone review

  1. Normal event order bağımsız kayıtlar olarak seçildi

    Bu artifact seçilmiş navigation modelinin milestone defteridir. normalEvents içindeki response-ready, renderer-selected, commit-delivered ve confirmation-received farklı owner’lara aittir. Network service’in hazırlığı Browser UI receipt’i değildir; renderer’ın commit bilgisi de browser confirmation’ı değildir. Fragment ve download dallarında yeni HTML commit’i bekleme. normalEvents response-ready, renderer-seçilmiş, commit-delivered, confirmation-received sırasını verir. Tek request ID bütün document veya user session’ını tanımlamak zorunda değildir. Correlation owner ve navigation scope’uyla kurulmalıdır.

    Lifecycle observations
    Ready→selected→commit→confirmation
    Owner/correlation review
    Lifecycle gate bekliyor
    Evidence conclusion
    Outcome bilinmiyor
  2. Receiver knowledge milestone’a göre incelendi

    Renderer new document’i commit tesliminde bilir; browser confirmation’ı ayrı alır. Source açıklaması iki tamamlanmış gözlem’i sağlar. Network cache receipt, response preparation ve document commit aynı event diye raporlanmaz.

    Lifecycle observations
    Ready→selected→commit→confirmation
    Owner/correlation review
    Renderer knows B / browser receives confirmation later
    Evidence conclusion
    Outcome bilinmiyor
  3. Benign same-document branch negative control oldu

    Fragment summary navigation’ında retainedDocument A, newDocument null ve networkFetchRequired false olur. Yeni document bekleyen oracle bu normal branch’i yanlış failure sayar. Branch kind kontrollere dahil edilir.

    Lifecycle observations
    Fragment: A retained / no new document required
    Owner/correlation review
    Renderer knows B / browser receives confirmation later
    Evidence conclusion
    Outcome bilinmiyor
  4. Download outcome document outcome’dan ayrıldı

    Attachment selection newDocument null verir; nedeni aynı-document fragment değildir. Outcome reason kaydı, eşit null values’ın farklı branch’lerini açıklar. Browser presentation veya file persistence ölçümü ayrıca gerekir.

    Lifecycle observations
    Fragment: A retained / no new document required
    Owner/correlation review
    Attachment: A retained / download selected
    Evidence conclusion
    Outcome bilinmiyor
  5. Presentation coverage ayrı verdict olarak tutuldu

    Üç case için pixelsMeasured false’tur. Lifecycle kayıtları current document ve navigation kind’i açıklayabilir; first pixels veya bütün rendered view sonucunu kanıtlamaz. Gözlem yokluğu sayfanın görünmediği hükmü değildir.

    Lifecycle observations
    Fragment: A retained / no new document required
    Owner/correlation review
    Attachment: A retained / download selected
    Evidence conclusion
    Lifecycle known / presentation UNKNOWN
  6. Regression expected work’a göre seçildi

    Kontrol normal HTML için B commit/confirmation, fragment için A retention ve attachment için download selection’dır. Gerçek IPC, process allocation veya network çalıştırılmaz. Yeni runtime sonucu ayrı evidence ile ilişkilendirilmelidir.

    Lifecycle observations
    Fragment: A retained / no new document required
    Owner/correlation review
    Attachment: A retained / download selected
    Evidence conclusion
    Check branch-specific milestones, not one completion

Confirmation gap

  1. Observation gap normal expectation’dan ayrıldı

    Bu artifact seçilmiş navigation modelinin milestone defteridir. normalEvents içindeki response-ready, renderer-selected, commit-delivered ve confirmation-received farklı owner’lara aittir. Network service’in hazırlığı Browser UI receipt’i değildir; renderer’ın commit bilgisi de browser confirmation’ı değildir. Fragment ve download dallarında yeni HTML commit’i bekleme. Alternatif review’de commit record vardır fakat confirmation receipt gözlenmez. Normal fixture confirmationReceived true sağlar; bu beklenen fact missing observation yerine taşınmaz. Receiver knowledge kendi record’undan değerlendirilir.

    Lifecycle observations
    Commit observed / confirmation unobserved
    Owner/correlation review
    Lifecycle gate bekliyor
    Evidence conclusion
    Outcome bilinmiyor
  2. Send record acknowledgement receipt sayılmadı

    Commit’in gönderilmesi confirmation’ın browser’a geldiğini kanıtlamaz. Renderer-side ve browser-side observations ayrı coverage ister. Bu review gerçek message loss veya timing nedeni ölçmez.

    Lifecycle observations
    Commit observed / confirmation unobserved
    Owner/correlation review
    Commit send ≠ confirmation receipt
    Evidence conclusion
    Outcome bilinmiyor
  3. Eski document hakkında guessed conclusion eklenmedi

    Confirmation yokluğu current document kesinlikle A’dır sonucunu vermez; renderer B’yi öğrenmiş olabilir. Normal milestones’in owner’ları ayrıldığı için bir eksik record bütün state’leri geriye çevirmek için kullanılmaz.

    Lifecycle observations
    No rollback inference from one missing record
    Owner/correlation review
    Commit send ≠ confirmation receipt
    Evidence conclusion
    Outcome bilinmiyor
  4. Pixel ve policy evidence gap’e bağlanmadı

    Bu missing record first-pixel, sandbox veya server authorization failure kanıtı değildir. Hangi aşamanın gözlenmediği küçük tutulur. UI stale görünse bile cause için document, response ve presentation evidence ayrı gerekir.

    Lifecycle observations
    No rollback inference from one missing record
    Owner/correlation review
    Gap scope: confirmation observation only
    Evidence conclusion
    Outcome bilinmiyor
  5. Browser confirmation verdict unknown kaldı

    Bu review için confirmation receipt UNKNOWN’dur. Normal fixture’ın true değeri retained expectation olarak kalır; gerçek observation sayılmaz. Event yokluğu ile negative acknowledgement farklı sonuçlardır.

    Lifecycle observations
    No rollback inference from one missing record
    Owner/correlation review
    Gap scope: confirmation observation only
    Evidence conclusion
    UNKNOWN: browser confirmation receipt
  6. Yeni evidence targeted correlation’a sınırlandı

    İlerlemek için navigation-scoped commit ve acknowledgement association gerekir. Full page content veya user identity toplamak şart değildir. Yeni receiver observation gelmeden complete navigation/presentation hükmü verilmez.

    Lifecycle observations
    No rollback inference from one missing record
    Owner/correlation review
    Gap scope: confirmation observation only
    Evidence conclusion
    Needed: navigation-scoped receiver acknowledgement

UYGULAMA · GÜVENLİK KONTROLÜ · DOĞRULAMA

Lifecycle ölçümlerini tek completion’a toplama

Bu artifact seçilmiş navigation modelinin milestone defteridir. normalEvents içindeki response-ready, renderer-selected, commit-delivered ve confirmation-received farklı owner’lara aittir. Network service’in hazırlığı Browser UI receipt’i değildir; renderer’ın commit bilgisi de browser confirmation’ı değildir. Fragment ve download dallarında yeni HTML commit’i bekleme. Defensive telemetry için request, navigation ve presentation’a ayrı correlation alanları gerekebilir. Bir request ID sadece o exchange’i tanımlar; document identity veya bütün kullanıcı oturumunu tanımlamak zorunda değildir. Client navigation gözlemi ile server trace’in eşleştirilmesi açık bir tasarım ister. Normal artifact A’dan B’ye geçiş için response-ready, commit-delivered ve confirmation kayıtlarını ayrı tutar.

Ürün hata ekranı da bu ayrımı kullanabilir: dosya indirme kararı başarıyken yeni DOM beklemek hata üretir; interactive bir document’in sonradan data request’i başarısız olması ilk navigation’ın hiç commit edilmediği anlamına gelmez. Bu ders bir monitoring backend eklemez. Önce hangi sorunun hangi sinyalle cevaplanacağını belirlemeyi öğretir.

Browser isolation ve application policy birlikte çalışır

Browser’ın process ve sandbox sınırları untrusted web content’in platform etkisini azaltmaya yöneliktir. Application’ın tenant, object ve action kararları başka bir katmandır. Güncel browser ve policy davranışı, server-side authorization ile birlikte değerlendirilir. Aynı process’te olmayı yetki kanıtı; farklı process’te olmayı API data güvenliği kanıtı yapma.

Browser state’ini incelerken kaynak HTML, parse edilmiş DOM, application state ve görünür sonucu ayrı oku. Birinin doğru olması diğerlerinin de doğru olduğunu göstermez. Artifact’te her state’in owner’ını ve ne zaman değiştiğini açıklamak, görünür sonucun hangi adımlara dayandığını anlamanı sağlar.

ŞİMDİ VAKAYA UYGULA

HTML commit, fragment navigation ve download nasıl farklı evidence üretir?

Normal HTML navigation A’dan B document’ine commit ve confirmation milestones’ıyla geçer. Fragment summary A’yı korur; seçilmiş attachment yeni HTML document üretmez. Lifecycle ledger first-pixel veya gerçek network measurement değildir.

Vakadaki response receipt, parsing, callback ve görünür DOM sonucunu sıraya koy. Eski başlığın kalmasını bu dersteki browser state ayrımlarıyla açıklamayı dene.

Bağlı vaka dosyasını aç ↗

ÖRNEĞİ BİRLİKTE OKUYALIM

Navigation / document / presentation defteri

Bir alan seç; hangi sonucu desteklediğini ve nerede yetersiz kaldığını incele.

Ham kaydı ve alan açıklamalarını oku
{
  "profile": "Selected Chromium-style coordination; aliases are not process allocation guarantees",
  "initialDocument": "A",
  "cases": [
    {
      "case": "normal",
      "newDocument": "B",
      "responseKind": "HTML",
      "commitDelivered": true,
      "confirmationReceived": true,
      "pixelsMeasured": false
    },
    {
      "case": "same-document",
      "newDocument": null,
      "retainedDocument": "A",
      "fragment": "summary",
      "networkFetchRequired": false,
      "pixelsMeasured": false
    },
    {
      "case": "download",
      "newDocument": null,
      "retainedDocument": "A",
      "responseKind": "selected-attachment",
      "downloadSelected": true,
      "pixelsMeasured": false
    }
  ],
  "normalEvents": [
    "response-ready",
    "renderer-selected",
    "commit-delivered",
    "confirmation-received"
  ],
  "actualNetworkExecuted": false
}
newDocument
Yeni document oluşturulan branch’te B; diğerlerinde null.
confirmationReceived
Browser UI/state update için ayrı acknowledgement.
pixelsMeasured
False: lifecycle kaydı first-pixel ölçümü değildir.

Sentetik selected Chromium-style mesaj akışı; PID/IPC wire/network/readiness events/pixel capture çalıştırılmaz. Same-document fixture mevcut fragment’i seçer; diğer browser/platform tahsisleri genellenmez.

İki yanlış kanı

Her tab tam bir renderer process’tir.

Process allocation document ilişkilerine, isolation ve platforma bağlıdır; tab sayısı tek başına yeterli değildir.

Commit veya load, ilk pixel’in tam anını kanıtlar.

Commit document geçişini; load lifecycle sınırını anlatır. Presentation ayrı gözlem ister.

SIRA SENDE

Bu hikâyeyi sen çöz.

Sonucu tahmin et, kanıtın sınırını bul ve nedenini kendi cümlenle anlat.

#summary same-document navigation’ında Document B oluşturulur mu?

  1. Evet. Her fragment değişimi yeni HTML response gerektirir.
  2. Hayır. Document A korunur.
Gerekçeli cevabı oku

Hayır. Document A korunur. — newDocument=null ve networkFetchRequired=false. Bu branch cross-document commit değildir.

Attachment/download response mevcut document için hangi sonucu gösteriyor?

Dersten seçilen artifact alanları; öğretim örneği

cases[2]
{"case":"download","newDocument":null,"retainedDocument":"A","responseKind":"selected-attachment","downloadSelected":true,"pixelsMeasured":false}
  1. Download seçilir; Document A kalır, yenisi oluşmaz.
  2. Her response browser’ın mevcut Document’ını değiştirir.
Gerekçeli cevabı oku

Download seçilir; Document A kalır, yenisi oluşmaz. — responseKind=selected-attachment. Bu branch download seçimini page replacement’a dönüştürmez.

Normal branch response-ready → commit-delivered → confirmation-received gösteriyor. Neden pixels veya kesin process yerleşimi garantisi değil?

Gerekçeli cevabı oku

Chromium tarzındaki model document commit ve confirmation sınırlarını gösterir. pixelsMeasured=false; paint veya screenshot tamamlanması gözlenmez. Actor alias’ları kesin process allocation policy’si değildir. Gerçek network çalıştırılmadığı için navigation timing ölçümü de çıkarılamaz.

□ Document commit’i pixel ölçümü saymadım.

□ Actor etiketlerinden kesin process yerleşimi garantisi çıkarmadım.

Uygulama konsolunu aç · request / response / browser
Request, URL, cookie ve DOM örneklerini ayrıca aç

MANUAL LAB

Browser Observation Lab

Document, DOM/CSS ve event-loop sonuçlarını 18 alanda tahmin et; native Browser gözlemini kaydet ve nedenini açıkla.

Tahmin → gözlem → açıklama workbook’unu aç ↗GitHub kaynakları ↗

Kaynaklar ve kapsam