New issue
Advanced search Search tips

Issue 804950 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 1
Type: Bug



Sign in to add a comment

[macviewsbrowser] resolve symbol conflicts in polychrome build

Project Member Reported by ellyjo...@chromium.org, Jan 23 2018

Issue description

With this patch applied:

--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@@ -27,15 -27,15 +27,15 @@@ config("ui_warnings") 
  
  # Use a static library here because many test binaries depend on this but don't
  # require many files from it. This makes linking more efficient.
--split_static_library("ui") {
++source_set("ui") {
    # Split into multiple static libraries on Windows builds. We have hit size
    # limits on Windows official builds and on goma builds when symbol_level = 2
    # is selected. Always splitting on Windows builds is simpler than trying to
    # perfectly calculate the scenarios where it is required.
    if (is_win) {
--    split_count = 5
++    # split_count = 5
    } else {
--    split_count = 1
++    # split_count = 1
    }

Running this:

$ ninja -C out/rel-mv -j 250 chrome 2>&1 | grep duplicate | awk '{print $3}' | grep -v duplicate | c++filt

These symbols conflict:

ExternalProtocolHandler::RunExternalProtocolDialog(GURL const&, int, int, ui::PageTransition, bool)
ChromeAppWindowClient::CreateNativeAppWindowImpl(extensions::AppWindow*, extensions::AppWindow::CreateParams const&)
ChromeTranslateClient::CreateInfoBar(std::__1::unique_ptr<translate::TranslateInfoBarDelegate, std::__1::default_delete<translate::TranslateInfoBarDelegate> >) const
chrome::ShowConfirmBubble(NSWindow*, NSView*, gfx::Point const&, std::__1::unique_ptr<ConfirmBubbleModel, std::__1::default_delete<ConfirmBubbleModel> >)
DownloadDangerPrompt::Create(content::DownloadItem*, content::WebContents*, bool, base::RepeatingCallback<void (DownloadDangerPrompt::Action)> const&)
ExtensionInstalledBubble::GetAnchorPoint(NSWindow*) const
ExtensionInstalledBubble::ShouldShow()
ExtensionInstalledBubble::BuildBubbleUi()
extensions::ExtensionUninstallDialog::Create(Profile*, NSWindow*, extensions::ExtensionUninstallDialog::Delegate*)
GlobalErrorBubbleViewBase::ShowStandardBubbleView(Browser*, base::WeakPtr<GlobalErrorWithStandardBubble> const&)
importer::ShowImportLockDialog(NSWindow*, base::RepeatingCallback<void (bool)> const&)
ShowPageInfoDialogImpl(Browser*, content::WebContents*, GURL const&, security_state::SecurityInfo const&)
CreateAccountChooserPromptView(PasswordDialogController*, content::WebContents*)
CreateAutoSigninPromptView(PasswordDialogController*, content::WebContents*)
safe_browsing::ShowPasswordReuseModalWarningDialog(content::WebContents*, safe_browsing::ChromePasswordProtectionService*, base::OnceCallback<void (safe_browsing::PasswordProtectionService::WarningAction)>)
chrome::ShowQuestionMessageBox(NSWindow*, std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> > const&, std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> > const&)
chrome::ShowWarningMessageBox(NSWindow*, std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> > const&, std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> > const&)
chrome::ShowWarningMessageBoxWithCheckbox(NSWindow*, std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> > const&, std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> > const&, std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> > const&, base::OnceCallback<void (bool)>)
JavaScriptDialog::~JavaScriptDialog()
JavaScriptDialog::~JavaScriptDialog()
JavaScriptDialog::~JavaScriptDialog()
vtable for JavaScriptDialog
JavaScriptDialog::JavaScriptDialog(content::WebContents*)
JavaScriptDialog::Create(content::WebContents*, content::WebContents*, std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> > const&, content::JavaScriptDialogType, std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> > const&, std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> > const&, base::OnceCallback<void (bool, std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> > const&)>)
autofill::AutofillPopupView::Create(autofill::AutofillPopupController*)
autofill::CreateCardUnmaskPromptView(autofill::CardUnmaskPromptController*, content::WebContents*)
autofill::PasswordGenerationPopupView::Create(autofill::PasswordGenerationPopupController*)
chrome::DragBookmarks(Profile*, std::__1::vector<bookmarks::BookmarkNode const*, std::__1::allocator<bookmarks::BookmarkNode const*> > const&, NSView*, ui::DragDropTypes::DragEventSource)
ExtensionInstallPrompt::GetDefaultShowDialogCallback()
ChromeDevicePermissionsPrompt::ShowDialog()
vtable for ChromeDevicePermissionsPrompt
chrome::ShowFirstRunBubble(Browser*)
LoginHandler::Create(net::AuthChallengeInfo*, net::URLRequest*)
BookmarkEditor::Show(NSWindow*, Profile*, BookmarkEditor::EditDetails const&, BookmarkEditor::Configuration)
ChromeExtensionChooserDialog::ShowDialog(std::__1::unique_ptr<ChooserController, std::__1::default_delete<ChooserController> >) const
bubble_anchor_util::GetPageInfoAnchorView(Browser*)
bubble_anchor_util::GetPageInfoAnchorRect(Browser*)
InstallChromeJavaScriptNativeDialogFactory()
ShowConstrainedWebDialogWithAutoResize(content::BrowserContext*, ui::WebDialogDelegate*, content::WebContents*, gfx::Size const&, gfx::Size const&)
ShowConstrainedWebDialog(content::BrowserContext*, ui::WebDialogDelegate*, content::WebContents*)
DownloadStartedAnimation::Show(content::WebContents*)
AlternateNavInfoBarDelegate::CreateInfoBar(std::__1::unique_ptr<AlternateNavInfoBarDelegate, std::__1::default_delete<AlternateNavInfoBarDelegate> >)
InfoBarService::CreateConfirmInfoBar(std::__1::unique_ptr<ConfirmInfoBarDelegate, std::__1::default_delete<ConfirmInfoBarDelegate> >)
ChooserBubbleDelegate::BuildBubbleUi()
ChooserBubbleUi::CreateAndShow(views::BubbleDialogDelegateView*)
PermissionPrompt::Create(content::WebContents*, PermissionPrompt::Delegate*)
UserManager::OnUserManagerShown()
UserManager::GetSigninProfilePath()
UserManagerProfileDialog::HideDialog()
UserManager::IsShowing()
UserManagerProfileDialog::DisplayErrorMessage()
UserManager::Hide()
UserManagerProfileDialog::ShowDialogAndDisplayErrorMessage(content::BrowserContext*)
UserManagerProfileDialog::ShowSigninDialog(content::BrowserContext*, base::FilePath const&, signin_metrics::Reason)
UserManagerProfileDialog::ShowReauthDialogWithProfilePath(content::BrowserContext*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, base::FilePath const&, signin_metrics::Reason)
UserManagerProfileDialog::ShowReauthDialog(content::BrowserContext*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, signin_metrics::Reason)
UserManager::Show(base::FilePath const&, profiles::UserManagerAction)
HideProximityAuthErrorBubble()
ShowProximityAuthErrorBubble(std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> > const&, gfx::Range const&, GURL const&, gfx::Rect const&, content::WebContents*)
SadTab::Create(content::WebContents*, SadTabKind)
SessionCrashedBubble::Show(Browser*)
chrome::ShowSSLClientCertificateSelector(content::WebContents*, net::SSLCertRequestInfo*, std::__1::vector<std::__1::unique_ptr<net::ClientCertIdentity, std::__1::default_delete<net::ClientCertIdentity> >, std::__1::allocator<std::__1::unique_ptr<net::ClientCertIdentity, std::__1::default_delete<net::ClientCertIdentity> > > >, std::__1::unique_ptr<content::ClientCertificateDelegate, std::__1::default_delete<content::ClientCertificateDelegate> >)
TabDialogs::CreateForWebContents(content::WebContents*)
TabModalConfirmDialog::Create(TabModalConfirmDialogDelegate*, content::WebContents*)
MediaRouterActionPlatformDelegate::Create(Browser*)
SigninViewControllerDelegate::CreateSigninErrorDelegate(SigninViewController*, Browser*)
SigninViewControllerDelegate::CreateSyncConfirmationDelegate(SigninViewController*, Browser*)
SigninViewControllerDelegate::CreateModalSigninDelegate(SigninViewController*, profiles::BubbleViewMode, Browser*, signin_metrics::AccessPoint)
ScreenCaptureNotificationUI::Create(std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> > const&)
ExtensionActionPlatformDelegate::Create(ExtensionActionViewController*)
extensions::ExtensionViewHost::CreateExtensionView(extensions::ExtensionViewHost*, Browser*)
MediaGalleriesDialog::Create(MediaGalleriesDialogController*)

In general, each symbol needs:

1) Rename the Cocoa side X -> XCocoa()
2) Add a MAC && !MAC_VIEWS_BROWSER wrapper named X that calls XCocoa() so the symbol stays available in Cocoa builds
3) Change the Views X to call XCocoa() when using Cocoa mode

I will own this but I will definitely ask for help :)
 

Comment 1 by lgrey@chromium.org, Jan 23 2018

I can take from UserManager::OnUserManagerShown to the bottom (more or less arbitrary, looks about the right size)
Sweet, thanks!
By the way, to work on this, you will need the "polychrome" patch <https://chromium-review.googlesource.com/c/chromium/src/+/874730> which links the cocoa code into the views browser.
Status: Started (was: Assigned)
As of patchset 7 of the polychrome CL this list is now 60 symbols:

ExternalProtocolHandler::RunExternalProtocolDialog(GURL const&, int, int, ui::PageTransition, bool)
BrowserWindowControllerForWindow(NSWindow*)
TabWindowControllerForWindow(NSWindow*)
ChromeAppWindowClient::CreateNativeAppWindowImpl(extensions::AppWindow*, extensions::AppWindow::CreateParams const&)
ChromeTranslateClient::CreateInfoBar(std::__1::unique_ptr<translate::TranslateInfoBarDelegate, std::__1::default_delete<translate::TranslateInfoBarDelegate> >) const
importer::ShowImportLockDialog(NSWindow*, base::RepeatingCallback<void (bool)> const&)
JavaScriptDialog::~JavaScriptDialog()
JavaScriptDialog::~JavaScriptDialog()
JavaScriptDialog::~JavaScriptDialog()
vtable for JavaScriptDialog
JavaScriptDialog::JavaScriptDialog(content::WebContents*)
JavaScriptDialog::Create(content::WebContents*, content::WebContents*, std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> > const&, content::JavaScriptDialogType, std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> > const&, std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> > const&, base::OnceCallback<void (bool, std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> > const&)>)
autofill::AutofillPopupView::Create(autofill::AutofillPopupController*)
autofill::CreateCardUnmaskPromptView(autofill::CardUnmaskPromptController*, content::WebContents*)
autofill::PasswordGenerationPopupView::Create(autofill::PasswordGenerationPopupController*)
chrome::DragBookmarks(Profile*, std::__1::vector<bookmarks::BookmarkNode const*, std::__1::allocator<bookmarks::BookmarkNode const*> > const&, NSView*, ui::DragDropTypes::DragEventSource)
ExtensionInstallPrompt::GetDefaultShowDialogCallback()
ChromeDevicePermissionsPrompt::ShowDialog()
vtable for ChromeDevicePermissionsPrompt
chrome::ShowFirstRunBubble(Browser*)
LoginHandler::Create(net::AuthChallengeInfo*, net::URLRequest*)
BookmarkEditor::Show(NSWindow*, Profile*, BookmarkEditor::EditDetails const&, BookmarkEditor::Configuration)
ChromeExtensionChooserDialog::ShowDialog(std::__1::unique_ptr<ChooserController, std::__1::default_delete<ChooserController> >) const
bubble_anchor_util::GetPageInfoAnchorView(Browser*)
bubble_anchor_util::GetPageInfoAnchorRect(Browser*)
InstallChromeJavaScriptNativeDialogFactory()
ShowConstrainedWebDialogWithAutoResize(content::BrowserContext*, ui::WebDialogDelegate*, content::WebContents*, gfx::Size const&, gfx::Size const&)
ShowConstrainedWebDialog(content::BrowserContext*, ui::WebDialogDelegate*, content::WebContents*)
DownloadStartedAnimation::Show(content::WebContents*)
AlternateNavInfoBarDelegate::CreateInfoBar(std::__1::unique_ptr<AlternateNavInfoBarDelegate, std::__1::default_delete<AlternateNavInfoBarDelegate> >)
InfoBarService::CreateConfirmInfoBar(std::__1::unique_ptr<ConfirmInfoBarDelegate, std::__1::default_delete<ConfirmInfoBarDelegate> >)
ChooserBubbleDelegate::BuildBubbleUi()
ChooserBubbleUi::CreateAndShow(views::BubbleDialogDelegateView*)
PermissionPrompt::Create(content::WebContents*, PermissionPrompt::Delegate*)
UserManager::OnUserManagerShown()
UserManager::GetSigninProfilePath()
UserManagerProfileDialog::HideDialog()
UserManager::IsShowing()
UserManagerProfileDialog::DisplayErrorMessage()
UserManager::Hide()
UserManagerProfileDialog::ShowDialogAndDisplayErrorMessage(content::BrowserContext*)
UserManagerProfileDialog::ShowSigninDialog(content::BrowserContext*, base::FilePath const&, signin_metrics::Reason)
UserManagerProfileDialog::ShowReauthDialogWithProfilePath(content::BrowserContext*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, base::FilePath const&, signin_metrics::Reason)
UserManagerProfileDialog::ShowReauthDialog(content::BrowserContext*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, signin_metrics::Reason)
UserManager::Show(base::FilePath const&, profiles::UserManagerAction)
HideProximityAuthErrorBubble()
ShowProximityAuthErrorBubble(std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> > const&, gfx::Range const&, GURL const&, gfx::Rect const&, content::WebContents*)
SadTab::Create(content::WebContents*, SadTabKind)
SessionCrashedBubble::Show(Browser*)
chrome::ShowSSLClientCertificateSelector(content::WebContents*, net::SSLCertRequestInfo*, std::__1::vector<std::__1::unique_ptr<net::ClientCertIdentity, std::__1::default_delete<net::ClientCertIdentity> >, std::__1::allocator<std::__1::unique_ptr<net::ClientCertIdentity, std::__1::default_delete<net::ClientCertIdentity> > > >, std::__1::unique_ptr<content::ClientCertificateDelegate, std::__1::default_delete<content::ClientCertificateDelegate> >)
TabDialogs::CreateForWebContents(content::WebContents*)
TabModalConfirmDialog::Create(TabModalConfirmDialogDelegate*, content::WebContents*)
MediaRouterActionPlatformDelegate::Create(Browser*)
SigninViewControllerDelegate::CreateSigninErrorDelegate(SigninViewController*, Browser*)
SigninViewControllerDelegate::CreateSyncConfirmationDelegate(SigninViewController*, Browser*)
SigninViewControllerDelegate::CreateModalSigninDelegate(SigninViewController*, profiles::BubbleViewMode, Browser*, signin_metrics::AccessPoint)
ScreenCaptureNotificationUI::Create(std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> > const&)
ExtensionActionPlatformDelegate::Create(ExtensionActionViewController*)
extensions::ExtensionViewHost::CreateExtensionView(extensions::ExtensionViewHost*, Browser*)
MediaGalleriesDialog::Create(MediaGalleriesDialogController*)

I'll be removing a bunch of these (since they are secondary UI conflicts) shortly, though.
As of patchset 8, it's now 38 symbols:

BrowserWindowControllerForWindow(NSWindow*)
TabWindowControllerForWindow(NSWindow*)
ChromeAppWindowClient::CreateNativeAppWindowImpl(extensions::AppWindow*, extensions::AppWindow::CreateParams const&)
ChromeTranslateClient::CreateInfoBar(std::__1::unique_ptr<translate::TranslateInfoBarDelegate, std::__1::default_delete<translate::TranslateInfoBarDelegate> >) const
autofill::AutofillPopupView::Create(autofill::AutofillPopupController*)
autofill::PasswordGenerationPopupView::Create(autofill::PasswordGenerationPopupController*)
chrome::DragBookmarks(Profile*, std::__1::vector<bookmarks::BookmarkNode const*, std::__1::allocator<bookmarks::BookmarkNode const*> > const&, NSView*, ui::DragDropTypes::DragEventSource)
ExtensionInstallPrompt::GetDefaultShowDialogCallback()
bubble_anchor_util::GetPageInfoAnchorView(Browser*)
bubble_anchor_util::GetPageInfoAnchorRect(Browser*)
InstallChromeJavaScriptNativeDialogFactory()
ShowConstrainedWebDialogWithAutoResize(content::BrowserContext*, ui::WebDialogDelegate*, content::WebContents*, gfx::Size const&, gfx::Size const&)
ShowConstrainedWebDialog(content::BrowserContext*, ui::WebDialogDelegate*, content::WebContents*)
AlternateNavInfoBarDelegate::CreateInfoBar(std::__1::unique_ptr<AlternateNavInfoBarDelegate, std::__1::default_delete<AlternateNavInfoBarDelegate> >)
InfoBarService::CreateConfirmInfoBar(std::__1::unique_ptr<ConfirmInfoBarDelegate, std::__1::default_delete<ConfirmInfoBarDelegate> >)
PermissionPrompt::Create(content::WebContents*, PermissionPrompt::Delegate*)
UserManager::OnUserManagerShown()
UserManager::GetSigninProfilePath()
UserManagerProfileDialog::HideDialog()
UserManager::IsShowing()
UserManagerProfileDialog::DisplayErrorMessage()
UserManager::Hide()
UserManagerProfileDialog::ShowDialogAndDisplayErrorMessage(content::BrowserContext*)
UserManagerProfileDialog::ShowSigninDialog(content::BrowserContext*, base::FilePath const&, signin_metrics::Reason)
UserManagerProfileDialog::ShowReauthDialogWithProfilePath(content::BrowserContext*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, base::FilePath const&, signin_metrics::Reason)
UserManagerProfileDialog::ShowReauthDialog(content::BrowserContext*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, signin_metrics::Reason)
UserManager::Show(base::FilePath const&, profiles::UserManagerAction)
SadTab::Create(content::WebContents*, SadTabKind)
chrome::ShowSSLClientCertificateSelector(content::WebContents*, net::SSLCertRequestInfo*, std::__1::vector<std::__1::unique_ptr<net::ClientCertIdentity, std::__1::default_delete<net::ClientCertIdentity> >, std::__1::allocator<std::__1::unique_ptr<net::ClientCertIdentity, std::__1::default_delete<net::ClientCertIdentity> > > >, std::__1::unique_ptr<content::ClientCertificateDelegate, std::__1::default_delete<content::ClientCertificateDelegate> >)
TabModalConfirmDialog::Create(TabModalConfirmDialogDelegate*, content::WebContents*)
MediaRouterActionPlatformDelegate::Create(Browser*)
SigninViewControllerDelegate::CreateSigninErrorDelegate(SigninViewController*, Browser*)
SigninViewControllerDelegate::CreateSyncConfirmationDelegate(SigninViewController*, Browser*)
SigninViewControllerDelegate::CreateModalSigninDelegate(SigninViewController*, profiles::BubbleViewMode, Browser*, signin_metrics::AccessPoint)
ScreenCaptureNotificationUI::Create(std::__1::basic_string<unsigned short, base::string16_internals::string16_char_traits, std::__1::allocator<unsigned short> > const&)
ExtensionActionPlatformDelegate::Create(ExtensionActionViewController*)
extensions::ExtensionViewHost::CreateExtensionView(extensions::ExtensionViewHost*, Browser*)
MediaGalleriesDialog::Create(MediaGalleriesDialogController*)

These need to be defeated in detail, perhaps in separate CLs. One of the big ones that sticks out is UserManager, which is 11 of the 38 conflicts and is "just" a WebContents host.
Project Member

Comment 6 by bugdroid1@chromium.org, Jan 29 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e1ffe3b9e56d6cd6896bc3ea402f850e7b3071e8

commit e1ffe3b9e56d6cd6896bc3ea402f850e7b3071e8
Author: Elly Fong-Jones <ellyjones@chromium.org>
Date: Mon Jan 29 17:17:45 2018

cocoa: rename some source files

These source files produce object files with names that conflict with views
object files when both are linked into the same product, so rename them to avoid
those conflicts.

This is a part of the broken-up CL 874730.

Bug:  804950 
Change-Id: Ic8967241efbe43a5a86bc76fd951296687c24e22
Reviewed-on: https://chromium-review.googlesource.com/889735
Reviewed-by: Sidney San Martín <sdy@chromium.org>
Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532470}
[modify] https://crrev.com/e1ffe3b9e56d6cd6896bc3ea402f850e7b3071e8/chrome/browser/ui/BUILD.gn
[rename] https://crrev.com/e1ffe3b9e56d6cd6896bc3ea402f850e7b3071e8/chrome/browser/ui/cocoa/new_tab_button_cocoa.mm
[rename] https://crrev.com/e1ffe3b9e56d6cd6896bc3ea402f850e7b3071e8/chrome/browser/ui/cocoa/profiles/avatar_button_cocoa.mm
[rename] https://crrev.com/e1ffe3b9e56d6cd6896bc3ea402f850e7b3071e8/chrome/browser/ui/cocoa/toolbar/reload_button_unittest_cocoa.mm
[modify] https://crrev.com/e1ffe3b9e56d6cd6896bc3ea402f850e7b3071e8/chrome/test/BUILD.gn

Project Member

Comment 7 by bugdroid1@chromium.org, Jan 29 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e11a396c29b54c08c0744f3284cb17ee24d3e753

commit e11a396c29b54c08c0744f3284cb17ee24d3e753
Author: Elly Fong-Jones <ellyjones@chromium.org>
Date: Mon Jan 29 18:54:52 2018

macviews: split cocoa sources into variables

This change moves Cocoa-only browser and test source files into variables, to
reduce merge conflicts while these files get integrated into the Views browser
builds as well.

Bug:  802257 , 804950 
Change-Id: I123b778fb7614afc20a50a800eab5ae2a6290b24
Reviewed-on: https://chromium-review.googlesource.com/889792
Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532515}
[modify] https://crrev.com/e11a396c29b54c08c0744f3284cb17ee24d3e753/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/e11a396c29b54c08c0744f3284cb17ee24d3e753/chrome/test/BUILD.gn

Project Member

Comment 8 by bugdroid1@chromium.org, Jan 31 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/de30ba8e626978965312af8c42f3cb89bb808519

commit de30ba8e626978965312af8c42f3cb89bb808519
Author: Elly Fong-Jones <ellyjones@chromium.org>
Date: Wed Jan 31 14:26:50 2018

macviews: introduce polychrome

This change introduces a new command line flag, --polychrome, which causes
a mac_views_browser build to use the existing Cocoa UI instead of the new
Views browser UI. This involves:

1) Linking all of the Cocoa UI in when building the Views browser;
2) Resolving symbol and filename conflicts;
3) Introducing views_mode_controller::IsViewsBrowserCocoa();
4) Having BrowserWindowFactory choose which type of BrowserWindow to create
   based on the value of views_mode_controller::IsViewsBrowserCocoa()

This change also makes unit_tests build, but not any other targets - it is
likely that browser_tests does not build. The resulting mac_views_browser
*runs* but is unstable because of  bug 804950 , which is hard to address
without this CL being landed.

The current name is deliberately a bit silly, under the theory that we'll pick
a better one once the approach solidifies :)

Bug:  802257 , 804950 
Change-Id: I30aaef7ed08dd11b66d59d5b816f57641bf2f209
Reviewed-on: https://chromium-review.googlesource.com/874730
Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
Reviewed-by: Trent Apted <tapted@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#533267}
[modify] https://crrev.com/de30ba8e626978965312af8c42f3cb89bb808519/chrome/browser/infobars/infobar_service.h
[modify] https://crrev.com/de30ba8e626978965312af8c42f3cb89bb808519/chrome/browser/ssl/ssl_client_certificate_selector.h
[modify] https://crrev.com/de30ba8e626978965312af8c42f3cb89bb808519/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/de30ba8e626978965312af8c42f3cb89bb808519/chrome/browser/ui/browser_window.h
[modify] https://crrev.com/de30ba8e626978965312af8c42f3cb89bb808519/chrome/browser/ui/cocoa/browser_window_factory_cocoa.mm
[modify] https://crrev.com/de30ba8e626978965312af8c42f3cb89bb808519/chrome/browser/ui/cocoa/infobars/confirm_infobar_controller.mm
[modify] https://crrev.com/de30ba8e626978965312af8c42f3cb89bb808519/chrome/browser/ui/cocoa/ssl_client_certificate_selector_cocoa.mm
[modify] https://crrev.com/de30ba8e626978965312af8c42f3cb89bb808519/chrome/browser/ui/views/certificate_viewer_mac_views.mm
[modify] https://crrev.com/de30ba8e626978965312af8c42f3cb89bb808519/chrome/browser/ui/views/frame/browser_window_factory.cc
[modify] https://crrev.com/de30ba8e626978965312af8c42f3cb89bb808519/chrome/browser/ui/views/infobars/confirm_infobar.cc
[modify] https://crrev.com/de30ba8e626978965312af8c42f3cb89bb808519/chrome/browser/ui/views/ssl_client_certificate_selector.cc
[add] https://crrev.com/de30ba8e626978965312af8c42f3cb89bb808519/chrome/browser/ui/views_mode_controller.cc
[add] https://crrev.com/de30ba8e626978965312af8c42f3cb89bb808519/chrome/browser/ui/views_mode_controller.h
[modify] https://crrev.com/de30ba8e626978965312af8c42f3cb89bb808519/chrome/common/chrome_features.cc
[modify] https://crrev.com/de30ba8e626978965312af8c42f3cb89bb808519/chrome/common/chrome_features.h
[modify] https://crrev.com/de30ba8e626978965312af8c42f3cb89bb808519/chrome/test/BUILD.gn

BrowserWindowControllerForWindow + TabWindowControllerForWindow -> https://chromium-review.googlesource.com/c/chromium/src/+/896709

JavaScriptDialog::* and ShowConstrainedWebDialog* -> https://chromium-review.googlesource.com/c/chromium/src/+/897746

SessionCrashedBubble::Show and bubble_anchor_util::GetPageInfoAnchor* -> https://chromium-review.googlesource.com/c/chromium/src/+/897703
Project Member

Comment 10 by bugdroid1@chromium.org, Feb 2 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ba7d4d85e46cca54a947f5e8613d3b1141bd1258

commit ba7d4d85e46cca54a947f5e8613d3b1141bd1258
Author: Elly Fong-Jones <ellyjones@chromium.org>
Date: Fri Feb 02 15:09:39 2018

polychrome: compile out Cocoa JavaScriptDialog and ConstrainedWebDialogDelegate

This change removes these files from the polychrome build, removing some symbol
conflicts (that seem harmless, at least in my build, but still).

Bug:  804950 
Change-Id: Idabe98b79106954299a1557db553ffce6efd39cd
Reviewed-on: https://chromium-review.googlesource.com/897746
Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
Reviewed-by: Trent Apted <tapted@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534052}
[modify] https://crrev.com/ba7d4d85e46cca54a947f5e8613d3b1141bd1258/chrome/browser/ui/BUILD.gn

Project Member

Comment 11 by bugdroid1@chromium.org, Feb 5 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/98fde4d48ff6ae4a11fe3c6b3f20ffd2b376fe36

commit 98fde4d48ff6ae4a11fe3c6b3f20ffd2b376fe36
Author: Elly Fong-Jones <ellyjones@chromium.org>
Date: Mon Feb 05 14:05:25 2018

polychrome: don't try to use SessionCrashedBubble in Cocoa mode

SessionCrashedBubbleView assumes things about BrowserWindow that aren't true.
This CL is split off from CL 897703.

Bug:  804950 
Change-Id: Id341addef1169de48c1e9f05a2343155187cea54
Reviewed-on: https://chromium-review.googlesource.com/899104
Reviewed-by: Trent Apted <tapted@chromium.org>
Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534377}
[modify] https://crrev.com/98fde4d48ff6ae4a11fe3c6b3f20ffd2b376fe36/chrome/browser/ui/views/session_crashed_bubble_view.cc

Project Member

Comment 12 by bugdroid1@chromium.org, Feb 5 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b0e53acd2ae9fe474ee32a1fc631dad2dc182709

commit b0e53acd2ae9fe474ee32a1fc631dad2dc182709
Author: Elly Fong-Jones <ellyjones@chromium.org>
Date: Mon Feb 05 14:07:02 2018

polychrome: collapse XControllerForWindow implementations

This change removes the Views XControllerForWindow implementations, since all mac_views_browser builds now link the required Objective-C classes.

Bug:  804950 
Change-Id: I4799d27c3119a6a1a98676265ccad92412665a56
Reviewed-on: https://chromium-review.googlesource.com/896709
Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
Reviewed-by: Trent Apted <tapted@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534378}
[modify] https://crrev.com/b0e53acd2ae9fe474ee32a1fc631dad2dc182709/chrome/browser/ui/BUILD.gn
[delete] https://crrev.com/98fde4d48ff6ae4a11fe3c6b3f20ffd2b376fe36/chrome/browser/ui/cocoa/browser_window_views_mac.mm

Project Member

Comment 13 by bugdroid1@chromium.org, Feb 5 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bd46a2a436105f51a2d94ddf4204bcc06060177b

commit bd46a2a436105f51a2d94ddf4204bcc06060177b
Author: Elly Fong-Jones <ellyjones@chromium.org>
Date: Mon Feb 05 14:40:28 2018

polychrome: remove PermissionPrompt::Create conflict

This change compiles the Views-side definition out, and extends the Cocoa-side definition to handle polychrome.
Oddly, this seemed to work fine before (i.e., the bubbles worked in both modes),
but I didn't test exhaustively.

Bug:  804950 
Change-Id: I341baf2b0bb0abb7280c91cec632517fff1d4aa8
Reviewed-on: https://chromium-review.googlesource.com/897749
Reviewed-by: Trent Apted <tapted@chromium.org>
Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534380}
[modify] https://crrev.com/bd46a2a436105f51a2d94ddf4204bcc06060177b/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/bd46a2a436105f51a2d94ddf4204bcc06060177b/chrome/browser/ui/cocoa/permission_bubble/permission_prompt_impl_views_mac.mm

Project Member

Comment 14 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/24774792b4c05a76387e9c19af8689b87925fec9

commit 24774792b4c05a76387e9c19af8689b87925fec9
Author: Elly Fong-Jones <ellyjones@chromium.org>
Date: Wed Feb 07 13:51:36 2018

polychrome: fix page info bubble

This change:
1) Collapses the implementations of GetPageInfoAnchor*() for polychrome builds to always use the Views implementations (sort of).
2) Has polychrome builds in Cocoa mode use the MacViews path for summoning the page info bubble

This is a part of CL 897703.

Bug:  804950 
Change-Id: I5b198c6165452f9548aeea2301bb861fe9fb9289
Reviewed-on: https://chromium-review.googlesource.com/899464
Reviewed-by: Trent Apted <tapted@chromium.org>
Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534996}
[modify] https://crrev.com/24774792b4c05a76387e9c19af8689b87925fec9/chrome/browser/ui/bubble_anchor_util.h
[modify] https://crrev.com/24774792b4c05a76387e9c19af8689b87925fec9/chrome/browser/ui/cocoa/bubble_anchor_util_views_mac.mm
[modify] https://crrev.com/24774792b4c05a76387e9c19af8689b87925fec9/chrome/browser/ui/views/bubble_anchor_util_views.cc
[modify] https://crrev.com/24774792b4c05a76387e9c19af8689b87925fec9/chrome/browser/ui/views/page_info/page_info_bubble_view.cc

Project Member

Comment 15 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/007bca68b8905abeac9519c0809d039fc47f73a8

commit 007bca68b8905abeac9519c0809d039fc47f73a8
Author: Leonard Grey <lgrey@chromium.org>
Date: Wed Feb 07 18:29:42 2018

[Mac] Remove symbol conflicts for Polychrome build.

Background:
Polychrome is an intermediate step to shipping MacViews browser.
Currently, switching between Cocoa browser and MacViews browser requires
a buildflag. Polychrome builds both Cocoa and MacViews into the same
binary and allows switching between them based on a feature flag.
More details at  crbug.com/802257 

As Cocoa and (much of) Views were not typically built together,
some symbols were reused. With Polychrome, these are duplicate symbols.
This CL resolves the issue by renaming the Cocoa symbols, and then
shimming them for the (regular, not Polychrome) Cocoa build.

This covers the items between UserManager::OnUserManagerShown and
MediaGalleriesDialog::Create in the linked bug.

Bug:  804950 
Change-Id: I84a72952ceec84c6fd13132b9feb5638fe831193
Reviewed-on: https://chromium-review.googlesource.com/900223
Commit-Queue: Leonard Grey <lgrey@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#535068}
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/extensions/extension_view_host.h
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/media_galleries/media_galleries_dialog_controller.h
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/cocoa/extensions/extension_action_platform_delegate_cocoa.mm
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/cocoa/extensions/extension_view_mac.mm
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa.mm
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/cocoa/profiles/signin_view_controller_delegate_mac.mm
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/cocoa/profiles/user_manager_mac.mm
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/cocoa/screen_capture_notification_ui_cocoa.mm
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/cocoa/tab_contents/sad_tab_mac.mm
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/cocoa/tab_modal_confirm_dialog_mac.mm
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/cocoa/toolbar/media_router_action_platform_delegate_cocoa.mm
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/extensions/extension_action_platform_delegate.h
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/proximity_auth/proximity_auth_error_bubble_stub.cc
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/sad_tab.h
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/screen_capture_notification_ui.h
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/signin_view_controller_delegate.h
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/tab_modal_confirm_dialog.h
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/toolbar/media_router_action_platform_delegate.h
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/user_manager.h
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/views/extensions/extension_action_platform_delegate_views.cc
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/views/extensions/extension_view_views.cc
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/views/extensions/media_galleries_dialog_views.cc
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.cc
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/views/profiles/user_manager_view.cc
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/views/proximity_auth/proximity_auth_error_bubble_view.cc
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/views/sad_tab_view.cc
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/views/screen_capture_notification_ui_views.cc
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/views/tab_modal_confirm_dialog_views.cc
[modify] https://crrev.com/007bca68b8905abeac9519c0809d039fc47f73a8/chrome/browser/ui/views/toolbar/media_router_action_platform_delegate_views.cc

Labels: Proj-MacViews
Labels: M-67
Applying "M-67" label as I believe we're targeting poylychome for M67. Please change milestone if needed. Thank you.
As of HEAD:

ExternalProtocolHandler::RunExternalProtocolDialog(GURL const&, int, int, ui::PageTransition, bool)
ChromeAppWindowClient::CreateNativeAppWindowImpl(extensions::AppWindow*, extensions::AppWindow::CreateParams const&)
ChromeTranslateClient::CreateInfoBar(std::__1::unique_ptr<translate::TranslateInfoBarDelegate, std::__1::default_delete<translate::TranslateInfoBarDelegate> >) const
autofill::AutofillPopupView::Create(autofill::AutofillPopupController*)
importer::ShowImportLockDialog(NSWindow*, base::RepeatingCallback<void (bool)> const&)
CreateAccountChooserPromptView(PasswordDialogController*, content::WebContents*)
CreateAutoSigninPromptView(PasswordDialogController*, content::WebContents*)
autofill::PasswordGenerationPopupView::Create(autofill::PasswordGenerationPopupController*)
chrome::DragBookmarks(Profile*, std::__1::vector<bookmarks::BookmarkNode const*, std::__1::allocator<bookmarks::BookmarkNode const*> > const&, NSView*, ui::DragDropTypes::DragEventSource)
ExtensionInstallPrompt::GetDefaultShowDialogCallback()
InstallChromeJavaScriptNativeDialogFactory()
DownloadStartedAnimation::Show(content::WebContents*)
AlternateNavInfoBarDelegate::CreateInfoBar(std::__1::unique_ptr<AlternateNavInfoBarDelegate, std::__1::default_delete<AlternateNavInfoBarDelegate> >)
TabDialogs::CreateForWebContents(content::WebContents*)

14 symbols :)
Project Member

Comment 19 by bugdroid1@chromium.org, Feb 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8f36be7e398700e146a6df2c881df7248e8720a2

commit 8f36be7e398700e146a6df2c881df7248e8720a2
Author: Robert Liao <robliao@chromium.org>
Date: Mon Feb 12 22:58:20 2018

Fix extension_view_views.cc Build Break with MAC_VIEWS_BROWSER Unset

views_mode_controller::IsViewsBrowserCocoa() only gets included if both
defined(OS_MACOSX) and BUILDFLAG(MAC_VIEWS_BROWSER).
extension_view_views.cc needs the same check.

BUG= 804950 

Change-Id: I41b44684949c0ee49b64d5a7cac1fe5241b50c28
Reviewed-on: https://chromium-review.googlesource.com/914922
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Reviewed-by: Leonard Grey <lgrey@chromium.org>
Commit-Queue: Robert Liao <robliao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#536224}
[modify] https://crrev.com/8f36be7e398700e146a6df2c881df7248e8720a2/chrome/browser/ui/views/extensions/extension_view_views.cc

Project Member

Comment 20 by bugdroid1@chromium.org, Feb 15 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5d1d1736879579555ba8f1d06e0d59619cf36041

commit 5d1d1736879579555ba8f1d06e0d59619cf36041
Author: Leonard Grey <lgrey@chromium.org>
Date: Thu Feb 15 17:31:07 2018

Polychrome: more symbol deduplication

This is part 2. Part 1 was https://chromium-review.googlesource.com/c/chromium/src/+/900223

Background:
Polychrome is an intermediate step to shipping MacViews browser.
Currently, switching between Cocoa browser and MacViews browser requires
a buildflag. Polychrome builds both Cocoa and MacViews into the same
binary and allows switching between them based on a feature flag.
More details at  crbug.com/802257 

As Cocoa and (much of) Views were not typically built together,
some symbols were reused. With Polychrome, these are duplicate symbols.
This CL resolves the issue by renaming the Cocoa symbols, and then
shimming them for the (regular, not Polychrome) Cocoa build.

This CL covers the remaining duplicated symbols.

Bug:  804950 
Change-Id: Ic0d5be2759e4d85e43aff5d5de2de373179b35f4
Reviewed-on: https://chromium-review.googlesource.com/911838
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Rachel Blum <groby@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Commit-Queue: Leonard Grey <lgrey@chromium.org>
Cr-Commit-Position: refs/heads/master@{#537059}
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/download/download_started_animation.h
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/extensions/extension_install_prompt.h
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/translate/chrome_translate_client.h
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/ui/apps/chrome_app_window_client.h
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/ui/autofill/password_generation_popup_view.h
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/ui/bookmarks/bookmark_drag_drop.h
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/ui/cocoa/apps/chrome_app_window_client_views_cocoa.mm
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/ui/cocoa/autofill/password_generation_popup_view_bridge.mm
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/ui/cocoa/bookmarks/bookmark_drag_drop_cocoa.mm
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/ui/cocoa/download/download_started_animation_mac.mm
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/ui/cocoa/infobars/alternate_nav_infobar_controller.mm
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/ui/cocoa/infobars/translate_infobar_base.mm
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/ui/omnibox/alternate_nav_infobar_delegate.h
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/ui/views/apps/chrome_app_window_client_views_mac.mm
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/ui/views/autofill/password_generation_popup_view_views.cc
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/ui/views/bookmarks/bookmark_drag_drop_views.cc
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/ui/views/browser_dialogs_views.cc
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/ui/views/download/download_started_animation_views.cc
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/ui/views/infobars/alternate_nav_infobar_view.cc
[modify] https://crrev.com/5d1d1736879579555ba8f1d06e0d59619cf36041/chrome/browser/ui/views/infobars/legacy_infobars_mac.cc

Project Member

Comment 21 by bugdroid1@chromium.org, Mar 16 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/edee20eb0cc4eed85f7d8213b9d2ca72bcdec3f6

commit edee20eb0cc4eed85f7d8213b9d2ca72bcdec3f6
Author: Leonard Grey <lgrey@chromium.org>
Date: Fri Mar 16 18:57:11 2018

Polychrome: restrict Mac-specific |BuildBubbleUi| to Cocoa

Bug:  804950 
Change-Id: I931bfdeefeefbbdbda626905dd14afe83e438821
Reviewed-on: https://chromium-review.googlesource.com/966929
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Reviewed-by: Robert Liao <robliao@chromium.org>
Commit-Queue: Leonard Grey <lgrey@chromium.org>
Cr-Commit-Position: refs/heads/master@{#543769}
[modify] https://crrev.com/edee20eb0cc4eed85f7d8213b9d2ca72bcdec3f6/chrome/browser/ui/cocoa/permission_bubble/chooser_bubble_ui_views_mac.mm

Status: Fixed (was: Started)
This is Fixed now.
Project Member

Comment 23 by bugdroid1@chromium.org, Oct 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/90775b9a06bb6782768f4b743aa9bf1e315193db

commit 90775b9a06bb6782768f4b743aa9bf1e315193db
Author: Nico Weber <thakis@chromium.org>
Date: Tue Oct 09 20:37:23 2018

mac: Inline cocoa_browser_sources.

These source files are all still used in the new views browser.

Bug:  832676 , 802257 , 804950 
Change-Id: Ide348cda6322fcbcc1d17482d522fdfd0cc76cee
Reviewed-on: https://chromium-review.googlesource.com/c/1271715
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598068}
[modify] https://crrev.com/90775b9a06bb6782768f4b743aa9bf1e315193db/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/90775b9a06bb6782768f4b743aa9bf1e315193db/chrome/test/BUILD.gn

Sign in to add a comment