| Index: chrome/common/webkit_param_traits.h
 | 
| diff --git a/chrome/common/webkit_param_traits.h b/chrome/common/webkit_param_traits.h
 | 
| index 748c26b11caea359d9d758a6cb5a7ff4c79dd498..63cb10b4247db8c91f30950d40f29d900f5ae65e 100644
 | 
| --- a/chrome/common/webkit_param_traits.h
 | 
| +++ b/chrome/common/webkit_param_traits.h
 | 
| @@ -26,80 +26,38 @@
 | 
|  
 | 
|  #include "ipc/ipc_message_utils.h"
 | 
|  #include "third_party/WebKit/WebKit/chromium/public/WebCache.h"
 | 
| -#include "third_party/WebKit/WebKit/chromium/public/WebCompositionUnderline.h"
 | 
|  #include "third_party/WebKit/WebKit/chromium/public/WebConsoleMessage.h"
 | 
|  #include "third_party/WebKit/WebKit/chromium/public/WebContextMenuData.h"
 | 
|  #include "third_party/WebKit/WebKit/chromium/public/WebDragOperation.h"
 | 
| -#include "third_party/WebKit/WebKit/chromium/public/WebFindOptions.h"
 | 
|  #include "third_party/WebKit/WebKit/chromium/public/WebInputEvent.h"
 | 
| -#include "third_party/WebKit/WebKit/chromium/public/WebMediaPlayerAction.h"
 | 
|  #include "third_party/WebKit/WebKit/chromium/public/WebPopupType.h"
 | 
| -#include "third_party/WebKit/WebKit/chromium/public/WebScreenInfo.h"
 | 
|  #include "third_party/WebKit/WebKit/chromium/public/WebTextDirection.h"
 | 
|  #include "third_party/WebKit/WebKit/chromium/public/WebTextInputType.h"
 | 
|  
 | 
| +namespace WebKit {
 | 
| +struct WebCompositionUnderline;
 | 
| +struct WebFindOptions;
 | 
| +struct WebMediaPlayerAction;
 | 
| +struct WebRect;
 | 
| +struct WebScreenInfo;
 | 
| +}
 | 
| +
 | 
|  namespace IPC {
 | 
|  
 | 
|  template <>
 | 
|  struct ParamTraits<WebKit::WebRect> {
 | 
|    typedef WebKit::WebRect param_type;
 | 
| -  static void Write(Message* m, const param_type& p) {
 | 
| -    WriteParam(m, p.x);
 | 
| -    WriteParam(m, p.y);
 | 
| -    WriteParam(m, p.width);
 | 
| -    WriteParam(m, p.height);
 | 
| -  }
 | 
| -  static bool Read(const Message* m, void** iter, param_type* p) {
 | 
| -    return
 | 
| -      ReadParam(m, iter, &p->x) &&
 | 
| -      ReadParam(m, iter, &p->y) &&
 | 
| -      ReadParam(m, iter, &p->width) &&
 | 
| -      ReadParam(m, iter, &p->height);
 | 
| -  }
 | 
| -  static void Log(const param_type& p, std::wstring* l) {
 | 
| -    l->append(L"(");
 | 
| -    LogParam(p.x, l);
 | 
| -    l->append(L", ");
 | 
| -    LogParam(p.y, l);
 | 
| -    l->append(L", ");
 | 
| -    LogParam(p.width, l);
 | 
| -    l->append(L", ");
 | 
| -    LogParam(p.height, l);
 | 
| -    l->append(L")");
 | 
| -  }
 | 
| +  static void Write(Message* m, const param_type& p);
 | 
| +  static bool Read(const Message* m, void** iter, param_type* p);
 | 
| +  static void Log(const param_type& p, std::wstring* l);
 | 
|  };
 | 
|  
 | 
|  template <>
 | 
|  struct ParamTraits<WebKit::WebScreenInfo> {
 | 
|    typedef WebKit::WebScreenInfo param_type;
 | 
| -  static void Write(Message* m, const param_type& p) {
 | 
| -    WriteParam(m, p.depth);
 | 
| -    WriteParam(m, p.depthPerComponent);
 | 
| -    WriteParam(m, p.isMonochrome);
 | 
| -    WriteParam(m, p.rect);
 | 
| -    WriteParam(m, p.availableRect);
 | 
| -  }
 | 
| -  static bool Read(const Message* m, void** iter, param_type* p) {
 | 
| -    return
 | 
| -      ReadParam(m, iter, &p->depth) &&
 | 
| -      ReadParam(m, iter, &p->depthPerComponent) &&
 | 
| -      ReadParam(m, iter, &p->isMonochrome) &&
 | 
| -      ReadParam(m, iter, &p->rect) &&
 | 
| -      ReadParam(m, iter, &p->availableRect);
 | 
| -  }
 | 
| -  static void Log(const param_type& p, std::wstring* l) {
 | 
| -    l->append(L"(");
 | 
| -    LogParam(p.depth, l);
 | 
| -    l->append(L", ");
 | 
| -    LogParam(p.depthPerComponent, l);
 | 
| -    l->append(L", ");
 | 
| -    LogParam(p.isMonochrome, l);
 | 
| -    l->append(L", ");
 | 
| -    LogParam(p.rect, l);
 | 
| -    l->append(L", ");
 | 
| -    LogParam(p.availableRect, l);
 | 
| -    l->append(L")");
 | 
| -  }
 | 
| +  static void Write(Message* m, const param_type& p);
 | 
| +  static bool Read(const Message* m, void** iter, param_type* p);
 | 
| +  static void Log(const param_type& p, std::wstring* l);
 | 
|  };
 | 
|  
 | 
|  template <>
 | 
| @@ -141,26 +99,9 @@ struct ParamTraits<WebKit::WebPopupType> {
 | 
|  template <>
 | 
|  struct ParamTraits<WebKit::WebFindOptions> {
 | 
|    typedef WebKit::WebFindOptions param_type;
 | 
| -  static void Write(Message* m, const param_type& p) {
 | 
| -    WriteParam(m, p.forward);
 | 
| -    WriteParam(m, p.matchCase);
 | 
| -    WriteParam(m, p.findNext);
 | 
| -  }
 | 
| -  static bool Read(const Message* m, void** iter, param_type* p) {
 | 
| -    return
 | 
| -      ReadParam(m, iter, &p->forward) &&
 | 
| -      ReadParam(m, iter, &p->matchCase) &&
 | 
| -      ReadParam(m, iter, &p->findNext);
 | 
| -  }
 | 
| -  static void Log(const param_type& p, std::wstring* l) {
 | 
| -    l->append(L"(");
 | 
| -    LogParam(p.forward, l);
 | 
| -    l->append(L", ");
 | 
| -    LogParam(p.matchCase, l);
 | 
| -    l->append(L", ");
 | 
| -    LogParam(p.findNext, l);
 | 
| -    l->append(L")");
 | 
| -  }
 | 
| +  static void Write(Message* m, const param_type& p);
 | 
| +  static bool Read(const Message* m, void** iter, param_type* p);
 | 
| +  static void Log(const param_type& p, std::wstring* l);
 | 
|  };
 | 
|  
 | 
|  template <>
 | 
| @@ -328,37 +269,9 @@ struct ParamTraits<WebKit::WebDragOperation> {
 | 
|  template <>
 | 
|  struct ParamTraits<WebKit::WebMediaPlayerAction> {
 | 
|    typedef WebKit::WebMediaPlayerAction param_type;
 | 
| -  static void Write(Message* m, const param_type& p) {
 | 
| -    WriteParam(m, static_cast<int>(p.type));
 | 
| -    WriteParam(m, p.enable);
 | 
| -  }
 | 
| -  static bool Read(const Message* m, void** iter, param_type* r) {
 | 
| -    int temp;
 | 
| -    if (!ReadParam(m, iter, &temp))
 | 
| -      return false;
 | 
| -    r->type = static_cast<param_type::Type>(temp);
 | 
| -    return ReadParam(m, iter, &r->enable);
 | 
| -  }
 | 
| -  static void Log(const param_type& p, std::wstring* l) {
 | 
| -    l->append(L"(");
 | 
| -    switch (p.type) {
 | 
| -      case WebKit::WebMediaPlayerAction::Play:
 | 
| -        l->append(L"Play");
 | 
| -        break;
 | 
| -      case WebKit::WebMediaPlayerAction::Mute:
 | 
| -        l->append(L"Mute");
 | 
| -        break;
 | 
| -      case WebKit::WebMediaPlayerAction::Loop:
 | 
| -        l->append(L"Loop");
 | 
| -        break;
 | 
| -      default:
 | 
| -        l->append(L"Unknown");
 | 
| -        break;
 | 
| -    }
 | 
| -    l->append(L", ");
 | 
| -    LogParam(p.enable, l);
 | 
| -    l->append(L")");
 | 
| -  }
 | 
| +  static void Write(Message* m, const param_type& p);
 | 
| +  static bool Read(const Message* m, void** iter, param_type* r);
 | 
| +  static void Log(const param_type& p, std::wstring* l);
 | 
|  };
 | 
|  
 | 
|  template <>
 | 
| @@ -378,30 +291,9 @@ template <>
 | 
|  template <>
 | 
|  struct ParamTraits<WebKit::WebCompositionUnderline> {
 | 
|    typedef WebKit::WebCompositionUnderline param_type;
 | 
| -  static void Write(Message* m, const param_type& p) {
 | 
| -    WriteParam(m, p.startOffset);
 | 
| -    WriteParam(m, p.endOffset);
 | 
| -    WriteParam(m, p.color);
 | 
| -    WriteParam(m, p.thick);
 | 
| -  }
 | 
| -  static bool Read(const Message* m, void** iter, param_type* p) {
 | 
| -    return
 | 
| -        ReadParam(m, iter, &p->startOffset) &&
 | 
| -        ReadParam(m, iter, &p->endOffset) &&
 | 
| -        ReadParam(m, iter, &p->color) &&
 | 
| -        ReadParam(m, iter, &p->thick);
 | 
| -  }
 | 
| -  static void Log(const param_type& p, std::wstring* l) {
 | 
| -    l->append(L"(");
 | 
| -    LogParam(p.startOffset, l);
 | 
| -    l->append(L",");
 | 
| -    LogParam(p.endOffset, l);
 | 
| -    l->append(L":");
 | 
| -    LogParam(p.color, l);
 | 
| -    l->append(L":");
 | 
| -    LogParam(p.thick, l);
 | 
| -    l->append(L")");
 | 
| -  }
 | 
| +  static void Write(Message* m, const param_type& p);
 | 
| +  static bool Read(const Message* m, void** iter, param_type* p);
 | 
| +  static void Log(const param_type& p, std::wstring* l);
 | 
|  };
 | 
|  
 | 
|  template <>
 | 
| 
 |