Chromium WebGadget v4

Developed or developing a new product in PureBasic? Tell the world about it.
JHPJHP
Addict
Addict
Posts: 2129
Joined: Sat Oct 09, 2010 3:47 am
Contact:

Re: Chromium WebGadget

Post by JHPJHP »

Updated:
- improved \Standalone Examples\CDP_ISAPI_DLL.pb

Included the option to take a full-page screenshot or a viewport screenshot.

If it's not already evident, the extension is a DLL with the same functionality as the Chromium WebGadget and the standalone CDP Tool.

Screenshot of an iPhone displaying the updated ISAPI extension.
Last edited by JHPJHP on Fri Mar 24, 2023 8:49 pm, edited 4 times in total.
User avatar
Caronte3D
Addict
Addict
Posts: 1023
Joined: Fri Jan 22, 2016 5:33 pm
Location: Some Universe

Re: Chromium WebGadget

Post by Caronte3D »

Ever It's hard to me to follow some of your examples :? maybe because my english language is not good :cry:
I think an explication of a real-life example of use would be good :wink:
JHPJHP
Addict
Addict
Posts: 2129
Joined: Sat Oct 09, 2010 3:47 am
Contact:

Re: Chromium WebGadget

Post by JHPJHP »

Hi Caronte3D,

Thank you for your question.
Caronte3D wrote:Ever It's hard to me to follow some of your examples :? maybe because my english language is not good :cry:
I think an explication of a real-life example of use would be good :wink:
Are you referring to the framework as a whole, or one of its many uses?
- everything is centered around the Chrome DevTools Protocol which includes JavaScript support

Chromium WebGadget: Much like the current PureBasic WebGadget, but (opinion) 100x more powerful.
- the only requirement is either having Chromium Edge or Google Chrome installed
- real world examples were already provided, including examples to test capabilities

CDP Standalone Tool: Most of what you can program using the Chromium WebGadget can also be applied against a local browser.
- includes running a browser in headless mode with full access to the Chrome DevTools Protocol
- currently seven browsers are supported, but more can be added upon request

ISAPI Extension: Allows control of the Chromium WebGadget or local browser (headless supported) from a remote device (i.e., smart phone).
- the administrative uses are only limited by the imagination; (again) see the Chrome DevTools Protocol for capabilities

Sorry I didn't provide you with a list of individual uses, but it's a WebGadget on steroids, there are (opinion) a million plus uses.
User avatar
Caronte3D
Addict
Addict
Posts: 1023
Joined: Fri Jan 22, 2016 5:33 pm
Location: Some Universe

Re: Chromium WebGadget

Post by Caronte3D »

Yeah! I already know It's like WebGadget but better :wink:

But...

I could do arbitrary things on a remote computer from a web browser?
Example: I could navigate to the IP of a VPS and do some search on a database and return the results?

In other words... it´s a client/server thing? :?
JHPJHP
Addict
Addict
Posts: 2129
Joined: Sat Oct 09, 2010 3:47 am
Contact:

Re: Chromium WebGadget

Post by JHPJHP »

Hi Caronte3D,

So, we're only talking about the ISAPI extension; sorry, it wasn't clear from your first post.
TBH, I'm finding your recent question just as vague, but let me error on the side of caution.
Caronte3D wrote:I could do arbitrary things on a remote computer from a web browser?
Example: I could navigate to the IP of a VPS and do some search on a database and return the results?
No, it cannot do arbitrary things on a remote computer, and unless there is a web interface to the VPS and database, it cannot do that either.

Whatever the Chromium WebGadget Framework can do locally, can be initiated remotely and the results returned to the remote device.

1. Commands (JSON text) are sent from a client (remote device) to the IIS server through an ISAPI extension.
2. The IIS server through the ISAPI extension makes a WebSocket connection to the local browser executing the sent commands.
3. The results (JSON text) are passed from the browsers WebSocket connection, through the ISAPI extension, back to the client.
Last edited by JHPJHP on Fri Oct 14, 2022 3:53 pm, edited 1 time in total.
User avatar
Caronte3D
Addict
Addict
Posts: 1023
Joined: Fri Jan 22, 2016 5:33 pm
Location: Some Universe

Re: Chromium WebGadget

Post by Caronte3D »

Oh! Ok, ok, now I understand.
Thanks for your explanation :wink:
JHPJHP
Addict
Addict
Posts: 2129
Joined: Sat Oct 09, 2010 3:47 am
Contact:

Re: Chromium WebGadget

Post by JHPJHP »

Updated:
- framework name changes
- stability enhancements

Framework Name Changes
Previously: CB_WebGadget (Chromium Browser WebGadget)
Currently: Cr_WebGadget (Chromium WebGadget)

Cr: Symbol for the Chromium element found in the Periodic Table of Elements.

NOTE
In addition, there were numerous variable name changes to match the current standard.
Previous projects will need to be updated in order to use the current framework.

Stability Enhancements (CDP_ISAPI_DLL.pb)
If you ever worked with an ISAPI extension you know how the smallest discrepancy can cause a page error.
Added auto-scaling to the base64 screenshot; based on numerous tests capturing various size webpages.
JHPJHP
Addict
Addict
Posts: 2129
Joined: Sat Oct 09, 2010 3:47 am
Contact:

Re: Chromium WebGadget

Post by JHPJHP »

Updated:
- improved HTML for better device compatibility
- compressed ISAPI images (webp) for faster loading
- added \Standalone Examples\CDP Sources\isapi\references\readme.txt

NB*: The ISAPI example was written as a template to create your own extension to the Chromium WebGadget framework.

The following ISAPI example (DLL) has been included with FREE STUFF
- \Standalone Examples\CDP Sources\isapi\binaries\
Last edited by JHPJHP on Fri Mar 24, 2023 8:52 pm, edited 2 times in total.
JHPJHP
Addict
Addict
Posts: 2129
Joined: Sat Oct 09, 2010 3:47 am
Contact:

Re: Chromium WebGadget

Post by JHPJHP »

Updated:
- added three template examples

Template Examples
- CDP_Standalone.pb: Take a full-page screenshot of a Chromium browser or Cr WebGadget
- CrWG_DevTools.pb: Simple browser with Navigate, Back, Forward, Refresh and Home buttons
- CrWG_General.pb: Simple video player (less than 30 lines of code)

NB*: It would be fairly easy to write an ISAPI extension, accessible from a smart phone, to control most browsers video players remotely.
JHPJHP
Addict
Addict
Posts: 2129
Joined: Sat Oct 09, 2010 3:47 am
Contact:

Re: Chromium WebGadget

Post by JHPJHP »

Updated:
- added another ISAPI example

Previously, I wrote how easy it would be to create an ISAPI extension to control a browsers video player remotely from your smart phone.
Because most video players use the same HTML5 video element, the extension works for most websites (YouTube, Vimeo, Tubi, etc.).

Features
1. Video Filter populated from an SQLite database.
2. Video Selection populated from an SQLite database.
3. Browser Navigation initiated from Video Selection.
4. Play, Pause, Seek, Volume and Fullscreen buttons.

NOTE: The Play button can also be used to Skip Ads in YouTube.
Last edited by JHPJHP on Fri Oct 28, 2022 5:36 pm, edited 8 times in total.
User avatar
ChrisR
Addict
Addict
Posts: 1127
Joined: Sun Jan 08, 2017 10:27 pm
Location: France

Re: Chromium WebGadget

Post by ChrisR »

Wow, you go a long way.
I didn't take the time to play with it but it looks like an awesome Chromium Gadget.
Thanks for sharing in your PureBasic Stuff, Rogers! :)
JHPJHP
Addict
Addict
Posts: 2129
Joined: Sat Oct 09, 2010 3:47 am
Contact:

Re: Chromium WebGadget

Post by JHPJHP »

Hi ChrisR,

Thank you for your post, it's always nice to receive a positive comment.

---------------------------------------

Updated (ISAPI remote example):
- added seek buttons
- added volume buttons
- updated icons
- improved layout
- optimized code
Last edited by JHPJHP on Sun Oct 30, 2022 2:27 am, edited 2 times in total.
JHPJHP
Addict
Addict
Posts: 2129
Joined: Sat Oct 09, 2010 3:47 am
Contact:

Re: Chromium WebGadget

Post by JHPJHP »

Updated (ISAPI examples):
- stability improvements
- squashed a couple bugs
- included DebugView.zip

Thanks to an excellent tip from freak I was able to track down and fix an intermittent bug using the suggested tool.
Last edited by JHPJHP on Sun Oct 30, 2022 2:28 am, edited 1 time in total.
JHPJHP
Addict
Addict
Posts: 2129
Joined: Sat Oct 09, 2010 3:47 am
Contact:

Re: Chromium WebGadget

Post by JHPJHP »

Updated:
- Progressive Web App (PWA)
- added startup image
- added Skip Ads button (YouTube only)
- added Closed Captions button (YouTube only)

With the use of a manifest file and some iPhone specific meta tags, the example now best emulates an iPhone app.
Essentially this is an iPhone app written in PureBasic, but with the added functionality of working on any device with a browser.

NB*: Android and Windows specific meta tags were included but have not been tested.
Last edited by JHPJHP on Fri Mar 24, 2023 8:47 pm, edited 1 time in total.
JHPJHP
Addict
Addict
Posts: 2129
Joined: Sat Oct 09, 2010 3:47 am
Contact:

Re: Chromium WebGadget

Post by JHPJHP »

Updated:
- added IP Address field to CDP_Control_Panel.pb
- added IP Address field to CDP_ISAPI_Capture_DLL.pb
- numerous improvements to CDP_ISAPI_Video_DLL.pb

CDP Control Panel / CDP ISAPI Capture DLL
When a browser is run in headless mode a WebSocket connection can now be made from any IP address within the local network.

Demonstration
1. Run CDP_Control_Panel.pb.
2. Select "Enable Headless Browser Mode" checkbox.
3. Press the [ > ] button to select a browser.
4. Open a browser on another device.
5. Enter [local IP address]:9222\json

Closing Headless Browser
6. Press the [+] button to make the Port connection.
7. Press the Connect DevTools button.
8. Closing CDP Control Panel will also close the Headless Browser.
Last edited by JHPJHP on Thu Nov 17, 2022 4:37 pm, edited 1 time in total.
Locked