1868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
2868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// found in the LICENSE file.
4868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
5868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "content/child/child_resource_message_filter.h"
6868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "base/bind.h"
87dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "base/single_thread_task_runner.h"
9868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/thread_task_runner_handle.h"
10868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "content/child/resource_dispatcher.h"
11868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "content/common/resource_messages.h"
12868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
13868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)namespace content {
14868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
15868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)ChildResourceMessageFilter::ChildResourceMessageFilter(
16868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)    ResourceDispatcher* resource_dispatcher)
17868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)    : main_thread_task_runner_(base::ThreadTaskRunnerHandle::Get()),
18868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      resource_dispatcher_(resource_dispatcher) {}
19868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
20868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)ChildResourceMessageFilter::~ChildResourceMessageFilter() {}
21868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
22868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)bool ChildResourceMessageFilter::OnMessageReceived(
23868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)    const IPC::Message& message) {
24868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  if (message.type() == ResourceMsg_RequestComplete::ID ||
25868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      message.type() == ResourceMsg_ReceivedResponse::ID ||
26868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      message.type() == ResourceMsg_ReceivedRedirect::ID) {
27868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)    main_thread_task_runner_->PostTask(FROM_HERE, base::Bind(
28868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)        &ResourceDispatcher::set_io_timestamp,
29868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)        base::Unretained(resource_dispatcher_),
30868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)        base::TimeTicks::Now()));
31868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  }
32868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  return false;
33868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)}
34868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}  // namespace content
36