MacViews: All targets compile. Fixes unit_tests and message_center_unittests

This mainly involves adjusting chrome_tests_unit.gypi to exclude
chrome's unit_tests that use views UI not enabled by default with
toolkit-views=1 on Mac.

Mostly the unit tests compile, but fail to link since their
corresponding UI parts are not in the browser.
(confirm_bubble_views_unittest.cc has a simple compile fix, but isn't
linked in yet).

An events_test_support dependency is needed in views_test_support for
ui/events/test/event_generator which some unit tests use, and otherwise
comes in through aura_test_support or views_unittests.

BUG=412234, 399191

Review URL: https://codereview.chromium.org/507373002

Cr-Commit-Position: refs/heads/master@{#294047}
diff --git a/chrome/browser/ui/views/confirm_bubble_views_unittest.cc b/chrome/browser/ui/views/confirm_bubble_views_unittest.cc
index c5ed354..a4eb1c0 100644
--- a/chrome/browser/ui/views/confirm_bubble_views_unittest.cc
+++ b/chrome/browser/ui/views/confirm_bubble_views_unittest.cc
@@ -28,7 +28,7 @@
   TestConfirmBubbleModel* model =
       new TestConfirmBubbleModel(&model_deleted, NULL, NULL, NULL);
   ConfirmBubbleViews* bubble = new ConfirmBubbleViews(model);
-  gfx::NativeView parent = parent_widget->GetNativeView();
+  gfx::NativeWindow parent = parent_widget->GetNativeWindow();
   CreateBrowserModalDialogViews(bubble, parent)->Show();
 
   // Clean up.
diff --git a/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views_unittest.cc b/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views_unittest.cc
index d69f48a..bff7489 100644
--- a/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views_unittest.cc
+++ b/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views_unittest.cc
@@ -4,24 +4,18 @@
 
 #include "chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.h"
 
+#include "chrome/browser/ui/tab_contents/chrome_web_contents_view_delegate.h"
 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/common/context_menu_params.h"
 
-class ChromeWebContentsViewDelegateViewsTest
-    : public ChromeRenderViewHostTestHarness {
- public:
-  ChromeWebContentsViewDelegateViewsTest() {}
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(ChromeWebContentsViewDelegateViewsTest);
-};
+typedef ChromeRenderViewHostTestHarness ChromeWebContentsViewDelegateViewsTest;
 
 // Test that makes sure ShowContextMenu does not crash if web_contents() does
 // not have a focused frame.
 TEST_F(ChromeWebContentsViewDelegateViewsTest, ContextMenuNoFocusedFrame) {
-  scoped_ptr<ChromeWebContentsViewDelegateViews> delegate_view(
-      new ChromeWebContentsViewDelegateViews(web_contents()));
+  scoped_ptr<content::WebContentsViewDelegate> delegate_view(
+      chrome::CreateWebContentsViewDelegate(web_contents()));
   EXPECT_FALSE(web_contents()->GetFocusedFrame());
   const content::ContextMenuParams params;
   delegate_view->ShowContextMenu(web_contents()->GetMainFrame(), params);
diff --git a/chrome/chrome_tests_unit.gypi b/chrome/chrome_tests_unit.gypi
index d1b8ae3..c2906ca 100644
--- a/chrome/chrome_tests_unit.gypi
+++ b/chrome/chrome_tests_unit.gypi
@@ -1720,7 +1720,6 @@
         'browser/ui/views/autofill/autofill_dialog_views_unittest.cc',
         'browser/ui/views/bookmarks/bookmark_bar_view_unittest.cc',
         'browser/ui/views/bookmarks/bookmark_bubble_view_unittest.cc',
-        'browser/ui/views/bookmarks/bookmark_bubble_view_unittest.cc',
         'browser/ui/views/bookmarks/bookmark_context_menu_unittest.cc',
         'browser/ui/views/bookmarks/bookmark_editor_view_unittest.cc',
         'browser/ui/views/bookmarks/bookmark_menu_delegate_unittest.cc',
@@ -2399,6 +2398,36 @@
           ],
           'sources!': [
             'browser/ui/tests/ui_gfx_image_unittest.cc',
+
+            # TODO(tapted): Enable toolkit-views unit_tests on Mac when their
+            # respective implementations are linked in. http://crbug.com/412234.
+            'browser/ui/views/apps/app_info_dialog/app_info_permissions_panel_unittest.cc',
+            'browser/ui/views/apps/shaped_app_window_targeter_unittest.cc',
+            'browser/ui/views/autofill/autofill_dialog_views_unittest.cc',
+            'browser/ui/views/bookmarks/bookmark_bar_view_unittest.cc',
+            'browser/ui/views/bookmarks/bookmark_bubble_view_unittest.cc',
+            'browser/ui/views/bookmarks/bookmark_context_menu_unittest.cc',
+            'browser/ui/views/bookmarks/bookmark_menu_delegate_unittest.cc',
+            'browser/ui/views/bookmarks/bookmark_sync_promo_view_unittest.cc',
+            'browser/ui/views/confirm_bubble_views_unittest.cc',
+            'browser/ui/views/constrained_window_views_unittest.cc',
+            'browser/ui/views/crypto_module_password_dialog_view_unittest.cc',
+            'browser/ui/views/desktop_media_picker_views_unittest.cc',
+            'browser/ui/views/extensions/media_galleries_dialog_views_unittest.cc',
+            'browser/ui/views/first_run_bubble_unittest.cc',
+            'browser/ui/views/frame/browser_view_layout_unittest.cc',
+            'browser/ui/views/frame/browser_view_unittest.cc',
+            'browser/ui/views/frame/opaque_browser_frame_view_layout_unittest.cc',
+            'browser/ui/views/frame/web_contents_close_handler_unittest.cc',
+            'browser/ui/views/tabs/stacked_tab_strip_layout_unittest.cc',
+            'browser/ui/views/tabs/fake_base_tab_strip_controller.cc',
+            'browser/ui/views/tabs/fake_base_tab_strip_controller.h',
+            'browser/ui/views/tabs/tab_strip_unittest.cc',
+            'browser/ui/views/tabs/tab_unittest.cc',
+            'browser/ui/views/toolbar/reload_button_unittest.cc',
+            'browser/ui/views/translate/translate_bubble_view_unittest.cc',
+            'browser/ui/views/validation_message_bubble_delegate_unittest.cc',
+
             'tools/convert_dict/convert_dict_unittest.cc',
             'renderer/spellchecker/spellcheck_provider_hunspell_unittest.cc',
           ],
diff --git a/ui/message_center/BUILD.gn b/ui/message_center/BUILD.gn
index 536bcfc0..b05d402 100644
--- a/ui/message_center/BUILD.gn
+++ b/ui/message_center/BUILD.gn
@@ -76,7 +76,9 @@
       deps += [ "//ui/aura" ]
     }
 
-    if (toolkit_views) {
+    # On Mac, toolkit-views builds still use the Cocoa UI. Keep this in sync
+    # with message_center_unittests below.
+    if (toolkit_views && !is_mac) {
       sources += [
         "views/bounded_label.cc",
         "views/bounded_label.h",
@@ -209,7 +211,7 @@
       deps += [ "//ui/gfx:test_support" ]
     }
 
-    if (toolkit_views) {
+    if (toolkit_views && !is_mac) {
       sources += [
         "views/bounded_label_unittest.cc",
         "views/message_center_view_unittest.cc",
diff --git a/ui/message_center/message_center.gyp b/ui/message_center/message_center.gyp
index c1ece6a..eb956aa0 100644
--- a/ui/message_center/message_center.gyp
+++ b/ui/message_center/message_center.gyp
@@ -119,7 +119,9 @@
             '../aura/aura.gyp:aura',
           ],
         }],
-        ['toolkit_views==1', {
+        # On Mac, toolkit-views builds still use the Cocoa UI. Keep this in sync
+        # with message_center_unittests below.
+        ['toolkit_views==1 and OS!="mac"', {
           'dependencies': [
             '../events/events.gyp:events',
             '../views/views.gyp:views',
@@ -221,7 +223,7 @@
             '../gfx/gfx.gyp:gfx_test_support',
           ],
         }],
-        ['toolkit_views==1', {
+        ['toolkit_views==1 and OS!="mac"', {
           'dependencies': [
             # Compositor is needed by message_center_view_unittest.cc
             # and for the fonts used by bounded_label_unittest.cc.
diff --git a/ui/views/BUILD.gn b/ui/views/BUILD.gn
index 609181b9..c311fbd9 100644
--- a/ui/views/BUILD.gn
+++ b/ui/views/BUILD.gn
@@ -119,6 +119,7 @@
     "//ui/compositor:test_support",
     "//ui/events",
     "//ui/events:events_base",
+    "//ui/events:test_support",
     "//ui/events/platform",
     "//ui/gfx",
     "//ui/gfx/geometry",
diff --git a/ui/views/views.gyp b/ui/views/views.gyp
index 9e1699b6..103999f 100644
--- a/ui/views/views.gyp
+++ b/ui/views/views.gyp
@@ -698,6 +698,7 @@
         '../compositor/compositor.gyp:compositor',
         '../compositor/compositor.gyp:compositor_test_support',
         '../events/events.gyp:events',
+        '../events/events.gyp:events_test_support',
         '../events/platform/events_platform.gyp:events_platform',
         '../gfx/gfx.gyp:gfx',
         '../gfx/gfx.gyp:gfx_geometry',