mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-02 22:13:36 +08:00
Add EnableFraudulentWebsiteDetection to options (#2269)
This allows to explicitly opt-in to scan services for fraudulent content, such as malware or phishing attempts.
This commit is contained in:
parent
0a32c1124e
commit
284e20a290
@ -17,7 +17,7 @@
|
|||||||
#define WindowStartsMinimised 2
|
#define WindowStartsMinimised 2
|
||||||
#define WindowStartsFullscreen 3
|
#define WindowStartsFullscreen 3
|
||||||
|
|
||||||
WailsContext* Create(const char* title, int width, int height, int frameless, int resizable, int fullscreen, int fullSizeContent, int hideTitleBar, int titlebarAppearsTransparent, int hideTitle, int useToolbar, int hideToolbarSeparator, int webviewIsTransparent, int alwaysOnTop, int hideWindowOnClose, const char *appearance, int windowIsTranslucent, int debug, int windowStartState, int startsHidden, int minWidth, int minHeight, int maxWidth, int maxHeight);
|
WailsContext* Create(const char* title, int width, int height, int frameless, int resizable, int fullscreen, int fullSizeContent, int hideTitleBar, int titlebarAppearsTransparent, int hideTitle, int useToolbar, int hideToolbarSeparator, int webviewIsTransparent, int alwaysOnTop, int hideWindowOnClose, const char *appearance, int windowIsTranslucent, int debug, int windowStartState, int startsHidden, int minWidth, int minHeight, int maxWidth, int maxHeight, bool fraudulentWebsiteWarningEnabled);
|
||||||
void Run(void*, const char* url);
|
void Run(void*, const char* url);
|
||||||
|
|
||||||
void SetTitle(void* ctx, const char *title);
|
void SetTitle(void* ctx, const char *title);
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
#import "WailsMenu.h"
|
#import "WailsMenu.h"
|
||||||
#import "WailsMenuItem.h"
|
#import "WailsMenuItem.h"
|
||||||
|
|
||||||
WailsContext* Create(const char* title, int width, int height, int frameless, int resizable, int fullscreen, int fullSizeContent, int hideTitleBar, int titlebarAppearsTransparent, int hideTitle, int useToolbar, int hideToolbarSeparator, int webviewIsTransparent, int alwaysOnTop, int hideWindowOnClose, const char *appearance, int windowIsTranslucent, int debug, int windowStartState, int startsHidden, int minWidth, int minHeight, int maxWidth, int maxHeight) {
|
WailsContext* Create(const char* title, int width, int height, int frameless, int resizable, int fullscreen, int fullSizeContent, int hideTitleBar, int titlebarAppearsTransparent, int hideTitle, int useToolbar, int hideToolbarSeparator, int webviewIsTransparent, int alwaysOnTop, int hideWindowOnClose, const char *appearance, int windowIsTranslucent, int debug, int windowStartState, int startsHidden, int minWidth, int minHeight, int maxWidth, int maxHeight, bool fraudulentWebsiteWarningEnabled) {
|
||||||
|
|
||||||
[NSApplication sharedApplication];
|
[NSApplication sharedApplication];
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ WailsContext* Create(const char* title, int width, int height, int frameless, in
|
|||||||
fullscreen = 1;
|
fullscreen = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
[result CreateWindow:width :height :frameless :resizable :fullscreen :fullSizeContent :hideTitleBar :titlebarAppearsTransparent :hideTitle :useToolbar :hideToolbarSeparator :webviewIsTransparent :hideWindowOnClose :safeInit(appearance) :windowIsTranslucent :minWidth :minHeight :maxWidth :maxHeight];
|
[result CreateWindow:width :height :frameless :resizable :fullscreen :fullSizeContent :hideTitleBar :titlebarAppearsTransparent :hideTitle :useToolbar :hideToolbarSeparator :webviewIsTransparent :hideWindowOnClose :safeInit(appearance) :windowIsTranslucent :minWidth :minHeight :maxWidth :maxHeight :fraudulentWebsiteWarningEnabled];
|
||||||
[result SetTitle:safeInit(title)];
|
[result SetTitle:safeInit(title)];
|
||||||
[result Center];
|
[result Center];
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@
|
|||||||
@property (retain) NSString* aboutTitle;
|
@property (retain) NSString* aboutTitle;
|
||||||
@property (retain) NSString* aboutDescription;
|
@property (retain) NSString* aboutDescription;
|
||||||
|
|
||||||
- (void) CreateWindow:(int)width :(int)height :(bool)frameless :(bool)resizable :(bool)fullscreen :(bool)fullSizeContent :(bool)hideTitleBar :(bool)titlebarAppearsTransparent :(bool)hideTitle :(bool)useToolbar :(bool)hideToolbarSeparator :(bool)webviewIsTransparent :(bool)hideWindowOnClose :(NSString *)appearance :(bool)windowIsTranslucent :(int)minWidth :(int)minHeight :(int)maxWidth :(int)maxHeight;
|
- (void) CreateWindow:(int)width :(int)height :(bool)frameless :(bool)resizable :(bool)fullscreen :(bool)fullSizeContent :(bool)hideTitleBar :(bool)titlebarAppearsTransparent :(bool)hideTitle :(bool)useToolbar :(bool)hideToolbarSeparator :(bool)webviewIsTransparent :(bool)hideWindowOnClose :(NSString *)appearance :(bool)windowIsTranslucent :(int)minWidth :(int)minHeight :(int)maxWidth :(int)maxHeight :(bool)fraudulentWebsiteWarningEnabled;
|
||||||
- (void) SetSize:(int)width :(int)height;
|
- (void) SetSize:(int)width :(int)height;
|
||||||
- (void) SetPosition:(int)x :(int) y;
|
- (void) SetPosition:(int)x :(int) y;
|
||||||
- (void) SetMinSize:(int)minWidth :(int)minHeight;
|
- (void) SetMinSize:(int)minWidth :(int)minHeight;
|
||||||
|
@ -137,7 +137,7 @@ typedef void (^schemeTaskCaller)(id<WKURLSchemeTask>);
|
|||||||
return NO;
|
return NO;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) CreateWindow:(int)width :(int)height :(bool)frameless :(bool)resizable :(bool)fullscreen :(bool)fullSizeContent :(bool)hideTitleBar :(bool)titlebarAppearsTransparent :(bool)hideTitle :(bool)useToolbar :(bool)hideToolbarSeparator :(bool)webviewIsTransparent :(bool)hideWindowOnClose :(NSString*)appearance :(bool)windowIsTranslucent :(int)minWidth :(int)minHeight :(int)maxWidth :(int)maxHeight {
|
- (void) CreateWindow:(int)width :(int)height :(bool)frameless :(bool)resizable :(bool)fullscreen :(bool)fullSizeContent :(bool)hideTitleBar :(bool)titlebarAppearsTransparent :(bool)hideTitle :(bool)useToolbar :(bool)hideToolbarSeparator :(bool)webviewIsTransparent :(bool)hideWindowOnClose :(NSString*)appearance :(bool)windowIsTranslucent :(int)minWidth :(int)minHeight :(int)maxWidth :(int)maxHeight :(bool)fraudulentWebsiteWarningEnabled {
|
||||||
self.urlRequestsId = 0;
|
self.urlRequestsId = 0;
|
||||||
self.urlRequests = [NSMutableDictionary new];
|
self.urlRequests = [NSMutableDictionary new];
|
||||||
|
|
||||||
@ -220,7 +220,11 @@ typedef void (^schemeTaskCaller)(id<WKURLSchemeTask>);
|
|||||||
[config setURLSchemeHandler:self forURLScheme:@"wails"];
|
[config setURLSchemeHandler:self forURLScheme:@"wails"];
|
||||||
|
|
||||||
// [config.preferences setValue:[NSNumber numberWithBool:true] forKey:@"developerExtrasEnabled"];
|
// [config.preferences setValue:[NSNumber numberWithBool:true] forKey:@"developerExtrasEnabled"];
|
||||||
|
|
||||||
|
if (@available(macOS 10.15, *)) {
|
||||||
|
config.preferences.fraudulentWebsiteWarningEnabled = fraudulentWebsiteWarningEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
WKUserContentController* userContentController = [WKUserContentController new];
|
WKUserContentController* userContentController = [WKUserContentController new];
|
||||||
[userContentController addScriptMessageHandler:self name:@"external"];
|
[userContentController addScriptMessageHandler:self name:@"external"];
|
||||||
config.userContentController = userContentController;
|
config.userContentController = userContentController;
|
||||||
|
@ -219,7 +219,7 @@ int main(int argc, const char * argv[]) {
|
|||||||
int windowStartState = 0;
|
int windowStartState = 0;
|
||||||
int startsHidden = 0;
|
int startsHidden = 0;
|
||||||
WailsContext *result = Create("OI OI!",400,400, frameless, resizable, fullscreen, fullSizeContent, hideTitleBar, titlebarAppearsTransparent, hideTitle, useToolbar, hideToolbarSeparator, webviewIsTransparent, alwaysOnTop, hideWindowOnClose, appearance, windowIsTranslucent, debug, windowStartState,
|
WailsContext *result = Create("OI OI!",400,400, frameless, resizable, fullscreen, fullSizeContent, hideTitleBar, titlebarAppearsTransparent, hideTitle, useToolbar, hideToolbarSeparator, webviewIsTransparent, alwaysOnTop, hideWindowOnClose, appearance, windowIsTranslucent, debug, windowStartState,
|
||||||
startsHidden, 400, 400, 600, 600);
|
startsHidden, 400, 400, 600, 600, false);
|
||||||
SetBackgroundColour(result, 255, 0, 0, 255);
|
SetBackgroundColour(result, 255, 0, 0, 255);
|
||||||
void *m = NewMenu("");
|
void *m = NewMenu("");
|
||||||
SetAbout(result, "Fake title", "I am a description", _Users_username_Pictures_SaltBae_png, _Users_username_Pictures_SaltBae_png_len);
|
SetAbout(result, "Fake title", "I am a description", _Users_username_Pictures_SaltBae_png, _Users_username_Pictures_SaltBae_png_len);
|
||||||
|
@ -67,6 +67,8 @@ func NewWindow(frontendOptions *options.App, debugMode bool) *Window {
|
|||||||
|
|
||||||
title = c.String(frontendOptions.Title)
|
title = c.String(frontendOptions.Title)
|
||||||
|
|
||||||
|
enableFraudulentWebsiteWarnings := C.bool(frontendOptions.EnableFraudulentWebsiteDetection)
|
||||||
|
|
||||||
if frontendOptions.Mac != nil {
|
if frontendOptions.Mac != nil {
|
||||||
mac := frontendOptions.Mac
|
mac := frontendOptions.Mac
|
||||||
if mac.TitleBar != nil {
|
if mac.TitleBar != nil {
|
||||||
@ -85,7 +87,7 @@ func NewWindow(frontendOptions *options.App, debugMode bool) *Window {
|
|||||||
var context *C.WailsContext = C.Create(title, width, height, frameless, resizable, fullscreen, fullSizeContent,
|
var context *C.WailsContext = C.Create(title, width, height, frameless, resizable, fullscreen, fullSizeContent,
|
||||||
hideTitleBar, titlebarAppearsTransparent, hideTitle, useToolbar, hideToolbarSeparator, webviewIsTransparent,
|
hideTitleBar, titlebarAppearsTransparent, hideTitle, useToolbar, hideToolbarSeparator, webviewIsTransparent,
|
||||||
alwaysOnTop, hideWindowOnClose, appearance, windowIsTranslucent, debug, windowStartState, startsHidden,
|
alwaysOnTop, hideWindowOnClose, appearance, windowIsTranslucent, debug, windowStartState, startsHidden,
|
||||||
minWidth, minHeight, maxWidth, maxHeight)
|
minWidth, minHeight, maxWidth, maxHeight, enableFraudulentWebsiteWarnings)
|
||||||
|
|
||||||
// Create menu
|
// Create menu
|
||||||
result := &Window{
|
result := &Window{
|
||||||
|
@ -409,6 +409,11 @@ func (f *Frontend) Quit() {
|
|||||||
func (f *Frontend) setupChromium() {
|
func (f *Frontend) setupChromium() {
|
||||||
chromium := f.chromium
|
chromium := f.chromium
|
||||||
|
|
||||||
|
disableFeatues := []string{}
|
||||||
|
if !f.frontendOptions.EnableFraudulentWebsiteDetection {
|
||||||
|
disableFeatues = append(disableFeatues, "msSmartScreenProtection")
|
||||||
|
}
|
||||||
|
|
||||||
if opts := f.frontendOptions.Windows; opts != nil {
|
if opts := f.frontendOptions.Windows; opts != nil {
|
||||||
chromium.DataPath = opts.WebviewUserDataPath
|
chromium.DataPath = opts.WebviewUserDataPath
|
||||||
chromium.BrowserPath = opts.WebviewBrowserPath
|
chromium.BrowserPath = opts.WebviewBrowserPath
|
||||||
@ -418,6 +423,11 @@ func (f *Frontend) setupChromium() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(disableFeatues) > 0 {
|
||||||
|
arg := fmt.Sprintf("--disable-features=%s", strings.Join(disableFeatues, ","))
|
||||||
|
chromium.AdditionalBrowserArgs = append(chromium.AdditionalBrowserArgs, arg)
|
||||||
|
}
|
||||||
|
|
||||||
chromium.MessageCallback = f.processMessage
|
chromium.MessageCallback = f.processMessage
|
||||||
chromium.WebResourceRequestedCallback = f.processRequest
|
chromium.WebResourceRequestedCallback = f.processRequest
|
||||||
chromium.NavigationCompletedCallback = f.navigationCompleted
|
chromium.NavigationCompletedCallback = f.navigationCompleted
|
||||||
|
@ -2,7 +2,6 @@ package options
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"github.com/wailsapp/wails/v2/pkg/options/linux"
|
|
||||||
"html"
|
"html"
|
||||||
"io/fs"
|
"io/fs"
|
||||||
"log"
|
"log"
|
||||||
@ -10,6 +9,7 @@ import (
|
|||||||
"runtime"
|
"runtime"
|
||||||
|
|
||||||
"github.com/wailsapp/wails/v2/pkg/options/assetserver"
|
"github.com/wailsapp/wails/v2/pkg/options/assetserver"
|
||||||
|
"github.com/wailsapp/wails/v2/pkg/options/linux"
|
||||||
"github.com/wailsapp/wails/v2/pkg/options/mac"
|
"github.com/wailsapp/wails/v2/pkg/options/mac"
|
||||||
"github.com/wailsapp/wails/v2/pkg/options/windows"
|
"github.com/wailsapp/wails/v2/pkg/options/windows"
|
||||||
|
|
||||||
@ -72,6 +72,11 @@ type App struct {
|
|||||||
// The CSS Value that the CSSDragProperty must have to be draggable, EG: "drag"
|
// The CSS Value that the CSSDragProperty must have to be draggable, EG: "drag"
|
||||||
CSSDragValue string
|
CSSDragValue string
|
||||||
|
|
||||||
|
// EnableFraudulentWebsiteDetection enables scan services for fraudulent content, such as malware or phishing attempts.
|
||||||
|
// These services might send information from your app like URLs navigated to and possibly other content to cloud
|
||||||
|
// services of Apple and Microsoft.
|
||||||
|
EnableFraudulentWebsiteDetection bool
|
||||||
|
|
||||||
Windows *windows.Options
|
Windows *windows.Options
|
||||||
Mac *mac.Options
|
Mac *mac.Options
|
||||||
Linux *linux.Options
|
Linux *linux.Options
|
||||||
|
@ -51,6 +51,7 @@ func main() {
|
|||||||
OnBeforeClose: app.beforeClose,
|
OnBeforeClose: app.beforeClose,
|
||||||
CSSDragProperty: "--wails-draggable",
|
CSSDragProperty: "--wails-draggable",
|
||||||
CSSDragValue: "drag",
|
CSSDragValue: "drag",
|
||||||
|
EnableFraudulentWebsiteDetection: false,
|
||||||
ZoomFactor: 1.0,
|
ZoomFactor: 1.0,
|
||||||
IsZoomControlEnabled: false,
|
IsZoomControlEnabled: false,
|
||||||
Bind: []interface{}{
|
Bind: []interface{}{
|
||||||
@ -415,6 +416,15 @@ Indicates what value the `CSSDragProperty` style should have to drag the window.
|
|||||||
Name: CSSDragValue<br/>
|
Name: CSSDragValue<br/>
|
||||||
Type: `string`
|
Type: `string`
|
||||||
|
|
||||||
|
### EnableFraudulentWebsiteDetection
|
||||||
|
|
||||||
|
EnableFraudulentWebsiteDetection enables scan services for fraudulent content, such as malware or phishing attempts.
|
||||||
|
These services might send information from your app like URLs navigated to and possibly other content to cloud
|
||||||
|
services of Apple and Microsoft.
|
||||||
|
|
||||||
|
Name: EnableFraudulentWebsiteDetection<br/>
|
||||||
|
Type: `bool`
|
||||||
|
|
||||||
### ZoomFactor
|
### ZoomFactor
|
||||||
|
|
||||||
Name: ZoomFactor<br/>
|
Name: ZoomFactor<br/>
|
||||||
|
@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Added
|
### Added
|
||||||
- Added Webview GPU acceleration options for [Windows](/docs/reference/options#webviewgpuisdisabled) and [Linux](/docs/reference/options#webviewgpupolicy). Added by @Lyimmi in [PR](https://github.com/wailsapp/wails/pull/2266)
|
- Added Webview GPU acceleration options for [Windows](/docs/reference/options#webviewgpuisdisabled) and [Linux](/docs/reference/options#webviewgpupolicy). Added by @Lyimmi in [PR](https://github.com/wailsapp/wails/pull/2266)
|
||||||
|
- Added `EnableFraudulentWebsiteDetection` option to opt-in to scan services for fraudulent content, such as malware or phishing attempts. Older releases had the scan services per default activated. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2269)
|
||||||
|
|
||||||
## v2.3.0 - 2022-12-29
|
## v2.3.0 - 2022-12-29
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user