diff --git a/lib/documentation.dart b/lib/documentation.dart index 5c53fa8bc..a49dad76d 100644 --- a/lib/documentation.dart +++ b/lib/documentation.dart @@ -67,7 +67,7 @@ class DocHandler { dartServices .document(request) - .timeout(serviceCallTimeout) + .timeout(documentServiceTimeout) .then((DocumentResponse result) { final hash = result.hashCode; // If nothing has changed, don't need to parse Markdown and diff --git a/lib/embed.dart b/lib/embed.dart index a2e758be1..e4de633a8 100644 --- a/lib/embed.dart +++ b/lib/embed.dart @@ -872,7 +872,7 @@ class Embed extends EditorUi { try { formatButton.disabled = true; final result = - await dartServices.format(input).timeout(serviceCallTimeout); + await dartServices.format(input).timeout(formatServiceTimeout); busyLight.reset(); formatButton.disabled = false; diff --git a/lib/parameter_popup.dart b/lib/parameter_popup.dart index 632a81b60..5a8f1f4f7 100644 --- a/lib/parameter_popup.dart +++ b/lib/parameter_popup.dart @@ -89,7 +89,7 @@ class ParameterPopup { dartServices .document(input) - .timeout(serviceCallTimeout) + .timeout(documentServiceTimeout) .then((DocumentResponse result) { if (!result.info.containsKey('parameters')) { remove(); diff --git a/lib/playground.dart b/lib/playground.dart index 9d7b4f836..7ac64ef18 100644 --- a/lib/playground.dart +++ b/lib/playground.dart @@ -811,7 +811,7 @@ class Playground extends EditorUi implements GistContainer, GistController { final input = SourceRequest()..source = originalSource; _formatButton.disabled = true; - final request = dartServices.format(input).timeout(serviceCallTimeout); + final request = dartServices.format(input).timeout(formatServiceTimeout); return request.then((FormatResponse result) { busyLight.reset(); _formatButton.disabled = false; diff --git a/lib/services/common.dart b/lib/services/common.dart index e4a264683..2d938bf7c 100644 --- a/lib/services/common.dart +++ b/lib/services/common.dart @@ -51,8 +51,13 @@ const masterServerUrlEnvironmentVar = 'MASTER_SERVER_URL'; /// The URL of the "Flutter master" back-end server. const masterServerUrl = String.fromEnvironment(masterServerUrlEnvironmentVar); -const Duration serviceCallTimeout = Duration(seconds: 10); -const Duration longServiceCallTimeout = Duration(seconds: 60); +// Shorter service call timeouts. +const Duration documentServiceTimeout = Duration(seconds: 10); +const Duration formatServiceTimeout = Duration(seconds: 10); +const Duration analyzeServiceTimeout = Duration(seconds: 10); + +// Longer service call timeouts. +const Duration compileServiceTimeout = Duration(seconds: 60); class Lines { final _starts = []; diff --git a/lib/sharing/editor_ui.dart b/lib/sharing/editor_ui.dart index 87e763c59..92dabaa21 100644 --- a/lib/sharing/editor_ui.dart +++ b/lib/sharing/editor_ui.dart @@ -146,7 +146,7 @@ abstract class EditorUi { final lines = Lines(input.source); - final request = dartServices.analyze(input).timeout(serviceCallTimeout); + final request = dartServices.analyze(input).timeout(analyzeServiceTimeout); analysisRequest = request; try { @@ -210,7 +210,7 @@ abstract class EditorUi { if (shouldCompileDDC) { final response = await dartServices .compileDDC(compileRequest) - .timeout(longServiceCallTimeout); + .timeout(compileServiceTimeout); _sendCompilationTiming(compilationTimer.elapsedMilliseconds); clearOutput(); @@ -231,7 +231,7 @@ abstract class EditorUi { } else { final response = await dartServices .compile(compileRequest) - .timeout(longServiceCallTimeout); + .timeout(compileServiceTimeout); _sendCompilationTiming(compilationTimer.elapsedMilliseconds); clearOutput(); diff --git a/lib/workshops.dart b/lib/workshops.dart index ba42fe0e6..b52ed9a54 100644 --- a/lib/workshops.dart +++ b/lib/workshops.dart @@ -518,7 +518,7 @@ class WorkshopUi extends EditorUi { final input = SourceRequest()..source = originalSource; formatButton.disabled = true; - final request = dartServices.format(input).timeout(serviceCallTimeout); + final request = dartServices.format(input).timeout(formatServiceTimeout); return request.then((FormatResponse result) { busyLight.reset(); formatButton.disabled = false;