// Copyright 2019 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 GPU_IPC_SERVICE_CONTEXT_URL_H_ #define GPU_IPC_SERVICE_CONTEXT_URL_H_ #include "gpu/ipc/service/gpu_ipc_service_export.h" #include "url/gurl.h" namespace gpu { // Wrapper for GURL identifying a context. class GPU_IPC_SERVICE_EXPORT ContextUrl { public: // Sets the active URL crash key. This should be called when a context start // doing work so that GPU process crashes can be associated back to the active // context. This function is *not* thread safe and should only be called from // GPU main thread. // // Note this caches the hash of last URL used to set crash key and skips // setting crash key if |active_url| has the same hash. static void SetActiveUrl(const ContextUrl& active_url); explicit ContextUrl(GURL url); const GURL& url() const { return url_; } size_t hash() const { return url_hash_; } bool is_empty() const { return url_.is_empty(); } private: GURL url_; size_t url_hash_; }; } // namespace gpu #endif // GPU_IPC_SERVICE_CONTEXT_URL_H_