From 646520deadee5788dd2c84d537262ce6c59e7acf Mon Sep 17 00:00:00 2001 From: Xhacker Liu Date: Sun, 22 Jun 2014 19:58:50 -0700 Subject: [PATCH] Support WebSQL. --- README.md | 6 +++++- menubar-webkit/LDYWebViewDelegate.m | 15 +++++++++++++++ sample/index.js | 2 ++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a6e5b1b..4610ea3 100644 --- a/README.md +++ b/README.md @@ -66,9 +66,13 @@ To add your own app: git clone your.repository.address public ``` +## FAQ +* Can I use **local storage**? Yes. +* Can I use **WebSQL**? Yes. + ## Credits -**Menubar WebKit** was created by **[Dongyuan Liu (@xhacker)](https://github.com/xhacker)** in the development of [Pomotodo for Mac](http://pomotodo.com). +**Menubar WebKit** was created by **[LIU Dongyuan (@xhacker)](https://github.com/xhacker)** in the development of [Pomotodo for Mac](http://pomotodo.com). Some of the code are taken from: diff --git a/menubar-webkit/LDYWebViewDelegate.m b/menubar-webkit/LDYWebViewDelegate.m index 0354acc..a5128dd 100644 --- a/menubar-webkit/LDYWebViewDelegate.m +++ b/menubar-webkit/LDYWebViewDelegate.m @@ -166,4 +166,19 @@ static NSString * const kWebScriptNamespace = @"mw"; [message objectForKey:@"message"]); } +// Enable WebSQL: http://stackoverflow.com/questions/353808/implementing-a-webview-database-quota-delegate +- (void)webView:(WebView *)sender frame:(WebFrame *)frame exceededDatabaseQuotaForSecurityOrigin:(id)origin database:(NSString *)databaseIdentifier +{ + static const unsigned long long defaultQuota = 5 * 1024 * 1024; + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wundeclared-selector" + if ([origin respondsToSelector:@selector(setQuota:)]) { + [origin performSelector:@selector(setQuota:) withObject:@(defaultQuota)]; + } + #pragma clang diagnostic pop + else { + NSLog(@"Could not increase quota for %lld", defaultQuota); + } +} + @end diff --git a/sample/index.js b/sample/index.js index 7d68910..9e1ade3 100644 --- a/sample/index.js +++ b/sample/index.js @@ -14,6 +14,8 @@ $(function() { {"label": "Account", "identifier": "Account", "icon": "NSUserAccounts"}, {"label": "Shortcut", "identifier": "Shortcut", "icon": "NSAdvanced"} ]) + + var db = openDatabase('test', '1.0', 'Menubar WebKit supports WebSQL database', 5 * 1024 * 1024) }) function setIcon() {