Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(29)

Issue 659883002: Enable hidpi on Linux, refactor a bit on Windows to share

Created:
6 years, 2 months ago by scottmg
Modified:
6 years, 2 months ago
CC:
chromium-reviews, tdanderson+views_chromium.org, sadrul, tfarina, kalyank, ben+aura_chromium.org, ben+views_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Project:
chromium
Visibility:
Public.

Description

Enable hidpi on Linux, refactor a bit on Windows to share Mostly seems to work on Linux now. I'm sure there's a variety of to-be-uncovered problems (the use of gfx::Point all over that might be DIP or might be pixel sucks), but I think it's better-enough that it's useful to get landed. I mostly only tested at 2x (as in, not 1.343x that I'm sure people will complain about). The assets that are ripped out of gtk are still 1x and then scaled up. I wasn't sure how to get a higher res version, but that can probably be a follow up anyway. The Windows code is refactored mostly to share DIPToScreenXYZ, but no intended change in behaviour on Windows. There's a lot of files touched for this, but they're all tiny changes. The main changes are in: ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc ui/gfx/pango_util.cc ui/gfx/dpi.cc (I will probably also exclude the switch-flip in build/common.gypi when landing and do it separately so that the lots-of-small-changes can hopefully avoid revert-reland cycles) R=erg@chromium.org, oshima@chromium.org, ananta@chromium.org BUG=143619

Patch Set 1 #

Patch Set 2 : delete some printfs #

Total comments: 2

Patch Set 3 : fix popup tracking #

Patch Set 4 : dpi.cc/h to cross platform-er #

Patch Set 5 : android #

Patch Set 6 : windows #

Total comments: 1

Patch Set 7 : win2 #

Total comments: 6

Patch Set 8 : test entry points #

Patch Set 9 : gn #

Patch Set 10 : cros #

Patch Set 11 : cros2 #

Patch Set 12 : resource bundle loading #

Total comments: 12

Patch Set 13 : review fixes #

Patch Set 14 : move to _linux, remove unnecessary include #

Patch Set 15 : constants #

Total comments: 8
Unified diffs Side-by-side diffs Delta from patch set Stats (+350 lines, -700 lines) Patch
M ash/display/display_info.cc View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M ash/test/test_metro_viewer_process_host.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M build/common.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -1 line 0 comments Download
M chrome/app/chrome_exe_main_win.cc View 1 2 3 4 5 6 2 chunks +2 lines, -2 lines 0 comments Download
M chrome/browser/chrome_browser_main.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +0 lines, -1 line 0 comments Download
M chrome/browser/extensions/display_info_provider_win.cc View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/icon_loader_win.cc View 1 2 3 4 5 6 2 chunks +3 lines, -3 lines 0 comments Download
M chrome/browser/metro_viewer/chrome_metro_viewer_process_host_aurawin.cc View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/ui/aura/chrome_browser_main_extra_parts_aura.cc View 1 2 3 2 chunks +2 lines, -0 lines 0 comments Download
M chrome/browser/ui/views/apps/app_window_desktop_window_tree_host_win.cc View 1 2 3 4 5 2 chunks +2 lines, -2 lines 0 comments Download
M chrome/browser/ui/views/apps/glass_app_window_frame_view_win.cc View 1 2 3 4 5 9 10 11 12 13 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/ui/views/frame/browser_desktop_window_tree_host_win.cc View 1 2 3 4 5 2 chunks +2 lines, -2 lines 0 comments Download
M chrome/browser/ui/views/frame/glass_browser_frame_view.cc View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/ui/views/frame/minimize_button_metrics_win.cc View 1 2 3 4 5 2 chunks +2 lines, -2 lines 0 comments Download
M chrome/browser/ui/views/tabs/window_finder_win.cc View 1 2 3 4 5 3 chunks +3 lines, -3 lines 0 comments Download
M content/app/content_main_runner.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +2 lines, -3 lines 0 comments Download
M content/browser/renderer_host/legacy_render_widget_host_win.cc View 1 2 3 4 5 2 chunks +2 lines, -2 lines 0 comments Download
M content/browser/renderer_host/render_process_host_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -1 line 0 comments Download
M content/browser/renderer_host/render_widget_host_view_aura.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +2 lines, -2 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_base.cc View 1 2 3 4 5 5 chunks +4 lines, -5 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_browsertest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +0 lines, -1 line 0 comments Download
M content/child/npapi/webplugin_delegate_impl_win.cc View 1 2 3 4 5 2 chunks +3 lines, -3 lines 0 comments Download
M content/public/common/content_switches.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +1 line, -1 line 0 comments Download
M content/public/common/content_switches.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +3 lines, -3 lines 0 comments Download
M content/renderer/renderer_main_platform_delegate_win.cc View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M content/test/blink_test_environment.cc View 1 2 3 4 5 6 7 8 9 2 chunks +2 lines, -5 lines 0 comments Download
M content/test/content_test_suite.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +2 lines, -5 lines 0 comments Download
M ui/app_list/views/apps_grid_view.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +2 lines, -2 lines 0 comments Download
M ui/aura/demo/demo_main.cc View 1 2 3 4 5 6 7 8 9 3 chunks +2 lines, -5 lines 0 comments Download
M ui/aura/remote_window_tree_host_win.cc View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M ui/base/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +0 lines, -2 lines 0 comments Download
M ui/base/ime/input_method_win.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +3 lines, -3 lines 0 comments Download
M ui/base/l10n/l10n_util_win.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -1 line 0 comments Download
M ui/base/l10n/l10n_util_win_unittest.cc View 1 2 3 4 5 6 7 2 chunks +1 line, -2 lines 0 comments Download
M ui/base/layout.cc View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +3 lines, -3 lines 0 comments Download
M ui/base/resource/resource_bundle.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 5 chunks +6 lines, -10 lines 0 comments Download
M ui/base/resource/resource_bundle_unittest.cc View 1 2 3 4 5 6 7 8 9 3 chunks +3 lines, -6 lines 0 comments Download
M ui/base/resource/resource_bundle_win.cc View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M ui/base/test/run_all_unittests.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +2 lines, -5 lines 0 comments Download
M ui/base/ui_base.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +0 lines, -2 lines 0 comments Download
D ui/base/win/dpi_setup.h View 1 2 3 1 chunk +0 lines, -22 lines 0 comments Download
D ui/base/win/dpi_setup.cc View 1 2 3 1 chunk +0 lines, -20 lines 0 comments Download
M ui/base/win/hwnd_subclass.cc View 1 2 3 4 5 1 chunk +0 lines, -1 line 0 comments Download
M ui/compositor/test/test_suite.cc View 1 2 3 4 5 6 7 8 9 2 chunks +2 lines, -4 lines 0 comments Download
M ui/events/win/events_win.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +0 lines, -1 line 0 comments Download
M ui/gfx/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 3 chunks +9 lines, -2 lines 0 comments Download
M ui/gfx/canvas_paint_win.h View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M ui/gfx/canvas_paint_win.cc View 1 2 3 4 5 1 chunk +4 lines, -6 lines 0 comments Download
A + ui/gfx/dpi.h View 1 2 3 3 chunks +23 lines, -24 lines 4 comments Download
A ui/gfx/dpi.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +110 lines, -0 lines 0 comments Download
A ui/gfx/dpi_linux.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +31 lines, -0 lines 2 comments Download
A + ui/gfx/dpi_win.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 5 chunks +24 lines, -124 lines 0 comments Download
M ui/gfx/gfx.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 3 chunks +9 lines, -2 lines 2 comments Download
M ui/gfx/pango_util.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 4 chunks +7 lines, -24 lines 0 comments Download
M ui/gfx/screen_win.cc View 1 2 3 4 5 4 chunks +4 lines, -4 lines 0 comments Download
M ui/gfx/win/direct_write.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -1 line 0 comments Download
D ui/gfx/win/dpi.h View 1 2 3 1 chunk +0 lines, -71 lines 0 comments Download
D ui/gfx/win/dpi.cc View 1 2 3 1 chunk +0 lines, -230 lines 0 comments Download
M ui/native_theme/native_theme_win.cc View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M ui/views/controls/menu/menu_controller.cc View 1 2 3 4 5 3 chunks +2 lines, -2 lines 0 comments Download
M ui/views/controls/menu/menu_separator_win.cc View 1 2 3 4 5 2 chunks +2 lines, -2 lines 0 comments Download
M ui/views/corewm/tooltip_win.cc View 1 2 3 4 5 4 chunks +4 lines, -4 lines 0 comments Download
M ui/views/widget/desktop_aura/desktop_native_widget_aura.cc View 1 2 3 4 5 1 chunk +0 lines, -1 line 0 comments Download
M ui/views/widget/desktop_aura/desktop_screen_x11.cc View 1 2 3 4 5 6 7 8 9 10 11 12 5 chunks +4 lines, -25 lines 0 comments Download
M ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc View 1 2 3 4 5 8 chunks +11 lines, -11 lines 0 comments Download
M ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc View 1 2 3 11 chunks +23 lines, -12 lines 0 comments Download
M ui/views/win/hwnd_message_handler.cc View 1 2 3 4 5 9 10 11 12 13 3 chunks +4 lines, -4 lines 0 comments Download
M win8/delegate_execute/command_execute_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +0 lines, -1 line 0 comments Download
M win8/metro_driver/chrome_app_view_ash.cc View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M win8/metro_driver/direct3d_helper.cc View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M win8/metro_driver/display_properties.cc View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 26 (7 generated)
Elliot Glaysher
https://codereview.chromium.org/659883002/diff/20001/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc File ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc (right): https://codereview.chromium.org/659883002/diff/20001/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc#newcode536 ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc:536: return ScreenToDIPRect(gfx::Rect(x, y, width, height)); So bounds in screen ...
6 years, 2 months ago (2014-10-16 00:27:40 UTC) #3
scottmg
I'd appreciate it if all three of you could take a look. (it looks big, ...
6 years, 2 months ago (2014-10-17 00:09:12 UTC) #8
ananta
https://codereview.chromium.org/659883002/diff/180001/ui/base/resource/resource_bundle.cc File ui/base/resource/resource_bundle.cc (right): https://codereview.chromium.org/659883002/diff/180001/ui/base/resource/resource_bundle.cc#newcode623 ui/base/resource/resource_bundle.cc:623: supported_scale_factors.push_back(SCALE_FACTOR_125P); Why do we need to push the fractional ...
6 years, 2 months ago (2014-10-17 00:49:07 UTC) #9
scottmg
https://codereview.chromium.org/659883002/diff/180001/ui/base/resource/resource_bundle.cc File ui/base/resource/resource_bundle.cc (right): https://codereview.chromium.org/659883002/diff/180001/ui/base/resource/resource_bundle.cc#newcode623 ui/base/resource/resource_bundle.cc:623: supported_scale_factors.push_back(SCALE_FACTOR_125P); On 2014/10/17 00:49:06, ananta wrote: > Why do ...
6 years, 2 months ago (2014-10-17 23:18:42 UTC) #10
oshima
https://codereview.chromium.org/659883002/diff/270001/ui/gfx/dpi.cc File ui/gfx/dpi.cc (right): https://codereview.chromium.org/659883002/diff/270001/ui/gfx/dpi.cc#newcode64 ui/gfx/dpi.cc:64: DCHECK_NE(0.0f, scale); what happens if the scale is between ...
6 years, 2 months ago (2014-10-20 21:12:00 UTC) #11
scottmg
Thanks https://codereview.chromium.org/659883002/diff/270001/ui/gfx/dpi.cc File ui/gfx/dpi.cc (right): https://codereview.chromium.org/659883002/diff/270001/ui/gfx/dpi.cc#newcode64 ui/gfx/dpi.cc:64: DCHECK_NE(0.0f, scale); On 2014/10/20 21:11:59, oshima wrote: > ...
6 years, 2 months ago (2014-10-22 18:54:15 UTC) #12
oshima
lgtm with a nit. https://codereview.chromium.org/659883002/diff/180001/ui/gfx/pango_util.cc File ui/gfx/pango_util.cc (right): https://codereview.chromium.org/659883002/diff/180001/ui/gfx/pango_util.cc#newcode187 ui/gfx/pango_util.cc:187: return static_cast<int>((96.0 / 72.0) * ...
6 years, 2 months ago (2014-10-22 19:48:07 UTC) #13
scottmg
Thanks On 2014/10/22 19:48:07, oshima wrote: > lgtm with a nit. > > https://codereview.chromium.org/659883002/diff/180001/ui/gfx/pango_util.cc > ...
6 years, 2 months ago (2014-10-22 20:35:05 UTC) #14
scottmg
+sky, could you take a look + OWNERS?
6 years, 2 months ago (2014-10-22 20:35:51 UTC) #16
sky
Are we sure we want to go this route? I'm of the opinion views should ...
6 years, 2 months ago (2014-10-22 20:45:15 UTC) #17
scottmg
On 2014/10/22 20:45:15, sky wrote: > Are we sure we want to go this route? ...
6 years, 2 months ago (2014-10-22 20:50:01 UTC) #18
sky
Fair enough. Let me look at the patch. On Wed, Oct 22, 2014 at 1:50 ...
6 years, 2 months ago (2014-10-22 20:54:21 UTC) #19
sky
https://codereview.chromium.org/659883002/diff/330001/ui/gfx/dpi.h File ui/gfx/dpi.h (right): https://codereview.chromium.org/659883002/diff/330001/ui/gfx/dpi.h#newcode13 ui/gfx/dpi.h:13: namespace gfx { I have always found this file ...
6 years, 2 months ago (2014-10-22 21:11:18 UTC) #20
scottmg
https://codereview.chromium.org/659883002/diff/330001/ui/gfx/dpi.h File ui/gfx/dpi.h (right): https://codereview.chromium.org/659883002/diff/330001/ui/gfx/dpi.h#newcode13 ui/gfx/dpi.h:13: namespace gfx { On 2014/10/22 21:11:18, sky wrote: > ...
6 years, 2 months ago (2014-10-22 23:56:18 UTC) #21
oshima
On 2014/10/22 23:56:18, scottmg wrote: > https://codereview.chromium.org/659883002/diff/330001/ui/gfx/dpi.h > File ui/gfx/dpi.h (right): > > https://codereview.chromium.org/659883002/diff/330001/ui/gfx/dpi.h#newcode13 > ...
6 years, 2 months ago (2014-10-23 00:50:30 UTC) #22
sky
You seem to have started breaking this up. Thanks! And double thanks for the cleanup! ...
6 years, 2 months ago (2014-10-23 04:22:51 UTC) #23
scottmg
On Wed, Oct 22, 2014 at 5:50 PM, <oshima@chromium.org> wrote: > On 2014/10/22 23:56:18, scottmg ...
6 years, 2 months ago (2014-10-23 04:29:42 UTC) #24
oshima
On 2014/10/23 04:29:42, scottmg wrote: > On Wed, Oct 22, 2014 at 5:50 PM, <mailto:oshima@chromium.org> ...
6 years, 2 months ago (2014-10-23 04:54:31 UTC) #25
scottmg
6 years, 2 months ago (2014-10-23 23:59:44 UTC) #26
On Wed, Oct 22, 2014 at 9:54 PM, <oshima@chromium.org> wrote:

> On 2014/10/23 04:29:42, scottmg wrote:
>
>  On Wed, Oct 22, 2014 at 5:50 PM, <mailto:oshima@chromium.org> wrote:
>>
>
>  > On 2014/10/22 23:56:18, scottmg wrote:
>> >
>> >> https://codereview.chromium.org/659883002/diff/330001/ui/gfx/dpi.h
>> >> File ui/gfx/dpi.h (right):
>> >>
>> >
>> >  https://codereview.chromium.org/659883002/diff/330001/ui/
>> >> gfx/dpi.h#newcode13
>> >> ui/gfx/dpi.h:13: namespace gfx {
>> >> On 2014/10/22 21:11:18, sky wrote:
>> >> > I have always found this file confusing. It's a mix of functions used
>> >> for
>> >> > different purposes: testing, initialization and general purposes.
>> >> >
>> >> > Can we clean it up, perhaps separating into files, so that the
>> purpose
>> >> is
>> >> clear?
>> >> > I'm hoping this file can remain general purpose and have dpi_init and
>> >> > dpi_testing.
>> >> >
>> >> > I also think it needs to be made clear when you want to use scale
>> >> factor in
>> >> this
>> >> > file vs scale factor from Display.
>> >>
>> >
>> >  Yes, I find it very confusing too, since it seems like it should just
>> be
>> >> one
>> >> float that determines the scale between points<->pixels.
>> >>
>> >
>> >  I started trying to clean it up:
>> >> - delete IsInHighDPIMode()
>> >> - move ForceHighDPISupportForTesting to dpi_testing.h
>> >> - delete IsDeviceScaleFactorSet
>> >> - move EnableHighDPISupport to chrome/app
>> >> - delete IsHighDPIEnabled
>> >> - and mostly, we delete GetDeviceScaleFactor(), and have all callers
>> >> switch to
>> >> GetDPI or GetDPIScale.
>> >>
>> >
>> >  I think it's too big to include in this CL though.
>> >>
>> >
>> >  I don't really understand the difference between display and this file,
>> >> but I
>> >> think Display is mostly a debug/testing thing. I think the dpi related
>> >> things
>> >>
>> > in
>> >
>> >> display should be merge into here.
>> >>
>> >
>> > Scale factor should belong to display in general as each display can
>> have
>> > different
>> > scale factor. This is true on mac and chromeos at least. Scale factor
>> > happens to
>> > be
>> > the same on linux and current windows impl, although someone told me
>> that
>> > newer
>> > windows
>> > (don't know which) can support different scale factors on each display.
>> > I'm not expert on windows, so I may be completely wrong though.
>>
>
>
>  That makes sense. Does that work on CrOS/Mac at moment? (i.e. all
>> conversions between points/pixel have a handle to a Display somehow?)
>>
>
> Not all code directly uses Display. For example, layer (in compositor) has
> device scale factor
> as cache, and gets updated when the associated display changes, but
> display is
> always the source of
> the scale factor information.
>
>  I was just thinking of the moving the override code where we force
>>
>
> https://code.google.com/p/chromium/codesearch#chromium/
> src/ui/gfx/display.cc&rcl=1413930987&l=58
>
>> into a shared location so that there's only once place where we decide the
>> scale. Does that seem ok?
>>
>
> Sorry, I didn't understand. Can you elaborate?
>
>
I just meant moving the parsing of --force-device-scale-factor into dpi.cc
mostly so that there was one place that set a global overridden scale.

But now that I've tidied it up, it seems clear that Windows is wrong now
(it was probably "right" before win81) in that it uses a global scale
rather than a per-display one. I filed
https://code.google.com/p/chromium/issues/detail?id=426656 . Doesn't
immediately help Linux unfortunately. :(


>
>
>  Per-monitor DPI in Win 8.1+, but I don't think we've looked into
>> supporting
>> it yet.
>>
>
>
>  >
>> >
>> >
>> >  Umm, yeah. So we need to clean this up.
>> >>
>> >
>> >  It'd be easier to do all that after this CL to avoid having to rebase
>> >> this CL
>> >>
>> > on
>> >
>> >> the cleanup one, but if you prefer I can do the cleanup first.
>> >>
>> >
>> >  https://codereview.chromium.org/659883002/diff/330001/ui/
>> gfx/dpi_linux.cc
>> >> File ui/gfx/dpi_linux.cc (right):
>> >>
>> >
>> >
>> > https://codereview.chromium.org/659883002/diff/330001/ui/
>> > gfx/dpi_linux.cc#newcode26
>> >
>> >> ui/gfx/dpi_linux.cc:26: #if defined(OS_LINUX)
>> >> On 2014/10/22 21:11:18, sky wrote:
>> >> > This ifdef shouldn't be necessary, right?
>> >>
>> >
>> >  Done.
>> >>
>> >
>> >  https://codereview.chromium.org/659883002/diff/330001/ui/gfx/gfx.gyp
>> >> File ui/gfx/gfx.gyp (right):
>> >>
>> >
>> >
>> > https://codereview.chromium.org/659883002/diff/330001/ui/
>> > gfx/gfx.gyp#newcode160
>> >
>> >> ui/gfx/gfx.gyp:160: 'dpi_linux.cc',
>> >> On 2014/10/22 21:11:18, sky wrote:
>> >> > I suspect dpi_linux should not be present on chromeos.
>> >>
>> >
>> >  Done.
>> >>
>> >
>> >
>> >
>> > https://codereview.chromium.org/659883002/
>> >
>> > To unsubscribe from this group and stop receiving emails from it, send
>> an
>> > email to mailto:chromium-reviews+unsubscribe@chromium.org.
>> >
>>
>
>  To unsubscribe from this group and stop receiving emails from it, send an
>>
> email
>
>> to mailto:chromium-reviews+unsubscribe@chromium.org.
>>
>
>
>
> https://codereview.chromium.org/659883002/
>
> To unsubscribe from this group and stop receiving emails from it, send an
> email to chromium-reviews+unsubscribe@chromium.org.
>

To unsubscribe from this group and stop receiving emails from it, send an email
to chromium-reviews+unsubscribe@chromium.org.

Powered by Google App Engine
This is Rietveld 408576698