CARVIEW |
Select Language
HTTP/2 301
content-security-policy: script-src 'sha256-1az3CiAdXAaMP3TFl5msfrDjNuSHMdg1ecAgxfZPR50=' 'unsafe-inline' 'strict-dynamic'; object-src 'none'; base-uri 'none'; report-uri https://csp.withgoogle.com/csp/chromium-website/
location: https://www.chromium.org/developers/design-documents/widget-refactor
content-type: text/plain; charset=utf-8
accept-ranges: bytes
date: Sun, 12 Oct 2025 04:55:11 GMT
x-served-by: cache-bom-vanm7210024-BOM
x-cache: MISS
x-cache-hits: 0
x-timer: S1760244912.628882,VS0,VE122
vary: x-fh-requested-host, accept-encoding
alt-svc: h3=":443";ma=86400,h3-29=":443";ma=86400,h3-27=":443";ma=86400
content-length: 83
HTTP/2 301
content-security-policy: script-src 'sha256-1az3CiAdXAaMP3TFl5msfrDjNuSHMdg1ecAgxfZPR50=' 'unsafe-inline' 'strict-dynamic'; object-src 'none'; base-uri 'none'; report-uri https://csp.withgoogle.com/csp/chromium-website/
location: /developers/design-documents/widget-refactor/
content-type: text/plain; charset=utf-8
accept-ranges: bytes
date: Sun, 12 Oct 2025 04:55:11 GMT
x-served-by: cache-bom-vanm7210020-BOM
x-cache: MISS
x-cache-hits: 0
x-timer: S1760244912.807378,VS0,VE125
vary: x-fh-requested-host, accept-encoding
alt-svc: h3=":443";ma=86400,h3-29=":443";ma=86400,h3-27=":443";ma=86400
content-length: 60
HTTP/2 200
cache-control: max-age=3600
content-encoding: gzip
content-security-policy: script-src 'sha256-1az3CiAdXAaMP3TFl5msfrDjNuSHMdg1ecAgxfZPR50=' 'unsafe-inline' 'strict-dynamic'; object-src 'none'; base-uri 'none'; report-uri https://csp.withgoogle.com/csp/chromium-website/
content-type: text/html; charset=utf-8
etag: "14f7ed70d4578212abfe8aae9ce96b1de9e2631f90c20109c4a4cf07ab5b4b13"
last-modified: Fri, 10 Oct 2025 02:31:02 GMT
strict-transport-security: max-age=31556926
accept-ranges: bytes
date: Sun, 12 Oct 2025 04:55:12 GMT
x-served-by: cache-bom-vanm7210020-BOM
x-cache: MISS
x-cache-hits: 0
x-timer: S1760244912.945906,VS0,VE229
vary: x-fh-requested-host, accept-encoding
alt-svc: h3=":443";ma=86400,h3-29=":443";ma=86400,h3-27=":443";ma=86400
content-length: 1865
Widget Refactor

The Chromium Projects
Widget Refactor
Background
A view hierarchy is hosted by a views::Widget subclass. This subclass (e.g. WidgetWin or WidgetGtk) receives native events from the operating system, cracks them into views-specific types and propagates them into the view hierarchy.
The current arrangement poses some challenges that make porting to a new native toolkit problematic:
- The native Widget implementations are very thick. There is a lot of duplicated code that makes fixing bugs cumbersome.
- Swapping native Widget implementations is problematic because they are stateful. The state is meaningful and may not have good analogs in other implementations.
Details
sdfsdf