| Index: chrome/browser/ui/views/tabs/window_finder_mac.mm
 | 
| diff --git a/chrome/browser/ui/views/tabs/window_finder_mac.mm b/chrome/browser/ui/views/tabs/window_finder_mac.mm
 | 
| index 8c1a344f1348ac4adbdf94bd1358c51bd3ca2dab..ab9555d42730303a2c8a3134672462b72c5c3544 100644
 | 
| --- a/chrome/browser/ui/views/tabs/window_finder_mac.mm
 | 
| +++ b/chrome/browser/ui/views/tabs/window_finder_mac.mm
 | 
| @@ -4,9 +4,32 @@
 | 
|  
 | 
|  #include "chrome/browser/ui/views/tabs/window_finder.h"
 | 
|  
 | 
| +#import <AppKit/AppKit.h>
 | 
| +
 | 
| +#include "ui/gfx/geometry/point.h"
 | 
| +#import "ui/gfx/mac/coordinate_conversion.h"
 | 
| +
 | 
|  gfx::NativeWindow WindowFinder::GetLocalProcessWindowAtPoint(
 | 
|      const gfx::Point& screen_point,
 | 
|      const std::set<gfx::NativeWindow>& ignore) {
 | 
| -  NOTIMPLEMENTED();
 | 
| -  return NULL;
 | 
| +  const NSPoint ns_point = gfx::ScreenPointToNSPoint(screen_point);
 | 
| +
 | 
| +  // Note: [NSApp orderedWindows] doesn't include NSPanels.
 | 
| +  for (NSWindow* window : [NSApp orderedWindows]) {
 | 
| +    if (ignore.count(window))
 | 
| +      continue;
 | 
| +
 | 
| +    if (![window isOnActiveSpace])
 | 
| +      continue;
 | 
| +
 | 
| +    // NativeWidgetMac::Close() calls -orderOut: on NSWindows before actually
 | 
| +    // closing them.
 | 
| +    if (![window isVisible])
 | 
| +      continue;
 | 
| +
 | 
| +    if (NSPointInRect(ns_point, [window frame]))
 | 
| +      return window;
 | 
| +  }
 | 
| +
 | 
| +  return nil;
 | 
|  }
 | 
| 
 |