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

Issue 329863003: Fix accessibility in Windows x64 build. (Closed)

Created:
6 years, 6 months ago by dmazzoni
Modified:
6 years, 6 months ago
Reviewers:
jschuh, jam, sky
CC:
chromium-reviews, plundblad+watch_chromium.org, aboxhall+watch_chromium.org, tfarina, jam, yuzo+watch_chromium.org, darin-cc_chromium.org, dmazzoni+watch_chromium.org, dtseng+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Project:
chromium
Visibility:
Public.

Description

Fix accessibility in Windows x64 build. The only fix needed was to cast the LPARAM to a DWORD when handling WM_GETOBJECT in two places. Also fixes and re-enables a bunch of Windows accessibility tests, and deletes a couple of old disabled tests that aren't worth fixing. BUG=179717, 383240 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=277457

Patch Set 1 #

Total comments: 4

Patch Set 2 : Fix typecase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+42 lines, -174 lines) Patch
M content/browser/accessibility/accessibility_win_browsertest.cc View 15 chunks +28 lines, -160 lines 0 comments Download
M content/browser/renderer_host/legacy_render_widget_host_win.cc View 1 2 chunks +4 lines, -1 line 0 comments Download
M content/content_tests.gypi View 2 chunks +0 lines, -9 lines 0 comments Download
M ui/views/accessibility/native_view_accessibility_win.cc View 1 2 chunks +6 lines, -3 lines 0 comments Download
M ui/views/win/hwnd_message_handler.cc View 1 2 chunks +4 lines, -1 line 0 comments Download

Messages

Total messages: 10 (0 generated)
dmazzoni
jschuh: please review the DWORD cast in the WM_GETOBJECT handlers to fix 64-bit support. jam: ...
6 years, 6 months ago (2014-06-13 20:17:05 UTC) #1
jschuh
https://codereview.chromium.org/329863003/diff/1/ui/views/win/hwnd_message_handler.cc File ui/views/win/hwnd_message_handler.cc (right): https://codereview.chromium.org/329863003/diff/1/ui/views/win/hwnd_message_handler.cc#newcode1419 ui/views/win/hwnd_message_handler.cc:1419: DWORD obj_id = static_cast<DWORD>(l_param); Sorry to be pedantic, but ...
6 years, 6 months ago (2014-06-13 23:49:27 UTC) #2
dmazzoni
https://codereview.chromium.org/329863003/diff/1/ui/views/win/hwnd_message_handler.cc File ui/views/win/hwnd_message_handler.cc (right): https://codereview.chromium.org/329863003/diff/1/ui/views/win/hwnd_message_handler.cc#newcode1419 ui/views/win/hwnd_message_handler.cc:1419: DWORD obj_id = static_cast<DWORD>(l_param); On 2014/06/13 23:49:27, Justin Schuh ...
6 years, 6 months ago (2014-06-15 07:56:03 UTC) #3
jam
lgtm
6 years, 6 months ago (2014-06-16 03:27:27 UTC) #4
jschuh
lgtm
6 years, 6 months ago (2014-06-16 14:39:19 UTC) #5
sky
LGTM
6 years, 6 months ago (2014-06-16 14:39:52 UTC) #6
dmazzoni
The CQ bit was checked by dmazzoni@chromium.org
6 years, 6 months ago (2014-06-16 15:48:09 UTC) #7
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/dmazzoni@chromium.org/329863003/20001
6 years, 6 months ago (2014-06-16 15:49:50 UTC) #8
commit-bot: I haz the power
Change committed as 277457
6 years, 6 months ago (2014-06-16 16:09:09 UTC) #9
dmazzoni
6 years, 6 months ago (2014-06-17 23:46:16 UTC) #10
Message was sent while issue was closed.
OK, it turns out this patch doens't fix it, it fixes some clients that were
previously broken but just breaks others. If I revert to my original patch, it
fixes all clients.

On Windows x64, LPARAM is a 64-bit signed integer, and DWORD is a 32-bit
unsigned integer.

The problem appears to be that when a client passes OBJID_CLIENT (which is -4),
it sometimes gets extended to 0x00000000fffffffc or 4294967292, a positive
integer - rather than being properly sign-extended to 0xfffffffffffffffc.
However, other clients will have the value sign-extended properly.

So basically, we need to handle both 0x00000000fffffffc and 0xfffffffffffffffc
and treat them both as OBJID_CLIENT.

Justin, what syntax would you prefer?

Powered by Google App Engine
This is Rietveld 408576698