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

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

Issue 2701993002: DO NOT COMMIT: Results of running new (proposed) clang-format on Blink (Closed)
Patch Set: Created 3 years, 10 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/ScriptWrappableVisitor.h" 5 #include "bindings/core/v8/ScriptWrappableVisitor.h"
6 6
7 #include "bindings/core/v8/ToV8.h" 7 #include "bindings/core/v8/ToV8.h"
8 #include "bindings/core/v8/TraceWrapperV8Reference.h" 8 #include "bindings/core/v8/TraceWrapperV8Reference.h"
9 #include "bindings/core/v8/V8BindingForTesting.h" 9 #include "bindings/core/v8/V8BindingForTesting.h"
10 #include "bindings/core/v8/V8GCController.h" 10 #include "bindings/core/v8/V8GCController.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 EXPECT_TRUE(visitor->getMarkingDeque()->isEmpty()); 52 EXPECT_TRUE(visitor->getMarkingDeque()->isEmpty());
53 EXPECT_FALSE(targetHeader->isWrapperHeaderMarked()); 53 EXPECT_FALSE(targetHeader->isWrapperHeaderMarked());
54 EXPECT_FALSE(dependencyHeader->isWrapperHeaderMarked()); 54 EXPECT_FALSE(dependencyHeader->isWrapperHeaderMarked());
55 55
56 std::pair<void*, void*> pair = std::make_pair( 56 std::pair<void*, void*> pair = std::make_pair(
57 const_cast<WrapperTypeInfo*>(target->wrapperTypeInfo()), target); 57 const_cast<WrapperTypeInfo*>(target->wrapperTypeInfo()), target);
58 visitor->RegisterV8Reference(pair); 58 visitor->RegisterV8Reference(pair);
59 EXPECT_EQ(visitor->getMarkingDeque()->size(), 1ul); 59 EXPECT_EQ(visitor->getMarkingDeque()->size(), 1ul);
60 60
61 visitor->AdvanceTracing( 61 visitor->AdvanceTracing(
62 0, v8::EmbedderHeapTracer::AdvanceTracingActions( 62 0,
63 v8::EmbedderHeapTracer::ForceCompletionAction::FORCE_COMPLETION)); 63 v8::EmbedderHeapTracer::AdvanceTracingActions(
64 v8::EmbedderHeapTracer::ForceCompletionAction::FORCE_COMPLETION));
64 v8::MicrotasksScope::PerformCheckpoint(scope.isolate()); 65 v8::MicrotasksScope::PerformCheckpoint(scope.isolate());
65 EXPECT_EQ(visitor->getMarkingDeque()->size(), 0ul); 66 EXPECT_EQ(visitor->getMarkingDeque()->size(), 0ul);
66 EXPECT_TRUE(targetHeader->isWrapperHeaderMarked()); 67 EXPECT_TRUE(targetHeader->isWrapperHeaderMarked());
67 EXPECT_TRUE(dependencyHeader->isWrapperHeaderMarked()); 68 EXPECT_TRUE(dependencyHeader->isWrapperHeaderMarked());
68 69
69 visitor->AbortTracing(); 70 visitor->AbortTracing();
70 } 71 }
71 72
72 TEST(ScriptWrappableVisitorTest, OilpanCollectObjectsNotReachableFromV8) { 73 TEST(ScriptWrappableVisitorTest, OilpanCollectObjectsNotReachableFromV8) {
73 V8TestingScope scope; 74 V8TestingScope scope;
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 v8::Local<v8::String> str = 320 v8::Local<v8::String> str =
320 v8::String::NewFromUtf8(scope.isolate(), "teststring", 321 v8::String::NewFromUtf8(scope.isolate(), "teststring",
321 v8::NewStringType::kNormal, sizeof("teststring")) 322 v8::NewStringType::kNormal, sizeof("teststring"))
322 .ToLocalChecked(); 323 .ToLocalChecked();
323 HandleContainer* container = HandleContainer::create(); 324 HandleContainer* container = HandleContainer::create();
324 CHECK_EQ(0u, rawVisitor->numberOfMarkedWrappers()); 325 CHECK_EQ(0u, rawVisitor->numberOfMarkedWrappers());
325 container->setValue(scope.isolate(), str); 326 container->setValue(scope.isolate(), str);
326 CHECK_EQ(0u, rawVisitor->numberOfMarkedWrappers()); 327 CHECK_EQ(0u, rawVisitor->numberOfMarkedWrappers());
327 // Gracefully terminate tracing. 328 // Gracefully terminate tracing.
328 rawVisitor->AdvanceTracing( 329 rawVisitor->AdvanceTracing(
329 0, v8::EmbedderHeapTracer::AdvanceTracingActions( 330 0,
330 v8::EmbedderHeapTracer::ForceCompletionAction::FORCE_COMPLETION)); 331 v8::EmbedderHeapTracer::AdvanceTracingActions(
332 v8::EmbedderHeapTracer::ForceCompletionAction::FORCE_COMPLETION));
331 rawVisitor->AbortTracing(); 333 rawVisitor->AbortTracing();
332 } 334 }
333 335
334 TEST(ScriptWrappableVisitorTest, WriteBarrierTriggersOnMarkedContainer) { 336 TEST(ScriptWrappableVisitorTest, WriteBarrierTriggersOnMarkedContainer) {
335 V8TestingScope scope; 337 V8TestingScope scope;
336 auto rawVisitor = new InterceptingScriptWrappableVisitor(scope.isolate()); 338 auto rawVisitor = new InterceptingScriptWrappableVisitor(scope.isolate());
337 swapInNewVisitor(scope.isolate(), rawVisitor); 339 swapInNewVisitor(scope.isolate(), rawVisitor);
338 rawVisitor->TracePrologue(); 340 rawVisitor->TracePrologue();
339 v8::Local<v8::String> str = 341 v8::Local<v8::String> str =
340 v8::String::NewFromUtf8(scope.isolate(), "teststring", 342 v8::String::NewFromUtf8(scope.isolate(), "teststring",
341 v8::NewStringType::kNormal, sizeof("teststring")) 343 v8::NewStringType::kNormal, sizeof("teststring"))
342 .ToLocalChecked(); 344 .ToLocalChecked();
343 HandleContainer* container = HandleContainer::create(); 345 HandleContainer* container = HandleContainer::create();
344 HeapObjectHeader::fromPayload(container)->markWrapperHeader(); 346 HeapObjectHeader::fromPayload(container)->markWrapperHeader();
345 CHECK_EQ(0u, rawVisitor->numberOfMarkedWrappers()); 347 CHECK_EQ(0u, rawVisitor->numberOfMarkedWrappers());
346 container->setValue(scope.isolate(), str); 348 container->setValue(scope.isolate(), str);
347 CHECK_EQ(1u, rawVisitor->numberOfMarkedWrappers()); 349 CHECK_EQ(1u, rawVisitor->numberOfMarkedWrappers());
348 // Gracefully terminate tracing. 350 // Gracefully terminate tracing.
349 rawVisitor->AdvanceTracing( 351 rawVisitor->AdvanceTracing(
350 0, v8::EmbedderHeapTracer::AdvanceTracingActions( 352 0,
351 v8::EmbedderHeapTracer::ForceCompletionAction::FORCE_COMPLETION)); 353 v8::EmbedderHeapTracer::AdvanceTracingActions(
354 v8::EmbedderHeapTracer::ForceCompletionAction::FORCE_COMPLETION));
352 rawVisitor->AbortTracing(); 355 rawVisitor->AbortTracing();
353 } 356 }
354 357
355 TEST(ScriptWrappableVisitorTest, VtableAtObjectStart) { 358 TEST(ScriptWrappableVisitorTest, VtableAtObjectStart) {
356 // This test makes sure that the subobject v8::EmbedderHeapTracer is placed 359 // This test makes sure that the subobject v8::EmbedderHeapTracer is placed
357 // at the start of a ScriptWrappableVisitor object. We do this to mitigate 360 // at the start of a ScriptWrappableVisitor object. We do this to mitigate
358 // potential problems that could be caused by LTO when passing 361 // potential problems that could be caused by LTO when passing
359 // v8::EmbedderHeapTracer across the API boundary. 362 // v8::EmbedderHeapTracer across the API boundary.
360 V8TestingScope scope; 363 V8TestingScope scope;
361 std::unique_ptr<blink::ScriptWrappableVisitor> visitor( 364 std::unique_ptr<blink::ScriptWrappableVisitor> visitor(
362 new ScriptWrappableVisitor(scope.isolate())); 365 new ScriptWrappableVisitor(scope.isolate()));
363 CHECK_EQ( 366 CHECK_EQ(
364 static_cast<void*>(visitor.get()), 367 static_cast<void*>(visitor.get()),
365 static_cast<void*>(dynamic_cast<v8::EmbedderHeapTracer*>(visitor.get()))); 368 static_cast<void*>(dynamic_cast<v8::EmbedderHeapTracer*>(visitor.get())));
366 } 369 }
367 370
368 } // namespace blink 371 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698