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

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

Issue 2080623002: Revert "Remove OwnPtr from Blink." (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 19 matching lines...) Expand all
30 #include "bindings/core/v8/V8Binding.h" 30 #include "bindings/core/v8/V8Binding.h"
31 #include "bindings/core/v8/V8HiddenValue.h" 31 #include "bindings/core/v8/V8HiddenValue.h"
32 #include "bindings/core/v8/V8ObjectConstructor.h" 32 #include "bindings/core/v8/V8ObjectConstructor.h"
33 #include "bindings/core/v8/V8PrivateProperty.h" 33 #include "bindings/core/v8/V8PrivateProperty.h"
34 #include "bindings/core/v8/V8ScriptRunner.h" 34 #include "bindings/core/v8/V8ScriptRunner.h"
35 #include "core/frame/Deprecation.h" 35 #include "core/frame/Deprecation.h"
36 #include "core/inspector/MainThreadDebugger.h" 36 #include "core/inspector/MainThreadDebugger.h"
37 #include "platform/ScriptForbiddenScope.h" 37 #include "platform/ScriptForbiddenScope.h"
38 #include "public/platform/Platform.h" 38 #include "public/platform/Platform.h"
39 #include "wtf/LeakAnnotations.h" 39 #include "wtf/LeakAnnotations.h"
40 #include "wtf/PtrUtil.h"
41 #include <memory> 40 #include <memory>
42 41
43 namespace blink { 42 namespace blink {
44 43
45 static V8PerIsolateData* mainThreadPerIsolateData = 0; 44 static V8PerIsolateData* mainThreadPerIsolateData = 0;
46 45
47 static void beforeCallEnteredCallback(v8::Isolate* isolate) 46 static void beforeCallEnteredCallback(v8::Isolate* isolate)
48 { 47 {
49 RELEASE_ASSERT(!ScriptForbiddenScope::isScriptForbidden()); 48 RELEASE_ASSERT(!ScriptForbiddenScope::isScriptForbidden());
50 } 49 }
51 50
52 static void microtasksCompletedCallback(v8::Isolate* isolate) 51 static void microtasksCompletedCallback(v8::Isolate* isolate)
53 { 52 {
54 V8PerIsolateData::from(isolate)->runEndOfScopeTasks(); 53 V8PerIsolateData::from(isolate)->runEndOfScopeTasks();
55 } 54 }
56 55
57 V8PerIsolateData::V8PerIsolateData() 56 V8PerIsolateData::V8PerIsolateData()
58 : m_isolateHolder(wrapUnique(new gin::IsolateHolder())) 57 : m_isolateHolder(adoptPtr(new gin::IsolateHolder()))
59 , m_stringCache(wrapUnique(new StringCache(isolate()))) 58 , m_stringCache(adoptPtr(new StringCache(isolate())))
60 , m_hiddenValue(V8HiddenValue::create()) 59 , m_hiddenValue(V8HiddenValue::create())
61 , m_privateProperty(V8PrivateProperty::create()) 60 , m_privateProperty(V8PrivateProperty::create())
62 , m_constructorMode(ConstructorMode::CreateNewObject) 61 , m_constructorMode(ConstructorMode::CreateNewObject)
63 , m_useCounterDisabled(false) 62 , m_useCounterDisabled(false)
64 , m_isHandlingRecursionLevelError(false) 63 , m_isHandlingRecursionLevelError(false)
65 , m_isReportingException(false) 64 , m_isReportingException(false)
66 { 65 {
67 // FIXME: Remove once all v8::Isolate::GetCurrent() calls are gone. 66 // FIXME: Remove once all v8::Isolate::GetCurrent() calls are gone.
68 isolate()->Enter(); 67 isolate()->Enter();
69 isolate()->AddBeforeCallEnteredCallback(&beforeCallEnteredCallback); 68 isolate()->AddBeforeCallEnteredCallback(&beforeCallEnteredCallback);
(...skipping 14 matching lines...) Expand all
84 } 83 }
85 84
86 v8::Isolate* V8PerIsolateData::initialize() 85 v8::Isolate* V8PerIsolateData::initialize()
87 { 86 {
88 V8PerIsolateData* data = new V8PerIsolateData(); 87 V8PerIsolateData* data = new V8PerIsolateData();
89 v8::Isolate* isolate = data->isolate(); 88 v8::Isolate* isolate = data->isolate();
90 isolate->SetData(gin::kEmbedderBlink, data); 89 isolate->SetData(gin::kEmbedderBlink, data);
91 return isolate; 90 return isolate;
92 } 91 }
93 92
94 void V8PerIsolateData::enableIdleTasks(v8::Isolate* isolate, std::unique_ptr<gin ::V8IdleTaskRunner> taskRunner) 93 void V8PerIsolateData::enableIdleTasks(v8::Isolate* isolate, PassOwnPtr<gin::V8I dleTaskRunner> taskRunner)
95 { 94 {
96 from(isolate)->m_isolateHolder->EnableIdleTasks(std::unique_ptr<gin::V8IdleT askRunner>(taskRunner.release())); 95 from(isolate)->m_isolateHolder->EnableIdleTasks(std::unique_ptr<gin::V8IdleT askRunner>(taskRunner.leakPtr()));
97 } 96 }
98 97
99 void V8PerIsolateData::useCounterCallback(v8::Isolate* isolate, v8::Isolate::Use CounterFeature feature) 98 void V8PerIsolateData::useCounterCallback(v8::Isolate* isolate, v8::Isolate::Use CounterFeature feature)
100 { 99 {
101 if (V8PerIsolateData::from(isolate)->m_useCounterDisabled) 100 if (V8PerIsolateData::from(isolate)->m_useCounterDisabled)
102 return; 101 return;
103 102
104 UseCounter::Feature blinkFeature; 103 UseCounter::Feature blinkFeature;
105 bool deprecated = false; 104 bool deprecated = false;
106 switch (feature) { 105 switch (feature) {
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 { 339 {
341 if (value.IsEmpty() || !value->IsObject()) 340 if (value.IsEmpty() || !value->IsObject())
342 return v8::Local<v8::Object>(); 341 return v8::Local<v8::Object>();
343 auto result = map.find(info); 342 auto result = map.find(info);
344 if (result == map.end()) 343 if (result == map.end())
345 return v8::Local<v8::Object>(); 344 return v8::Local<v8::Object>();
346 v8::Local<v8::FunctionTemplate> templ = result->value.Get(isolate()); 345 v8::Local<v8::FunctionTemplate> templ = result->value.Get(isolate());
347 return v8::Local<v8::Object>::Cast(value)->FindInstanceInPrototypeChain(temp l); 346 return v8::Local<v8::Object>::Cast(value)->FindInstanceInPrototypeChain(temp l);
348 } 347 }
349 348
350 void V8PerIsolateData::addEndOfScopeTask(std::unique_ptr<EndOfScopeTask> task) 349 void V8PerIsolateData::addEndOfScopeTask(PassOwnPtr<EndOfScopeTask> task)
351 { 350 {
352 m_endOfScopeTasks.append(std::move(task)); 351 m_endOfScopeTasks.append(std::move(task));
353 } 352 }
354 353
355 void V8PerIsolateData::runEndOfScopeTasks() 354 void V8PerIsolateData::runEndOfScopeTasks()
356 { 355 {
357 Vector<std::unique_ptr<EndOfScopeTask>> tasks; 356 Vector<OwnPtr<EndOfScopeTask>> tasks;
358 tasks.swap(m_endOfScopeTasks); 357 tasks.swap(m_endOfScopeTasks);
359 for (const auto& task : tasks) 358 for (const auto& task : tasks)
360 task->run(); 359 task->run();
361 ASSERT(m_endOfScopeTasks.isEmpty()); 360 ASSERT(m_endOfScopeTasks.isEmpty());
362 } 361 }
363 362
364 void V8PerIsolateData::clearEndOfScopeTasks() 363 void V8PerIsolateData::clearEndOfScopeTasks()
365 { 364 {
366 m_endOfScopeTasks.clear(); 365 m_endOfScopeTasks.clear();
367 } 366 }
368 367
369 void V8PerIsolateData::setThreadDebugger(std::unique_ptr<ThreadDebugger> threadD ebugger) 368 void V8PerIsolateData::setThreadDebugger(PassOwnPtr<ThreadDebugger> threadDebugg er)
370 { 369 {
371 ASSERT(!m_threadDebugger); 370 ASSERT(!m_threadDebugger);
372 m_threadDebugger = std::move(threadDebugger); 371 m_threadDebugger = std::move(threadDebugger);
373 } 372 }
374 373
375 ThreadDebugger* V8PerIsolateData::threadDebugger() 374 ThreadDebugger* V8PerIsolateData::threadDebugger()
376 { 375 {
377 return m_threadDebugger.get(); 376 return m_threadDebugger.get();
378 } 377 }
379 378
380 void V8PerIsolateData::addActiveScriptWrappable(ActiveScriptWrappable* wrappable ) 379 void V8PerIsolateData::addActiveScriptWrappable(ActiveScriptWrappable* wrappable )
381 { 380 {
382 if (!m_activeScriptWrappables) 381 if (!m_activeScriptWrappables)
383 m_activeScriptWrappables = new ActiveScriptWrappableSet(); 382 m_activeScriptWrappables = new ActiveScriptWrappableSet();
384 383
385 m_activeScriptWrappables->add(wrappable); 384 m_activeScriptWrappables->add(wrappable);
386 } 385 }
387 386
388 } // namespace blink 387 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698