├── .editorconfig
├── .gitignore
├── Blazor.BrowserExtension.Samples.sln
├── CONTRIBUTING.md
├── Directory.Packages.props
├── LICENSE
├── Messaging
├── Demo.gif
├── README.md
├── dist
│ └── browserextension
│ │ ├── Messaging.styles.css
│ │ ├── app.js
│ │ ├── content
│ │ ├── BackgroundWorker.js
│ │ ├── Blazor.BrowserExtension
│ │ │ ├── BackgroundWorkerRunner.js
│ │ │ ├── Blazor.BrowserExtension.lib.module.js
│ │ │ ├── ContentScript.js
│ │ │ ├── Core.js
│ │ │ ├── CoreInternal.js
│ │ │ └── lib
│ │ │ │ ├── browser-polyfill.js
│ │ │ │ ├── browser-polyfill.js.map
│ │ │ │ ├── browser-polyfill.min.js
│ │ │ │ ├── browser-polyfill.min.js.map
│ │ │ │ ├── decode.js
│ │ │ │ └── decode.min.js
│ │ ├── JsBind.Net
│ │ │ └── JsBindNet.js
│ │ └── browserextension.config.json
│ │ ├── contentscript.html
│ │ ├── css
│ │ └── app.css
│ │ ├── favicon.ico
│ │ ├── framework
│ │ ├── Blazor.BrowserExtension.wasm.br
│ │ ├── JsBind.Net.Extensions.DependencyInjection.wasm.br
│ │ ├── JsBind.Net.wasm.br
│ │ ├── Messaging.wasm.br
│ │ ├── Microsoft.AspNetCore.Components.Web.wasm.br
│ │ ├── Microsoft.AspNetCore.Components.WebAssembly.wasm.br
│ │ ├── Microsoft.AspNetCore.Components.wasm.br
│ │ ├── Microsoft.Extensions.Configuration.Abstractions.wasm.br
│ │ ├── Microsoft.Extensions.Configuration.Json.wasm.br
│ │ ├── Microsoft.Extensions.Configuration.wasm.br
│ │ ├── Microsoft.Extensions.DependencyInjection.Abstractions.wasm.br
│ │ ├── Microsoft.Extensions.DependencyInjection.wasm.br
│ │ ├── Microsoft.Extensions.Logging.Abstractions.wasm.br
│ │ ├── Microsoft.Extensions.Logging.wasm.br
│ │ ├── Microsoft.Extensions.Options.wasm.br
│ │ ├── Microsoft.Extensions.Primitives.wasm.br
│ │ ├── Microsoft.JSInterop.WebAssembly.wasm.br
│ │ ├── Microsoft.JSInterop.wasm.br
│ │ ├── System.Collections.Concurrent.wasm.br
│ │ ├── System.Collections.Immutable.wasm.br
│ │ ├── System.Collections.wasm.br
│ │ ├── System.ComponentModel.wasm.br
│ │ ├── System.Console.wasm.br
│ │ ├── System.IO.Pipelines.wasm.br
│ │ ├── System.Linq.Expressions.wasm.br
│ │ ├── System.Linq.wasm.br
│ │ ├── System.Memory.wasm.br
│ │ ├── System.Net.Http.wasm.br
│ │ ├── System.Net.Primitives.wasm.br
│ │ ├── System.Private.CoreLib.wasm.br
│ │ ├── System.Private.Uri.wasm.br
│ │ ├── System.Runtime.InteropServices.JavaScript.wasm.br
│ │ ├── System.Runtime.wasm.br
│ │ ├── System.Text.Encodings.Web.wasm.br
│ │ ├── System.Text.Json.wasm.br
│ │ ├── System.Text.RegularExpressions.wasm.br
│ │ ├── WebExtensions.Net.Extensions.DependencyInjection.wasm.br
│ │ ├── WebExtensions.Net.wasm.br
│ │ ├── blazor.boot.json
│ │ ├── blazor.webassembly.js
│ │ ├── dotnet.js
│ │ ├── dotnet.native.8.0.4.yk09ax7arl.js
│ │ ├── dotnet.native.js
│ │ ├── dotnet.native.wasm.br
│ │ ├── dotnet.runtime.8.0.4.ogva3chynz.js
│ │ ├── dotnet.runtime.js
│ │ ├── icudt_CJK.dat.br
│ │ ├── icudt_EFIGS.dat.br
│ │ └── icudt_no_CJK.dat.br
│ │ ├── index.html
│ │ ├── manifest.json
│ │ ├── options.html
│ │ └── popup.html
└── src
│ ├── App.razor
│ ├── BackgroundWorker.cs
│ ├── Messages
│ ├── Message.cs
│ └── MessageTarget.cs
│ ├── Messaging.csproj
│ ├── Pages
│ ├── ContentScript.razor
│ ├── ContentScript.razor.css
│ ├── Index.razor
│ ├── Options.razor
│ └── Popup.razor
│ ├── Program.cs
│ ├── Properties
│ └── launchSettings.json
│ ├── Shared
│ └── MainLayout.razor
│ ├── _Imports.razor
│ └── wwwroot
│ ├── app.js
│ ├── css
│ └── app.css
│ ├── favicon.ico
│ ├── index.html
│ └── manifest.json
├── NewTabPage
├── Demo.gif
├── README.md
├── dist
│ └── browserextension
│ │ ├── content
│ │ ├── Blazor.BrowserExtension
│ │ │ ├── BackgroundWorkerRunner.js
│ │ │ ├── Blazor.BrowserExtension.lib.module.js
│ │ │ ├── ContentScript.js
│ │ │ ├── Core.js
│ │ │ ├── CoreInternal.js
│ │ │ └── lib
│ │ │ │ ├── browser-polyfill.js
│ │ │ │ ├── browser-polyfill.js.map
│ │ │ │ ├── browser-polyfill.min.js
│ │ │ │ ├── browser-polyfill.min.js.map
│ │ │ │ ├── decode.js
│ │ │ │ └── decode.min.js
│ │ ├── JsBind.Net
│ │ │ └── JsBindNet.js
│ │ └── browserextension.config.json
│ │ ├── css
│ │ └── app.css
│ │ ├── favicon.ico
│ │ ├── framework
│ │ ├── Blazor.BrowserExtension.wasm.br
│ │ ├── JsBind.Net.Extensions.DependencyInjection.wasm.br
│ │ ├── JsBind.Net.wasm.br
│ │ ├── Microsoft.AspNetCore.Components.Web.wasm.br
│ │ ├── Microsoft.AspNetCore.Components.WebAssembly.wasm.br
│ │ ├── Microsoft.AspNetCore.Components.wasm.br
│ │ ├── Microsoft.Extensions.Configuration.Abstractions.wasm.br
│ │ ├── Microsoft.Extensions.Configuration.Json.wasm.br
│ │ ├── Microsoft.Extensions.Configuration.wasm.br
│ │ ├── Microsoft.Extensions.DependencyInjection.Abstractions.wasm.br
│ │ ├── Microsoft.Extensions.DependencyInjection.wasm.br
│ │ ├── Microsoft.Extensions.Logging.Abstractions.wasm.br
│ │ ├── Microsoft.Extensions.Logging.wasm.br
│ │ ├── Microsoft.Extensions.Options.wasm.br
│ │ ├── Microsoft.Extensions.Primitives.wasm.br
│ │ ├── Microsoft.JSInterop.WebAssembly.wasm.br
│ │ ├── Microsoft.JSInterop.wasm.br
│ │ ├── NewTabPage.wasm.br
│ │ ├── System.Collections.Concurrent.wasm.br
│ │ ├── System.Collections.Immutable.wasm.br
│ │ ├── System.Collections.wasm.br
│ │ ├── System.ComponentModel.wasm.br
│ │ ├── System.Console.wasm.br
│ │ ├── System.IO.Pipelines.wasm.br
│ │ ├── System.Linq.Expressions.wasm.br
│ │ ├── System.Linq.wasm.br
│ │ ├── System.Memory.wasm.br
│ │ ├── System.Private.CoreLib.wasm.br
│ │ ├── System.Private.Uri.wasm.br
│ │ ├── System.Runtime.InteropServices.JavaScript.wasm.br
│ │ ├── System.Runtime.wasm.br
│ │ ├── System.Text.Encodings.Web.wasm.br
│ │ ├── System.Text.Json.wasm.br
│ │ ├── System.Text.RegularExpressions.wasm.br
│ │ ├── WebExtensions.Net.Extensions.DependencyInjection.wasm.br
│ │ ├── WebExtensions.Net.wasm.br
│ │ ├── blazor.boot.json
│ │ ├── blazor.webassembly.js
│ │ ├── dotnet.js
│ │ ├── dotnet.native.8.0.4.0wznhhvnr6.js
│ │ ├── dotnet.native.js
│ │ ├── dotnet.native.wasm.br
│ │ ├── dotnet.runtime.8.0.4.ogva3chynz.js
│ │ ├── dotnet.runtime.js
│ │ ├── icudt_CJK.dat.br
│ │ ├── icudt_EFIGS.dat.br
│ │ └── icudt_no_CJK.dat.br
│ │ ├── index.html
│ │ ├── manifest.json
│ │ └── newtab.html
└── src
│ ├── App.razor
│ ├── NewTabPage.csproj
│ ├── Pages
│ └── NewTab.razor
│ ├── Program.cs
│ ├── Properties
│ └── launchSettings.json
│ ├── Shared
│ └── MainLayout.razor
│ ├── _Imports.razor
│ └── wwwroot
│ ├── css
│ └── app.css
│ ├── favicon.ico
│ ├── index.html
│ └── manifest.json
├── README.md
├── SidebarUsingContentScripts
├── Demo.gif
├── README.md
├── dist
│ └── browserextension
│ │ ├── SidebarUsingContentScripts.styles.css
│ │ ├── app.js
│ │ ├── content
│ │ ├── Blazor.BrowserExtension
│ │ │ ├── BackgroundWorkerRunner.js
│ │ │ ├── Blazor.BrowserExtension.lib.module.js
│ │ │ ├── ContentScript.js
│ │ │ ├── Core.js
│ │ │ ├── CoreInternal.js
│ │ │ └── lib
│ │ │ │ ├── browser-polyfill.js
│ │ │ │ ├── browser-polyfill.js.map
│ │ │ │ ├── browser-polyfill.min.js
│ │ │ │ ├── browser-polyfill.min.js.map
│ │ │ │ ├── decode.js
│ │ │ │ └── decode.min.js
│ │ ├── JsBind.Net
│ │ │ └── JsBindNet.js
│ │ └── browserextension.config.json
│ │ ├── contentscript.html
│ │ ├── css
│ │ └── app.css
│ │ ├── favicon.ico
│ │ ├── framework
│ │ ├── Blazor.BrowserExtension.wasm.br
│ │ ├── JsBind.Net.Extensions.DependencyInjection.wasm.br
│ │ ├── JsBind.Net.wasm.br
│ │ ├── Microsoft.AspNetCore.Components.Web.wasm.br
│ │ ├── Microsoft.AspNetCore.Components.WebAssembly.wasm.br
│ │ ├── Microsoft.AspNetCore.Components.wasm.br
│ │ ├── Microsoft.Extensions.Configuration.Abstractions.wasm.br
│ │ ├── Microsoft.Extensions.Configuration.Json.wasm.br
│ │ ├── Microsoft.Extensions.Configuration.wasm.br
│ │ ├── Microsoft.Extensions.DependencyInjection.Abstractions.wasm.br
│ │ ├── Microsoft.Extensions.DependencyInjection.wasm.br
│ │ ├── Microsoft.Extensions.Logging.Abstractions.wasm.br
│ │ ├── Microsoft.Extensions.Logging.wasm.br
│ │ ├── Microsoft.Extensions.Options.wasm.br
│ │ ├── Microsoft.Extensions.Primitives.wasm.br
│ │ ├── Microsoft.JSInterop.WebAssembly.wasm.br
│ │ ├── Microsoft.JSInterop.wasm.br
│ │ ├── SidebarUsingContentScripts.wasm.br
│ │ ├── System.Collections.Concurrent.wasm.br
│ │ ├── System.Collections.Immutable.wasm.br
│ │ ├── System.Collections.wasm.br
│ │ ├── System.ComponentModel.wasm.br
│ │ ├── System.Console.wasm.br
│ │ ├── System.IO.Pipelines.wasm.br
│ │ ├── System.Linq.Expressions.wasm.br
│ │ ├── System.Linq.wasm.br
│ │ ├── System.Memory.wasm.br
│ │ ├── System.Private.CoreLib.wasm.br
│ │ ├── System.Private.Uri.wasm.br
│ │ ├── System.Runtime.InteropServices.JavaScript.wasm.br
│ │ ├── System.Runtime.wasm.br
│ │ ├── System.Text.Encodings.Web.wasm.br
│ │ ├── System.Text.Json.wasm.br
│ │ ├── System.Text.RegularExpressions.wasm.br
│ │ ├── WebExtensions.Net.Extensions.DependencyInjection.wasm.br
│ │ ├── WebExtensions.Net.wasm.br
│ │ ├── blazor.boot.json
│ │ ├── blazor.webassembly.js
│ │ ├── dotnet.js
│ │ ├── dotnet.native.8.0.4.5oc0uk492x.js
│ │ ├── dotnet.native.js
│ │ ├── dotnet.native.wasm.br
│ │ ├── dotnet.runtime.8.0.4.ogva3chynz.js
│ │ ├── dotnet.runtime.js
│ │ ├── icudt_CJK.dat.br
│ │ ├── icudt_EFIGS.dat.br
│ │ └── icudt_no_CJK.dat.br
│ │ ├── index.html
│ │ └── manifest.json
└── src
│ ├── App.razor
│ ├── Pages
│ ├── ContentScript.razor
│ └── ContentScript.razor.css
│ ├── Program.cs
│ ├── Properties
│ └── launchSettings.json
│ ├── Shared
│ └── MainLayout.razor
│ ├── SidebarUsingContentScripts.csproj
│ ├── _Imports.razor
│ └── wwwroot
│ ├── app.js
│ ├── css
│ └── app.css
│ ├── favicon.ico
│ ├── index.html
│ └── manifest.json
├── SidebarUsingIframe
├── Demo.gif
├── README.md
├── dist
│ └── browserextension
│ │ ├── ContentScript.css
│ │ ├── ContentScript.js
│ │ ├── SidebarUsingIframe.styles.css
│ │ ├── content
│ │ ├── Blazor.BrowserExtension
│ │ │ ├── BackgroundWorkerRunner.js
│ │ │ ├── Blazor.BrowserExtension.lib.module.js
│ │ │ ├── ContentScript.js
│ │ │ ├── Core.js
│ │ │ ├── CoreInternal.js
│ │ │ └── lib
│ │ │ │ ├── browser-polyfill.js
│ │ │ │ ├── browser-polyfill.js.map
│ │ │ │ ├── browser-polyfill.min.js
│ │ │ │ ├── browser-polyfill.min.js.map
│ │ │ │ ├── decode.js
│ │ │ │ └── decode.min.js
│ │ ├── JsBind.Net
│ │ │ └── JsBindNet.js
│ │ └── browserextension.config.json
│ │ ├── contentscript.html
│ │ ├── css
│ │ └── app.css
│ │ ├── favicon.ico
│ │ ├── framework
│ │ ├── Blazor.BrowserExtension.wasm.br
│ │ ├── JsBind.Net.Extensions.DependencyInjection.wasm.br
│ │ ├── JsBind.Net.wasm.br
│ │ ├── Microsoft.AspNetCore.Components.Web.wasm.br
│ │ ├── Microsoft.AspNetCore.Components.WebAssembly.wasm.br
│ │ ├── Microsoft.AspNetCore.Components.wasm.br
│ │ ├── Microsoft.Extensions.Configuration.Abstractions.wasm.br
│ │ ├── Microsoft.Extensions.Configuration.Json.wasm.br
│ │ ├── Microsoft.Extensions.Configuration.wasm.br
│ │ ├── Microsoft.Extensions.DependencyInjection.Abstractions.wasm.br
│ │ ├── Microsoft.Extensions.DependencyInjection.wasm.br
│ │ ├── Microsoft.Extensions.Logging.Abstractions.wasm.br
│ │ ├── Microsoft.Extensions.Logging.wasm.br
│ │ ├── Microsoft.Extensions.Options.wasm.br
│ │ ├── Microsoft.Extensions.Primitives.wasm.br
│ │ ├── Microsoft.JSInterop.WebAssembly.wasm.br
│ │ ├── Microsoft.JSInterop.wasm.br
│ │ ├── SidebarUsingIframe.wasm.br
│ │ ├── System.Collections.Concurrent.wasm.br
│ │ ├── System.Collections.Immutable.wasm.br
│ │ ├── System.Collections.wasm.br
│ │ ├── System.ComponentModel.wasm.br
│ │ ├── System.Console.wasm.br
│ │ ├── System.IO.Pipelines.wasm.br
│ │ ├── System.Linq.Expressions.wasm.br
│ │ ├── System.Linq.wasm.br
│ │ ├── System.Memory.wasm.br
│ │ ├── System.Private.CoreLib.wasm.br
│ │ ├── System.Private.Uri.wasm.br
│ │ ├── System.Runtime.InteropServices.JavaScript.wasm.br
│ │ ├── System.Runtime.wasm.br
│ │ ├── System.Text.Encodings.Web.wasm.br
│ │ ├── System.Text.Json.wasm.br
│ │ ├── System.Text.RegularExpressions.wasm.br
│ │ ├── WebExtensions.Net.Extensions.DependencyInjection.wasm.br
│ │ ├── WebExtensions.Net.wasm.br
│ │ ├── blazor.boot.json
│ │ ├── blazor.webassembly.js
│ │ ├── dotnet.js
│ │ ├── dotnet.native.8.0.4.o5deegs3wn.js
│ │ ├── dotnet.native.js
│ │ ├── dotnet.native.wasm.br
│ │ ├── dotnet.runtime.8.0.4.ogva3chynz.js
│ │ ├── dotnet.runtime.js
│ │ ├── icudt_CJK.dat.br
│ │ ├── icudt_EFIGS.dat.br
│ │ └── icudt_no_CJK.dat.br
│ │ ├── index.html
│ │ └── manifest.json
└── src
│ ├── App.razor
│ ├── Messaging
│ ├── HeadersData.cs
│ ├── MessagingEvent.cs
│ └── PostRequest.cs
│ ├── Pages
│ ├── ContentScript.razor
│ └── ContentScript.razor.css
│ ├── Program.cs
│ ├── Properties
│ └── launchSettings.json
│ ├── Shared
│ ├── MainLayout.razor
│ └── MainLayout.razor.css
│ ├── SidebarUsingIframe.csproj
│ ├── _Imports.razor
│ └── wwwroot
│ ├── ContentScript.css
│ ├── ContentScript.js
│ ├── css
│ └── app.css
│ ├── favicon.ico
│ ├── index.html
│ └── manifest.json
└── Sidepanel
├── Demo.gif
├── README.md
├── dist
└── browserextension
│ ├── Sidepanel.styles.css
│ ├── content
│ ├── Blazor.BrowserExtension
│ │ ├── BackgroundWorkerRunner.js
│ │ ├── Blazor.BrowserExtension.lib.module.js
│ │ ├── ContentScript.js
│ │ ├── Core.js
│ │ ├── CoreInternal.js
│ │ └── lib
│ │ │ ├── browser-polyfill.js
│ │ │ ├── browser-polyfill.js.map
│ │ │ ├── browser-polyfill.min.js
│ │ │ ├── browser-polyfill.min.js.map
│ │ │ ├── decode.js
│ │ │ └── decode.min.js
│ ├── JsBind.Net
│ │ └── JsBindNet.js
│ └── browserextension.config.json
│ ├── css
│ └── app.css
│ ├── favicon.ico
│ ├── framework
│ ├── Blazor.BrowserExtension.wasm.br
│ ├── JsBind.Net.Extensions.DependencyInjection.wasm.br
│ ├── JsBind.Net.wasm.br
│ ├── Microsoft.AspNetCore.Components.Web.wasm.br
│ ├── Microsoft.AspNetCore.Components.WebAssembly.wasm.br
│ ├── Microsoft.AspNetCore.Components.wasm.br
│ ├── Microsoft.Extensions.Configuration.Abstractions.wasm.br
│ ├── Microsoft.Extensions.Configuration.Json.wasm.br
│ ├── Microsoft.Extensions.Configuration.wasm.br
│ ├── Microsoft.Extensions.DependencyInjection.Abstractions.wasm.br
│ ├── Microsoft.Extensions.DependencyInjection.wasm.br
│ ├── Microsoft.Extensions.Logging.Abstractions.wasm.br
│ ├── Microsoft.Extensions.Logging.wasm.br
│ ├── Microsoft.Extensions.Options.wasm.br
│ ├── Microsoft.Extensions.Primitives.wasm.br
│ ├── Microsoft.JSInterop.WebAssembly.wasm.br
│ ├── Microsoft.JSInterop.wasm.br
│ ├── Sidepanel.wasm.br
│ ├── System.Collections.Concurrent.wasm.br
│ ├── System.Collections.Immutable.wasm.br
│ ├── System.Collections.wasm.br
│ ├── System.ComponentModel.wasm.br
│ ├── System.Console.wasm.br
│ ├── System.IO.Pipelines.wasm.br
│ ├── System.Linq.Expressions.wasm.br
│ ├── System.Linq.wasm.br
│ ├── System.Memory.wasm.br
│ ├── System.Private.CoreLib.wasm.br
│ ├── System.Private.Uri.wasm.br
│ ├── System.Runtime.InteropServices.JavaScript.wasm.br
│ ├── System.Runtime.wasm.br
│ ├── System.Text.Encodings.Web.wasm.br
│ ├── System.Text.Json.wasm.br
│ ├── System.Text.RegularExpressions.wasm.br
│ ├── WebExtensions.Net.Extensions.DependencyInjection.wasm.br
│ ├── WebExtensions.Net.wasm.br
│ ├── blazor.boot.json
│ ├── blazor.webassembly.js
│ ├── dotnet.js
│ ├── dotnet.native.8.0.4.w3qz2knejd.js
│ ├── dotnet.native.js
│ ├── dotnet.native.wasm.br
│ ├── dotnet.runtime.8.0.4.ogva3chynz.js
│ ├── dotnet.runtime.js
│ ├── icudt_CJK.dat.br
│ ├── icudt_EFIGS.dat.br
│ └── icudt_no_CJK.dat.br
│ ├── index.html
│ ├── manifest.json
│ └── sidepanel.html
└── src
├── App.razor
├── Pages
├── SidePanel.razor
└── SidePanel.razor.css
├── Program.cs
├── Properties
└── launchSettings.json
├── Shared
├── MainLayout.razor
└── MainLayout.razor.css
├── Sidepanel.csproj
├── _Imports.razor
└── wwwroot
├── css
└── app.css
├── favicon.ico
├── index.html
└── manifest.json
/.gitignore:
--------------------------------------------------------------------------------
1 | # User-specific files
2 | *.rsuser
3 | *.suo
4 | *.user
5 | *.userosscache
6 | *.sln.docstates
7 |
8 | # Build results
9 | [Dd]ebug/
10 | [Dd]ebugPublic/
11 | [Rr]elease/
12 | [Rr]eleases/
13 | x64/
14 | x86/
15 | [Aa][Rr][Mm]/
16 | [Aa][Rr][Mm]64/
17 | bld/
18 | [Bb]in/
19 | [Oo]bj/
20 | [Ll]og/
21 | [Ll]ogs/
22 | [Bb]uild[Oo]utput/
23 | [Pp]ackage[Oo]utput/
24 |
25 | # Test results
26 | [Tt]est[Rr]esults/
27 |
28 | # Visual Studio 2015/2017 cache/options directory
29 | .vs/
30 |
31 | # .NET Core
32 | project.lock.json
33 | project.fragment.lock.json
34 | artifacts/
35 |
36 | # Files built by Visual Studio
37 | *_i.c
38 | *_p.c
39 | *_h.h
40 | *.ilk
41 | *.meta
42 | *.obj
43 | *.iobj
44 | *.pch
45 | *.pdb
46 | *.ipdb
47 | *.pgc
48 | *.pgd
49 | *.rsp
50 | *.sbr
51 | *.tlb
52 | *.tli
53 | *.tlh
54 | *.tmp
55 | *.tmp_proj
56 | *_wpftmp.csproj
57 | *.log
58 | *.vspscc
59 | *.vssscc
60 | .builds
61 | *.pidb
62 | *.svclog
63 | *.scc
64 |
65 | # NuGet Packages
66 | *.nupkg
67 | # NuGet Symbol Packages
68 | *.snupkg
69 | # The packages folder can be ignored because of Package Restore
70 | **/[Pp]ackages/*
71 | # except build/, which is used as an MSBuild target.
72 | !**/[Pp]ackages/build/
73 | # Uncomment if necessary however generally it will be regenerated when needed
74 | #!**/[Pp]ackages/repositories.config
75 | # NuGet v3's project.json files produces more ignorable files
76 | *.nuget.props
77 | *.nuget.targets
78 |
79 | # Visual Studio cache files
80 | # files ending in .cache can be ignored
81 | *.[Cc]ache
82 | # but keep track of directories ending in .cache
83 | !?*.[Cc]ache/
84 |
85 | # Browser Extension Output
86 | # Exclude the dist publish folder
87 | **/dist/*
88 | # Except the folder named browserextension
89 | !**/dist/browserextension/
90 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing to this repository
2 |
3 | ## We Develop with Github
4 | We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.
5 |
6 | ## Report bugs using Github's issues
7 | We use GitHub issues to track bugs. Report a bug by opening a new issue.
8 |
9 | ## Write bug reports with detail, background, and sample code
10 | Great Bug Reports tend to have:
11 |
12 | - A quick summary and/or background
13 | - Steps to reproduce
14 | - Be specific!
15 | - Give sample code if you can.
16 | - What you expected would happen
17 | - What actually happens
18 | - Notes (possibly including why you think this might be happening, or what you have tried that didn't work)
19 |
20 | ## We Use Github Flow, So All Code Changes Happen Through Pull Requests
21 | Pull requests are the best way to propose changes to the codebase. We actively welcome your pull requests:
22 |
23 | 1. Fork the repo and create your branch from main.
24 | 0. If you've added code that should be tested, add tests.
25 | 0. Ensure the test suite passes.
26 | 0. Create a pull request!
27 |
28 | ## Working in this repository
29 | Each sample project has a `dist` and `src` directory, where
30 | - the `dist` directory contains the published output and can be loaded in the browser directly.
31 | - the `src` directory contains the source files that can be compiled and published.
32 |
33 | Therefore, any changes in the sample project source files means that the project needs to be published again.
34 | This can be done with `dotnet publish --configuration Release` in the project directory.
35 |
36 | ### Use a Consistent Coding Style
37 | - 4 spaces (C#) or 2 spaces (XML/JSON/JS) for indentation rather than tabs.
38 | - Every `if`, `else`, `for`, `foreach`, `while` etc should have its own opening and closing bracket, even if it is a single line statement.
39 | - Every code file changed should be formatted properly (CTRL+K, CTRL+D in VS or ALT+SHIFT+F in VS Code).
40 |
41 | ## License
42 | By contributing, you agree that your contributions will be licensed under its MIT License.
--------------------------------------------------------------------------------
/Directory.Packages.props:
--------------------------------------------------------------------------------
1 |
2 |
3 | true
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 mingyaulee
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Messaging/Demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/Demo.gif
--------------------------------------------------------------------------------
/Messaging/README.md:
--------------------------------------------------------------------------------
1 | # Messaging sample
2 |
3 | 
4 |
5 | This sample project shows how the different messaging APIs work.
6 |
7 | You can load the output directly in the browser by following the steps [here](../README.md#test-the-sample-projects).
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/Messaging.styles.css:
--------------------------------------------------------------------------------
1 | /* /Pages/ContentScript.razor.rz.scp.css */
2 | .content-script-container[b-5t614019rp] {
3 | position: absolute;
4 | top: 0;
5 | left: 0;
6 | width: 100%;
7 | height: 320px;
8 | background: #fff;
9 | border-bottom: 1px solid #000;
10 | z-index: 1000000;
11 | }
12 |
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/app.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Called before Blazor starts.
3 | * @param {object} options Blazor WebAssembly start options. Refer to https://github.com/dotnet/aspnetcore/blob/main/src/Components/Web.JS/src/Platform/WebAssemblyStartOptions.ts
4 | * @param {object} extensions Extensions added during publishing
5 | * @param {object} blazorBrowserExtension Blazor browser extension
6 | */
7 | export function beforeStart(options, extensions, blazorBrowserExtension) {
8 | if (blazorBrowserExtension.BrowserExtension.Mode === blazorBrowserExtension.Modes.ContentScript) {
9 | const appDiv = document.createElement("div");
10 | appDiv.id = "Sample_Messaging_app";
11 | document.body.appendChild(appDiv);
12 | }
13 | }
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/content/BackgroundWorker.js:
--------------------------------------------------------------------------------
1 | import { importRequested, fromReference } from "/content/Blazor.BrowserExtension/BackgroundWorkerRunner.js";
2 | import * as s0 from "/framework/dotnet.js";
3 | import * as s1 from "/framework/dotnet.native.js";
4 | import * as s2 from "/framework/dotnet.runtime.js";
5 | import * as s3 from "/framework/blazor.webassembly.js";
6 | import * as s4 from "/content/Blazor.BrowserExtension/BackgroundWorkerRunner.js";
7 | import * as s5 from "/content/Blazor.BrowserExtension/Blazor.BrowserExtension.lib.module.js";
8 | import * as s6 from "/content/Blazor.BrowserExtension/CoreInternal.js";
9 | import * as s7 from "/content/Blazor.BrowserExtension/lib/browser-polyfill.min.js";
10 | import * as s8 from "/content/Blazor.BrowserExtension/lib/decode.min.js";
11 | import * as s9 from "/content/JsBind.Net/JsBindNet.js";
12 | import * as s10 from "/app.js";
13 |
14 | const allImports = [["framework/dotnet.js", s0], ["framework/dotnet.native.js", s1], ["framework/dotnet.runtime.js", s2], ["framework/blazor.webassembly.js", s3], ["content/Blazor.BrowserExtension/BackgroundWorkerRunner.js", s4], ["content/Blazor.BrowserExtension/Blazor.BrowserExtension.lib.module.js", s5], ["content/Blazor.BrowserExtension/CoreInternal.js", s6], ["content/Blazor.BrowserExtension/lib/browser-polyfill.min.js", s7], ["content/Blazor.BrowserExtension/lib/decode.min.js", s8], ["content/JsBind.Net/JsBindNet.js", s9], ["app.js", s10]];
15 |
16 | const importModule = (requestedModulePath) => {
17 | let candidateModule;
18 | for (const [importedPath, importedModule] of allImports) {
19 | if (requestedModulePath.includes(importedPath)) {
20 | return importedModule;
21 | } else if (importedPath.substring(importedPath.lastIndexOf('/')) === requestedModulePath.substring(requestedModulePath.lastIndexOf('/'))) {
22 | candidateModule = importedModule;
23 | }
24 | }
25 |
26 | if (candidateModule) {
27 | return candidateModule;
28 | }
29 |
30 | console.warn("Unhandled module import: " + requestedModulePath);
31 | return {};
32 | }
33 |
34 | globalThis.importProxy = (module) => Promise.resolve(importModule(module));
35 | for (const importRequest of importRequested) {
36 | importRequest.resolve(importModule(importRequest.module));
37 | }
38 |
39 | // Generated by Blazor.BrowserExtension.Analyzer
40 | browser.runtime.onInstalled.addListener(fromReference('OnInstalled'));
41 | browser.runtime.onMessage.addListener(fromReference('OnMessage'));
42 |
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/content/Blazor.BrowserExtension/Blazor.BrowserExtension.lib.module.js:
--------------------------------------------------------------------------------
1 | import { initializeInternal } from './CoreInternal.js';
2 |
3 | let debugMode = false;
4 | const hasExtensionsApi = (namespace) => typeof globalThis[namespace] == "object" && globalThis[namespace]?.runtime?.id;
5 | if (!hasExtensionsApi("browser") && !hasExtensionsApi("chrome")) {
6 | debugMode = true;
7 | }
8 |
9 | let url;
10 | let browserExtensionMode;
11 | if (!debugMode) {
12 | url = (globalThis.browser || globalThis.chrome).runtime.getURL("");
13 | browserExtensionMode = "Standard";
14 | } else {
15 | url = globalThis.location.origin + "/";
16 | browserExtensionMode = "Debug";
17 | }
18 |
19 | let config;
20 | let appJs;
21 |
22 | async function beforeStart(options, extensions) {
23 | const configUrl = `${url}content/browserextension.config.json`;
24 | const configRequest = await fetch(configUrl);
25 |
26 | config = await configRequest.json();
27 |
28 | const blazorBrowserExtension = options.BlazorBrowserExtension ?? initializeInternal(config, url, browserExtensionMode);
29 |
30 | if (debugMode) {
31 | blazorBrowserExtension.ImportBrowserPolyfill = false;
32 | }
33 |
34 | if (config.HasAppJs) {
35 | appJs = await (globalThis.importProxy ?? (m => import(m)))(`${url}app.js`);
36 | }
37 |
38 | if (blazorBrowserExtension.ImportBrowserPolyfill) {
39 | // import browser extension API polyfill
40 | // @ts-ignore JS is not a module
41 | await (globalThis.importProxy ?? (m => import(m)))('./lib/browser-polyfill.min.js');
42 | }
43 |
44 | await blazorBrowserExtension.BrowserExtension.InitializeCoreAsync(options);
45 |
46 | if (appJs?.beforeStart) {
47 | const beforeStartReturn = appJs.beforeStart(options, extensions, blazorBrowserExtension);
48 | if (beforeStartReturn instanceof Promise) {
49 | await beforeStartReturn;
50 | }
51 | }
52 | }
53 |
54 | function afterStarted(blazor) {
55 | if (appJs?.afterStarted) {
56 | return appJs.afterStarted(blazor);
57 | }
58 | }
59 |
60 | export { afterStarted, beforeStart };
61 |
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/content/Blazor.BrowserExtension/ContentScript.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | const initializeInternal = (await (globalThis.importProxy ?? (m => import(m)))('./CoreInternal.js')).initializeInternal;
3 | const url = (globalThis.browser || globalThis.chrome).runtime.getURL("");
4 |
5 | const configRequest = await fetch(`${url}content/browserextension.config.json`);
6 | const config = await configRequest.json();
7 |
8 | const blazorBrowserExtension = initializeInternal(config, url, "ContentScript");
9 |
10 | globalThis.importProxy = (module) => {
11 | if (module.startsWith(document.baseURI) && blazorBrowserExtension.BrowserExtension) {
12 | module = new URL(module.substring(document.baseURI.length), blazorBrowserExtension.BrowserExtension.Url);
13 | }
14 |
15 | return import(module);
16 | };
17 |
18 | await blazorBrowserExtension.BrowserExtension.InitializeContentScriptAsync({
19 | BlazorBrowserExtension: blazorBrowserExtension
20 | });
21 | })();
22 |
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/content/Blazor.BrowserExtension/Core.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | console.warn("Core.js is deprecated. Use 'framework/blazor.webassembly.js' in the script tag.");
3 |
4 | let debugMode = false;
5 | const hasExtensionsApi = namespace => typeof globalThis[namespace] == "object" && globalThis[namespace]?.runtime?.id;
6 | if (!hasExtensionsApi("browser") && !hasExtensionsApi("chrome")) {
7 | debugMode = true;
8 | }
9 |
10 | const initializeInternal = (await (globalThis.importProxy ?? (m => import(m)))('./CoreInternal.js')).initializeInternal;
11 | let url;
12 | let browserExtensionMode;
13 | if (!debugMode) {
14 | url = (globalThis.browser || globalThis.chrome).runtime.getURL("");
15 | browserExtensionMode = "Standard";
16 | } else {
17 | url = globalThis.location.origin + "/";
18 | browserExtensionMode = "Debug";
19 | }
20 |
21 | const configUrl = `${url}content/browserextension.config.json`;
22 |
23 | const configRequest = await fetch(configUrl);
24 | const config = await configRequest.json();
25 |
26 | const blazorBrowserExtension = initializeInternal(config, url, browserExtensionMode);
27 | // Clear the BrowserExtension property for the module initializer to initialize it
28 | const browserExtension = blazorBrowserExtension.BrowserExtension;
29 | blazorBrowserExtension.BrowserExtension = null;
30 |
31 | if (debugMode) {
32 | blazorBrowserExtension.ImportBrowserPolyfill = false;
33 | }
34 |
35 | if (config.HasAppJs) {
36 | await (globalThis.importProxy ?? (m => import(m)))(`${url}app.js`);
37 | }
38 |
39 | if (blazorBrowserExtension.ImportBrowserPolyfill) {
40 | // import browser extension API polyfill
41 | // @ts-ignore JS is not a module
42 | await (globalThis.importProxy ?? (m => import(m)))('./lib/browser-polyfill.min.js');
43 | }
44 |
45 | if (blazorBrowserExtension.StartBlazorBrowserExtension) {
46 | await browserExtension.InitializeAsync();
47 | }
48 | })();
49 |
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/content/browserextension.config.json:
--------------------------------------------------------------------------------
1 | {"EnvironmentName":"","CompressionEnabled":true,"HasAppJs":true}
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/contentscript.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Messaging
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
20 |
21 |
22 |
23 |
24 | An unhandled error has occurred.
25 |
Reload
26 |
🗙
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/favicon.ico
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/Blazor.BrowserExtension.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/Blazor.BrowserExtension.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/JsBind.Net.Extensions.DependencyInjection.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/JsBind.Net.Extensions.DependencyInjection.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/JsBind.Net.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/JsBind.Net.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/Messaging.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/Messaging.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/Microsoft.AspNetCore.Components.Web.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/Microsoft.AspNetCore.Components.Web.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/Microsoft.AspNetCore.Components.WebAssembly.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/Microsoft.AspNetCore.Components.WebAssembly.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/Microsoft.AspNetCore.Components.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/Microsoft.AspNetCore.Components.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/Microsoft.Extensions.Configuration.Abstractions.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/Microsoft.Extensions.Configuration.Abstractions.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/Microsoft.Extensions.Configuration.Json.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/Microsoft.Extensions.Configuration.Json.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/Microsoft.Extensions.Configuration.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/Microsoft.Extensions.Configuration.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/Microsoft.Extensions.DependencyInjection.Abstractions.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/Microsoft.Extensions.DependencyInjection.Abstractions.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/Microsoft.Extensions.DependencyInjection.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/Microsoft.Extensions.DependencyInjection.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/Microsoft.Extensions.Logging.Abstractions.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/Microsoft.Extensions.Logging.Abstractions.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/Microsoft.Extensions.Logging.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/Microsoft.Extensions.Logging.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/Microsoft.Extensions.Options.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/Microsoft.Extensions.Options.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/Microsoft.Extensions.Primitives.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/Microsoft.Extensions.Primitives.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/Microsoft.JSInterop.WebAssembly.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/Microsoft.JSInterop.WebAssembly.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/Microsoft.JSInterop.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/Microsoft.JSInterop.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/System.Collections.Concurrent.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/System.Collections.Concurrent.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/System.Collections.Immutable.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/System.Collections.Immutable.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/System.Collections.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/System.Collections.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/System.ComponentModel.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/System.ComponentModel.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/System.Console.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/System.Console.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/System.IO.Pipelines.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/System.IO.Pipelines.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/System.Linq.Expressions.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/System.Linq.Expressions.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/System.Linq.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/System.Linq.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/System.Memory.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/System.Memory.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/System.Net.Http.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/System.Net.Http.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/System.Net.Primitives.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/System.Net.Primitives.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/System.Private.CoreLib.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/System.Private.CoreLib.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/System.Private.Uri.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/System.Private.Uri.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/System.Runtime.InteropServices.JavaScript.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/System.Runtime.InteropServices.JavaScript.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/System.Runtime.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/System.Runtime.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/System.Text.Encodings.Web.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/System.Text.Encodings.Web.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/System.Text.Json.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/System.Text.Json.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/System.Text.RegularExpressions.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/System.Text.RegularExpressions.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/WebExtensions.Net.Extensions.DependencyInjection.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/WebExtensions.Net.Extensions.DependencyInjection.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/WebExtensions.Net.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/WebExtensions.Net.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/dotnet.native.wasm.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/dotnet.native.wasm.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/icudt_CJK.dat.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/icudt_CJK.dat.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/icudt_EFIGS.dat.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/icudt_EFIGS.dat.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/framework/icudt_no_CJK.dat.br:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mingyaulee/Blazor.BrowserExtension.Samples/a639e5bf30075a2c23e8544f6cf1711f52ff0009/Messaging/dist/browserextension/framework/icudt_no_CJK.dat.br
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Messaging
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
20 |
21 |
22 |
23 |
24 | An unhandled error has occurred.
25 |
Reload
26 |
🗙
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "manifest_version": 3,
3 | "name": "Messaging Extension",
4 | "description": "Sample for messaging in browser extension",
5 | "version": "0.1",
6 | "action": {
7 | "default_popup": "popup.html"
8 | },
9 | "background": {
10 | "service_worker": "content/BackgroundWorker.js",
11 | "type": "module"
12 | },
13 | "content_scripts": [
14 | {
15 | "matches": [ "*://*/*" ],
16 | "js": [ "content/Blazor.BrowserExtension/ContentScript.js" ],
17 | "css": [ "Messaging.styles.css" ]
18 | }
19 | ],
20 | "options_ui": {
21 | "page": "options.html",
22 | "open_in_tab": true
23 | },
24 | "content_security_policy": {
25 | "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self'"
26 | },
27 | "web_accessible_resources": [
28 | {
29 | "resources": [
30 | "framework/*",
31 | "content/*",
32 | "app.js"
33 | ],
34 | "matches": [ "" ]
35 | }
36 | ],
37 | "permissions": [
38 | "tabs"
39 | ]
40 | }
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/options.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Messaging
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
20 |
21 |
22 |
23 |
24 | An unhandled error has occurred.
25 |
Reload
26 |
🗙
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/Messaging/dist/browserextension/popup.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Messaging
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
20 |
21 |
22 |
23 |
24 | An unhandled error has occurred.
25 |
Reload
26 |
🗙
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/Messaging/src/App.razor:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Sorry, there's nothing at this address.
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Messaging/src/BackgroundWorker.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Threading.Tasks;
3 | using Blazor.BrowserExtension;
4 | using Messaging.Messages;
5 | using WebExtensions.Net.Runtime;
6 |
7 | namespace Messaging
8 | {
9 | public partial class BackgroundWorker : BackgroundWorkerBase
10 | {
11 | [BackgroundWorkerMain]
12 | public override void Main()
13 | {
14 | WebExtensions.Runtime.OnInstalled.AddListener(OnInstalled);
15 | WebExtensions.Runtime.OnMessage.AddListener(OnMessage);
16 | }
17 |
18 | async Task OnInstalled()
19 | {
20 | var indexPageUrl = WebExtensions.Runtime.GetURL("index.html");
21 | await WebExtensions.Tabs.Create(new()
22 | {
23 | Url = indexPageUrl
24 | });
25 | }
26 |
27 | bool OnMessage(object message, MessageSender sender, Action