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

Side by Side Diff: third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp

Issue 2050123002: Remove OwnPtr from Blink. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: First attempt to land. Created 4 years, 6 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium 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 #include "bindings/core/v8/ScriptValueSerializer.h" 5 #include "bindings/core/v8/ScriptValueSerializer.h"
6 6
7 #include "bindings/core/v8/Transferables.h" 7 #include "bindings/core/v8/Transferables.h"
8 #include "bindings/core/v8/V8ArrayBuffer.h" 8 #include "bindings/core/v8/V8ArrayBuffer.h"
9 #include "bindings/core/v8/V8ArrayBufferView.h" 9 #include "bindings/core/v8/V8ArrayBufferView.h"
10 #include "bindings/core/v8/V8Blob.h" 10 #include "bindings/core/v8/V8Blob.h"
(...skipping 11 matching lines...) Expand all
22 #include "core/dom/DOMTypedArray.h" 22 #include "core/dom/DOMTypedArray.h"
23 #include "core/fileapi/Blob.h" 23 #include "core/fileapi/Blob.h"
24 #include "core/fileapi/File.h" 24 #include "core/fileapi/File.h"
25 #include "core/fileapi/FileList.h" 25 #include "core/fileapi/FileList.h"
26 #include "platform/RuntimeEnabledFeatures.h" 26 #include "platform/RuntimeEnabledFeatures.h"
27 #include "public/platform/Platform.h" 27 #include "public/platform/Platform.h"
28 #include "public/platform/WebBlobInfo.h" 28 #include "public/platform/WebBlobInfo.h"
29 #include "wtf/DateMath.h" 29 #include "wtf/DateMath.h"
30 #include "wtf/text/StringHash.h" 30 #include "wtf/text/StringHash.h"
31 #include "wtf/text/StringUTF8Adaptor.h" 31 #include "wtf/text/StringUTF8Adaptor.h"
32 #include <memory>
32 33
33 // FIXME: consider crashing in debug mode on deserialization errors 34 // FIXME: consider crashing in debug mode on deserialization errors
34 // NOTE: be sure to change wireFormatVersion as necessary! 35 // NOTE: be sure to change wireFormatVersion as necessary!
35 36
36 namespace blink { 37 namespace blink {
37 38
38 // This code implements the HTML5 Structured Clone algorithm: 39 // This code implements the HTML5 Structured Clone algorithm:
39 // http://www.whatwg.org/specs/web-apps/current-work/multipage/urls.html#safe-pa ssing-of-structured-data 40 // http://www.whatwg.org/specs/web-apps/current-work/multipage/urls.html#safe-pa ssing-of-structured-data
40 41
41 // ZigZag encoding helps VarInt encoding stay small for negative 42 // ZigZag encoding helps VarInt encoding stay small for negative
(...skipping 1057 matching lines...) Expand 10 before | Expand all | Expand 10 after
1099 if (!imageBitmap) 1100 if (!imageBitmap)
1100 return nullptr; 1101 return nullptr;
1101 if (imageBitmap->isNeutered()) 1102 if (imageBitmap->isNeutered())
1102 return handleError(DataCloneError, "An ImageBitmap is detached and could not be cloned.", next); 1103 return handleError(DataCloneError, "An ImageBitmap is detached and could not be cloned.", next);
1103 1104
1104 uint32_t index; 1105 uint32_t index;
1105 if (m_transferredImageBitmaps.tryGet(object, &index)) { 1106 if (m_transferredImageBitmaps.tryGet(object, &index)) {
1106 m_writer.writeTransferredImageBitmap(index); 1107 m_writer.writeTransferredImageBitmap(index);
1107 } else { 1108 } else {
1108 greyObject(object); 1109 greyObject(object);
1109 OwnPtr<uint8_t[]> pixelData = imageBitmap->copyBitmapData(PremultiplyAlp ha); 1110 std::unique_ptr<uint8_t[]> pixelData = imageBitmap->copyBitmapData(Premu ltiplyAlpha);
1110 m_writer.writeImageBitmap(imageBitmap->width(), imageBitmap->height(), p ixelData.get(), imageBitmap->width() * imageBitmap->height() * 4); 1111 m_writer.writeImageBitmap(imageBitmap->width(), imageBitmap->height(), p ixelData.get(), imageBitmap->width() * imageBitmap->height() * 4);
1111 } 1112 }
1112 return nullptr; 1113 return nullptr;
1113 } 1114 }
1114 1115
1115 void ScriptValueSerializer::writeRegExp(v8::Local<v8::Value> value) 1116 void ScriptValueSerializer::writeRegExp(v8::Local<v8::Value> value)
1116 { 1117 {
1117 v8::Local<v8::RegExp> regExp = value.As<v8::RegExp>(); 1118 v8::Local<v8::RegExp> regExp = value.As<v8::RegExp>();
1118 m_writer.writeRegExp(regExp->GetSource(), regExp->GetFlags()); 1119 m_writer.writeRegExp(regExp->GetSource(), regExp->GetFlags());
1119 } 1120 }
(...skipping 1280 matching lines...) Expand 10 before | Expand all | Expand 10 after
2400 return false; 2401 return false;
2401 uint32_t objectReference = m_openCompositeReferenceStack[m_openCompositeRefe renceStack.size() - 1]; 2402 uint32_t objectReference = m_openCompositeReferenceStack[m_openCompositeRefe renceStack.size() - 1];
2402 m_openCompositeReferenceStack.shrink(m_openCompositeReferenceStack.size() - 1); 2403 m_openCompositeReferenceStack.shrink(m_openCompositeReferenceStack.size() - 1);
2403 if (objectReference >= m_objectPool.size()) 2404 if (objectReference >= m_objectPool.size())
2404 return false; 2405 return false;
2405 *object = m_objectPool[objectReference]; 2406 *object = m_objectPool[objectReference];
2406 return true; 2407 return true;
2407 } 2408 }
2408 2409
2409 } // namespace blink 2410 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698