From 0dc7f85f52b9a5668481dfa206e6e55d40357cc2 Mon Sep 17 00:00:00 2001 From: Elly Fong-Jones Date: Wed, 6 Jun 2018 21:31:34 +0000 Subject: mac: support build with 10.14 SDK Two changes are required: 1) Explicitly upcast the result of dispatch_get_global_queue() to a dispatch_queue_t*, since it changed to return dispatch_queue_global_t*; 2) Add empty implementations of the new methods on ICCameraDeviceDelegate for ImageCaptureDevice TBR=maxmorin@chromium.org Bug: 849689 Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel Change-Id: I9448d1b07f8d4116ecdb0c75a7796472e51c6dd8 Reviewed-on: https://chromium-review.googlesource.com/1087169 Reviewed-by: Elly Fong-Jones Reviewed-by: Robert Sesek Reviewed-by: Tommy Li Commit-Queue: Elly Fong-Jones Cr-Commit-Position: refs/heads/master@{#565040} diff --git a/components/storage_monitor/image_capture_device.mm b/components/storage_monitor/image_capture_device.mm index af289bd66eb6..831cb65ac970 100644 --- a/components/storage_monitor/image_capture_device.mm +++ b/components/storage_monitor/image_capture_device.mm @@ -231,4 +231,38 @@ base::FilePath PathForCameraItem(ICCameraItem* item) { name)); } +// MacOS 10.14 SDK methods, not yet implemented (https://crbug.com/849689) +- (void)cameraDevice:(ICCameraDevice*)camera + didRenameItems:(NSArray*)items { + NOTIMPLEMENTED(); +} + +- (void)cameraDevice:(ICCameraDevice*)camera didRemoveItem:(ICCameraItem*)item { + NOTIMPLEMENTED(); +} + +- (void)cameraDevice:(ICCameraDevice*)camera + didCompleteDeleteFilesWithError:(NSError*)error { + NOTIMPLEMENTED(); +} + +- (void)cameraDeviceDidChangeCapability:(ICCameraDevice*)camera { + NOTIMPLEMENTED(); +} + +- (void)cameraDevice:(ICCameraDevice*)camera + didReceiveThumbnailForItem:(ICCameraItem*)item { + NOTIMPLEMENTED(); +} + +- (void)cameraDevice:(ICCameraDevice*)camera + didReceiveMetadataForItem:(ICCameraItem*)item { + NOTIMPLEMENTED(); +} + +- (void)cameraDevice:(ICCameraDevice*)camera + didReceivePTPEvent:(NSData*)eventData { + NOTIMPLEMENTED(); +} + @end // ImageCaptureDevice diff --git a/media/audio/mac/coreaudio_dispatch_override.cc b/media/audio/mac/coreaudio_dispatch_override.cc index 2ac812b0f3fc..34d1ad2a0fbe 100644 --- a/media/audio/mac/coreaudio_dispatch_override.cc +++ b/media/audio/mac/coreaudio_dispatch_override.cc @@ -22,6 +22,9 @@ struct dyld_interpose_tuple { const void* replacement; const void* replacee; }; + +using DispatchGetGlobalQueueFunc = dispatch_queue_t (*)(long id, + unsigned long flags); } // namespace // This method, and the tuple above, is defined in dyld_priv.h; see: @@ -175,8 +178,13 @@ bool InitializeCoreAudioDispatchOverride() { const auto* header = reinterpret_cast(info.dli_fbase); g_pause_resume_queue = dispatch_queue_create("org.chromium.CoreAudioPauseResumeQueue", nullptr); - dyld_interpose_tuple interposition(&GetGlobalQueueOverride, - &dispatch_get_global_queue); + // The reinterpret_cast<> is needed because in the macOS 10.14 SDK, the return + // type of dispatch_get_global_queue changed to return a subtype of + // dispatch_queue_t* instead of dispatch_queue_t* itself, and T(*)(...) isn't + // automatically converted to U(*)(...) even if U is a superclass of T. + dyld_interpose_tuple interposition( + &GetGlobalQueueOverride, + reinterpret_cast(&dispatch_get_global_queue)); dyld_dynamic_interpose(header, &interposition, 1); g_dispatch_override_installed = true; LogInitResult(RESULT_INITIALIZED); -- 2.17.0