bool Download_JS_Handler::Execute(const CefString& name,
	CefRefPtr<CefV8Value> object,
	const CefV8ValueList& arguments,
	CefRefPtr<CefV8Value>& retval,
	CefString& exception){

	if (name == "start"){
		
		auto msg=CefProcessMessage::Create("start_download");
		msg->GetArgumentList()->SetString(0, arguments.at(3)->GetStringValue());
		msg->GetArgumentList()->SetInt(1, arguments.at(0)->GetIntValue());
		msg->GetArgumentList()->SetInt(2, arguments.at(4)->GetIntValue());
		msg->GetArgumentList()->SetInt(3, arguments.at(5)->GetIntValue());
		msg->GetArgumentList()->SetInt(4, arguments[6]->GetIntValue());

		//CefV8Context::GetCurrentContext()->GetBrowser()->GetHost()->StartDownload("http://google.com");//nur im browser process
		//arguments.at(1)->GetFunctionHandler()->Execute("drawPauseButton",arguments.at(2),arguments,CefV8Value::CreateNull(),CefString("nein"));
		//::MessageBox(NULL, std::to_string(arguments.at(0)->GetIntValue()).c_str(),"okok",MB_OK);//problem bei derm ganzen getstringvalue usw.gibt im Fehlerfall nix zurück,also getstringvalue gibt nix zurück,ist aber eigentlich int
		CefV8Context::GetCurrentContext()->GetBrowser()->SendProcessMessage(PID_BROWSER,msg);
		do_execute_callback_function_dl_manager(arguments);//zwar net gut,dass er vor dem dlder button geändert wird(was passiert bei click vor download-start auf den button) wird,spart aber code(aktuell von jetzt ausgehend;-))
		//@TODO(geringe Priorität):callback-function speichern und aufrufen wenn download begonnen
		return true;
	}
	else if (name == "pause"){
		auto msg = CefProcessMessage::Create("pause_download");
		msg->GetArgumentList()->SetInt(0, arguments.at(0)->GetIntValue());
		CefV8Context::GetCurrentContext()->GetBrowser()->SendProcessMessage(PID_BROWSER, msg);
		do_execute_callback_function_dl_manager(arguments);
		return true;
	}
	else if (name == "resume"){
		auto msg = CefProcessMessage::Create("resume_download");
		msg->GetArgumentList()->SetInt(0, arguments.at(0)->GetIntValue());
		CefV8Context::GetCurrentContext()->GetBrowser()->SendProcessMessage(PID_BROWSER, msg);
		do_execute_callback_function_dl_manager(arguments);
		return true;
	}
	else if (name == "init_JS_Handler"){
		//downloader_browser_ref->AddRef();
		CefV8Context::GetCurrentContext()->GetBrowser()->SendProcessMessage(PID_BROWSER,CefProcessMessage::Create("js_code_initialized"));

		return true;
	}
	else if (name == "download_of_group_finished"){
		auto msg=CefProcessMessage::Create("download_of_group_finished");
		msg->GetArgumentList()->SetInt(0, arguments[0]->GetIntValue());
		CefV8Context::GetCurrentContext()->GetBrowser()->SendProcessMessage(PID_BROWSER,msg );
		return true;
	}
	

return false;
}
void do_execute_callback_function_dl_manager(const CefV8ValueList& arguments){
	CefV8ValueList argumentss;
	arguments.at(1)->ExecuteFunction(arguments.at(2), argumentss);

}