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)12 IndexedDBOriginStateHandle::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()20 IndexedDBOriginStateHandle::~IndexedDBOriginStateHandle() {
21   if (origin_state_)
22     origin_state_->OnHandleDestruction();
23 }
24 
Release()25 void IndexedDBOriginStateHandle::Release() {
26   if (origin_state_) {
27     origin_state_->OnHandleDestruction();
28     origin_state_.reset();
29   }
30 }
31 
IsHeld() const32 bool IndexedDBOriginStateHandle::IsHeld() const {
33   return !!origin_state_;
34 }
35 
36 }  // namespace content
37