/*
   * This message handler is to facilitate communication between the network
   * thread and the browser thread.
   */
  public void handleMessage(Message msg) {
    switch (msg.what) {
      case MSG_CONTENT_HEADERS:
        /*
         * This message is sent when the LoadListener has headers
         * available. The headers are sent onto WebCore to see what we
         * should do with them.
         */
        if (mNativeLoader != 0) {
          commitHeaders();
        }
        break;

      case MSG_CONTENT_DATA:
        /*
         * This message is sent when the LoadListener has data available
         * in it's data buffer. This data buffer could be filled from a
         * file (this thread) or from http (Network thread).
         */
        if (mNativeLoader != 0) {
          commitLoad();
        }
        break;

      case MSG_CONTENT_FINISHED:
        /*
         * This message is sent when the LoadListener knows that the
         * load is finished. This message is not sent in the case of an
         * error.
         *
         */
        tearDown();
        break;

      case MSG_CONTENT_ERROR:
        /*
         * This message is sent when a load error has occured. The
         * LoadListener will clean itself up.
         */
        notifyError();
        tearDown();
        break;

      case MSG_LOCATION_CHANGED:
        /*
         * This message is sent from LoadListener.endData to inform the
         * browser activity that the location of the top level page
         * changed.
         */
        doRedirect();
        break;

      case MSG_LOCATION_CHANGED_REQUEST:
        /*
         * This message is sent from endData on receipt of a 307
         * Temporary Redirect in response to a POST -- the user must
         * confirm whether to continue loading. If the user says Yes,
         * we simply call MSG_LOCATION_CHANGED. If the user says No,
         * we call MSG_CONTENT_FINISHED.
         */
        Message contMsg = obtainMessage(MSG_LOCATION_CHANGED);
        Message stopMsg = obtainMessage(MSG_CONTENT_FINISHED);
        mBrowserFrame.getCallbackProxy().onFormResubmission(stopMsg, contMsg);
        break;
    }
  }