I would say that is a bit difficult to read, how about a compromise?

		if(popup != null && url != null) {
			context.put("has_mixed_content", popup && url.matches("http:.*"));
		}