Skip to content

Commit e18f4cd

Browse files
Do not open brave://welcome in guest windows (#17577)
* Do not open brave://welcome in guest windows * Update browser/brave_scheme_load_browsertest.cc Co-authored-by: Simon Hong <[email protected]> --------- Co-authored-by: Simon Hong <[email protected]>
1 parent 658338e commit e18f4cd

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

browser/brave_scheme_load_browsertest.cc

+31
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "chrome/test/base/in_process_browser_test.h"
1717
#include "chrome/test/base/ui_test_utils.h"
1818
#include "components/omnibox/browser/location_bar_model.h"
19+
#include "content/public/browser/navigation_entry.h"
1920
#include "content/public/browser/notification_service.h"
2021
#include "content/public/browser/notification_types.h"
2122
#include "content/public/common/url_constants.h"
@@ -59,6 +60,31 @@ class BraveSchemeLoadBrowserTest : public InProcessBrowserTest,
5960
return WaitForLoadStop(active_contents());
6061
}
6162

63+
// Check loading |url| in guest window is not allowed for an url.
64+
void TestURLIsNotLoadedInGuestWindow(const GURL& url) {
65+
Browser* guest_browser = CreateGuestBrowser();
66+
TabStripModel* guest_model = guest_browser->tab_strip_model();
67+
68+
// Check guest window has one blank tab.
69+
EXPECT_EQ("about:blank",
70+
guest_model->GetActiveWebContents()->GetVisibleURL().spec());
71+
EXPECT_EQ(1, guest_model->count());
72+
EXPECT_EQ("about:blank", active_contents()->GetVisibleURL().spec());
73+
EXPECT_EQ(1, browser()->tab_strip_model()->count());
74+
// Unable to navigate expected url.
75+
EXPECT_FALSE(
76+
content::NavigateToURL(guest_model->GetActiveWebContents(), url));
77+
auto* entry = guest_model->GetActiveWebContents()
78+
->GetController()
79+
.GetLastCommittedEntry();
80+
EXPECT_EQ(entry->GetPageType(), content::PageType::PAGE_TYPE_ERROR);
81+
EXPECT_STREQ("about:blank",
82+
base::UTF16ToUTF8(
83+
browser()->location_bar_model()->GetFormattedFullURL())
84+
.c_str());
85+
EXPECT_EQ(1, browser()->tab_strip_model()->count());
86+
}
87+
6288
// Check loading |url| in private window is redirected to normal
6389
// window.
6490
void TestURLIsNotLoadedInPrivateWindow(const std::string& url) {
@@ -260,3 +286,8 @@ IN_PROC_BROWSER_TEST_F(BraveSchemeLoadBrowserTest,
260286
BraveWelcomePageIsNotAllowedInPrivateWindow) {
261287
TestURLIsNotLoadedInPrivateWindow("brave://welcome");
262288
}
289+
290+
IN_PROC_BROWSER_TEST_F(BraveSchemeLoadBrowserTest,
291+
BraveWelcomePageIsNotAllowedInGuestWindow) {
292+
TestURLIsNotLoadedInGuestWindow(GURL("brave://welcome"));
293+
}

browser/ui/webui/brave_web_ui_controller_factory.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ WebUIController* NewWebUI(WebUI* web_ui, const GURL& url) {
146146
return new RewardsPanelUI(web_ui);
147147
#endif // !BUILDFLAG(IS_ANDROID)
148148
#if !BUILDFLAG(IS_ANDROID)
149-
} else if (host == kWelcomeHost) {
149+
} else if (host == kWelcomeHost && !profile->IsGuestSession()) {
150150
return new BraveWelcomeUI(web_ui, url.host());
151151
} else if (host == chrome::kChromeUISettingsHost) {
152152
return new BraveSettingsUI(web_ui, url.host());

0 commit comments

Comments
 (0)