editor/composer/src/nsComposerController.cpp

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     6 #include "mozilla/mozalloc.h"           // for operator new
     7 #include "nsComposerCommands.h"         // for nsStyleUpdatingCommand, etc
     8 #include "nsComposerController.h"
     9 #include "nsError.h"                    // for NS_OK
    10 #include "nsGkAtoms.h"                  // for nsGkAtoms, nsGkAtoms::a, etc
    11 #include "nsIControllerCommandTable.h"  // for nsIControllerCommandTable
    13 class nsIControllerCommand;
    15 #define NS_REGISTER_ONE_COMMAND(_cmdClass, _cmdName)                    \
    16   {                                                                     \
    17     _cmdClass* theCmd = new _cmdClass();                                \
    18     inCommandTable->RegisterCommand(_cmdName,                           \
    19                        static_cast<nsIControllerCommand *>(theCmd));    \
    20   }
    22 #define NS_REGISTER_FIRST_COMMAND(_cmdClass, _cmdName)                  \
    23   {                                                                     \
    24     _cmdClass* theCmd = new _cmdClass();                                \
    25     inCommandTable->RegisterCommand(_cmdName,                           \
    26                        static_cast<nsIControllerCommand *>(theCmd));
    28 #define NS_REGISTER_NEXT_COMMAND(_cmdClass, _cmdName)                   \
    29     inCommandTable->RegisterCommand(_cmdName,                           \
    30                         static_cast<nsIControllerCommand *>(theCmd));
    32 #define NS_REGISTER_LAST_COMMAND(_cmdClass, _cmdName)                   \
    33     inCommandTable->RegisterCommand(_cmdName,                           \
    34                        static_cast<nsIControllerCommand *>(theCmd));    \
    35   }
    37 #define NS_REGISTER_STYLE_COMMAND(_cmdClass, _cmdName, _styleTag)       \
    38   {                                                                     \
    39     _cmdClass* theCmd = new _cmdClass(_styleTag);                       \
    40     inCommandTable->RegisterCommand(_cmdName,                           \
    41                        static_cast<nsIControllerCommand *>(theCmd));    \
    42   }
    44 #define NS_REGISTER_TAG_COMMAND(_cmdClass, _cmdName, _tagName)          \
    45   {                                                                     \
    46     _cmdClass* theCmd = new _cmdClass(_tagName);                        \
    47     inCommandTable->RegisterCommand(_cmdName,                           \
    48                        static_cast<nsIControllerCommand *>(theCmd));    \
    49   }
    52 // static
    53 nsresult
    54 nsComposerController::RegisterEditorDocStateCommands(
    55                         nsIControllerCommandTable *inCommandTable)
    56 {
    57   // observer commands for document state
    58   NS_REGISTER_FIRST_COMMAND(nsDocumentStateCommand, "obs_documentCreated")
    59   NS_REGISTER_NEXT_COMMAND(nsDocumentStateCommand, "obs_documentWillBeDestroyed")
    60   NS_REGISTER_LAST_COMMAND(nsDocumentStateCommand, "obs_documentLocationChanged")
    62   // commands that may get or change state
    63   NS_REGISTER_FIRST_COMMAND(nsSetDocumentStateCommand, "cmd_setDocumentModified")
    64   NS_REGISTER_NEXT_COMMAND(nsSetDocumentStateCommand, "cmd_setDocumentUseCSS")
    65   NS_REGISTER_NEXT_COMMAND(nsSetDocumentStateCommand, "cmd_setDocumentReadOnly")
    66   NS_REGISTER_NEXT_COMMAND(nsSetDocumentStateCommand, "cmd_insertBrOnReturn")
    67   NS_REGISTER_NEXT_COMMAND(nsSetDocumentStateCommand, "cmd_enableObjectResizing")
    68   NS_REGISTER_LAST_COMMAND(nsSetDocumentStateCommand, "cmd_enableInlineTableEditing")
    70   NS_REGISTER_ONE_COMMAND(nsSetDocumentOptionsCommand, "cmd_setDocumentOptions")
    72   return NS_OK;
    73 }
    75 // static
    76 nsresult
    77 nsComposerController::RegisterHTMLEditorCommands(
    78                         nsIControllerCommandTable *inCommandTable)
    79 {
    80   // Edit menu
    81   NS_REGISTER_ONE_COMMAND(nsPasteNoFormattingCommand, "cmd_pasteNoFormatting");
    83   // indent/outdent
    84   NS_REGISTER_ONE_COMMAND(nsIndentCommand, "cmd_indent");
    85   NS_REGISTER_ONE_COMMAND(nsOutdentCommand, "cmd_outdent");
    87   // Styles
    88   NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_bold", nsGkAtoms::b);
    89   NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_italic", nsGkAtoms::i);
    90   NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_underline", nsGkAtoms::u);
    91   NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_tt", nsGkAtoms::tt);
    93   NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_strikethrough", nsGkAtoms::strike);
    94   NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_superscript", nsGkAtoms::sup);
    95   NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_subscript", nsGkAtoms::sub);
    96   NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_nobreak", nsGkAtoms::nobr);
    98   NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_em", nsGkAtoms::em);
    99   NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_strong", nsGkAtoms::strong);
   100   NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_cite", nsGkAtoms::cite);
   101   NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_abbr", nsGkAtoms::abbr);
   102   NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_acronym", nsGkAtoms::acronym);
   103   NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_code", nsGkAtoms::code);
   104   NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_samp", nsGkAtoms::samp);
   105   NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_var", nsGkAtoms::var);
   106   NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_removeLinks", nsGkAtoms::href);
   108   // lists
   109   NS_REGISTER_STYLE_COMMAND(nsListCommand,     "cmd_ol", nsGkAtoms::ol);
   110   NS_REGISTER_STYLE_COMMAND(nsListCommand,     "cmd_ul", nsGkAtoms::ul);
   111   NS_REGISTER_STYLE_COMMAND(nsListItemCommand, "cmd_dt", nsGkAtoms::dt);
   112   NS_REGISTER_STYLE_COMMAND(nsListItemCommand, "cmd_dd", nsGkAtoms::dd);
   113   NS_REGISTER_ONE_COMMAND(nsRemoveListCommand, "cmd_removeList");
   115   // format stuff
   116   NS_REGISTER_ONE_COMMAND(nsParagraphStateCommand,       "cmd_paragraphState");
   117   NS_REGISTER_ONE_COMMAND(nsFontFaceStateCommand,        "cmd_fontFace");
   118   NS_REGISTER_ONE_COMMAND(nsFontSizeStateCommand,        "cmd_fontSize");
   119   NS_REGISTER_ONE_COMMAND(nsFontColorStateCommand,       "cmd_fontColor");
   120   NS_REGISTER_ONE_COMMAND(nsBackgroundColorStateCommand, "cmd_backgroundColor");
   121   NS_REGISTER_ONE_COMMAND(nsHighlightColorStateCommand,  "cmd_highlight");
   123   NS_REGISTER_ONE_COMMAND(nsAlignCommand, "cmd_align");
   124   NS_REGISTER_ONE_COMMAND(nsRemoveStylesCommand, "cmd_removeStyles");
   126   NS_REGISTER_ONE_COMMAND(nsIncreaseFontSizeCommand, "cmd_increaseFont");
   127   NS_REGISTER_ONE_COMMAND(nsDecreaseFontSizeCommand, "cmd_decreaseFont");
   129   // Insert content
   130   NS_REGISTER_ONE_COMMAND(nsInsertHTMLCommand, "cmd_insertHTML");
   131   NS_REGISTER_TAG_COMMAND(nsInsertTagCommand, "cmd_insertLinkNoUI", nsGkAtoms::a);
   132   NS_REGISTER_TAG_COMMAND(nsInsertTagCommand, "cmd_insertImageNoUI", nsGkAtoms::img);
   133   NS_REGISTER_TAG_COMMAND(nsInsertTagCommand, "cmd_insertHR", nsGkAtoms::hr);
   135   NS_REGISTER_ONE_COMMAND(nsAbsolutePositioningCommand, "cmd_absPos");
   136   NS_REGISTER_ONE_COMMAND(nsDecreaseZIndexCommand, "cmd_decreaseZIndex");
   137   NS_REGISTER_ONE_COMMAND(nsIncreaseZIndexCommand, "cmd_increaseZIndex");
   139   return NS_OK;
   140 }

mercurial