Intergration of the client-side phishing detection.

If the client-side phishing detection classifies a page as phishing it will
send back a ping to Google to verify whether or not the page is really phishing.

If the server also classifies the site as phishing we may show a phishing
interstitial if it is enabled.

BUG=
TEST=

Review URL: http://codereview.chromium.org/6014003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75299 0039d316-1c4b-4281-b951-d872f2087c98


CrOS-Libchrome-Original-Commit: fa685ffdc706738091a9243e12da2c89f2a01f0f
diff --git a/base/task.h b/base/task.h
index fc986b2..2deee56 100644
--- a/base/task.h
+++ b/base/task.h
@@ -423,6 +423,21 @@
                                                                     e, f, g));
 }
 
+template <class T, class Method, class A, class B, class C, class D, class E,
+          class F, class G, class H>
+inline CancelableTask* NewRunnableMethod(T* object, Method method,
+                                         const A& a, const B& b,
+                                         const C& c, const D& d, const E& e,
+                                         const F& f, const G& g, const H& h) {
+  return new RunnableMethod<T,
+                            Method,
+                            Tuple8<A, B, C, D, E, F, G, H> >(object,
+                                                             method,
+                                                             MakeTuple(a, b, c,
+                                                                       d, e, f,
+                                                                       g, h));
+}
+
 // RunnableFunction and NewRunnableFunction implementation ---------------------
 
 template <class Function, class Params>
diff --git a/base/tuple.h b/base/tuple.h
index 13d8722..65d0908 100644
--- a/base/tuple.h
+++ b/base/tuple.h
@@ -590,6 +590,13 @@
   (obj->*method)(arg.a, arg.b, arg.c, arg.d, arg.e, arg.f, arg.g);
 }
 
+template<class ObjT, class Method, class A, class B, class C, class D, class E,
+         class F, class G, class H>
+inline void DispatchToMethod(ObjT* obj, Method method,
+                             const Tuple8<A, B, C, D, E, F, G, H>& arg) {
+  (obj->*method)(arg.a, arg.b, arg.c, arg.d, arg.e, arg.f, arg.g, arg.h);
+}
+
 // Static Dispatchers with no out params.
 
 template <class Function>
diff --git a/ipc/ipc_message_utils.h b/ipc/ipc_message_utils.h
index 75231d8..17941aa 100644
--- a/ipc/ipc_message_utils.h
+++ b/ipc/ipc_message_utils.h
@@ -68,6 +68,7 @@
   SpeechInputMsgStart,
   PepperMsgStart,
   AutoFillMsgStart,
+  SafeBrowsingMsgStart,
 };
 
 class DictionaryValue;