docs: @Override
      public boolean isEnableForMessageContainer(MessageContainer<?> messageContainer) {
          resetState();
  
          if (!(messageContainer instanceof HttpMessageContainer)) {
              return false;
          }
  
          HttpMessageContainer httpMessageContainer = (HttpMessageContainer) messageContainer;
  
          if (!isEnable(httpMessageContainer)) {
              return false;
          }
  
          invoker = getInvoker(httpMessageContainer);
  
          if (!isEnableForInvoker(invoker, httpMessageContainer)) {
              invoker = null;
              return false;
          }
  
          boolean enabled = isButtonEnabledForHttpMessageContainerState(httpMessageContainer);
  
          if (enabled && !isSafe()) {
              Mode mode = Control.getSingleton().getMode();
              if (mode.equals(Mode.protect)) {
                  enabled = isSelectedMessagesInSessionScope(httpMessageContainer);
              } else if (mode.equals(Mode.safe)) {
                  enabled = false;
              }
          }
  
          if (enabled) {
              this.httpMessageContainer = httpMessageContainer;
          }
  
          setEnabled(enabled);
  
          return true;
      }