Webkit desktop notification - has no method 'createHTMLNotification' - methods

The webkit html notification (createHTMLNotification) work fine until yesterday. An error is appear (see below), the code has not change -> incompatible with the last version of chrome ?
Error message : Uncaught TypeError: Object #<NotificationCenter> has no method 'createHTMLNotification'
If I use the methode "createNotification", it's work fine but I need to use HTML notification.
The settings of chrome allowed the pop-up and notification for all website (and tests are in the code for check that).

Unfortunate, this feature has removed from chromium ...
see : https://plus.google.com/u/0/+GoogleChromeDevelopers/posts/8vWo8hq4pDm

http://developer.chrome.com/extensions/desktop_notifications.html
Warning: webKitNotifications.createHTMLNotification() in the web notifications API has been deprecated. The new web notifications API only allows text. Chrome notifications API will be promoted to stable soon and web notifications will be updated to use the new rich notifications format.
there is still hope.

Related

Error when testingElasticSearch apps via Cypress resulting in results not being populated - "[useElasticsearch] incorrect header check"

We use Elastic Search throughout most of our app, and up until today, we've never had issues with testing those features via Cypress. One feature in our app is a calendar tool that populates a list with appointment dates and times. When accessing this calendar tool manually via Chrome, the list correctly populates without issue. When opening this tool during a Cypress spec, and ONLY during a Cypress spec, the results fail to load. The console spits out an error that just says "[useElasticsearch] incorrect header check" with no other information. In checking the network tab, we can confirm that the ES query is performed and returns results successfully, but the page is not updated with those results.
Note that this is NOT the result of a cy.request(), this error occurs through standard UI navigation. This issue, as I mentioned, ONLY occurs when testing via Cypress. Due to this, we are hesitant to make changes to the backend of the app, since it works perfectly fine in all other scenarios. This has been reproduced on Cypress versions 5.1.0, 6.1.0, 7.1.0, and 8.0.0. This has also been reproduced in Cypress when using the Chrome, Electron, and headless browsers.
Has anybody else encountered this issue?

How to clear upload notification after upload is completed in nativescript

I'm using nativescript plugin nativescript-background-http to upload files in background.
Writing only for Android.
Plugin works fine. Plugin displays upload progress in the notification, as required in API26+. When upload is completed (success or error), the notification remains in the drawer until dismissed by the user.
I'm looking for a way to clear the upload notification automatically after success or error.
Has anyone done this before? Guidance on how to access the underlying notification manager that the plugin uses would also be helpful as well.
Notes:
I can't hide the notification completely using androidDisplayNotificationProgress = false option of the plugin, as since API26, Android requires developers to use notifications when running background tasks.
I've searched this question, but couldn't find information about dismissing notifications of the plugin.
Thanks
Set androidAutoClearNotification to true.
(Android only) Used to set if notifications should be cleared
automatically upon upload completion. Default is false. Please note
that setting this to true will also disable the ringtones.

Firefox seems to fail on registering a ServiceWorker for Push Notifications?

Firefox seems to fail on registering a ServiceWorker for Push Notifications, with an error "InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable", but the code works in Chrome and Edge, and appears to be compliant with the examples online and the spec.
I've thrown an example up on one of my test sites, https://wiegandtech.net/ - visiting it in Chrome will prompt for permission and then opt-in successfully, sending the info to the server. But Firefox prompts, doesn't complete the registration, and doesn't fire any error or throw anything into the console. When I try to debug, it seems to never return from navigator.serviceWorker.ready.then call - I debug in and reg is undefined, even though the promise says it shouldn't be. I can find no reason why this is failing. I do see in Fiddler that FF gets the worker file, so it appears to be starting the call, but never finishing? The worker is valid JavaScript, as far as I can tell. Does anyone have any documentation on how Firefox's implementation is different from Chrome's/the spec?
Firefox requires the ServiceWorker's URL to end in .js - I was using an ASP.Net site and returning javascript but through my own controller. When I just give it the URL for the .js file itself, it now works. Would file a bug, but too non-trivial to setup a site given that ServiceWorkers require a real life site to troubleshoot, and their source code doesn't appear to be on github.

Chromecast sample sender application CastHelloText-chrome ends with error when trying to get session

I have problem with launching Google-Cast application similar to sample CastHelloText-chrome. I slightly modified example code for my specific purposes. The goal for creating this application is to send and show image data directly in Chromecast device.
Particularly the difference between official sample and my code is in message format and its content, sent by sender application. Sender application took png image coded by base64 and send through message bus with custom namespace. Receiver application get this message and use this as data source for html object <img>.
Error appears when I do this steps:
Reload sender page, checking console if any device found.
Send the form by just pushing enter on input box (text is ignored).
Now a popup from Chromecast extension shows. Next there are two scenarios:
3a) I confirm casting to device by choosing one from the list, then I get this error message in console:
onError: {"code":"channel_error","description":"Error: Timeout","details":null}
3b) I just click somewhere else, I get this error:
onError: {"code":"cancel","description":"User closed popup menu","details":null}
Both of errors are caused by calling function chrome.cast.requestSession in chromehellotext.html at line 161, but what's really wrong I don't know.
When I step sender script I realize that function sessionListener is never called. I know that something go wrong when code try to call chrome.cast.requestSession, where described error raises. So I need help if I missed about right way to use Google-Cast API or If this problem has something to do with networking issues.
Receiver application is registered on Google Cast SDK Developer Console and I'm testing on registered device with some serial number. I'm using Google Chrome in version 42.0.2300.2 canary (64-bit) and Chrome version 40.0.2214.111 (current stable I suppose). For testing I also tried to turn off Windows Firewall entirely but with no luck.
Edit:
There were some syntactic errors that caused error message described above.
It seems like you are trying to use the data/control channel to send an image; please don't do that; that channel is not meant to be used for large data communications; in fact it cannot send anything which approaches or exceeds 64k. If your goal is to send images from your local machine, you would need to run a local web server on your local machine and serve images through the web server.
For and easiest tutorial you can have a look to this tutorial.
It is well explained in this tutorial.
Chromecast Sender application
There is no need to maintain session by yourself.
just add button and enjoy casting
mCastManager.addMediaRouterButton(mediaRoutebtn);
I found a source of my problem. There was something wrong in receiver code - syntactic and runtime errors, so I must admit that my code wasn't functional. Now its working in terms of launching application and getting session.
Unfortunate thing is that the error message generated by Chromecast extension didn't match the actual error - at least it was a bit confusing when I didn't know what's really happening on receiver side without ability to debug the code.

Ported Chrome extension to Firefox not working (indexedDB error)

I'm trying to port the Twitter Notifier extension to FF.
I'm not too familiar with JavaScript so I just used extension factory to convert it to FF.
Unfortunately it is not working; I don't get any HTML5 desktop notifications.
I've looked at the code a bit and I think the problem is with twitter.js which should be found in the path 'resources\extension-data\js'.
http://pastebin.com/C0NqU4Ur
First I've changed
twitter.messagesDB = window.webkitIndexedDB.open("messagesDB");
to
twitter.messagesDB = window.mozIndexedDB.open("messagesDB");
but it still is not working.
The error console also doesn't show any error.
When I put a console.log command to the twitter.messagesDB.onsuccess function nothing is being outputted to the error console.
Also no output when I create an onerror function.
So I though to surround the functions with a try and catch clause but no error is being thrown.
So I tried to put twitter.messagesDB = twitter.messagesDB.result; out of the function and the following error shows up in the error console:
Error: uncaught exception: [Exception... "A mutation operation was attempted on a database that did not allow mutations." code: "6" nsresult: "0x80660006 (NS_ERROR_DOM_INDEXEDDB_NOT_ALLOWED_ERR)" location: "chrome-extension://gjlehiopfilnaggndcmbhphaglkbkekf/js/twitter.js Line: 28"]
What does that mean?
How can I make it work in Firefox?
Thanks in advance!
Edit: I'm using Firefox 12 on Windows
This is due to an incompatibility between the Firefox implementation of IndexedDB, which supports the latest IndedexDB protocol published December 2011, and the Chrome implementation, which supports the version previous to that.
The breaking change is how databases are created, where the older (Chrome) implementation uses the setVersion transaction whereas the newer version (FF) uses an onupgradeneeded event and callback.
To see this change, please star this issue.

Resources