Web push notifications characters limits across different browsers - cross-browser

I want to implement web push notification in my application, however I'm stuck at very simple problem: is there anywhere on the internet resource which would give me complete table for characters limits in web push notification for notification title and body for different browsers/operating systems (I'm interested in Android/Windows 10/macOS and Chrome, FireFox, Safari, Edge, Opera and Yandex browsers)? I've spend quite a lot of time looking over various pages on the internet, however data I encountered there was either incomplete or not up to date or event mutually exclusive between various resources.
Any help will be greatly appreciated.

You don't find any information, because the standard doesn't set a limit.
The text, when too long, is automatically truncated by the browser. The actual limit depends on many variables: the OS, the browser, the layout, the presence of notification fields like images and action buttons.
The only actual limit is the total payload (which includes all fields and the JSON): you should stay below 3kB.
Update: I have made some research for you on the practical limits for each browser and published the results in this blog post.

Related

How to Configure HTML body for ms-outlook://compose body parameter for Outlook for iOS

UPDATE - 2/26/2020
One of our clients just got this back from Microsoft:
Thank you for submitting this issue to the Outlook for iOS and Android team. After careful consideration, the product team is maintaining it's decision to disable HTML within Outlook Mobile deeplinks. While HTML within deeplinks was previously allowed, support for this scenario was never formally designed or introduced. Additionally, supporting HTML within deeplinks can introduce unintended consequences and potential security issues.
Though not officially supported, deeplinks that utilize plain-text will continue to work in Outlook for iOS and Android. Please note that this behavior may be modified at any time without notice.
Using the UIActivityViewController to share your HTML body also no longer works. It would appear that Microsoft has taken away our ability to generate any HTML bodies when composing an email in their system.
UPDATE - 2/6/2020
As responses show, it's gone from fixed to broken again. One of our large custom app clients that uses outlook exclusively has been pursuing a ticket with MS and this week finally got a response that multiple companies have reported on this issue and they are looking into a way to securely allow sharing of HTML bodies. In the interim for iOS apps we've been converting our code to use the UIActivityViewController and excluding almost all the activityTypes. This allows you to set the HTML body:
let items = [["Body" : emailBody]]
let acv = UIActivityViewController(activityItems: items,
applicationActivities: nil)
The two issues with this approach, is
a) If you try and set the subject or recipients, those are ignored. I've tried multiple different ways with no success. So in the case of our apps where for reporting purposes we collect the contact info before the email is sent, the user is required to again enter the contact info in the Outlook message composer.
b) It adds an extra step of requiring the user to select Outlook as the share item from the Initial UIActivityViewController. We've had to deal with reported "bugs" that are not bugs, just users not selecting Outlook.
UPDATE - 12/12/2019
The issue appears to have been fixed by Microsoft as my Outlook version remains 4.15.0 but when asked today to make screens shots for a ticket I submitted, the links are now being encoded correctly again. Please vote to close.
Original Question/Issue
I was previously using instructions based on this post. But it appears that with Outlook for iOS version 4.14.x and up (Outlook version tested as of this post 4.15.0) the encoded HTML body is being stripped of all of its encoded characters. Which is to say that something like:
<br>
Some Link
<br>
Becomes
braref=www.somelink.comSomeLink/abr
Hoping someone from the iOS Outlook team sees this post and can perhaps provide some guidance on how one might configure an HTML body to be passed through the ms-outlook://compose body parameter. Or if anyone else has figured it out. Please respond.
Thanks!
In v4.19.0 (latest version) "less than" and "greater than" signs (< >) are back but the html body is not rendered, so emails looks like this:
<html><body><p><strong>Hi</strong>, how are you</p></body></html>
We have seen this go from fixed to unfixed, etc. Some days it seems to work and other days it does not. Today it seems broken again.

Can an HTML link be made to open a datetime in a calendar?

I am making myself a little table of deadlines in HTML and I've come across a question I've never thought about before.
I know that HTML links can reference more than just HTTP(S) webpages. They can open several types of addresses and external applications, particularly on mobile devices. For example, if I wanted to connect users to Lou Malnati's Pizza in Lake Forest, IL there are lots of ways I could do that using only <a> tags.
I can open a phone number in the default phone app
Call Us
I can start an email draft in the default webmail browser
Email
I can go to a specific location in the default maps application
Directions
In iOS I can even open a restaurant's page in the Yelp app
Yelp
There are even more that I'm not mentioning, especially in Darwin systems (including OS X). I was thinking about this as I was writing my table of deadlines, and I started to wonder if I could do the same thing with a datetime. This leads me to my real question.
Is there any URL scheme in Darwin that will open Calendar to specific datetime?
Comme ça (using Darwin's usual ISO 8601)
The Guns Fell Silent
I know that OS X uses the same system of URL based inter-app communication that iOS does, so I figure there's got to be a way. Like I said, this table is really just for me so if it works on my OS X laptop that's good enough for me.
I guarantee an up-vote to anyone who gives an answer that is at all useful. Thanks so much to anyone who can help.
P.S. To be clear, the HTML5 <time> tag is not a solution.
While I was researching this question on my own I found a W3Schools article about the new HTML5 <time> tag. This would be exactly what I'm looking for, except that it does nothing. The <time> tag is theoretically implemented in all HTML5 compliant browsers, including Chrome, Safari, Firefox, Edge, and Opera. But they only implement it in the sense that they are prepared to ignore it (as opposed to viewing it as a syntax error).
Adding a <time> tag changes literally nothing about the UX of an HTML page. It's useful only for deep internals of the browser or search engine presenting it. In the W3Schools article they say...
Note: The time element does not render as anything special in any of the major browsers.
This element can be used to encode dates and times in a machine-readable way so that user agents can offer to add birthday reminders or scheduled events to the user's calendar, and search engines can produce smarter search results.
So I say again, I'm looking for something better than <time> elements.
I can't find anything related to time in the IANA Uniform Resource Identifier (URI) Schemes so I don't think this available out of the box. Only option would be to add a custom protocol to the client's computer if that's possible.
Edit: Calender access protocol might be useful for you but I don't think this is the behaviour you are describing.

Chrome extension taken down under "single purpose Chrome extensions policy"

I have made a chrome extension with the name Newsprompt : Personal Breaking News(gcajgpbafhkbkdpbaaipjoiajnangjhp) is recently being taken down stating that it breaks "single purpose Chrome extensions policy". It shows the breaking news in new tab and keep learning about user preference to push the articles(not news) user is interested in. No adds, no hidden functionality. That is all the extension does. Since it has been taken down, I have constantly been following up with
chromewebstore-dev-support#google.com and removed a lot of features (personalization being one of them) but all they come back with exactly same copy pasted lines from the docs https://developer.chrome.com/extensions/single_purpose that it doesn't comply with their standards. It feels like talking to a bot whose only response is "it doesn't comply with standards". So my question being:
1. Has any developers faced the same issue? (I have seen a couple of developers complaining on google groups but no one getting a solution). If yes how did they solved/escalated the problem (It felt like wasting 6 months of my team's effort for nothing).
2. I have tried https://support.google.com/chrome_webstore/contact/developer_support but no response.
3. Any further leads will be appreciated.

My thoughts for Selenium WebDriver with cross browser testing

Recently in my company we had cross browser testing on very big application. We have prepared selenium webdriver script for functional regression testing, however, there is not more scope covered for cross browser testing and that made us to test whole application in all browser (IE 9,10, 11, FF, Chrome, Safari). We have perform this testing as we also include GUI testing like image, button etc., Now, the question is, is there any way we can automate this?
My idea was to get all the element of page and get the location of all elements and save it in xml file, for example let assume that we wrote script for google.com and we got all the list of element with there location (x,y) for IE 9 browser, now run same script with rest all the browser and save the element location and than compare each element location with different browsers out, this how we can get the details information about element location in different browser, we can also use size, isdisplay, isenabled method to verify element. Using location method we can find which element does not exist or not located on correct place...
This are my thought, can I get any input from you?
Thanks!
Your thoughts are mostly correct, except the fact that you cannot compare exact locations of elements in browsers (they will usually differ) but you can compare how the elements are related to each other (e.g. element x should be on the right side of element y, etc.).
I know of two commercial solutions that offer functionality similar to what you described: Mogotest and CrossBrowserTesting. They both offer free trials, so have a look at them. Browsera claims to have such functionality too, but I've never used it so I cannot comment on it.
If you prefer to implement such system by your own then there are two sources you may find helpful:
Web Consistency Testing
WebDiff: Automated Identification of Cross-browser Issues in Web Applications
There is quite high level of false positive issues with this approach. There are multiple cases where you'd see a given button reported to be 3 times larger on some browser while it's not. Apart from this it's a good one since it would also tell you the difference

Major Bug in Today's Chrome Update - 1000's of Web pages Display Improperly

Starting this afternoon, with the introduction of Chrome 31.0.1650.48, many web pages are displaying with random formatting errors. I've confirmed this on both Mac and Windows machines running the most recent auto-updated Chrome release (31.0.1650.48).
This problem is affecting thousands of pages, and to immediately rule out our server generating different information, you can try this to reproduce the problem:
Visit this Google cache page with Chrome version specified above: http://webcache.googleusercontent.com/search?q=cache:nt70v_rn5BwJ:alaskanmalamute.rescueme.org/Idaho+&cd=61&hl=en&ct=clnk&gl=us
Notice what dogs are displayed and where they are.
Reload the page several times and observer closely.
You will randomly see one dog listing in the middle of the page, then two dog listings, the dogs move around, the menus around the dogs move around. Each time the page is reloaded Google is corrupting the source code in different ways, resulting in major formatting issues. (NONE of this code is generated outside of Google's cache.) All the pages on the www.RescueMe.Org have this problem, I'm using a cached page on Google's server in this article for an example since it proves it is not a server issue.
This sample page should remain the same every time, and be formatted correctly. It isn't.
Google Chrome (when viewing source) seems to be making random changes to the page (Chrome is dropping < or > at random places in source code) causing major display formatting issues.
Can someone reproduce this? Hopefully the folks at Google know about this issue, or someone here can escalate it with them?
Best wishes,
Jeff
can confirm - it seems to mostly be an issue with iFrames.
VisualForce iFrames in Salesforce break the entire layout.
Version 31.0.1650.48 on Mac, all addons removed.
In case someone else runs into this issue, I've narrowed it down somewhat. Chrome/31.0.1650.48 will randomly scramble the placement of tables on a page if the following two things happen:
1) You start the page like this: and do the reverse at the end: (doesn't have to be face=arial, any font setting or even just does the same thing).
2) Include some tags within the page containing various tables.
3) Magic! (not good magic, though) Each time your tables will randomly move about the page. Here's an example to try: http://server1c.rescueme.org/testb (Reload this page several times in in Chrome/31.0.1650.48 on Windows or Mac to see the tables jump around.)
THE SOLUTION: Start the page like this instead: and do the reverse at the end: (in other words, reverse placement of the center and font tags). Here's the "fixed" version of the page above with just those tags reversed: http://server1c.rescueme.org/testbfixed
While this is a Chrome bug, I feel this is worth keeping in Stack Overflow because this bug is breaking a lot of major sites, and programmers may want to know how to reprogram their HTML so those who have affected versions of Chrome won't have a confusing experience.
FYI... There are other ways to cause and solve this problem, but I'm trying to present here just the simplest method I found.