| Index: components/test_runner/gc_controller.cc
|
| diff --git a/components/test_runner/gc_controller.cc b/components/test_runner/gc_controller.cc
|
| deleted file mode 100644
|
| index 7d4c85a513708cc890877c3b019c1d80f2fe4c81..0000000000000000000000000000000000000000
|
| --- a/components/test_runner/gc_controller.cc
|
| +++ /dev/null
|
| @@ -1,72 +0,0 @@
|
| -// Copyright 2014 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 "components/test_runner/gc_controller.h"
|
| -
|
| -#include "gin/arguments.h"
|
| -#include "gin/handle.h"
|
| -#include "gin/object_template_builder.h"
|
| -#include "third_party/WebKit/public/web/WebFrame.h"
|
| -#include "third_party/WebKit/public/web/WebKit.h"
|
| -#include "v8/include/v8.h"
|
| -
|
| -namespace test_runner {
|
| -
|
| -gin::WrapperInfo GCController::kWrapperInfo = {gin::kEmbedderNativeGin};
|
| -
|
| -// static
|
| -void GCController::Install(blink::WebFrame* frame) {
|
| - v8::Isolate* isolate = blink::mainThreadIsolate();
|
| - v8::HandleScope handle_scope(isolate);
|
| - v8::Local<v8::Context> context = frame->mainWorldScriptContext();
|
| - if (context.IsEmpty())
|
| - return;
|
| -
|
| - v8::Context::Scope context_scope(context);
|
| -
|
| - gin::Handle<GCController> controller =
|
| - gin::CreateHandle(isolate, new GCController());
|
| - if (controller.IsEmpty())
|
| - return;
|
| - v8::Local<v8::Object> global = context->Global();
|
| - global->Set(gin::StringToV8(isolate, "GCController"), controller.ToV8());
|
| -}
|
| -
|
| -GCController::GCController() {}
|
| -
|
| -GCController::~GCController() {}
|
| -
|
| -gin::ObjectTemplateBuilder GCController::GetObjectTemplateBuilder(
|
| - v8::Isolate* isolate) {
|
| - return gin::Wrappable<GCController>::GetObjectTemplateBuilder(isolate)
|
| - .SetMethod("collect", &GCController::Collect)
|
| - .SetMethod("collectAll", &GCController::CollectAll)
|
| - .SetMethod("minorCollect", &GCController::MinorCollect);
|
| -}
|
| -
|
| -void GCController::Collect(const gin::Arguments& args) {
|
| - args.isolate()->RequestGarbageCollectionForTesting(
|
| - v8::Isolate::kFullGarbageCollection);
|
| -}
|
| -
|
| -void GCController::CollectAll(const gin::Arguments& args) {
|
| - // In order to collect a DOM wrapper, two GC cycles are needed.
|
| - // In the first GC cycle, a weak callback of the DOM wrapper is called back
|
| - // and the weak callback disposes a persistent handle to the DOM wrapper.
|
| - // In the second GC cycle, the DOM wrapper is reclaimed.
|
| - // Given that two GC cycles are needed to collect one DOM wrapper,
|
| - // more than two GC cycles are needed to collect all DOM wrappers
|
| - // that are chained. Seven GC cycles look enough in most tests.
|
| - for (int i = 0; i < 7; i++) {
|
| - args.isolate()->RequestGarbageCollectionForTesting(
|
| - v8::Isolate::kFullGarbageCollection);
|
| - }
|
| -}
|
| -
|
| -void GCController::MinorCollect(const gin::Arguments& args) {
|
| - args.isolate()->RequestGarbageCollectionForTesting(
|
| - v8::Isolate::kMinorGarbageCollection);
|
| -}
|
| -
|
| -} // namespace test_runner
|
|
|