Index: ui/views/cocoa/bridged_native_widget.mm |
diff --git a/ui/views/cocoa/bridged_native_widget.mm b/ui/views/cocoa/bridged_native_widget.mm |
index 24bba74dd91727e12fe250c3c02c4b1145875e10..d648c41396d93b4a3447ea00b42321fa30b72641 100644 |
--- a/ui/views/cocoa/bridged_native_widget.mm |
+++ b/ui/views/cocoa/bridged_native_widget.mm |
@@ -667,6 +667,14 @@ void BridgedNativeWidget::OnSizeChanged() { |
if ([window_ inLiveResize]) |
MaybeWaitForFrame(new_size); |
} |
+ |
+ // 10.9 is unable to generate a window shadow from the composited CALayer, so |
+ // use Quartz. |
+ // We don't update the window mask during a live resize, instead it is done |
+ // after the resize is completed in viewDidEndLiveResize: in |
+ // BridgedContentView. |
+ if (base::mac::IsOSMavericksOrEarlier() && ![window_ inLiveResize]) |
+ [bridged_view_ updateWindowMask]; |
} |
void BridgedNativeWidget::OnVisibilityChanged() { |
@@ -850,7 +858,14 @@ void BridgedNativeWidget::CreateLayer(ui::LayerType layer_type, |
// native shape is what's most appropriate for displaying sheets on Mac. |
if (translucent && !native_widget_mac_->IsWindowModalSheet()) { |
[window_ setOpaque:NO]; |
- [window_ setBackgroundColor:[NSColor clearColor]]; |
+ // For Mac OS versions earlier than Yosemite, the Window server isn't able |
+ // to generate a window shadow from the composited CALayer. To get around |
+ // this, set an opaque background on the window and clip the window boundary |
+ // in drawRect method of BridgedContentView. See crbug.com/543671. |
+ if (base::mac::IsOSYosemiteOrLater()) |
+ [window_ setBackgroundColor:[NSColor clearColor]]; |
+ else |
+ [window_ setBackgroundColor:[NSColor whiteColor]]; |
} |
UpdateLayerProperties(); |