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" |
tapted
2016/12/16 03:30:36
nit: this one is probably unused.
benwells
2016/12/19 03:59:06
Done.
| |
10 #include "chrome/browser/extensions/extension_browsertest.h" | 10 #include "chrome/browser/extensions/extension_browsertest.h" |
11 #include "chrome/browser/extensions/extension_service.h" | 11 #include "chrome/browser/extensions/extension_service.h" |
12 #include "chrome/browser/extensions/extension_util.h" | 12 #include "chrome/browser/extensions/extension_util.h" |
13 #include "chrome/browser/ui/browser_finder.h" | 13 #include "chrome/browser/ui/browser_finder.h" |
tapted
2016/12/16 03:30:36
I think this was just used for GetBrowserCount. no
benwells
2016/12/19 03:59:06
Done.
| |
14 #include "chrome/browser/ui/browser_list.h" | 14 #include "chrome/browser/ui/browser_list.h" |
15 #include "chrome/browser/ui/extensions/app_launch_params.h" | 15 #include "chrome/browser/ui/extensions/app_launch_params.h" |
16 #include "chrome/browser/ui/extensions/application_launch.h" | 16 #include "chrome/browser/ui/extensions/application_launch.h" |
17 #include "chrome/browser/ui/extensions/hosted_app_browser_controller.h" | 17 #include "chrome/browser/ui/extensions/hosted_app_browser_controller.h" |
18 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 18 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
19 #include "chrome/browser/web_applications/web_app.h" | 19 #include "chrome/browser/web_applications/web_app.h" |
20 #include "chrome/common/chrome_switches.h" | 20 #include "chrome/common/chrome_switches.h" |
21 #include "chrome/test/base/ui_test_utils.h" | 21 #include "chrome/test/base/ui_test_utils.h" |
22 #include "content/public/browser/web_contents.h" | 22 #include "content/public/browser/web_contents.h" |
23 #include "extensions/browser/extension_registry.h" | 23 #include "extensions/browser/extension_registry.h" |
(...skipping 149 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 |