summaryrefslogtreecommitdiff
path: root/Source/WebCore/editing/RemoveFormatCommand.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/editing/RemoveFormatCommand.cpp')
-rw-r--r--Source/WebCore/editing/RemoveFormatCommand.cpp61
1 files changed, 31 insertions, 30 deletions
diff --git a/Source/WebCore/editing/RemoveFormatCommand.cpp b/Source/WebCore/editing/RemoveFormatCommand.cpp
index eea0ae8eb..d8b82cf1a 100644
--- a/Source/WebCore/editing/RemoveFormatCommand.cpp
+++ b/Source/WebCore/editing/RemoveFormatCommand.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
* Copyright (C) 2010 Google Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -33,6 +33,7 @@
#include "FrameSelection.h"
#include "HTMLNames.h"
#include "StyleProperties.h"
+#include <wtf/NeverDestroyed.h>
namespace WebCore {
@@ -45,44 +46,44 @@ RemoveFormatCommand::RemoveFormatCommand(Document& document)
static bool isElementForRemoveFormatCommand(const Element* element)
{
- DEFINE_STATIC_LOCAL(HashSet<QualifiedName>, elements, ());
- if (elements.isEmpty()) {
- elements.add(acronymTag);
- elements.add(bTag);
- elements.add(bdoTag);
- elements.add(bigTag);
- elements.add(citeTag);
- elements.add(codeTag);
- elements.add(dfnTag);
- elements.add(emTag);
- elements.add(fontTag);
- elements.add(iTag);
- elements.add(insTag);
- elements.add(kbdTag);
- elements.add(nobrTag);
- elements.add(qTag);
- elements.add(sTag);
- elements.add(sampTag);
- elements.add(smallTag);
- elements.add(strikeTag);
- elements.add(strongTag);
- elements.add(subTag);
- elements.add(supTag);
- elements.add(ttTag);
- elements.add(uTag);
- elements.add(varTag);
+ static NeverDestroyed<HashSet<QualifiedName>> elements;
+ if (elements.get().isEmpty()) {
+ elements.get().add(acronymTag);
+ elements.get().add(bTag);
+ elements.get().add(bdoTag);
+ elements.get().add(bigTag);
+ elements.get().add(citeTag);
+ elements.get().add(codeTag);
+ elements.get().add(dfnTag);
+ elements.get().add(emTag);
+ elements.get().add(fontTag);
+ elements.get().add(iTag);
+ elements.get().add(insTag);
+ elements.get().add(kbdTag);
+ elements.get().add(nobrTag);
+ elements.get().add(qTag);
+ elements.get().add(sTag);
+ elements.get().add(sampTag);
+ elements.get().add(smallTag);
+ elements.get().add(strikeTag);
+ elements.get().add(strongTag);
+ elements.get().add(subTag);
+ elements.get().add(supTag);
+ elements.get().add(ttTag);
+ elements.get().add(uTag);
+ elements.get().add(varTag);
}
- return elements.contains(element->tagQName());
+ return elements.get().contains(element->tagQName());
}
void RemoveFormatCommand::doApply()
{
- if (!frame().selection().selection().isNonOrphanedCaretOrRange())
+ if (endingSelection().isNoneOrOrphaned())
return;
// Get the default style for this editable root, it's the style that we'll give the
// content that we're operating on.
- Node* root = frame().selection().rootEditableElement();
+ Node* root = endingSelection().rootEditableElement();
RefPtr<EditingStyle> defaultStyle = EditingStyle::create(root);
// We want to remove everything but transparent background.