12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CONTENT_BROWSER_LOADER_RESOURCE_MESSAGE_DELEGATE_ 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CONTENT_BROWSER_LOADER_RESOURCE_MESSAGE_DELEGATE_ 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/basictypes.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "content/common/content_export.h" 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "content/public/browser/global_request_id.h" 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace IPC { 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class Message; 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace net { 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class URLRequest; 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace content { 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// A ResourceMessageDelegate receives IPC ResourceMsg_* messages for a specified 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// URLRequest. The delegate should implement its own IPC handler. It will 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// receive the message _after_ the ResourceDispatcherHost has handled it. 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class CONTENT_EXPORT ResourceMessageDelegate { 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public: 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ResourceMessageDelegate(const net::URLRequest* request); 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual ~ResourceMessageDelegate(); 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Called when the ResourceDispatcherHostImpl receives a message specifically 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // for this delegate. 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual bool OnMessageReceived(const IPC::Message& message) = 0; 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) void set_request_id(const GlobalRequestID& new_request_id) { 3568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) id_ = new_request_id; 3668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) } 3768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private: 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) GlobalRequestID id_; 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) DISALLOW_IMPLICIT_CONSTRUCTORS(ResourceMessageDelegate); 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace content 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif // CONTENT_BROWSER_LOADER_RESOURCE_MESSAGE_DELEGATE_ 46