Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / Source / modules / InitModules.cpp
blob439be2ac05070f1f835f16b20ad71ade8b4d62d7
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "config.h"
6 #include "InitModules.h"
8 #include "bindings/modules/v8/ModuleBindingsInitializer.h"
9 #include "core/EventTypeNames.h"
10 #include "core/dom/Document.h"
11 #include "core/html/HTMLCanvasElement.h"
12 #include "modules/EventModulesFactory.h"
13 #include "modules/EventModulesNames.h"
14 #include "modules/EventTargetModulesNames.h"
15 #include "modules/IndexedDBNames.h"
16 #include "modules/accessibility/AXObjectCacheImpl.h"
17 #include "modules/canvas2d/CanvasRenderingContext2D.h"
18 #include "modules/compositorworker/CompositorWorkerManager.h"
19 #include "modules/filesystem/DraggedIsolatedFileSystemImpl.h"
20 #include "modules/webdatabase/DatabaseManager.h"
21 #include "modules/webgl/WebGL2RenderingContext.h"
22 #include "modules/webgl/WebGLRenderingContext.h"
24 namespace blink {
26 void ModulesInitializer::init()
28 ASSERT(!isInitialized());
30 // Strings must be initialized before calling CoreInitializer::init().
31 EventNames::initModules();
32 EventTargetNames::initModules();
33 Document::registerEventFactory(EventModulesFactory::create());
34 ModuleBindingsInitializer::init();
35 IndexedDBNames::init();
36 AXObjectCache::init(AXObjectCacheImpl::create);
37 DraggedIsolatedFileSystem::init(DraggedIsolatedFileSystemImpl::prepareForDataObject);
39 CoreInitializer::init();
41 if (RuntimeEnabledFeatures::compositorWorkerEnabled())
42 CompositorWorkerManager::initialize();
44 // Canvas context types must be registered with the HTMLCanvasElement.
45 HTMLCanvasElement::registerRenderingContextFactory(adoptPtr(new CanvasRenderingContext2D::Factory()));
46 HTMLCanvasElement::registerRenderingContextFactory(adoptPtr(new WebGLRenderingContext::Factory()));
47 HTMLCanvasElement::registerRenderingContextFactory(adoptPtr(new WebGL2RenderingContext::Factory()));
49 ASSERT(isInitialized());
52 void ModulesInitializer::terminateThreads()
54 if (RuntimeEnabledFeatures::compositorWorkerEnabled())
55 CompositorWorkerManager::shutdown();
56 DatabaseManager::terminateDatabaseThread();
59 } // namespace blink