1 // Copyright 2019 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/browser/indexed_db/indexed_db_origin_state_handle.h" 6 7 #include "content/browser/indexed_db/indexed_db_origin_state.h" 8 9 namespace content { 10 11 IndexedDBOriginStateHandle::IndexedDBOriginStateHandle() = default; IndexedDBOriginStateHandle(base::WeakPtr<IndexedDBOriginState> origin_state)12IndexedDBOriginStateHandle::IndexedDBOriginStateHandle( 13 base::WeakPtr<IndexedDBOriginState> origin_state) 14 : origin_state_(origin_state) {} 15 IndexedDBOriginStateHandle::IndexedDBOriginStateHandle( 16 IndexedDBOriginStateHandle&&) = default; 17 IndexedDBOriginStateHandle& IndexedDBOriginStateHandle::operator=( 18 IndexedDBOriginStateHandle&&) = default; 19 ~IndexedDBOriginStateHandle()20IndexedDBOriginStateHandle::~IndexedDBOriginStateHandle() { 21 if (origin_state_) 22 origin_state_->OnHandleDestruction(); 23 } 24 Release()25void IndexedDBOriginStateHandle::Release() { 26 if (origin_state_) { 27 origin_state_->OnHandleDestruction(); 28 origin_state_.reset(); 29 } 30 } 31 IsHeld() const32bool IndexedDBOriginStateHandle::IsHeld() const { 33 return !!origin_state_; 34 } 35 36 } // namespace content 37