I'm getting an output message (Vector smash protection is enabled) in the debugging output window (Visual Studio) when I navigate to this URL with a WebBrowser.
The URL redirects to an embedded video player from Dailymotion. It should look like this :
But it looks like this :
What this message means? Why do I have a black screen (the video isn't shown)? How to fix it?
Edit : You can see all the code in the last screenshot...
I noticed something similar myself.
I got the following when installing python webbrowser:
Vector smash protection is enabled.
java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.6) (7u79-2.5.6-0ubuntu1.14.04.1)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)
I am convinced that it is to prevent a type of denial of service attack, just released in Java 1.7, with no fanfare.
see:
http://docs.oracle.com/javase/7/docs/api/java/util/Vector.html
and
http://www.oracle.com/technetwork/java/seccodeguide-139067.html
Edit 1:
As my issue was coming from the pdf viewer atril, I approached the writers of the program and they have informed me that the Vector smash protection is enabled message is being issued by Webkit. Atril added a new epub backend to their code and it uses Webkit.
A cursory search suggests that it is a defence against a stack smash or heap spraying attack, although don't hold me to it.
The reason that this message seems to be popping up across browsers, viewers and indeed operating systems, appears to be directly related to how many programs now use webkit under the hood, as it were.
Here are 2 lists of code making use of webkit:
http://trac.webkit.org/wiki/ApplicationsGtk
http://trac.webkit.org/wiki/Applications%20using%20WebKit
As usual, if in doubt, your own research may prove more effective than mine but I for one am much happier about the message, now that I know what it is.
Should I come across anything else germane, I'll edit this post.
The message "Vector smash protection is enabled." is emitted by Flash.ocx (you can find it in the DLL). It's likely related to this security mitigation: http://googleprojectzero.blogspot.com/2015/07/significant-flash-exploit-mitigations_16.html
You can deal with this problem using the chrome options and creating a desired capabilities but first of all you need to consider:
1: the value you should to put in 'user-data-dir' is the same you can find out in the route chrome://version/ in Google Chrome. Let me explain that with a picture (at the end of this answer).
ChromeOptions options = new ChromeOptions();
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
options.addArguments("user-data-dir=/Users/YourUser/Library/Application Support/Google/Chrome/Profile 1");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
And afterward you need to add this options to your Driver:
driver = new ChromeDriver(capabilities);
So, this is the best way to make request to a page that has Vector smash protection enabled.
Sorry but I can't spent time but the following was printed on my bash terminal.
Vector smash protection is enabled.
Failed to open VDPAU backend libvdpau_va_gl.so: cannot open shared object file: No such file or directory
Failed to open VDPAU backend libvdpau_va_gl.so: cannot open shared object file: No such file or directory
Failed to open VDPAU backend libvdpau_va_gl.so: cannot open shared object file: No such file or directory
...
Related
I created a browser instance using Cefsharp library. In the task manager I see only the below processes and not embedded browser webview.
But, when I created browser instance using the Microsoft Edge WebView2, I see that process as well present. Since, both are chromium based I was thinking same set of processes to be present.
Any explanation should greatly be helpful.
Both CefSharp and MS Edge WebView2 are based on Chromium, so both libraries use multi-process architecture.
The msedgewebview2.exe process with the --embedded-browser-view=1 command line parameter you see when running MS Edge WebView2 represents a main Chromium process. It doesn't have --type=....
In CefSharp you don't see the main Chromium process, because CefSharp initializes Chromium inside a .NET application which might have absolutely different name.
So, the behavior you see is expected and there's nothing strange or unusual if you know how it works inside ;)
We recently upgraded our Windows 10 test environment with ChromeDriver v87.0.4280.20 and Chrome v87.0.4280.66 (Official Build) (64-bit) and after the up-gradation even the minimal program is producing this ERROR log:
[9848:10684:1201/013233.169:ERROR:device_event_log_impl.cc(211)] [01:32:33.170] USB: usb_device_handle_win.cc:1020 Failed to read descriptor from node connection: A device attached to the system is not functioning. (0x1F)
Minimum Code Block:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
driver.get('https://www.google.com/')
Console Output:
DevTools listening on ws://127.0.0.1:64170/devtools/browser/2fb4bb93-79ab-4131-9e4a-3b65c08dbffb
[9848:10684:1201/013233.169:ERROR:device_event_log_impl.cc(211)] [01:32:33.170] USB: usb_device_handle_win.cc:1020 Failed to read descriptor from node connection: A device attached to the system is not functioning. (0x1F)
[9848:10684:1201/013233.172:ERROR:device_event_log_impl.cc(211)] [01:32:33.173] USB: usb_device_handle_win.cc:1020 Failed to read descriptor from node connection: A device attached to the system is not functioning. (0x1F)
Anyone facing the same? Was there any change in ChromeDriver/Chrome v87 with respect to ChromeDriver/Chrome v86?
Any clues will be helpful.
However these log messages can be supressed from appearing on the console through an easy hack i.e. by adding an argument through add_experimental_option() as follows:
options.add_experimental_option('excludeSwitches', ['enable-logging'])
Code Block:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
# to supress the error messages/logs
options.add_experimental_option('excludeSwitches', ['enable-logging'])
driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
driver.get('https://www.google.com/')
My apologies for the log spam. If you aren't having issues connecting to a device with WebUSB you can ignore these warnings. They are triggered by Chrome attempting to read properties of USB devices that are currently suspended.
After going through quite a few discussions, documentations and Chromium issues here are the details related to the surfacing of the log message:
[9848:10684:1201/013233.169:ERROR:device_event_log_impl.cc(211)] [01:32:33.170] USB: usb_device_handle_win.cc:1020 Failed to read descriptor from node connection: A device attached to the system is not functioning. (0x1F)
Details
It all started with the reporting of chromium issue Remove WebUSB's dependency on libusb on Windows as:
For Linux (probably Mac as well), both WebUSB notification and communication works correctly (after allowing user access to the device in udev rules).
For Windows, it seems that libusb only works with a non-standard WinUsb driver (https://github.com/libusb/libusb/issues/255).
When the hardware is inserted and the VID/PID is unknown to the system, windows 10 correctly loads it's CDC driver for the CDC part and the WinUSB driver (version 10) for the WebUSB part (no red flags). However, it seems that chrome never finds the device until I manually force an older WinUSB driver (version 6 - probably modified also) on the interface.
The solution was implemented in a step-wise manner as follows:
Start supporting some transfers in the new Windows USB backend
Fix bulk/interrupt transfers in the new Windows USB backend
[usb] Read BOS descriptors from the hub driver on Windows
[usb] Collect all composite devices paths during enumeration on Windows
[usb] Remove out parameters in UsbServiceWin helper functions
[usb] Support composite devices in the new Windows backend
[usb] Detect USB functions as Windows enumerates them
[usb] Support composite devices with multiple functions
[usb] Hold interface requests until Windows enumerates functions
[usb] Add direction parameter to ClearHalt
[usb] Count references to a WINUSB_INTERFACE_HANDLE
[usb] Implement blocking operations in the Windows backend
These changes ensured that the new backend was ready to be tested and was available through Chrome Canary and chrome-dev-channel which you can access manually through:
chrome://flags#enable-new-usb-backend
More change requests were submitted as follows:
[usb] Mark calls to SetupDiGetDeviceProperty as potentially blocking: According to hang reports this function performs an RPC call which may take some time to complete. Mark calls with a base::ScopedBlockingCall so that the thread pool knows this task may be busy for a while.
variations: Enable NewUsbBackend in field trial testing config: This flag was experimental as beta-channel uses this change configuration as the default for testing.
As the experimental launch of the new backend appeared to be stable, finally these configuration was enabled by default so that the chanege rolls out to all users of Chrome 87 through usb: Enable new Windows USB backend by default. Revision / Commit
The idea was once this configuration becomes the default for a few milestones, Chromium Team will start removing the Windows-specific code from the old back-end and remove the flag.
Road Ahead
Chromium Team have already merged the revision/commit to Extend new-usb-backend flag expiration within Chrome v90 which will be available soon.
Update
As per #ReillyGrant's [Committer, WebDriver for Google Chrome] comment :
..." it would be good to reduce the log level for these messages so they don't appear on the console by default but we haven't landed code to do that yet"...
References
You can find a couple of relevant detailed discussions in:
Failed to read descriptor from node connection: A device attached to the system is not functioning error using ChromeDriver Selenium on Windows OS
Failed to read descriptor from node connection: A device attached to the system is not functioning error using ChromeDriver Chrome through Selenium
I encounered this problem yesterday,and I has fixed it by update all available windows update.
https://support.microsoft.com/en-us/windows/what-to-try-if-your-touchscreen-doesn-t-work-f159b366-b3ef-99ad-24a4-31a4c62ab46d
A partial solution that worked for me
I was getting this error too. It was stopping my program running.
I unplugged all my USB devices, ran the program, with no error.
Plugged the devices back in, ran the program. I am still getting the error, however, the program finished without the error stopping the program.
Note: For WebdriverIO on Windows 10, this suppresses the error messages for me:
"goog:chromeOptions": { "excludeSwitches": ["enable-logging"] }
I want to run a simple test using OxygenHQ, of opening wikipedia and then search for hello world. The script written is working fine for Chrome and Firefox but in case of IE mutiple windows are opening without the page and then it fails eventually.
Is there any way to fix this? I went through the docs provided at http://docs.oxygenhq.org/guide-web-intro.html but could not get a concrete answer on why this is only happening for IE. Here is a console output and screenshot for reference.
Console Output :
Initializing...
Starting iteration #1
UNKNOWN_ERROR - undefined: args[0].endsWith is not a function at line 1Test finished with status --> FAILED
Details:
Browser: Internet Explorer
Version: 11.535.18362.0
OS: Windows 10
This might be connected to your internet settings
make sure that the IE screen size is 100%
make sure all Internet options in Security Tab (Internet, Local Internet etc') are either with the Enable protected mode on or off (should be the same for all)
see picture
Have a look again at the Oxygen web site, it has had a major facelift and a lot of new content
I have a site that uses web fonts.The site used to function properly until the client's IT team rolled out Windows 10 Pro across the organization. After the Windows upgrade, the web fonts stopped working with error "CSS3111: #font-face encountered unknown error" on IE 11 browser. However on all other major browsers including new Edge the site works without any issues.
I did some search to and came to know it is because of a recommended features called Untrusted Font Blocking and to disable it I need to modify certain registry keys. However in my case that is not an option as the this feature is recommended by Microsoft for security. Also it needs the change to be done on local machines.
While googling, I noticed some people suggesting encoding and embeding of font file as Base64 encoded string. In fact I could see that as a workaround in many Q&A sites and forums (eg here, here). But I failed when I attempted to do that. On my Win10+IE11 I still get CSS3111: #font-face encountered unknown error (screenshot)
Further googling led me to this SO question that actually answers to my problem. It says even if I convert the font file to Base64 the Win10+IE11 will still prevent it while converting and loading into the memory for execution.
Interestingly I found major Font and icon vendors are not attempting to figure out a workaround for this as I can see none of their website shows up properly on Win10+IE11. Even Microsoft's own site (outlook.office.com) has this issue.
Now my questions are:
Is there any workaround that can help me to fix the issue
If no workaround then is it a good idea to have a end user warning popup to switch to more supported browser with user agent detection?
Thanks in advance.
I've seen a ton of games and what not opening their applications using links like "game://15.64.15.64:25876" or something.
I want to be able to launch my game's .exe from my website for users who installed it, and for it to work on any browser; At the same time I want to be able to pass a parameter (just 1).
What registry values would need to be added/modified for this to work for all browsers? If there's extra steps to setting it up in all browsers, can you explain these steps? Other questions I've found didn't quite help or worked only in IE. I require Firefox, Chrome, and IE at the least.
A similar question was asked here:
How do I make the website execute links?
You would end up with a structure like this in your registry:
HKEY_CLASSES_ROOT
game
(Default) = "URL:Game Protocol"
URL Protocol = ""
DefaultIcon
(Default) = "game.exe,1"
shell
open
command
(Default) = "C:\Games\YourGame\game.exe" "%1"
See this article on MSDN for details:
Registering an Application to a URI Scheme
As mentioned by OP, the above approach only works in IE. Here are some thoughts on how to make it work in other browsers:
Chrome: Is it possible to open custom URL scheme with Google Chrome?
Firefox: Writing a Firefox Protocol Handler
One way I can think is download a file from browser ( gamesession.gme or your extension)
and set your game as the default application for that extension.