Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(64)

Side by Side Diff: fpdfsdk/src/javascript/Document.cpp

Issue 1389163007: Pass IJS_Runtime, not IJS_Context, to native object constructors. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Merge changes into stub. Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « fpdfsdk/src/javascript/Document.h ('k') | fpdfsdk/src/javascript/Field.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "Document.h" 7 #include "Document.h"
8 8
9 #include "../../../third_party/base/numerics/safe_math.h" 9 #include "../../../third_party/base/numerics/safe_math.h"
10 #include "../../include/fsdk_mgr.h" // For CPDFDoc_Environment. 10 #include "../../include/fsdk_mgr.h" // For CPDFDoc_Environment.
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 JS_STATIC_METHOD_ENTRY(replacePages) 133 JS_STATIC_METHOD_ENTRY(replacePages)
134 JS_STATIC_METHOD_ENTRY(resetForm) 134 JS_STATIC_METHOD_ENTRY(resetForm)
135 JS_STATIC_METHOD_ENTRY(removeIcon) 135 JS_STATIC_METHOD_ENTRY(removeIcon)
136 JS_STATIC_METHOD_ENTRY(saveAs) 136 JS_STATIC_METHOD_ENTRY(saveAs)
137 JS_STATIC_METHOD_ENTRY(submitForm) 137 JS_STATIC_METHOD_ENTRY(submitForm)
138 JS_STATIC_METHOD_ENTRY(mailDoc) 138 JS_STATIC_METHOD_ENTRY(mailDoc)
139 END_JS_STATIC_METHOD() 139 END_JS_STATIC_METHOD()
140 140
141 IMPLEMENT_JS_CLASS(CJS_Document, Document) 141 IMPLEMENT_JS_CLASS(CJS_Document, Document)
142 142
143 FX_BOOL CJS_Document::InitInstance(IJS_Context* cc) { 143 void CJS_Document::InitInstance(IJS_Runtime* pIRuntime) {
144 CJS_Context* pContext = (CJS_Context*)cc; 144 CJS_Runtime* pRuntime = static_cast<CJS_Runtime*>(pIRuntime);
145 ASSERT(pContext != NULL); 145 Document* pDoc = static_cast<Document*>(GetEmbedObject());
146 146 pDoc->AttachDoc(pRuntime->GetReaderDocument());
147 Document* pDoc = (Document*)GetEmbedObject(); 147 pDoc->SetIsolate(pRuntime->GetIsolate());
148 ASSERT(pDoc != NULL); 148 }
149
150 pDoc->AttachDoc(pContext->GetReaderDocument());
151 pDoc->SetIsolate(pContext->GetJSRuntime()->GetIsolate());
152 return TRUE;
153 };
154 149
155 /* --------------------------------- Document --------------------------------- 150 /* --------------------------------- Document ---------------------------------
156 */ 151 */
157 152
158 Document::Document(CJS_Object* pJSObject) 153 Document::Document(CJS_Object* pJSObject)
159 : CJS_EmbedObj(pJSObject), 154 : CJS_EmbedObj(pJSObject),
160 m_isolate(NULL), 155 m_isolate(NULL),
161 m_pIconTree(NULL), 156 m_pIconTree(NULL),
162 m_pDocument(NULL), 157 m_pDocument(NULL),
163 m_cwBaseURL(L""), 158 m_cwBaseURL(L""),
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 314
320 CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm(); 315 CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm();
321 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm(); 316 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
322 if (pPDFForm->CountFields(wideName) <= 0) { 317 if (pPDFForm->CountFields(wideName) <= 0) {
323 vRet.SetNull(); 318 vRet.SetNull();
324 return TRUE; 319 return TRUE;
325 } 320 }
326 321
327 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 322 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
328 v8::Local<v8::Object> pFieldObj = FXJS_NewFxDynamicObj( 323 v8::Local<v8::Object> pFieldObj = FXJS_NewFxDynamicObj(
329 pRuntime->GetIsolate(), pContext, CJS_Field::g_nObjDefnID); 324 pRuntime->GetIsolate(), pRuntime, CJS_Field::g_nObjDefnID);
330 325
331 v8::Isolate* isolate = GetIsolate(cc); 326 v8::Isolate* isolate = GetIsolate(cc);
332 CJS_Field* pJSField = (CJS_Field*)FXJS_GetPrivate(isolate, pFieldObj); 327 CJS_Field* pJSField = (CJS_Field*)FXJS_GetPrivate(isolate, pFieldObj);
333 Field* pField = (Field*)pJSField->GetEmbedObject(); 328 Field* pField = (Field*)pJSField->GetEmbedObject();
334 pField->AttachField(this, wideName); 329 pField->AttachField(this, wideName);
335 330
336 vRet = pJSField; 331 vRet = pJSField;
337 return TRUE; 332 return TRUE;
338 } 333 }
339 334
(...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after
828 CFX_WideString cwProducer = pDictionary->GetUnicodeText("Producer"); 823 CFX_WideString cwProducer = pDictionary->GetUnicodeText("Producer");
829 CFX_WideString cwCreationDate = pDictionary->GetUnicodeText("CreationDate"); 824 CFX_WideString cwCreationDate = pDictionary->GetUnicodeText("CreationDate");
830 CFX_WideString cwModDate = pDictionary->GetUnicodeText("ModDate"); 825 CFX_WideString cwModDate = pDictionary->GetUnicodeText("ModDate");
831 CFX_WideString cwTrapped = pDictionary->GetUnicodeText("Trapped"); 826 CFX_WideString cwTrapped = pDictionary->GetUnicodeText("Trapped");
832 827
833 v8::Isolate* isolate = GetIsolate(cc); 828 v8::Isolate* isolate = GetIsolate(cc);
834 if (vp.IsGetting()) { 829 if (vp.IsGetting()) {
835 CJS_Context* pContext = (CJS_Context*)cc; 830 CJS_Context* pContext = (CJS_Context*)cc;
836 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 831 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
837 v8::Local<v8::Object> pObj = 832 v8::Local<v8::Object> pObj =
838 FXJS_NewFxDynamicObj(pRuntime->GetIsolate(), pContext, -1); 833 FXJS_NewFxDynamicObj(pRuntime->GetIsolate(), pRuntime, -1);
839 FXJS_PutObjectString(isolate, pObj, L"Author", cwAuthor.c_str()); 834 FXJS_PutObjectString(isolate, pObj, L"Author", cwAuthor.c_str());
840 FXJS_PutObjectString(isolate, pObj, L"Title", cwTitle.c_str()); 835 FXJS_PutObjectString(isolate, pObj, L"Title", cwTitle.c_str());
841 FXJS_PutObjectString(isolate, pObj, L"Subject", cwSubject.c_str()); 836 FXJS_PutObjectString(isolate, pObj, L"Subject", cwSubject.c_str());
842 FXJS_PutObjectString(isolate, pObj, L"Keywords", cwKeywords.c_str()); 837 FXJS_PutObjectString(isolate, pObj, L"Keywords", cwKeywords.c_str());
843 FXJS_PutObjectString(isolate, pObj, L"Creator", cwCreator.c_str()); 838 FXJS_PutObjectString(isolate, pObj, L"Creator", cwCreator.c_str());
844 FXJS_PutObjectString(isolate, pObj, L"Producer", cwProducer.c_str()); 839 FXJS_PutObjectString(isolate, pObj, L"Producer", cwProducer.c_str());
845 FXJS_PutObjectString(isolate, pObj, L"CreationDate", 840 FXJS_PutObjectString(isolate, pObj, L"CreationDate",
846 cwCreationDate.c_str()); 841 cwCreationDate.c_str());
847 FXJS_PutObjectString(isolate, pObj, L"ModDate", cwModDate.c_str()); 842 FXJS_PutObjectString(isolate, pObj, L"ModDate", cwModDate.c_str());
848 FXJS_PutObjectString(isolate, pObj, L"Trapped", cwTrapped.c_str()); 843 FXJS_PutObjectString(isolate, pObj, L"Trapped", cwTrapped.c_str());
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after
1387 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 1382 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
1388 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY); 1383 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
1389 return FALSE; 1384 return FALSE;
1390 } 1385 }
1391 1386
1392 if (!m_pIconTree) { 1387 if (!m_pIconTree) {
1393 vp.SetNull(); 1388 vp.SetNull();
1394 return TRUE; 1389 return TRUE;
1395 } 1390 }
1396 1391
1397 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
1398 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc); 1392 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
1399 CJS_Array Icons(pRuntime); 1393 CJS_Array Icons(pRuntime);
1400 IconElement* pIconElement = NULL; 1394 IconElement* pIconElement = NULL;
1401 int iIconTreeLength = m_pIconTree->GetLength(); 1395 int iIconTreeLength = m_pIconTree->GetLength();
1402 for (int i = 0; i < iIconTreeLength; i++) { 1396 for (int i = 0; i < iIconTreeLength; i++) {
1403 pIconElement = (*m_pIconTree)[i]; 1397 pIconElement = (*m_pIconTree)[i];
1404 1398
1405 v8::Local<v8::Object> pObj = FXJS_NewFxDynamicObj( 1399 v8::Local<v8::Object> pObj = FXJS_NewFxDynamicObj(
1406 pRuntime->GetIsolate(), pContext, CJS_Icon::g_nObjDefnID); 1400 pRuntime->GetIsolate(), pRuntime, CJS_Icon::g_nObjDefnID);
1407 if (pObj.IsEmpty()) 1401 if (pObj.IsEmpty())
1408 return FALSE; 1402 return FALSE;
1409 1403
1410 CJS_Icon* pJS_Icon = (CJS_Icon*)FXJS_GetPrivate(m_isolate, pObj); 1404 CJS_Icon* pJS_Icon = (CJS_Icon*)FXJS_GetPrivate(m_isolate, pObj);
1411 if (!pJS_Icon) 1405 if (!pJS_Icon)
1412 return FALSE; 1406 return FALSE;
1413 1407
1414 Icon* pIcon = (Icon*)pJS_Icon->GetEmbedObject(); 1408 Icon* pIcon = (Icon*)pJS_Icon->GetEmbedObject();
1415 if (!pIcon) 1409 if (!pIcon)
1416 return FALSE; 1410 return FALSE;
(...skipping 22 matching lines...) Expand all
1439 CFX_WideString swIconName = params[0].ToCFXWideString(); 1433 CFX_WideString swIconName = params[0].ToCFXWideString();
1440 int iIconCounts = m_pIconTree->GetLength(); 1434 int iIconCounts = m_pIconTree->GetLength();
1441 1435
1442 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 1436 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
1443 1437
1444 for (int i = 0; i < iIconCounts; i++) { 1438 for (int i = 0; i < iIconCounts; i++) {
1445 if ((*m_pIconTree)[i]->IconName == swIconName) { 1439 if ((*m_pIconTree)[i]->IconName == swIconName) {
1446 Icon* pRetIcon = (*m_pIconTree)[i]->IconStream; 1440 Icon* pRetIcon = (*m_pIconTree)[i]->IconStream;
1447 1441
1448 v8::Local<v8::Object> pObj = FXJS_NewFxDynamicObj( 1442 v8::Local<v8::Object> pObj = FXJS_NewFxDynamicObj(
1449 pRuntime->GetIsolate(), pContext, CJS_Icon::g_nObjDefnID); 1443 pRuntime->GetIsolate(), pRuntime, CJS_Icon::g_nObjDefnID);
1450 if (pObj.IsEmpty()) 1444 if (pObj.IsEmpty())
1451 return FALSE; 1445 return FALSE;
1452 1446
1453 CJS_Icon* pJS_Icon = (CJS_Icon*)FXJS_GetPrivate(m_isolate, pObj); 1447 CJS_Icon* pJS_Icon = (CJS_Icon*)FXJS_GetPrivate(m_isolate, pObj);
1454 if (!pJS_Icon) 1448 if (!pJS_Icon)
1455 return FALSE; 1449 return FALSE;
1456 1450
1457 Icon* pIcon = (Icon*)pJS_Icon->GetEmbedObject(); 1451 Icon* pIcon = (Icon*)pJS_Icon->GetEmbedObject();
1458 if (!pIcon) 1452 if (!pIcon)
1459 return FALSE; 1453 return FALSE;
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
1635 return TRUE; 1629 return TRUE;
1636 } 1630 }
1637 1631
1638 FX_BOOL Document::getPrintParams(IJS_Context* cc, 1632 FX_BOOL Document::getPrintParams(IJS_Context* cc,
1639 const CJS_Parameters& params, 1633 const CJS_Parameters& params,
1640 CJS_Value& vRet, 1634 CJS_Value& vRet,
1641 CFX_WideString& sError) { 1635 CFX_WideString& sError) {
1642 CJS_Context* pContext = (CJS_Context*)cc; 1636 CJS_Context* pContext = (CJS_Context*)cc;
1643 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 1637 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
1644 v8::Local<v8::Object> pRetObj = FXJS_NewFxDynamicObj( 1638 v8::Local<v8::Object> pRetObj = FXJS_NewFxDynamicObj(
1645 pRuntime->GetIsolate(), pContext, CJS_PrintParamsObj::g_nObjDefnID); 1639 pRuntime->GetIsolate(), pRuntime, CJS_PrintParamsObj::g_nObjDefnID);
1646 1640
1647 // Not implemented yet. 1641 // Not implemented yet.
1648 1642
1649 vRet = pRetObj; 1643 vRet = pRetObj;
1650 return TRUE; 1644 return TRUE;
1651 } 1645 }
1652 1646
1653 #define ISLATINWORD(u) (u != 0x20 && u <= 0x28FF) 1647 #define ISLATINWORD(u) (u != 0x20 && u <= 0x28FF)
1654 1648
1655 int Document::CountWords(CPDF_TextObject* pTextObj) { 1649 int Document::CountWords(CPDF_TextObject* pTextObj) {
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
1827 CFX_DWordArray DelArray; 1821 CFX_DWordArray DelArray;
1828 1822
1829 for (int j = DelArray.GetSize() - 1; j >= 0; j--) { 1823 for (int j = DelArray.GetSize() - 1; j >= 0; j--) {
1830 m_DelayData.RemoveAt(DelArray[j]); 1824 m_DelayData.RemoveAt(DelArray[j]);
1831 } 1825 }
1832 } 1826 }
1833 1827
1834 CJS_Document* Document::GetCJSDoc() const { 1828 CJS_Document* Document::GetCJSDoc() const {
1835 return static_cast<CJS_Document*>(m_pJSObject); 1829 return static_cast<CJS_Document*>(m_pJSObject);
1836 } 1830 }
OLDNEW
« no previous file with comments | « fpdfsdk/src/javascript/Document.h ('k') | fpdfsdk/src/javascript/Field.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698