blob: 825376c4bd3b9c6ed711188f954153a5163ea104 [file] [log] [blame] [view]
ellyjones42545bc42016-06-16 17:14:371# MacViews Release Plan
2
3## Handy Links
4
5* [Phase 1 bugs](https://bugs.chromium.org/p/chromium/issues/list?can=2&q=Proj%3DMacViews+label%3Aphase1&colspec=ID+Pri+M+Stars+ReleaseBlock+Component+Status+Owner+Summary+OS+Modified&x=m&y=releaseblock&cells=ids)
6* [Phase 2 bugs](https://bugs.chromium.org/p/chromium/issues/list?can=2&q=Proj%3DMacViews+label%3Aphase2&colspec=ID+Pri+M+Stars+ReleaseBlock+Component+Status+Owner+Summary+OS+Modified&x=m&y=releaseblock&cells=ids)
7* [Other MacViews bugs](https://bugs.chromium.org/p/chromium/issues/list?can=2&q=Proj%3DMacViews+-label%3APhase1+-label%3APhase2&colspec=ID+Pri+M+Stars+ReleaseBlock+Component+Status+Owner+Summary+OS+Modified&x=m&y=releaseblock&cells=ids)
8* [Catalog of chromium dialogs](https://docs.google.com/spreadsheets/d/1rChQOblJDsXevMxpUpvaPqK3QIMPdmd2iAvJtdeOeeY/edit#gid=0)
9
10## Phase 1: Controls
11
12Implement Shiny Modern L&F for individual controls, most-commonly-used first. In
13rough order:
14
151. Buttons
162. Editboxes
173. Comboboxes
184. Radiobuttons/checkboxes
195. Menubuttons
206. Treeviews
217. Tableviews
22
23This phase overlaps with phase 2.
24
25## Phase 2: WebUI Cocoa Dialogs, Rubberband
26
27Once enough controls are done, wire up the Views versions of WebUI-styled Cocoa
28dialogs, behind a new `MacViewsWebUIDialogs` feature. The WebUI-styled Cocoa
29dialogs are:
30
311. Collected/blocked cookies UI
322. Device permissions
333. Extension install
344. HTTP auth
355. One-click signin
366. Site permissions bubble
377. "Card unmask prompt" (TODO(ellyjones): what is this?)
lgarron617a30f32017-03-24 21:42:07388. Page info dialog
ellyjones42545bc42016-06-16 17:14:3739
40Once all of these dialogs are converted and tested behind the feature, we can
41ship to canary and dev channels and watch for any performance or crash rate
42regressions. Doing all the WebUI-style dialogs at once will avoid having three
43separate dialog UIs.
44
45This phase also includes implementation of rubber-band overscroll and fling
46scrolling. This technology exists already in the renderer compositor - it needs
47to be transplanted to the ui compositor.
48
49## Phase 3: The Other Dialogs
50
51Once WebUI dialogs are converted en masse, we can convert other dialogs to Views
52individually, and ship them without a flag flip or field trial. Cocoa dialogs
53that are in native Cocoa style will gradually migrate to Views dialogs that are
54in the Shiny Modern style.
55
56## Phase 4: Omnibox & Top Chrome
57
58At this point, all dialogs are in Shiny Modern, but the rest of the browser
59chrome is still Cocoa.
60
61Implement Cocoa L&F for any controls still needed for omnibox and top chrome.
62TODO(ellyjones): which controls are these?
63Implement Views versions of the omnibox and top chrome behind a new flag
64`mac-views-browser-chrome`.
65Get UI review of the new versions of the omnibox and top chrome.
66Make the Views versions the default.
67
68## Phase 5: `mac_views_browser=1`
69At this point, all user-visible UI is done via Views, and we need to switch the
70entire browser to a Views-only build:
71
72Check for performance regressions against `mac_views_browser=0`.
73Check for stability regressions against `mac_views_browser=0`.
74Check for a11y regressions through manual testing.
75TODO(ellyjones): Figure out how feasible automated a11y regression testing is.
76Switch `mac_views_browser` to 1 for Canary.
77Cross fingers.
78Watch metrics carefully.
79If there's no surprising metrics changes or public outcry, keep
80mac_views_browser=1 for dev, then beta, then stable.
81
82## Phase 6: delete Cocoa
83Since much of the Cocoa code is dead and we are no longer building with
84`mac_views_browser=0`, remove dead Cocoa UI code.
85