Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(873)

Side by Side Diff: headless/lib/headless_browser_browsertest.cc

Issue 2816593006: Enable crashpad for Mac (Closed)
Patch Set: Reland Enable crashpad for Mac Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « headless/BUILD.gn ('k') | headless/lib/headless_content_main_delegate.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <memory> 5 #include <memory>
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/files/file_enumerator.h" 8 #include "base/files/file_enumerator.h"
9 #include "base/files/file_util.h" 9 #include "base/files/file_util.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 699 matching lines...) Expand 10 before | Expand all | Expand 10 after
710 FinishAsynchronousTest(); 710 FinishAsynchronousTest();
711 } 711 }
712 712
713 protected: 713 protected:
714 HeadlessBrowserContext* browser_context_ = nullptr; 714 HeadlessBrowserContext* browser_context_ = nullptr;
715 HeadlessWebContents* web_contents_ = nullptr; 715 HeadlessWebContents* web_contents_ = nullptr;
716 std::unique_ptr<HeadlessDevToolsClient> devtools_client_; 716 std::unique_ptr<HeadlessDevToolsClient> devtools_client_;
717 base::FilePath crash_dumps_dir_; 717 base::FilePath crash_dumps_dir_;
718 }; 718 };
719 719
720 // TODO(skyostil): Minidump generation currently is only supported on Linux. 720 // TODO(skyostil): Minidump generation currently is only supported on Linux and
721 #if defined(HEADLESS_USE_BREAKPAD) 721 // Mac.
722 #if defined(HEADLESS_USE_BREAKPAD) || defined(OS_MACOSX)
722 #define MAYBE_GenerateMinidump GenerateMinidump 723 #define MAYBE_GenerateMinidump GenerateMinidump
723 #else 724 #else
724 #define MAYBE_GenerateMinidump DISABLED_GenerateMinidump 725 #define MAYBE_GenerateMinidump DISABLED_GenerateMinidump
725 #endif // defined(HEADLESS_USE_BREAKPAD) 726 #endif // defined(HEADLESS_USE_BREAKPAD) || defined(OS_MACOSX)
726 IN_PROC_BROWSER_TEST_F(CrashReporterTest, MAYBE_GenerateMinidump) { 727 IN_PROC_BROWSER_TEST_F(CrashReporterTest, MAYBE_GenerateMinidump) {
727 // Navigates a tab to chrome://crash and checks that a minidump is generated. 728 // Navigates a tab to chrome://crash and checks that a minidump is generated.
728 // Note that we only test renderer crashes here -- browser crashes need to be 729 // Note that we only test renderer crashes here -- browser crashes need to be
729 // tested with a separate harness. 730 // tested with a separate harness.
730 // 731 //
731 // The case where crash reporting is disabled is covered by 732 // The case where crash reporting is disabled is covered by
732 // HeadlessCrashObserverTest. 733 // HeadlessCrashObserverTest.
733 browser_context_ = browser()->CreateBrowserContextBuilder().Build(); 734 browser_context_ = browser()->CreateBrowserContextBuilder().Build();
734 735
735 web_contents_ = browser_context_->CreateWebContentsBuilder() 736 web_contents_ = browser_context_->CreateWebContentsBuilder()
736 .SetInitialURL(GURL(content::kChromeUICrashURL)) 737 .SetInitialURL(GURL(content::kChromeUICrashURL))
737 .Build(); 738 .Build();
738 739
739 web_contents_->AddObserver(this); 740 web_contents_->AddObserver(this);
740 RunAsynchronousTest(); 741 RunAsynchronousTest();
741 742
742 // The target has crashed and should no longer be there. 743 // The target has crashed and should no longer be there.
743 EXPECT_FALSE(web_contents_->GetDevToolsTarget()); 744 EXPECT_FALSE(web_contents_->GetDevToolsTarget());
744 745
745 // Check that one minidump got created. 746 // Check that one minidump got created.
746 { 747 {
748 #if defined(OS_MACOSX)
749 // Mac outputs dumps in the 'completed' directory.
750 crash_dumps_dir_ = crash_dumps_dir_.Append("completed");
751 #endif
747 base::ThreadRestrictions::SetIOAllowed(true); 752 base::ThreadRestrictions::SetIOAllowed(true);
748 base::FileEnumerator it(crash_dumps_dir_, /* recursive */ false, 753 base::FileEnumerator it(crash_dumps_dir_, /* recursive */ false,
749 base::FileEnumerator::FILES); 754 base::FileEnumerator::FILES);
750 base::FilePath minidump = it.Next(); 755 base::FilePath minidump = it.Next();
751 EXPECT_FALSE(minidump.empty()); 756 EXPECT_FALSE(minidump.empty());
752 EXPECT_EQ(".dmp", minidump.Extension()); 757 EXPECT_EQ(".dmp", minidump.Extension());
753 EXPECT_TRUE(it.Next().empty()); 758 EXPECT_TRUE(it.Next().empty());
754 } 759 }
755 760
756 web_contents_->RemoveObserver(this); 761 web_contents_->RemoveObserver(this);
(...skipping 21 matching lines...) Expand all
778 web_contents->browser_context()->GetPermissionManager(); 783 web_contents->browser_context()->GetPermissionManager();
779 EXPECT_NE(nullptr, permission_manager); 784 EXPECT_NE(nullptr, permission_manager);
780 785
781 // Check that the permission manager returns ASK for a given permission type. 786 // Check that the permission manager returns ASK for a given permission type.
782 EXPECT_EQ(blink::mojom::PermissionStatus::ASK, 787 EXPECT_EQ(blink::mojom::PermissionStatus::ASK,
783 permission_manager->GetPermissionStatus( 788 permission_manager->GetPermissionStatus(
784 content::PermissionType::NOTIFICATIONS, url, url)); 789 content::PermissionType::NOTIFICATIONS, url, url));
785 } 790 }
786 791
787 } // namespace headless 792 } // namespace headless
OLDNEW
« no previous file with comments | « headless/BUILD.gn ('k') | headless/lib/headless_content_main_delegate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698