blob: a4fd5f8b4650f8b191225f51d79d46b845e01298 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CONTENT_BROWSER_DEVTOOLS_SERVICE_WORKER_DEVTOOLS_AGENT_HOST_H_
#define CONTENT_BROWSER_DEVTOOLS_SERVICE_WORKER_DEVTOOLS_AGENT_HOST_H_
#include <stdint.h>
#include <map>
#include "base/macros.h"
#include "base/time/time.h"
#include "content/browser/devtools/service_worker_devtools_manager.h"
#include "content/browser/devtools/worker_devtools_agent_host.h"
namespace content {
struct ResourceRequest;
struct ResourceResponseHead;
struct ResourceRequestCompletionStatus;
class ServiceWorkerDevToolsAgentHost : public WorkerDevToolsAgentHost {
public:
using List = std::vector<scoped_refptr<ServiceWorkerDevToolsAgentHost>>;
using Map = std::map<std::string,
scoped_refptr<ServiceWorkerDevToolsAgentHost>>;
using ServiceWorkerIdentifier =
ServiceWorkerDevToolsManager::ServiceWorkerIdentifier;
ServiceWorkerDevToolsAgentHost(WorkerId worker_id,
const ServiceWorkerIdentifier& service_worker,
bool is_installed_version);
void UnregisterWorker();
// DevToolsAgentHost overrides.
std::string GetType() override;
std::string GetTitle() override;
GURL GetURL() override;
bool Activate() override;
void Reload() override;
bool Close() override;
// WorkerDevToolsAgentHost overrides.
void OnAttachedStateChanged(bool attached) override;
void WorkerVersionInstalled();
void WorkerVersionDoomed();
void NavigationPreloadRequestSent(const std::string& request_id,
const ResourceRequest& request);
void NavigationPreloadResponseReceived(const std::string& request_id,
const GURL& url,
const ResourceResponseHead& head);
void NavigationPreloadCompleted(
const std::string& request_id,
const ResourceRequestCompletionStatus& completion_status);
int64_t service_worker_version_id() const;
GURL scope() const;
// If the ServiceWorker has been installed before the worker instance started,
// it returns the time when the instance started. Otherwise returns the time
// when the ServiceWorker was installed.
base::Time version_installed_time() const { return version_installed_time_; }
// Returns the time when the ServiceWorker was doomed.
base::Time version_doomed_time() const { return version_doomed_time_; }
bool Matches(const ServiceWorkerIdentifier& other);
private:
~ServiceWorkerDevToolsAgentHost() override;
std::unique_ptr<ServiceWorkerIdentifier> service_worker_;
base::Time version_installed_time_;
base::Time version_doomed_time_;
DISALLOW_COPY_AND_ASSIGN(ServiceWorkerDevToolsAgentHost);
};
} // namespace content
#endif // CONTENT_BROWSER_DEVTOOLS_SERVICE_WORKER_DEVTOOLS_AGENT_HOST_H_