Why do I get IDBObserver is not defined? - google-chrome

I am trying to experiment with IndexedDB Observables in Chrome.
According to the sample page they are available in Chrome 57+. I am on Chrome 84. Using the sample page linked, I get the error Uncaught ReferenceError: IDBObserver is not defined (Your browser may not support this feature.) I have similar issues with my own code.
What do I need to do to use IDBObserver?

Observers are an experimental feature only available behind a flag, as noted in the sample page you link to. Are you enabling the flag, either via the command line or chrome://flags/ ?

Related

How to use chrome dev tools to find elements based on css class or id?

Long time automation developer here (just for context).
It's been bugging me for quite a while that the dev tools in chrome used to find elements just don't seem to work as I expect. Hopefully someone can point out what I'm doing wrong.
Looking at , say, sauce labs page: https://saucelabs.com/blog/selenium-tips-finding-elements-by-their-inner-text-using-contains-a-css-pseudo-class
ok now that page has div's and anchors
and indeed I can do find ('a') or find('div')
but why do I have a problem using classes or id's ?
The find() method refers to window.find(), a non-standard API for the browser's built-in Find function. It does not find web elements the same way Selenium or Capybara do, and so it does not parse the input as a selector.
You find elements with selectors in Chrome DevTools using document.querySelector() or document.querySelectorAll(). There are no special methods in Chrome DevTools for this, however it does provide the $() and $$() aliases (respectively) to save you time and keystrokes.
You can use jquery code in chrome console, for example if you want to find something with class of "foo" you can write $('.foo') or a id of "bar" you write $('#bar')
You can read all about it here
Also you can just google what you want "Jquery how to find a div with id"

Can Firefox Inspect Element Network find json strings like Chrome can?

My intention is to analyze json strings as part of REST messages.
In Chrome there are possibilities to use Inspect -> tab Network to find the json string that I want. However I cannot find the json string in Firefox.
Does Firefox support this?
I will show an example from a public page.
Open https://www.theguardian.com/ in Chrome
Inspect (Ctrl-Shift-I) and select tab Network
Click UK (UK News)
On tab Response you will find json strings as for examlple comment-counts.json
like
{"counts":[
{"id":"/p/5kmed","count":269},{"id":"/p/5kkv8","count":39},
{"id":"/p/5kq4t","count":5},{"id":"/p/5k7x7","count":1064},
{"id":"/p/5ky88","count":1720},{"id":"/p/5kp8e","count":841},
{"id":"/p/5kkbv","count":692}]
}"
Image: Inspecting The Guardian UK News
In Firefox I cannot get this piece of code. I have tried Inspect Element tab Network and sub-tabs Headers, Params and Response.
Do anyone know if it is possible in Firefox and in that case how to get it?
Background: I'm working in a corporate linux system where I haven't authority to install so much. However I have access to Firefox 45.5.1 and a bad build of Chrome 43.0.2357.81.
Thanks for any idea you come up with.
AFAIK, Firefox currently offers only a "structured view" of JSON responses in the developer tools.
There is a ticket in Bugzilla requesting plain text view.
Not sure about Firefox 45, but the latest release offers a context menu entry which allows copying response text to clipboard. Maybe that helps.
With Rafael's answer I found out what I needed.
Sometimes Copy Response works fine.
When that does not work I can find what I need from Copy All As HAR, which contains more or less everything before "now".
Since I'm a newbie I can neither flag up Rafaels answer nor flag that this question has been answered.
From my perspective I am fully satisfied and the case can be closed.

Preventing RStudio from messing with utils::browseURL

In my summarytools package, users have the option to view html results in Rstudio's Viewer pane, or rather in their default browser. Here's the relevant chunk of code:
utils::browseURL(paste0("file://",htmlfile))
where the path to htmlfile is defined using tempfile().
This works fine in the default R interface, but in RStudio, the path transferred to the default browser (Chrome in my case) is, for a reason unknown to me, transformed such that for instance:
file://C:/Users/Dominic/AppData/Local/Temp/Rtmp6neOOm/file2c3032b032f3.html
becomes, in the browser's address bar:
http://localhost:12245/session/file2c307cb3e22.html
... causing the browser to display a "This site can’t be reached" error page.
One solution, on Windows, is to use shell.exec(htmlfile), but this would not work on Linux unless I'm mistaken.
Any ideas as how to prevent RStudio from doing this, or on an alternative solution other than shell.exec()?

Mailto link causes Chrome to crash

I am developing an application for an environment where Chrome Version 29.0.1547.62 is used.
As part of the application, there is a requirement for a mailto: link. When this link is clicked, MS Outlook opens with the provided information in a new message.
In general this works as expected, however the following string causes Chrome (including all other Chrome windows) to crash with a message that begins with 'Whoa!'
> mailto:xxxxxxxxxx#xxxxxxxxxx.xxx?body=xxxxxxx%0A%0Axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> %0A%0Axxxxxxxxxxxx x xxxxxxxxxxxxx%0A xxxx%0A xxxx%0A xxxx%0A xxxx%0A
> xxxx%0A%0A xxxxxxx xxx
I have obviously removed all personal information, but the structure is otherwise the same. The issue can be replicated by pasting the link into the omnibox.
Removing one of the x's from the end will cause it to work correctly, making it appear to be a length issue, however simply having a longer body made solely of x's doesn't cause an issue.
My question is:
Has this issue been specifically resolved in a later version of Chrome? If so, then a simple ($.browser.chrome && $.browser.version == 29) check would be sufficient, but if it has not, then I will have more of a problem.
Unfortunately the common fix for adding the GMail handler is not appropriate here, and it is also not possible to add any command line arguments to Chrome on start up, limiting the amount of debug information I can provide.

HTML5 speech input and Google Translate text-to-speech, problem in Chrome

I'm creating a voice/text-memo web application.
Here: http://gustavstromberg.se/sandbox/html5/localstorage/ look at its source (very short, most of it is css)
This is:
Voice recognition, works only in chrome as far as I know.
Local Storage, to store notes as text.
Google Translate text-to-speech.
Everything works, but in different browsers. The voice input works perfect, only in chrome. The text-to-speech works in safari.
To dynamically load the memo into the audio>source element i use:
$("#spokenmemory").html("<source src='http://translate.google.com/translate_tts?tl=en&q="+localStorage['memory']+"' />");
(the localStorage['memory'] contains my stored text memo)
To play my recently saved memo with googles text-to-speech-function I use:
$("#listenplay").click(function(){
$("#spokenmemory")[0].play();
});
(spokenmemory is the id-attribute of my audio-tag)
This does'nt work to play in chrome, but if I visit the translation link (example: http://translate.google.com/translate_tts?tl=en&q=Japan, and my text-memo is "Japan") in a separate browser-tab and then return to my site and reload the page (with the same text-memo "Japan" saved), the playback works. How strange, and annying!
Has anyone any idea of this strange behaviour?
It is because google restricts certain types of requests to prevent the service from being overloaded. So the audio file is not fetched when your browser tries to fetch it. Once you visit the translation link, the audio file is fetched and is cached which is why the playback works (provided the text-memo is same). This has been my observation but I'm not very sure.
When I used CURL to fetch the file, this is what I got in response:
403. That’s an error.Your client does not have permission to get URL /translate_tts?q=hello from this server.
I tried hard Gustav, and this is what I found after a bit of research and testing.
It seems Chrome is having trouble streaming mp3 (the format google returns). The only solution I can imagine is getting the file (cURL?) to your server and then present it to the user. I assume when Google releases the official API, there will also be some sort of a format option.
http://code.google.com/p/chromium/issues/detail?id=45152
http://www.trygve-lie.com/blog/entry/html_5_audio_element_and (yes, the play button is the same color as the background, funky)