A protocol handler just calls the registered command with the full url as a parameter.
If in the registry you set "c:\path\to\chrome.exe" %1 as the command and then launched chrome:http://google.com, Chrome.exe would be started with chrome:http://google.com as the parameter and this is not going to work because Chrome does not know what to do with that url. Because you said it just opens a new blank page I suspect you failed to even specify %1 in the registry.
If you want to invent a new protocol for a 3rd-party application you would have to make your own launcher that transforms the url before passing it to Chrome.
Example batch launcher:
@echo off setlocal ENABLEEXTENSIONS DISABLEDELAYEDEXPANSION if /I "%1"=="Install" goto install set url= echo I was started with %* for /f "tokens=1,* delims=:" %%a in ("%*") do set url=%%b echo URL to use is %url% if defined url start chrome.exe %url% goto :EOF :install reg add HKCU\Software\Classes\Chrome /v "URL Protocol" /d "" /f reg add HKCU\Software\Classes\Chrome\shell\open\command /ve /f /d """"%~f0""" %%1" echo Registered, now testing... start chrome:http://google.com
(Save as .bat and execute it once in cmd.exe with Install as the parameter)