| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
|
|
||
| // -Verb and -WindowStyle are not supported on non-Windows platforms as well as Windows headless SKUs | ||
| if (_isOnFullWinSku) | ||
| if (Platform.IsWindowsDesktop) |
There was a problem hiding this comment.
Maybe cache the value in a variable instead of looking it up twice in the same method.
Sorry, something went wrong.
There was a problem hiding this comment.
Updated the code to cache the value in Platform.IsWindowsDesktop.
Sorry, something went wrong.
There was a problem hiding this comment.
Dongbo Wang (@daxian-dbw) This does not seem to be fixed.
Sorry, something went wrong.
There was a problem hiding this comment.
The value is cached in a static field in Platform.IsWindowsDesktop property.
Sorry, something went wrong.
| #else | ||
| ShellExecuteHelper.Start(invokeProcess.StartInfo); | ||
| // Use ShellExecute when it's not a headless SKU | ||
| invokeProcess.StartInfo.UseShellExecute = !Platform.IsNanoServer && !Platform.IsIoT; |
There was a problem hiding this comment.
Can we use Platform.IsWindowsDesktop here?
Sorry, something went wrong.
There was a problem hiding this comment.
Sure. Will update the code.
Sorry, something went wrong.
| xdg-mime default nativeCommandProcessor.desktop text/plain | ||
| } | ||
| } | ||
| elseif ($IsWindows) { |
There was a problem hiding this comment.
We can use Platform.IsWindowsDesktop if it is made public.
Sorry, something went wrong.
There was a problem hiding this comment.
Good point. Will update.
Sorry, something went wrong.
| & $dllFile | ||
| throw "No Exception!" | ||
| } catch { | ||
| $_.FullyQualifiedErrorId | should be "NativeCommandFailed" |
There was a problem hiding this comment.
Use ShouldBeErroId. Example :
Sorry, something went wrong.
There was a problem hiding this comment.
Fixed.
Sorry, something went wrong.
| } | ||
| } | ||
|
|
||
| internal static bool IsWindowsDesktop |
There was a problem hiding this comment.
Should we consider making this public? This will be very useful in tests.
Sorry, something went wrong.
There was a problem hiding this comment.
Done.
Sorry, something went wrong.
| & $TestFile | ||
| $startTime = Get-Date | ||
| # It may take time for handler to start | ||
| while (((Get-Date) - $startTime).TotalSeconds -lt 10 -and (-not (Test-Path "$HOME/nativeCommandProcessor.Success"))) { |
There was a problem hiding this comment.
Polling for a file can be a common pattern. Consider implementing a generic file watcher function in HelpersCommon.psm1
Sorry, something went wrong.
There was a problem hiding this comment.
Sounds reasonable. Opened #4524. Will address in a separate PR.
Sorry, something went wrong.
| Get-Process -Name notepad | Stop-Process -Force | ||
| Invoke-Item -Path $notepad | ||
| $notepadProcess = Get-Process -Name notepad | ||
| $notepadProcess.Name | Should Be notepad |
There was a problem hiding this comment.
Maybe use quotas - "notepad"?
Sorry, something went wrong.
There was a problem hiding this comment.
OK, will update.
Sorry, something went wrong.
| Invoke-Item -Path $notepad | ||
| $notepadProcess = Get-Process -Name notepad | ||
| $notepadProcess.Name | Should Be notepad | ||
| Stop-Process -InputObject $notepadProcess |
There was a problem hiding this comment.
Should we move this in AfterAll?
Sorry, something went wrong.
There was a problem hiding this comment.
I think it should stay here, as it's specific to this test when running on full desktop.
Sorry, something went wrong.
There was a problem hiding this comment.
I don't like commands after Should 😄
Sorry, something went wrong.
|
There are 2 failures in AppVeyor feature test run and both are related to Invoke-RestMethod, not related to the changes made in this PR. So the feature test run is good. |
Sorry, something went wrong.
|
Aditya Patwardhan (@adityapatwardhan) Ilya (@iSazonov) Your comments have been addressed. Please take another look. Thanks! |
Sorry, something went wrong.
|
|
||
| // -Verb and -WindowStyle are not supported on non-Windows platforms as well as Windows headless SKUs | ||
| if (_isOnFullWinSku) | ||
| if (Platform.IsWindowsDesktop) |
There was a problem hiding this comment.
Dongbo Wang (@daxian-dbw) This does not seem to be fixed.
Sorry, something went wrong.
There was a problem hiding this comment.
LGTM
Sorry, something went wrong.
There was a problem hiding this comment.
Since the PR is a cleanup we could add fix - we use "UseShellExecute" constant three times in Process.cs and could move it to private static variable.
Sorry, something went wrong.
| } | ||
| catch (Exception) | ||
| { | ||
| // Do the cleanup and rethrow the exception |
There was a problem hiding this comment.
It is obvious comment. Please add in the comment why we do this.
Sorry, something went wrong.
There was a problem hiding this comment.
Fixed. More comment added to Cleanup() to explain what we are cleaning up.
Sorry, something went wrong.
There was a problem hiding this comment.
Closed.
Sorry, something went wrong.
| this.Command.Context.EngineHostInterface.NotifyEndApplication(); | ||
| } | ||
| // Do the clean up... | ||
| // Do the cleanup... |
There was a problem hiding this comment.
Again obvious comment. Please remove or enhance.
Sorry, something went wrong.
There was a problem hiding this comment.
Fixed.
Sorry, something went wrong.
There was a problem hiding this comment.
Closed.
Sorry, something went wrong.
| #else | ||
| if (Platform.IsNanoServer) | ||
| return false; | ||
| if (!Platform.IsWindowsDesktop) { return false; } |
There was a problem hiding this comment.
Formatting - Can we use the one line pattern for if?
Sorry, something went wrong.
There was a problem hiding this comment.
Yes, as long as the if block is a single simple statement like this one.
Sorry, something went wrong.
There was a problem hiding this comment.
Closed.
Sorry, something went wrong.
| Get-Process -Name notepad | Stop-Process -Force | ||
| Invoke-Item -Path $notepad | ||
| $notepadProcess = Get-Process -Name notepad | ||
| $notepadProcess.Name | Should Be "notepad" |
There was a problem hiding this comment.
We use "notepad" in three lines (66, 68, 69 and maybe 65) so maybe use a variable?
Sorry, something went wrong.
There was a problem hiding this comment.
Fixed.
Sorry, something went wrong.
There was a problem hiding this comment.
Closed.
Sorry, something went wrong.
|
The "Default" constant string is used in 9 places and should be cleaned too (change to const variable, instead of static). But I think they should be in separate PRs as they will introduce too many diffs and make it hard to see the focus of this PR. |
Sorry, something went wrong.
There was a problem hiding this comment.
LGTM
Sorry, something went wrong.
|
LGTM. |
Sorry, something went wrong.
|
Ilya (@iSazonov) Aditya Patwardhan (@adityapatwardhan) Thanks for the review! Aditya, can you please merge this PR? My follow-up work on the file watcher test helper needs to update the tests in this PR (#4524). |
Sorry, something went wrong.
…Shell#4523) * Clean up ShellExecuteHelper and enable ShellExecute in NativeCommandProcessor * Minor fix * [Feature] Fix NativeCommandProcessor to clean up in case an exception is thron * [Feature] Update tests * [Feature] Address comments * address one more comment * Address some more comments
| Back | FazBrowse Home | New Git URL |
Fix #4499
This PR includes following major changes:
Note that, UseShellExecute works as full .NET on windows desktop, but it doesn't work properly on Unix and the improvement work is tracked by dotnet/corefx#19956. So on Linux/OSX, we still need to rely on xdg-open/open