1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Multiply-included message file, so no include guard.
6
7#include "ipc/ipc_message_macros.h"
8#include "url/gurl.h"
9
10#define IPC_MESSAGE_START SafeBrowsingMsgStart
11
12// A node is essentially a frame.
13IPC_STRUCT_BEGIN(SafeBrowsingHostMsg_MalwareDOMDetails_Node)
14  // URL of this resource. Can be empty.
15  IPC_STRUCT_MEMBER(GURL, url)
16
17  // If this resource was in the "src" attribute of a tag, this is the tagname
18  // (eg "IFRAME"). Can be empty.
19  IPC_STRUCT_MEMBER(std::string, tag_name)
20
21  // URL of the parent node. Can be empty.
22  IPC_STRUCT_MEMBER(GURL, parent)
23
24  // children of this node. Can be emtpy.
25  IPC_STRUCT_MEMBER(std::vector<GURL>, children)
26IPC_STRUCT_END()
27
28// SafeBrowsing client-side detection messages sent from the renderer to the
29// browser.
30
31// Inform the browser that the client-side phishing detector running in the
32// renderer is done classifying the current URL.  If the URL is phishing
33// the request proto will have |is_phishing()| set to true.
34// TODO(noelutz): we may want to create custom ParamTraits for MessageLite to
35// have a generic way to send protocol messages over IPC.
36IPC_MESSAGE_ROUTED1(SafeBrowsingHostMsg_PhishingDetectionDone,
37                    std::string /* encoded ClientPhishingRequest proto */)
38
39// Send part of the DOM to the browser, to be used in a malware report.
40IPC_MESSAGE_ROUTED1(SafeBrowsingHostMsg_MalwareDOMDetails,
41                    std::vector<SafeBrowsingHostMsg_MalwareDOMDetails_Node>)
42
43// SafeBrowsing client-side detection messages sent from the browser to the
44// renderer.
45
46// A classification model for client-side phishing detection.
47// The string is an encoded safe_browsing::ClientSideModel protocol buffer, or
48// empty to disable client-side phishing detection for this renderer.
49IPC_MESSAGE_CONTROL1(SafeBrowsingMsg_SetPhishingModel,
50                     std::string /* encoded ClientSideModel proto */)
51
52// Request a DOM tree when a malware interstitial is shown.
53IPC_MESSAGE_ROUTED0(SafeBrowsingMsg_GetMalwareDOMDetails)
54
55// Tells the renderer to begin phishing detection for the given toplevel URL
56// which it has started loading.
57IPC_MESSAGE_ROUTED1(SafeBrowsingMsg_StartPhishingDetection,
58                    GURL)
59