Update browser plugins to support v2 wire protocol, and checkin some prebuilt
libraries for them. The XPI files are *not* checked in here until all
platforms are rebuilt with the changes -- otherwise, users would no longer
be able to use platforms that were left out. Log levels were changed in a
few places in the XPCOM plugin to reduce spaminess, especially in the event
the development mode server connection goes away while the page is still
running.
The Safari plugin changes have had only minimal changes, and the IE plugin
changes are completely untested. They are checked in anyway since they were
never brought up to common code changes made last year, and therefore can't
be built from trunk anyway, so they are certainly no worse off this way.
When Bob is in town next week, we will test the Safari plugin more thoroughly
(including building an install image) and get the IE plugin built/tested.
Patch by: jat
Review by: bobv
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@5998 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/plugins/common/SwitchTransportMessage.h b/plugins/common/SwitchTransportMessage.h
new file mode 100644
index 0000000..0dad82a
--- /dev/null
+++ b/plugins/common/SwitchTransportMessage.h
@@ -0,0 +1,53 @@
+#ifndef __SWITCHTRANSPORTMESSAGE_H
+#define __SWITCHTRANSPORTMESSAGE_H
+/*
+ * Copyright 2009 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+#include <string>
+#include "Message.h"
+#include "BrowserChannel.h"
+#include "Value.h"
+
+class HostChannel;
+
+/**
+ * Class representing an SwitchTransport message received from the server, and a
+ * way to send one.
+ *
+ * The SwitchTransport message is sent by the server in response to a
+ * ChooseTransport message, and will select one of the available transports
+ * advertised by the client. The empty string represents the in-band channel,
+ * and is always an acceptable response.
+ */
+class SwitchTransportMessage : public Message {
+public:
+ static const char TYPE = MESSAGE_TYPE_SWITCH_TRANSPORT;
+private:
+ std::string transport;
+
+protected:
+ SwitchTransportMessage(const std::string& transport) : transport(transport) {}
+
+public:
+ ~SwitchTransportMessage();
+ virtual char getType() const;
+
+ const std::string& getTransport() const { return transport; }
+
+ static SwitchTransportMessage* receive(HostChannel& channel);
+ static bool send(HostChannel& channel, const std::string& transport);
+};
+#endif