How does Google Chrome command and control multiple cross platform processes and provide a shared window / rendering area?
Any insights?
There is a document called Multi-process Architecture on the Chromium developer site. It might be a good starting place.
The source code is online here ...
Related
Since Apps Script runs in Chrome V8 engine, would it be possible to use any of V8 functionalities from Apps Script?
I was wondering if it will be possible to build tools like headless browser, webpage screenshot, etc using Apps Script. I haven't read on these though, but would if it would be possible.
Thanks
V8 is an ECMAScript engine, which is just one part of a browser. It doesn't know anything about the DOM, or CSS, or rendering, etc. So no, you can't use it to render screenshots of websites.
When we want to integrate Google map in windows application by using C# it gives the following errors when we run the application
error : you seem to be using an unsupported browser
Based from this forum, it seems that there is/are one or more addons or extension which is not allowing map to load. You can try to check one by one. Maybe it updated and broke maps.
You can also check this SO question which states that maybe the WebBrowser control is emulating an older version of Internet Explorer on your machine.
By default, this feature is enabled for Windows Internet Explorer and for applications hosting the WebBrowser Control. To disable this feature by using the registry, add the name of your executable file to the following setting.
Hope this helps!
You can consider a different web browser embedded control. For example, you can look at Chromium Embedded Framework.
https://en.wikipedia.org/wiki/Chromium_Embedded_Framework
I believe it should work pretty well. According to the documentation this framework embeds a Chromium browser (open-source web browser closely related to the Google Chrome browser) which uses the modern HTML5 and V8 JavaScript engine.
We are looking for an easy way for our users to download and install a small client widget (it is a windows app) used with our (much larger) web app.
Our web app is currently only supported in Chrome.
Our concern is that the clickonce support piece may be missing from most Chrome installs.
The questions:
-- Is clickonce really going to be useful in this situation?
-- What is the best option for "one click" download-and-install for Chrome on windows?
ClickOnce uses NPAPI which is being removed from Chrome. You will need to look at NaCl, Native Messaging or PPAPI instead of ClickOnce. There used to be browser extensions that you could use, however they have been removed from the store (or no longer work).
Using Chrome should not matter, so yes Click once will be useful in this situation.
The only thing you need to worry about is your clients using Windows and the appropriate version of the .net framework. I hope this helps.
My intention is to create a chrome plugin for the windows users. Is that possible to call windows api from Native Client /PPAPI. If possible how?
I am answering my question, as after some study, I found the answer from West a bit not right. I tried calling windows APIs in Pepper(PPAPI) Plugin and it works fine with a command line switch "--register-pepper-plugins" (not the --no-sandbox as specified by West). It seems safer to use this command line attribute as it is only registering a plugin in to the Chrome browser and not removing any sandbox. I thought of adding an answer after finding an actual pepper plugin existing in use, which uses the switch (the NetFlix pepper plugin for chromeos ).
Got more information to add. Chrome API is available which provides the multi-monitor information : chrome.systemInfo.display object provides all the necessary information. The chrome documentation is not updated. Important thing to note is that, the permission "systemInfo.display" is to be added in the manifest to use this object. Two bugs are reported in the functionality of this object.
1. The monitor name is same for all monitors "Generic PnP Monitor", the documentation claims to provide the user friendly name of monitors.
2. There is an event which should get invoked on resolution change of monitors, but the event is never getting invoked.
Currently the implementation is only for Windows OS. Support for other OS are on the way. Documentation says that the API is only available for Chrome App, but I haves tested that and the API is available on Chrome Extensions as well.
Unfortunately, the short answer is 'no'. Native Client is designed to be OS-independent and as safe as JavaScript. Think of Native Client as native code that has the same capabilities and restrictions as JavaScript. A Native Client module that made Windows API calls would break both of those design principles: it wouldn't run on, e.g., a Mac, and it would be a major security risk (imagine browsing to a web page that decides to erase files from your harddrive).
Since you mention Chrome, it may be interesting to you to know that web apps - whether they use JavaScript or Native Client - can request additional permissions as packaged apps in Chrome Web Store. However, native OS calls are still not possible for the reasons listed above.
NPAPI plugins do not have these restrictions, but the future of NPAPI, at least in Chrome, is uncertain (see the last paragraph of http://blog.chromium.org/2012/07/npapi-plug-ins-in-windows-8-metro-mode.html).
For development purposes, it is possible to turn Chrome's outer sandbox off with the command-line flag --no-sandbox and then run PPAPI plugins that make direct OS calls. This is meant for developers and is not a suitable option to be used by end-users.
If you could say a bit more about what you're trying to achieve, there may be ways to do this with Native Client/Pepper.
I'm writing a Chrome extension and some parts of it need to be super high performance. I'm trying to find documentation to see if it's possible to use C extensions within the Chrome extension. Is this currently possible?
Take a look at Native Client. You can write browser/web apps with NaCl via C or C++ (and Mono since 2.10). You can find a small tutorial here.