Re: [src/ui/metro_viewer ]Apply automatic range checks to enum types across IPC (issue 611753002 by kulkarni.a@samsung.com)

8 views
Skip to first unread message

na...@chromium.org

unread,
Sep 29, 2014, 11:21:15 AM9/29/14
to kulka...@samsung.com, dch...@chromium.org, chromium...@chromium.org
Please be precise when you ask someone to review. You are missing any
specifics
when listing our aliases.


https://codereview.chromium.org/611753002/diff/1/ui/metro_viewer/metro_viewer_messages.h
File ui/metro_viewer/metro_viewer_messages.h (right):

https://codereview.chromium.org/611753002/diff/1/ui/metro_viewer/metro_viewer_messages.h#newcode18
ui/metro_viewer/metro_viewer_messages.h:18:
IPC_ENUM_TRAITS_MAX_VALUE(ui::EventFlags, ui::EventFlags::EF_MOD3_DOWN)
Please define a EF_LAST and use that.

https://codereview.chromium.org/611753002/

dch...@chromium.org

unread,
Sep 30, 2014, 12:38:02 AM9/30/14
to kulka...@samsung.com, na...@chromium.org, chromium...@chromium.org

https://codereview.chromium.org/611753002/diff/1/ui/metro_viewer/metro_viewer_messages.h
File ui/metro_viewer/metro_viewer_messages.h (right):

https://codereview.chromium.org/611753002/diff/1/ui/metro_viewer/metro_viewer_messages.h#newcode18
ui/metro_viewer/metro_viewer_messages.h:18:
IPC_ENUM_TRAITS_MAX_VALUE(ui::EventFlags, ui::EventFlags::EF_MOD3_DOWN)
EventFlags is a bit set, so this validation fails in the case someone
passes the highest flag set with any other flag.

https://codereview.chromium.org/611753002/

kulka...@samsung.com

unread,
Oct 6, 2014, 6:07:58 AM10/6/14
to dch...@chromium.org, na...@chromium.org, chromium...@chromium.org

na...@chromium.org

unread,
Oct 7, 2014, 10:08:01 AM10/7/14
to kulka...@samsung.com, dch...@chromium.org, tse...@chromium.org, chromium...@chromium.org
Tom, this is another enum as bitfield case. It seems it has a lot more bits
and
not sure if it is worth adding the range check.

https://codereview.chromium.org/611753002/

tse...@chromium.org

unread,
Oct 7, 2014, 12:55:27 PM10/7/14
to kulka...@samsung.com, dch...@chromium.org, na...@chromium.org, chromium...@chromium.org

https://codereview.chromium.org/611753002/diff/20001/ui/metro_viewer/metro_viewer_messages.h
File ui/metro_viewer/metro_viewer_messages.h (right):

https://codereview.chromium.org/611753002/diff/20001/ui/metro_viewer/metro_viewer_messages.h#newcode17
ui/metro_viewer/metro_viewer_messages.h:17:
IPC_ENUM_TRAITS_MAX_VALUE(ui::EventType, ui::EventType::ET_LAST)
This may not work since we play games with ui::RegisterCustomEventType()
to "extend" the range of the enum (dubiously legal, BTW). Let's just add
a comment here about this quirk

IPC_ENUM_TRAITS(ui::EventType) // Extended by
ui::registerCustomEventType().

https://codereview.chromium.org/611753002/diff/20001/ui/metro_viewer/metro_viewer_messages.h#newcode18
ui/metro_viewer/metro_viewer_messages.h:18:
IPC_ENUM_TRAITS_MAX_VALUE(ui::EventFlags, ui::EventFlags::EF_LAST)
This doesn't work because you may need to pass, say, EF_ALTGR_DOWN |
EF_MOD3_DOWN which is greater then EF_LAST (itself equal to
EF_MOD3_DOWN). Let's just mark this as

IPC_ENUM_TRAITS(ui::EventFlags) // Bitmask.

https://codereview.chromium.org/611753002/
Reply all
Reply to author
Forward
0 new messages