Enabling multi threaded downloading in chrome - google-chrome-extension

I want to create a chrome extension which can enable multi thread downloading of files. Does chrome expose some API which can be used to read file streams using javascript?
I was wondering why does chrome by default not support multi threaded downloading? Also if there are any ways of doing the same right now?

The downloads API (as of now, available on the dev channel only) seems to support your request. Each invocation of the chrome.downloads.download method constitutes a download of its own inside a separate thread (or process, for that matter).

Look at Metalink Downloader: https://chrome.google.com/webstore/detail/metalink-downloader/jnpljlobbiggcdikagmiepniibjdinap
Metalink Downloader can set 10 simultaneous connections to download from one url.

Related

Unable to record with extension Seraphic Web Security

I have a problem with recording. It started after our organization installed Seraphic extension and I can't switch it off.
Is there a away to solve it without switch it off?
Thanks,
I don't know what "Seraphic extension" is but if it's a kind of proxy - you need to make JMeter aware of this upstream proxy as it's described in Using JMeter behind a proxy chapter of JMeter documentation.
You can also try out JMeter Chrome Extension which makes recording process easier as you don't need to think of proxies and certificates.
And last but not the least you can record your test scenario using your browser developer tools, store the captured requests into a HAR file and convert this HAR file into JMeter test script.

How can I debug J2V8/node.js when running within JVM?

Typically, I use node inspector (https://github.com/node-inspector/node-inspector) to debug node.js. Can this be used to attach to a remote node.js instance running in the JVM via J2V8?
Also, it looks like the dev version of node.js supports native Chrome debugging: https://github.com/nodejs/node/pull/6792. If J2V8 adopts this version of node.js, will I be able to simply attach the Chrome debugger directly to the JVM?
If the question is still relevant - I have created j2v8-debugger library.
It allows debugging J2V8 using Chrome DevTools.
Basic features like setting/removing breakpoints, step into, step out and step over, variables inspection, etc. are implemented.
It uses Stetho lib for communication with Chrome DevTools.
Also it's uses DebugHandler for accessing V8 debug information.
If you need need to debug J2V8, which runs on non-Android JVM you would need to use another lib for communication to Chrome DevTools, but likely you could re-use all the logic from this project as it's basically POJO/JSON, which are send over web socket.
Hope it could be helpful.

Google chrome extension with NPAPI moving to NaCl

I have recently developed a google chrome extension that uses an NPAPI plugin made using the FireBreath framework. I just now found out that google will shortly discontinue these types of plugins and eventually ban all existing extensions that use them. So, I would like to eventually move to the NaCl / PPAPI architecture, but I am not sure if this architecture can even support what I am currently doing in the NPAPI plugin.
In my current NPAPI plugin I am supporting OSX and Windows. On the OSX version, the plugin executes the system() function which executes a small 1 line applescript. It looks like this:
osascript -e 'tell app ...
On the windows version, it executes functions in a COM library. Both versions end up doing the same exact thing. Another option I have is executing a python script, if I were to go this route, I would most likely want to embed python in the native component.
Is any of this possible anymore with NaCl / PPAPI?
The ability to run arbitrary system() function or execute arbitrary functions from a COM library is #1 reason for NPAPI deprecation. Ditto for execution of a python script (you can execute python script in NaCl, of course - but it'll not be able to call system() function or a COM library either).
It's not news: as was noted in the Chrome Comic book on the day of Chromium release NPAPI plugins are unrestricted and that it's a big problem: http://www.google.com/googlebooks/chrome/small_30.html
It was obvious even back then that this situation can only be tolerated for so long. Plugins were tolerated for five years because some important things were unimplemenatble without them but now it's time to kill plugins and make sure nothing in browser can access OS directly.
If you want to implement some functionality which can not be implemented in browser currently because there are no appropriate API the right way is to ask about it on chromium-dev and add this API to Chromium (and perhaps other browsers, too). For example access to COM ports (not libraries) was added recently (see http://developer.chrome.com/apps/app_hardware.html).
Since you are already using an extension, you may want to look at Native Messaging as a replacement for your use of NPAPI.
If you don't need an interaction between browser and the application, you can use external protocol support. You need to register protocol in the registry on Windows. I don't know how external protocols work on OSX. When user clicks external protocol link, Chrome shows a dialog which allows user to launch the application.

CRUD files on local (sandboxed) filesystem with chrome-extensions

I've been trying to do some CRUD operations to a local drive using chrome extensions.
I understand i won't be able to access the local file system directly, a sandboxed environment will do.
LocalStorage worked for data upto 5 mb. I'll be needing more.
I've found that setting "unlimitedStorage" won't grant more to the LocalStorage.
"unlimitedStorage"
Provides an unlimited quota for storing HTML5 client-side data, such as databases and local storage files. Without this permission, the extension or app is limited to 5 MB of local storage.
Note: This permission applies only to Web SQL Database and application cache (see issue 58985). Also, it doesn't currently work with wildcard subdomains such as http://*.example.com.
see chrome extension docs
I've then tried to use the FileSystemApi.
But it turned out that only chrome apps can use this api.
As far as i know I'm left with 4 other options:
WebSQL, which is deprecated.
IndexedDB, which looks promising
Application cache, referenced in the notes of the unlimitedStorage description.
Storage api, Which seems to be available for both extensions and apps
I've got a hunch that indexedDb will allow some form of CRUD. I'm reluctant to use WebSQL as it's deprecated and i've yet to find information about the Application cache, although i doubt that storing data for extensions is within the boundaries of its intended purpose.
Is it possible for chrome extensions to save, load and delete files on the local file system?
Am i misinformed about the LocalStorage Limitations or the use of the fileSystem Api in chrome extensions?
Will IndexedDB fulfill my needs?
Try with Cordova, Capacitor or similars.
In the browser, run the code in your test area, if you want to use your sandbox you need to run the application on the device (iOS, Android, Windows, Linux, etc.) and use native resources inside the sandbox, dont forget request permission.
If you work with ionic v4 you can use capacitor and mostest important is you can build for native app from web components to have your sandbox into native device!
Capacitor:
https://capacitor.ionicframework.com/docs/apis/filesystem/
Cordova:
https://cordova.apache.org/docs/en/latest/cordova/storage/storage.html

What's the best way to debug JavaScript on IBM Connections?

I've been building OpenSocial gadgets for IBM Connections and notice that the JavaScript is pre-fetched, minified and concatenated into a single file by the IBM Connections server.
This is great for production, but having already enabled developer mode in IBM Connections, it would be great if each JS file wasn't pushed onto a single line.
Is there a setting to prevent the minification?
Does IBM Connections generate a source map so that the original JS can be regenerated?
Is there anything else I'm missing?
I'm not aware of any source maps, but the dojo loader can help you out a lot. Add ?debug=true to a URL to have all JS files fetched separately, unminified. Use debug=dojo and the files will still be concatenated, but unminified.
If your URL has a # in it, place the ?debug=dojo before the #.

Resources