WEB / WEB-10.01
Browser processes ve navigation
Browser UI, network loading ve renderer document state’ini ownership sınırlarıyla oku.
1. Core · Mekanizma
Hareket olmadan bütün senaryoları oku
HTML commit
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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?
- Evet. Her fragment değişimi yeni HTML response gerektirir.
- 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}
- Download seçilir; Document A kalır, yenisi oluşmaz.
- 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
- Chromium: Process Model and Site IsolationGoals; Abstractions and Implementations; Modes and Availability; Origin Isolation
- WHATWG HTML: navigation and history7.4 navigation; Fragment navigations; URL and history update steps; Finalize a same-document navigation
- Chrome: navigation overview (2018 implementation history)Start navigation; Find a renderer process; Commit navigation; Initial load complete
- Chromium RenderingNG architectureCPU processes; Threads; Rendering pipeline structure
- Document readyStateValue: loading, interactive, complete
- Window load eventload versus DOMContentLoaded; resource scope
- Document DOMContentLoaded eventDeferred and module scripts; stylesheet relation; checking readyState