| // Copyright (c) 2013 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. |
| |
| #include "content/renderer/internal_document_state_data.h" |
| |
| #include "content/public/renderer/document_state.h" |
| #include "third_party/WebKit/public/web/WebDataSource.h" |
| |
| namespace content { |
| |
| namespace { |
| |
| // Key InternalDocumentStateData is stored under in DocumentState. |
| const char kUserDataKey[] = "InternalDocumentStateData"; |
| |
| } |
| |
| InternalDocumentStateData::InternalDocumentStateData() |
| : http_status_code_(0), |
| is_overriding_user_agent_(false), |
| must_reset_scroll_and_scale_state_(false), |
| cache_policy_override_set_(false), |
| cache_policy_override_(blink::WebCachePolicy::UseProtocolCachePolicy) {} |
| |
| // static |
| InternalDocumentStateData* InternalDocumentStateData::FromDataSource( |
| blink::WebDataSource* ds) { |
| return FromDocumentState(static_cast<DocumentState*>(ds->getExtraData())); |
| } |
| |
| // static |
| InternalDocumentStateData* InternalDocumentStateData::FromDocumentState( |
| DocumentState* ds) { |
| if (!ds) |
| return NULL; |
| InternalDocumentStateData* data = static_cast<InternalDocumentStateData*>( |
| ds->GetUserData(&kUserDataKey)); |
| if (!data) { |
| data = new InternalDocumentStateData; |
| ds->SetUserData(&kUserDataKey, data); |
| } |
| return data; |
| } |
| |
| InternalDocumentStateData::~InternalDocumentStateData() { |
| } |
| |
| } // namespace content |