Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <stddef.h> | 5 #include <stddef.h> |
| 6 #include <stdint.h> | 6 #include <stdint.h> |
| 7 | 7 |
| 8 #include <algorithm> | 8 #include <algorithm> |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 1299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1310 UpdateProviderPolicy(policies); | 1310 UpdateProviderPolicy(policies); |
| 1311 // wait for devtools close | 1311 // wait for devtools close |
| 1312 close_observer.Wait(); | 1312 close_observer.Wait(); |
| 1313 // The existing devtools window should have closed. | 1313 // The existing devtools window should have closed. |
| 1314 EXPECT_FALSE(DevToolsWindow::GetInstanceForInspectedWebContents(contents)); | 1314 EXPECT_FALSE(DevToolsWindow::GetInstanceForInspectedWebContents(contents)); |
| 1315 // And it's not possible to open it again. | 1315 // And it's not possible to open it again. |
| 1316 EXPECT_FALSE(chrome::ExecuteCommand(browser(), IDC_DEV_TOOLS)); | 1316 EXPECT_FALSE(chrome::ExecuteCommand(browser(), IDC_DEV_TOOLS)); |
| 1317 EXPECT_FALSE(DevToolsWindow::GetInstanceForInspectedWebContents(contents)); | 1317 EXPECT_FALSE(DevToolsWindow::GetInstanceForInspectedWebContents(contents)); |
| 1318 } | 1318 } |
| 1319 | 1319 |
| 1320 namespace { | |
| 1321 | |
| 1322 void WaitForExtensionsDevModeControlsVisibility(content::WebContents* contents, | |
| 1323 bool expected_visible) { | |
| 1324 // Visibility of dev-controls is controlled through its height - wait for that | |
| 1325 bool done = false; | |
| 1326 ASSERT_TRUE(content::ExecuteScriptAndExtractBool( | |
| 1327 contents, | |
| 1328 base::StringPrintf( | |
| 1329 "var screenElement = document.getElementById('dev-controls');" | |
| 1330 "function SendReplyIfAsExpected() {" | |
| 1331 " var is_visible = parseFloat(screenElement.style.height) > 0;" | |
| 1332 " if (is_visible != %s)" | |
| 1333 " return false;" | |
| 1334 " observer.disconnect();" | |
| 1335 " domAutomationController.send(true);" | |
| 1336 " return true;" | |
| 1337 "}" | |
| 1338 "var observer = new MutationObserver(SendReplyIfAsExpected);" | |
| 1339 "if (!SendReplyIfAsExpected()) {" | |
| 1340 " var options = { 'attributes': true };" | |
| 1341 " observer.observe(screenElement, options);" | |
| 1342 "}", | |
| 1343 (expected_visible ? "true" : "false")), | |
| 1344 &done)); | |
| 1345 } | |
| 1346 | |
| 1347 } // namespace | |
| 1348 | |
| 1349 IN_PROC_BROWSER_TEST_F(PolicyTest, DeveloperToolsDisabledExtensionsDevMode) { | |
|
Devlin
2016/11/28 17:34:01
This is a pretty fragile browser test for a number
pmarko
2016/11/29 12:40:22
unittest: good idea, I'll check if I can add one.
Devlin
2016/11/30 19:19:50
Ah, okay, that makes more sense. If this is delib
pmarko
2016/12/02 00:20:07
Acknowledged.
| |
| 1350 // Verifies that when DeveloperToolsDisabled policy is set, the "dev mode" | |
| 1351 // in chrome://extensions-frame is also not accessible. | |
| 1352 // Also verifies that the developer mode related buttons are actively hidden | |
| 1353 // when the policy comes in. | |
| 1354 // Note: We don't test the indicator as it is tested in the policy pref test | |
| 1355 // for kDeveloperToolsDisabled. | |
| 1356 | |
| 1357 const char js_toggle_dev_mode_checkbox[] = | |
| 1358 "document.getElementById('toggle-dev-on')"; | |
| 1359 | |
| 1360 // Navigate to the extensions frame and enabled "Developer mode" | |
| 1361 ui_test_utils::NavigateToURL(browser(), | |
| 1362 GURL(chrome::kChromeUIExtensionsFrameURL)); | |
| 1363 | |
| 1364 content::WebContents* contents = | |
| 1365 browser()->tab_strip_model()->GetActiveWebContents(); | |
| 1366 EXPECT_TRUE(content::ExecuteScript( | |
| 1367 contents, base::StringPrintf("domAutomationController.send(%s.click());", | |
| 1368 js_toggle_dev_mode_checkbox))); | |
| 1369 | |
| 1370 WaitForExtensionsDevModeControlsVisibility(contents, true); | |
| 1371 | |
| 1372 // Disable devtools via policy. | |
| 1373 PolicyMap policies; | |
| 1374 policies.Set(key::kDeveloperToolsDisabled, POLICY_LEVEL_MANDATORY, | |
| 1375 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, | |
| 1376 base::MakeUnique<base::FundamentalValue>(true), nullptr); | |
| 1377 UpdateProviderPolicy(policies); | |
| 1378 | |
| 1379 // Expect devcontrols to be hidden now... | |
| 1380 WaitForExtensionsDevModeControlsVisibility(contents, false); | |
| 1381 | |
| 1382 // ... and checkbox state | |
| 1383 bool is_toggle_dev_mode_checkbox_checked = false; | |
| 1384 EXPECT_TRUE(content::ExecuteScriptAndExtractBool( | |
| 1385 contents, base::StringPrintf("domAutomationController.send(%s.checked);", | |
| 1386 js_toggle_dev_mode_checkbox), | |
| 1387 &is_toggle_dev_mode_checkbox_checked)); | |
| 1388 EXPECT_FALSE(is_toggle_dev_mode_checkbox_checked); | |
| 1389 | |
| 1390 bool is_toggle_dev_mode_checkbox_enabled = false; | |
| 1391 EXPECT_TRUE(content::ExecuteScriptAndExtractBool( | |
| 1392 contents, | |
| 1393 base::StringPrintf( | |
| 1394 "domAutomationController.send(!%s.hasAttribute('disabled'))", | |
| 1395 js_toggle_dev_mode_checkbox), | |
| 1396 &is_toggle_dev_mode_checkbox_enabled)); | |
| 1397 EXPECT_FALSE(is_toggle_dev_mode_checkbox_enabled); | |
| 1398 } | |
| 1399 | |
| 1320 // TODO(samarth): remove along with rest of NTP4 code. | 1400 // TODO(samarth): remove along with rest of NTP4 code. |
| 1321 IN_PROC_BROWSER_TEST_F(PolicyTest, DISABLED_WebStoreIconHidden) { | 1401 IN_PROC_BROWSER_TEST_F(PolicyTest, DISABLED_WebStoreIconHidden) { |
| 1322 // Verifies that the web store icons can be hidden from the new tab page. | 1402 // Verifies that the web store icons can be hidden from the new tab page. |
| 1323 | 1403 |
| 1324 // Open new tab page and look for the web store icons. | 1404 // Open new tab page and look for the web store icons. |
| 1325 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUINewTabURL)); | 1405 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUINewTabURL)); |
| 1326 content::WebContents* contents = | 1406 content::WebContents* contents = |
| 1327 browser()->tab_strip_model()->GetActiveWebContents(); | 1407 browser()->tab_strip_model()->GetActiveWebContents(); |
| 1328 | 1408 |
| 1329 #if !defined(OS_CHROMEOS) | 1409 #if !defined(OS_CHROMEOS) |
| (...skipping 2895 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4225 | 4305 |
| 4226 SetEmptyPolicy(); | 4306 SetEmptyPolicy(); |
| 4227 // Policy not set. | 4307 // Policy not set. |
| 4228 CheckSystemTimezoneAutomaticDetectionPolicyUnset(); | 4308 CheckSystemTimezoneAutomaticDetectionPolicyUnset(); |
| 4229 EXPECT_TRUE(CheckResolveTimezoneByGeolocation(true, false)); | 4309 EXPECT_TRUE(CheckResolveTimezoneByGeolocation(true, false)); |
| 4230 EXPECT_TRUE(manager->TimeZoneResolverShouldBeRunningForTests()); | 4310 EXPECT_TRUE(manager->TimeZoneResolverShouldBeRunningForTests()); |
| 4231 } | 4311 } |
| 4232 #endif // defined(OS_CHROMEOS) | 4312 #endif // defined(OS_CHROMEOS) |
| 4233 | 4313 |
| 4234 } // namespace policy | 4314 } // namespace policy |
| OLD | NEW |