| // Copyright (c) 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 "InitModules.h" |
| |
| #include "bindings/modules/v8/ModuleBindingsInitializer.h" |
| #include "core/EventTypeNames.h" |
| #include "core/dom/Document.h" |
| #include "core/html/HTMLCanvasElement.h" |
| #include "modules/EventModulesFactory.h" |
| #include "modules/EventModulesNames.h" |
| #include "modules/EventTargetModulesNames.h" |
| #include "modules/IndexedDBNames.h" |
| #include "modules/accessibility/AXObjectCacheImpl.h" |
| #include "modules/canvas2d/CanvasRenderingContext2D.h" |
| #include "modules/filesystem/DraggedIsolatedFileSystemImpl.h" |
| #include "modules/imagebitmap/ImageBitmapRenderingContext.h" |
| #include "modules/webdatabase/DatabaseManager.h" |
| #include "modules/webgl/WebGL2RenderingContext.h" |
| #include "modules/webgl/WebGLRenderingContext.h" |
| |
| namespace blink { |
| |
| void ModulesInitializer::init() |
| { |
| ASSERT(!isInitialized()); |
| |
| // Strings must be initialized before calling CoreInitializer::init(). |
| const unsigned modulesStaticStringsCount = EventNames::EventModulesNamesCount |
| + EventTargetNames::EventTargetModulesNamesCount |
| + IndexedDBNames::IndexedDBNamesCount; |
| StringImpl::reserveStaticStringsCapacityForSize(modulesStaticStringsCount); |
| |
| EventNames::initModules(); |
| EventTargetNames::initModules(); |
| Document::registerEventFactory(EventModulesFactory::create()); |
| ModuleBindingsInitializer::init(); |
| IndexedDBNames::init(); |
| AXObjectCache::init(AXObjectCacheImpl::create); |
| DraggedIsolatedFileSystem::init(DraggedIsolatedFileSystemImpl::prepareForDataObject); |
| |
| CoreInitializer::init(); |
| |
| // Canvas context types must be registered with the HTMLCanvasElement. |
| HTMLCanvasElement::registerRenderingContextFactory(adoptPtr(new CanvasRenderingContext2D::Factory())); |
| HTMLCanvasElement::registerRenderingContextFactory(adoptPtr(new WebGLRenderingContext::Factory())); |
| HTMLCanvasElement::registerRenderingContextFactory(adoptPtr(new WebGL2RenderingContext::Factory())); |
| HTMLCanvasElement::registerRenderingContextFactory(adoptPtr(new ImageBitmapRenderingContext::Factory())); |
| |
| ASSERT(isInitialized()); |
| } |
| |
| void ModulesInitializer::terminateThreads() |
| { |
| DatabaseManager::terminateDatabaseThread(); |
| } |
| |
| } // namespace blink |