1// Copyright 2013 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#include "content/child/child_resource_message_filter.h"
6
7#include "base/bind.h"
8#include "base/single_thread_task_runner.h"
9#include "base/thread_task_runner_handle.h"
10#include "content/child/resource_dispatcher.h"
11#include "content/common/resource_messages.h"
12
13namespace content {
14
15ChildResourceMessageFilter::ChildResourceMessageFilter(
16    ResourceDispatcher* resource_dispatcher)
17    : main_thread_task_runner_(base::ThreadTaskRunnerHandle::Get()),
18      resource_dispatcher_(resource_dispatcher) {}
19
20ChildResourceMessageFilter::~ChildResourceMessageFilter() {}
21
22bool ChildResourceMessageFilter::OnMessageReceived(
23    const IPC::Message& message) {
24  if (message.type() == ResourceMsg_RequestComplete::ID ||
25      message.type() == ResourceMsg_ReceivedResponse::ID ||
26      message.type() == ResourceMsg_ReceivedRedirect::ID) {
27    main_thread_task_runner_->PostTask(FROM_HERE, base::Bind(
28        &ResourceDispatcher::set_io_timestamp,
29        base::Unretained(resource_dispatcher_),
30        base::TimeTicks::Now()));
31  }
32  return false;
33}
34
35}  // namespace content
36