I see the code logic is a bit different from Chromium.  Your code is like if((A || B) && !C) return false. If (A||B) gets false,  the function will return false and exit, but doesn't  write error or warning message in the corresponding structure.