Commit graph

91 commits

Author SHA1 Message Date
AmbulantRex c717425549 Remove unnecessary type extension and handle feedback. 2023-04-16 18:47:57 -06:00
AmbulantRex 92f50054b2 Add explicit mapping instead of reflection to manifest reconciliation. 2023-04-16 07:46:12 -06:00
AmbulantRex 4a0b135b7a
Merge branch 'jellyfin:master' into whitelist-dlls 2023-04-15 07:11:33 -06:00
AmbulantRex 7dd4201971 Reconcile pre-packaged meta.json against manifest on install 2023-04-09 10:53:09 -06:00
Stepan Goremykin e74630a613 Use MinBy and MaxBy 2023-04-01 23:00:51 +02:00
AmbulantRex a944352aa8 Correct style inconsistencies 2023-04-01 04:59:07 -06:00
AmbulantRex 677b1f8e34 Remove unnecessary using statements in PluginManager 2023-03-30 12:56:57 -06:00
AmbulantRex 891b9f7a99 Add DLL whitelist support for plugins 2023-03-30 08:59:21 -06:00
Patrick Barron 8cabac0cf2 Load all plugin assemblies before attempting to load types 2023-01-18 10:26:39 -05:00
Patrick Barron 79a7815be7 Use one AssemblyLoadContext per plugin 2023-01-17 18:49:00 -05:00
Patrick Barron 577d396649 Use custom plugin assembly load context 2023-01-15 17:35:36 -05:00
Patrick Barron a48f188874 Use separate assembly load contexts per plugin 2023-01-15 17:00:38 -05:00
Patrick Barron dc85d86ea1 Enable in-process restarting 2023-01-15 15:56:18 -05:00
Bond_009 b366dc2e6e Use ArgumentException.ThrowIfNullOrEmpty 2022-12-07 16:43:59 +01:00
Bond_009 52194f56b5 Replace != null with is not null 2022-12-05 15:01:13 +01:00
Bond_009 c7d50d640e Replace == null with is null 2022-12-05 15:00:20 +01:00
Cody Robibero d7f0596d5d Don't auto-update if plugin is pending restart 2022-11-11 08:32:29 -07:00
Bond_009 a9a5fcde81 Use ArgumentNullException.ThrowIfNull helper method
Did a simple search/replace on the whole repo (except the RSSDP project)
This reduces LOC and should improve performance (methods containing a throw statement don't get inlined)

```
if \((\w+) == null\)
\s+\{
\s+throw new ArgumentNullException\((.*)\);
\s+\}
```

```
ArgumentNullException.ThrowIfNull($1);
```
2022-10-06 20:21:23 +02:00
Bond_009 f50a250cd9 Optimize Guid comparisons
* Use Guid.Equals(Guid) instead of the == override
* Ban the usage of Guid.Equals(Object) to prevent accidental boxing
* Compare to default(Guid) instead of Guid.Empty
2022-02-21 14:15:09 +01:00
Bond_009 ea8f40e84a More cleanup 2021-12-27 14:20:05 +00:00
cvium d95c281142 Load all types when checking plugin DLLs 2021-11-06 22:44:05 +01:00
Bond_009 79642af3b8 Fix some warnings 2021-09-25 20:32:53 +02:00
Bond_009 e3dac4fda2 Use async FileStreams where it makes sense 2021-09-02 14:02:04 +02:00
Bond_009 6f8ccab788 Move non-jellyfin extensions to separate project 2021-06-19 18:04:46 +02:00
Bond_009 c78457e6d3 Minor fixes 2021-06-06 18:11:51 +02:00
Bond_009 0bc0601442 Fix some warnings 2021-05-28 14:33:54 +02:00
Bond_009 7e8428e588 Enable nullable reference types for Emby.Server.Implementations 2021-05-20 22:48:53 +02:00
BaronGreenback 2e98de9062
Code Clean up: Convert to null-coalescing operator ?? (#5845)
Co-authored-by: Cody Robibero <cody@robibe.ro>
Co-authored-by: Patrick Barron <18354464+barronpm@users.noreply.github.com>
2021-05-05 13:51:14 +02:00
BaronGreenback bcba501dfb minor optimization. 2021-05-02 19:25:04 +01:00
BaronGreenback 65f880be32 Keep plugin status after update. 2021-04-06 20:59:47 +01:00
Bond_009 a8ed753f6c FxCop -> Net Analyzers (part 2) 2021-03-13 22:33:28 +01:00
Bond_009 a6d0db5d04 100% branch coverage for DashboardController 2021-03-05 11:15:14 +01:00
dkanada 9bfe945f6c catch http exception and fix possible issues 2021-02-24 00:03:26 +09:00
dkanada fb2d178242
add await directive for image download
Co-authored-by: Cody Robibero <cody@robibe.ro>
2021-02-23 23:39:33 +09:00
dkanada e9030a62fb
remove useless call to dispose
Co-authored-by: Cody Robibero <cody@robibe.ro>
2021-02-23 23:37:32 +09:00
dkanada 454deece13
improve performance in the wrong place
Co-authored-by: Cody Robibero <cody@robibe.ro>
2021-02-23 23:36:49 +09:00
dkanada 64cc5889f2 add suggested changes 2021-02-23 23:11:17 +09:00
dkanada b18bb3d0de update timestamp parse for plugins 2021-02-23 19:22:20 +09:00
dkanada 9caf311925 handle plugin manifests automatically 2021-02-12 22:33:10 +09:00
Bond_009 13c1c2815f Add regression test for PluginManager.SaveManifest 2021-02-08 17:10:20 +01:00
cvium 311b2f5012 Exclude BOM when writing meta.json plugin manifest 2021-02-08 15:38:06 +01:00
dkanada 54a3ab15a3
Merge pull request #5005 from jellyfin/bytes
JsonSerializer deserialize from bytes where possible
2021-02-05 11:47:06 +09:00
David Ullmer b014f2309d
Update Emby.Server.Implementations/Plugins/PluginManager.cs
Co-authored-by: Claus Vium <cvium@users.noreply.github.com>
2021-01-25 09:44:06 +01:00
David 677bba742e Remove try-catch nesting 2021-01-24 13:34:22 +01:00
David 80f3e20394 Change plugin error message 2021-01-24 13:22:04 +01:00
David Ullmer 4adbbb9f51 Catch TypeLoadException during plugin loading 2021-01-24 00:58:52 +01:00
BaronGreenback 89046e1d97 Bug fixes 2021-01-19 21:15:40 +00:00
Bond_009 1fdd2d6e05 Handle IO errors in LoadManifest 2021-01-12 16:03:13 +01:00
Bond_009 1ea2b200c0 JsonSerializer deserialize from bytes where possible
This is faster and uses way less memory
```
BenchmarkDotNet=v0.12.1, OS=fedora 32
Intel Core i7-6700HQ CPU 2.60GHz (Skylake), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=5.0.100
  [Host]     : .NET Core 5.0.0 (CoreCLR 5.0.20.51904, CoreFX 5.0.20.51904), X64 RyuJIT
  DefaultJob : .NET Core 5.0.0 (CoreCLR 5.0.20.51904, CoreFX 5.0.20.51904), X64 RyuJIT

| Method |     Mean |   Error |  StdDev |   Gen 0 | Gen 1 | Gen 2 | Allocated |
|------- |---------:|--------:|--------:|--------:|------:|------:|----------:|
|  Bytes | 158.4 us | 2.56 us | 2.14 us | 16.8457 |     - |     - |  52.08 KB |
| String | 172.8 us | 0.78 us | 0.70 us | 41.5039 |     - |     - | 127.82 KB |
| Custom | 155.5 us | 2.95 us | 2.76 us | 10.0098 |     - |     - |  31.27 KB |
```
2021-01-12 15:28:02 +01:00
BaronGreenback 149c2b2169 Added referenced assembly failure detection, and DI failure protection. 2020-12-31 11:39:34 +00:00