Commit 61d4de6b authored by cmumford@chromium.org's avatar cmumford@chromium.org

Refactor module initialization.

Previous implementation had three CoreInitializer methods: initEventNames,
initEventTargetNames, and initBindings, which were never called, and
ModulesInitializer contained identically named methods which were a
superset of the base class implementation. This change removes duplication
and separates core and modules initialization for a cleaner implementation.

This change doesn't fix 393728, but is a necessary refactoring for the
actual fix.

BUG=393728

Review URL: https://codereview.chromium.org/464043002

git-svn-id: svn://svn.chromium.org/blink/trunk@180130 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 7523778e
...@@ -57,16 +57,6 @@ ...@@ -57,16 +57,6 @@
namespace blink { namespace blink {
void CoreInitializer::initEventNames()
{
EventNames::init();
}
void CoreInitializer::initEventTargetNames()
{
EventTargetNames::init();
}
void CoreInitializer::registerEventFactory() void CoreInitializer::registerEventFactory()
{ {
static bool isRegistered = false; static bool isRegistered = false;
...@@ -79,8 +69,7 @@ void CoreInitializer::registerEventFactory() ...@@ -79,8 +69,7 @@ void CoreInitializer::registerEventFactory()
void CoreInitializer::init() void CoreInitializer::init()
{ {
if (m_isInited) ASSERT(!m_isInited);
return;
m_isInited = true; m_isInited = true;
// It would make logical sense to do this and WTF::StringStatics::init() in // It would make logical sense to do this and WTF::StringStatics::init() in
...@@ -93,8 +82,8 @@ void CoreInitializer::init() ...@@ -93,8 +82,8 @@ void CoreInitializer::init()
XMLNSNames::init(); XMLNSNames::init();
XMLNames::init(); XMLNames::init();
initEventNames(); EventNames::init();
initEventTargetNames(); EventTargetNames::init();
EventTypeNames::init(); EventTypeNames::init();
FetchInitiatorTypeNames::init(); FetchInitiatorTypeNames::init();
FontFamilyNames::init(); FontFamilyNames::init();
...@@ -108,7 +97,6 @@ void CoreInitializer::init() ...@@ -108,7 +97,6 @@ void CoreInitializer::init()
Partitions::init(); Partitions::init();
EventTracer::initialize(); EventTracer::initialize();
initBindings();
registerEventFactory(); registerEventFactory();
// Ensure that the main thread's thread-local data is initialized before // Ensure that the main thread's thread-local data is initialized before
......
...@@ -37,17 +37,17 @@ class CoreInitializer { ...@@ -37,17 +37,17 @@ class CoreInitializer {
public: public:
CoreInitializer() : m_isInited(false) { } CoreInitializer() : m_isInited(false) { }
// Should be called by clients before trying to create Frames. // Should be called by clients before trying to create Frames.
void init(); virtual void init();
virtual void registerEventFactory();
virtual void initEventNames();
virtual void initEventTargetNames();
virtual void initBindings() { }
// FIXME: Why is this function static? // FIXME: Why is this function static?
static void shutdown(); static void shutdown();
protected:
bool isInitialized() const { return m_isInited; }
private: private:
void registerEventFactory();
bool m_isInited; bool m_isInited;
}; };
......
...@@ -14,27 +14,19 @@ ...@@ -14,27 +14,19 @@
namespace blink { namespace blink {
void ModulesInitializer::initEventNames() void ModulesInitializer::init()
{ {
EventNames::init(); ASSERT(!isInitialized());
EventNames::initModules();
}
void ModulesInitializer::initEventTargetNames() // Strings must be initialized before calling CoreInitializer::init().
{ EventNames::initModules();
EventTargetNames::init();
EventTargetNames::initModules(); EventTargetNames::initModules();
}
void ModulesInitializer::registerEventFactory()
{
CoreInitializer::registerEventFactory();
Document::registerEventFactory(EventModulesFactory::create()); Document::registerEventFactory(EventModulesFactory::create());
}
void ModulesInitializer::initBindings()
{
ModuleBindingsInitializer::init(); ModuleBindingsInitializer::init();
CoreInitializer::init();
ASSERT(isInitialized());
} }
} // namespace blink } // namespace blink
...@@ -6,23 +6,14 @@ ...@@ -6,23 +6,14 @@
#define InitModules_h #define InitModules_h
#include "core/Init.h" #include "core/Init.h"
#include "platform/heap/Handle.h"
namespace blink { namespace blink {
class Event;
class ExceptionState;
class ModulesInitializer : public CoreInitializer { class ModulesInitializer : public CoreInitializer {
public: public:
virtual void registerEventFactory() OVERRIDE; virtual void init() OVERRIDE;
virtual void initEventNames() OVERRIDE;
virtual void initEventTargetNames() OVERRIDE;
virtual void initBindings() OVERRIDE;
}; };
PassRefPtrWillBeRawPtr<Event> createEventModules(const String& eventType, ExceptionState&);
} // namespace blink } // namespace blink
#endif // InitModules_h #endif // InitModules_h
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment