diff --git a/docs/notes/bugfix-22816.md b/docs/notes/bugfix-22816.md new file mode 100644 index 00000000000..3f311e569c6 --- /dev/null +++ b/docs/notes/bugfix-22816.md @@ -0,0 +1 @@ +# Fix permissions when loading a local html file on iOS 12 diff --git a/libbrowser/src/libbrowser_wkwebview.mm b/libbrowser/src/libbrowser_wkwebview.mm index 8d2a10de4c1..e3b829fc353 100644 --- a/libbrowser/src/libbrowser_wkwebview.mm +++ b/libbrowser/src/libbrowser_wkwebview.mm @@ -1618,7 +1618,16 @@ - (void) loadRequest:(MCWKWebViewLoadRequest *)request inWebView:(WKWebView *)we MCBrowserRunBlockOnMainFiber(^{ if (request.htmlText == nil) { - [webView loadRequest:[NSURLRequest requestWithURL:request.url]]; + if (![request.url isFileURL]) + [webView loadRequest:[NSURLRequest requestWithURL:request.url]]; + else + { + NSURL *t_docs_dir_url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; + if ([request.url.absoluteString hasPrefix:t_docs_dir_url.absoluteString]) + [webView loadFileURL:request.url allowingReadAccessToURL:t_docs_dir_url]; + else + [webView loadFileURL:request.url allowingReadAccessToURL:request.url.URLByDeletingLastPathComponent]; + } } else {