I found MockObjectProxy uses the technique to avoid move-only type return value limitation in gmock. https://cs.chromium.org/chromium/src/dbus/mock_object_proxy.h?l=24 However, gmock 1.8 (or later), which currently chrome uses, support it, so we just be able to remove the indirect function. According to the cs, they are used only by 10 files, so removing is not much difficult, I believe. https://cs.chromium.org/search/?q=MockCallMethodAndBlock&type=cs
Found a spare time, so created a clean up CL. Under review.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8d38f6b3a62d7dfee52859ff283cccc2e7effa19 commit 8d38f6b3a62d7dfee52859ff283cccc2e7effa19 Author: Hidehiko Abe <hidehiko@chromium.org> Date: Wed Jun 28 18:25:36 2017 Remove unnecessary indirection for old gmock. gmock was updated to 1.8, which now supports move-only type return. Thus, we no longer need the workaround for it. BUG= 735779 TEST=Ran trybots. Change-Id: I6c4f5037c4ca04e374431b3a487ee75f8d633692 Reviewed-on: https://chromium-review.googlesource.com/549535 Reviewed-by: Vaclav Brozek <vabr@chromium.org> Reviewed-by: Miguel Casas <mcasas@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org> Reviewed-by: Thomas Anderson <thomasanderson@chromium.org> Reviewed-by: Yoshiki Iguchi <yoshiki@chromium.org> Reviewed-by: Ryo Hashimoto <hashimoto@chromium.org> Reviewed-by: Colin Blundell <blundell@chromium.org> Commit-Queue: Hidehiko Abe <hidehiko@chromium.org> Cr-Commit-Position: refs/heads/master@{#483069} [modify] https://crrev.com/8d38f6b3a62d7dfee52859ff283cccc2e7effa19/chrome/browser/notifications/notification_platform_bridge_linux_unittest.cc [modify] https://crrev.com/8d38f6b3a62d7dfee52859ff283cccc2e7effa19/chrome/browser/password_manager/native_backend_kwallet_x_unittest.cc [modify] https://crrev.com/8d38f6b3a62d7dfee52859ff283cccc2e7effa19/chromeos/dbus/blocking_method_caller_unittest.cc [modify] https://crrev.com/8d38f6b3a62d7dfee52859ff283cccc2e7effa19/chromeos/dbus/services/service_provider_test_helper.cc [modify] https://crrev.com/8d38f6b3a62d7dfee52859ff283cccc2e7effa19/chromeos/dbus/services/service_provider_test_helper.h [modify] https://crrev.com/8d38f6b3a62d7dfee52859ff283cccc2e7effa19/components/os_crypt/kwallet_dbus_unittest.cc [modify] https://crrev.com/8d38f6b3a62d7dfee52859ff283cccc2e7effa19/dbus/mock_object_proxy.h [modify] https://crrev.com/8d38f6b3a62d7dfee52859ff283cccc2e7effa19/dbus/mock_unittest.cc [modify] https://crrev.com/8d38f6b3a62d7dfee52859ff283cccc2e7effa19/device/geolocation/wifi_data_provider_linux_unittest.cc [modify] https://crrev.com/8d38f6b3a62d7dfee52859ff283cccc2e7effa19/services/device/battery/battery_status_manager_linux_unittest.cc
Comment 1 by hidehiko@chromium.org
, Jun 27 2017Status: Started (was: Untriaged)