| Index: core/fpdfdoc/cpdf_viewerpreferences.cpp
 | 
| diff --git a/core/fpdfdoc/cpdf_viewerpreferences.cpp b/core/fpdfdoc/cpdf_viewerpreferences.cpp
 | 
| index 799f2d58144d1ffc6e23842233f64b52f01d60aa..f1fc4b0347d3da0d069a0d2de8451b793bf9aca9 100644
 | 
| --- a/core/fpdfdoc/cpdf_viewerpreferences.cpp
 | 
| +++ b/core/fpdfdoc/cpdf_viewerpreferences.cpp
 | 
| @@ -7,6 +7,7 @@
 | 
|  #include "core/fpdfdoc/cpdf_viewerpreferences.h"
 | 
|  
 | 
|  #include "core/fpdfapi/parser/cpdf_document.h"
 | 
| +#include "core/fpdfapi/parser/cpdf_name.h"
 | 
|  
 | 
|  CPDF_ViewerPreferences::CPDF_ViewerPreferences(CPDF_Document* pDoc)
 | 
|      : m_pDoc(pDoc) {}
 | 
| @@ -38,6 +39,21 @@ CFX_ByteString CPDF_ViewerPreferences::Duplex() const {
 | 
|    return pDict ? pDict->GetStringFor("Duplex") : CFX_ByteString("None");
 | 
|  }
 | 
|  
 | 
| +bool CPDF_ViewerPreferences::GenericName(const CFX_ByteString& bsKey,
 | 
| +                                         CFX_ByteString* bsVal) const {
 | 
| +  ASSERT(bsVal);
 | 
| +  CPDF_Dictionary* pDict = GetViewerPreferences();
 | 
| +  if (!pDict)
 | 
| +    return false;
 | 
| +
 | 
| +  const CPDF_Name* pName = ToName(pDict->GetObjectFor(bsKey));
 | 
| +  if (!pName)
 | 
| +    return false;
 | 
| +
 | 
| +  *bsVal = pName->GetString();
 | 
| +  return true;
 | 
| +}
 | 
| +
 | 
|  CPDF_Dictionary* CPDF_ViewerPreferences::GetViewerPreferences() const {
 | 
|    CPDF_Dictionary* pDict = m_pDoc->GetRoot();
 | 
|    return pDict ? pDict->GetDictFor("ViewerPreferences") : nullptr;
 | 
| 
 |