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

Unified Diff: tools/testing/dart/reset_safari.dart

Issue 2065053003: Revert "Make Safari tests more robust." (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/testing/dart/browser_controller.dart ('k') | tools/testing/dart/test_configurations.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/testing/dart/reset_safari.dart
diff --git a/tools/testing/dart/reset_safari.dart b/tools/testing/dart/reset_safari.dart
deleted file mode 100644
index e1886a5442ca861c7248ae4a9daffe21f0bbd88a..0000000000000000000000000000000000000000
--- a/tools/testing/dart/reset_safari.dart
+++ /dev/null
@@ -1,227 +0,0 @@
-// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-/// Helper program for killing and resetting all Safari settings to a known
-/// state that works well for testing dart2js output in Safari.
-///
-/// Warning: this will delete all your Safari settings and bookmarks.
-library testing.reset_safari;
-
-import 'dart:async' show
- Future,
- Timer;
-
-import 'dart:io' show
- Directory,
- File,
- Platform,
- Process,
- ProcessResult;
-
-const String defaultSafariBundleLocation = "/Applications/Safari.app/";
-
-const String relativeSafariLocation = "Contents/MacOS/Safari";
-
-const String lsofLocation = "/usr/sbin/lsof";
-
-const String killLocation = "/bin/kill";
-
-const String pkillLocation = "/usr/bin/pkill";
-
-const String safari = "com.apple.Safari";
-
-const String defaultsLocation = "/usr/bin/defaults";
-
-final List<String> safariSettings = <String>[
- "Library/Caches/$safari",
- "Library/Safari",
- "Library/Saved Application State/$safari.savedState",
- "Library/Caches/Metadata/Safari",
- "Library/Preferences/$safari.plist",
-];
-
-const Duration defaultPollDelay = const Duration(milliseconds: 1);
-
-final String cpgi = "$safari.ContentPageGroupIdentifier";
-
-final String knownSafariPreference = '''
-{
- DefaultBrowserPromptingState2 = 2;
- StartPageViewControllerMode = 0;
- TestDriveOriginBrowser = 1;
- TestDriveUserDecision = 2;
- TestDriveState = 3;
- AlwaysRestoreSessionAtLaunch = 0;
- NewTabBehavior = 1;
- NewWindowBehavior = 1;
- LastSafariVersionWithWelcomePage = "9.0";
- OpenNewTabsInFront = 0;
- TabCreationPolicy = 0;
-
- IncludeDevelopMenu = 1;
- WebKitDeveloperExtrasEnabledPreferenceKey = 1;
- "$cpgi.WebKit2DeveloperExtrasEnabled" = 1;
-
- AutoFillCreditCardData = 0;
- AutoFillMiscellaneousForms = 0;
- AutoFillPasswords = 0;
-
- SuppressSearchSuggestions = 1;
-
- PreloadTopHit = 0;
- ShowFavoritesUnderSmartSearchField = 0;
- WebsiteSpecificSearchEnabled = 0;
-
- WarnAboutFraudulentWebsites = 0;
-
-
- WebKitJavaScriptEnabled = 1;
- "$cpgi.WebKit2JavaScriptEnabled" = 1;
-
- WebKitJavaScriptCanOpenWindowsAutomatically = 1;
- "$cpgi.WebKit2JavaScriptCanOpenWindowsAutomatically" = 1;
-
- "$cpgi.WebKit2WebGLEnabled" = 1;
- WebGLDefaultLoadPolicy = WebGLPolicyAllowNoSecurityRestrictions;
-
- "$cpgi.WebKit2PluginsEnabled" = 0;
-
- BlockStoragePolicy = 1;
- WebKitStorageBlockingPolicy = 0;
- "$cpgi.WebKit2StorageBlockingPolicy" = 0;
-
-
- SafariGeolocationPermissionPolicy = 0;
-
- CanPromptForPushNotifications = 0;
-
- InstallExtensionUpdatesAutomatically = 0;
-
- ShowFullURLInSmartSearchField = 1;
-
- "$cpgi.WebKit2PlugInSnapshottingEnabled" = 0;
-}
-''';
-
-Future<Null> get pollDelay => new Future.delayed(defaultPollDelay);
-
-String signalArgument(
- String defaultSignal,
- {bool force: false,
- bool testOnly: false}) {
- if (force && testOnly) {
- throw new ArgumentError("[force] and [testOnly] can't both be true.");
- }
- if (force) return "-KILL";
- if (testOnly) return "-0";
- return defaultSignal;
-}
-
-Future<int> kill(
- List<String> pids,
- {bool force: false,
- bool testOnly: false}) async {
- List<String> arguments =
- <String>[signalArgument("-TERM", force: force, testOnly: testOnly)]
- ..addAll(pids);
- ProcessResult result = await Process.run(killLocation, arguments);
- return result.exitCode;
-}
-
-Future<int> pkill(
- String pattern,
- {bool force: false,
- bool testOnly: false}) async {
- List<String> arguments = <String>[
- signalArgument("-HUP", force: force, testOnly: testOnly),
- pattern];
- ProcessResult result = await Process.run(pkillLocation, arguments);
- return result.exitCode;
-}
-
-Uri validatedBundleName(Uri bundle) {
- if (bundle == null) return Uri.base.resolve(defaultSafariBundleLocation);
- if (!bundle.path.endsWith("/")) {
- throw new ArgumentError(
- "Bundle ('$bundle') must end with a slash ('/').");
- }
- return bundle;
-}
-
-Future<Null> killSafari({Uri bundle}) async {
- bundle = validatedBundleName(bundle);
- Uri safariBinary = bundle.resolve(relativeSafariLocation);
- ProcessResult result = await Process.run(
- lsofLocation, ["-t", safariBinary.toFilePath()]);
- if (result.exitCode == 0) {
- String stdout = result.stdout;
- List<String> pids = new List<String>.from(
- stdout.split("\n").where((String line) => !line.isEmpty));
- Timer timer = new Timer(const Duration(seconds: 10), () {
- print("Kill -9 Safari $pids");
- kill(pids, force: true);
- });
- int exitCode = await kill(pids);
- while (exitCode == 0) {
- await pollDelay;
- print("Polling Safari $pids");
- exitCode = await kill(pids, testOnly: true);
- }
- timer.cancel();
- }
- Timer timer = new Timer(const Duration(seconds: 10), () {
- print("Kill -9 $safari");
- pkill(safari, force: true);
- });
- int exitCode = await pkill(safari);
- while (exitCode == 0) {
- await pollDelay;
- print("Polling $safari");
- exitCode = await pkill(safari, testOnly: true);
- }
- timer.cancel();
-}
-
-Future<Null> deleteIfExists(Uri uri) async {
- Directory directory = new Directory.fromUri(uri);
- if (await directory.exists()) {
- print("Deleting directory '$uri'.");
- await directory.delete(recursive: true);
- } else {
- File file = new File.fromUri(uri);
- if (await file.exists()) {
- print("Deleting file '$uri'.");
- await file.delete();
- } else {
- print("File '$uri' not found.");
- }
- }
-}
-
-Future<Null> resetSafariSettings() async {
- String home = Platform.environment["HOME"];
- if (!home.endsWith("/")) {
- home = "$home/";
- }
- Uri homeDirectory = Uri.base.resolve(home);
- for (String setting in safariSettings) {
- await deleteIfExists(homeDirectory.resolve(setting));
- }
- ProcessResult result = await Process.run(
- defaultsLocation, <String>["write", safari, knownSafariPreference]);
- if (result.exitCode != 0) {
- throw "Unable to reset Safari settings: ${result.stdout}${result.stderr}";
- }
-}
-
-Future<Null> killAndResetSafari({Uri bundle}) async {
- bundle = validatedBundleName(bundle);
- await killSafari(bundle: bundle);
- await resetSafariSettings();
-}
-
-Future<Null> main() async {
- await killAndResetSafari();
-}
« no previous file with comments | « tools/testing/dart/browser_controller.dart ('k') | tools/testing/dart/test_configurations.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698