guard.clearRequestDone();
Object result = context.invoke();
RequestType requestType;
if (strict) {
requestType = waitForRequestChange();
} else {
requestType = waitForRequestType(requestExpected);
}
if (requestType.equals(requestExpected)) {
waitForRequestFinished();
} else {
throw new RequestGuardException(requestExpected, requestType);
}