| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
| 9 #include "chrome/browser/devtools/devtools_window_testing.h" | 9 #include "chrome/browser/devtools/devtools_window_testing.h" |
| 10 #include "chrome/browser/extensions/extension_browsertest.h" | 10 #include "chrome/browser/extensions/extension_browsertest.h" |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 173 | 173 |
| 174 // Navigate to the app's launch page with the 'www.' prefis; the location bar | 174 // Navigate to the app's launch page with the 'www.' prefis; the location bar |
| 175 // should be hidden. | 175 // should be hidden. |
| 176 NavigateAndCheckForLocationBar( | 176 NavigateAndCheckForLocationBar( |
| 177 app_browser_, "http://www.example.com/empty.html", false); | 177 app_browser_, "http://www.example.com/empty.html", false); |
| 178 | 178 |
| 179 // Navigate to different origin; the location bar should now be visible. | 179 // Navigate to different origin; the location bar should now be visible. |
| 180 NavigateAndCheckForLocationBar( | 180 NavigateAndCheckForLocationBar( |
| 181 app_browser_, "http://www.foo.com/blah", true); | 181 app_browser_, "http://www.foo.com/blah", true); |
| 182 } | 182 } |
| 183 | |
| 184 // Open a normal browser window, a hosted app window, a legacy packaged app | |
| 185 // window and a dev tools window, and check that the web app frame feature is | |
| 186 // supported correctly. | |
| 187 IN_PROC_BROWSER_TEST_F(HostedAppTest, ShouldUseWebAppFrame) { | |
| 188 base::CommandLine::ForCurrentProcess()->AppendSwitch( | |
| 189 switches::kEnableWebAppFrame); | |
| 190 | |
| 191 // Load a hosted app. | |
| 192 const Extension* bookmark_app = InstallExtensionWithSourceAndFlags( | |
| 193 test_data_dir_.AppendASCII("app"), | |
| 194 1, | |
| 195 extensions::Manifest::INTERNAL, | |
| 196 extensions::Extension::FROM_BOOKMARK); | |
| 197 ASSERT_TRUE(bookmark_app); | |
| 198 | |
| 199 // Launch it in a window, as AppLauncherHandler::HandleLaunchApp() would. | |
| 200 WebContents* bookmark_app_window = OpenApplication(AppLaunchParams( | |
| 201 browser()->profile(), bookmark_app, extensions::LAUNCH_CONTAINER_WINDOW, | |
| 202 WindowOpenDisposition::NEW_WINDOW, extensions::SOURCE_UNTRACKED)); | |
| 203 ASSERT_TRUE(bookmark_app_window); | |
| 204 | |
| 205 // Load a packaged app. | |
| 206 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("packaged_app"))); | |
| 207 const Extension* packaged_app = nullptr; | |
| 208 extensions::ExtensionRegistry* registry = | |
| 209 extensions::ExtensionRegistry::Get(browser()->profile()); | |
| 210 for (const scoped_refptr<const extensions::Extension>& extension : | |
| 211 registry->enabled_extensions()) { | |
| 212 if (extension->name() == "Packaged App Test") | |
| 213 packaged_app = extension.get(); | |
| 214 } | |
| 215 ASSERT_TRUE(packaged_app); | |
| 216 | |
| 217 // Launch it in a window, as AppLauncherHandler::HandleLaunchApp() would. | |
| 218 WebContents* packaged_app_window = OpenApplication(AppLaunchParams( | |
| 219 browser()->profile(), packaged_app, extensions::LAUNCH_CONTAINER_WINDOW, | |
| 220 WindowOpenDisposition::NEW_WINDOW, extensions::SOURCE_UNTRACKED)); | |
| 221 ASSERT_TRUE(packaged_app_window); | |
| 222 | |
| 223 DevToolsWindow* devtools_window = | |
| 224 DevToolsWindowTesting::OpenDevToolsWindowSync(browser(), false); | |
| 225 | |
| 226 // The launch should have created a new app browser and a dev tools browser. | |
| 227 ASSERT_EQ(4u, chrome::GetBrowserCount(browser()->profile())); | |
| 228 | |
| 229 // Find the new browsers. | |
| 230 Browser* bookmark_app_browser = nullptr; | |
| 231 Browser* packaged_app_browser = nullptr; | |
| 232 Browser* dev_tools_browser = nullptr; | |
| 233 for (auto* b : *BrowserList::GetInstance()) { | |
| 234 if (b == browser()) { | |
| 235 continue; | |
| 236 } else if (b->app_name() == DevToolsWindow::kDevToolsApp) { | |
| 237 dev_tools_browser = b; | |
| 238 } else if (b->tab_strip_model()->GetActiveWebContents() == | |
| 239 bookmark_app_window) { | |
| 240 bookmark_app_browser = b; | |
| 241 } else { | |
| 242 packaged_app_browser = b; | |
| 243 } | |
| 244 } | |
| 245 ASSERT_TRUE(dev_tools_browser); | |
| 246 ASSERT_TRUE(bookmark_app_browser); | |
| 247 ASSERT_TRUE(bookmark_app_browser != browser()); | |
| 248 ASSERT_TRUE(packaged_app_browser); | |
| 249 ASSERT_TRUE(packaged_app_browser != browser()); | |
| 250 ASSERT_TRUE(packaged_app_browser != bookmark_app_browser); | |
| 251 | |
| 252 EXPECT_FALSE(browser()->SupportsWindowFeature(Browser::FEATURE_WEBAPPFRAME)); | |
| 253 EXPECT_FALSE( | |
| 254 dev_tools_browser->SupportsWindowFeature(Browser::FEATURE_WEBAPPFRAME)); | |
| 255 #if defined(USE_ASH) | |
| 256 const bool kIsAsh = true; | |
| 257 #else | |
| 258 const bool kIsAsh = false; | |
| 259 #endif // USE_ASH | |
| 260 EXPECT_EQ(kIsAsh, bookmark_app_browser->SupportsWindowFeature( | |
| 261 Browser::FEATURE_WEBAPPFRAME)); | |
| 262 EXPECT_FALSE(packaged_app_browser->SupportsWindowFeature( | |
| 263 Browser::FEATURE_WEBAPPFRAME)); | |
| 264 | |
| 265 DevToolsWindowTesting::CloseDevToolsWindowSync(devtools_window); | |
| 266 } | |
| OLD | NEW |