diff --git a/core/modules/action/lib/Drupal/action/Plugin/views/field/BulkForm.php b/core/modules/action/lib/Drupal/action/Plugin/views/field/BulkForm.php
index 08d6c85..739b7d1 100644
--- a/core/modules/action/lib/Drupal/action/Plugin/views/field/BulkForm.php
+++ b/core/modules/action/lib/Drupal/action/Plugin/views/field/BulkForm.php
@@ -21,6 +21,54 @@
 class BulkForm extends FieldPluginBase {
 
   /**
+   * Overrides \Drupal\views\Plugin\views\field\FieldPluginBase::defineOptions().
+   */
+  protected function defineOptions() {
+    $options = parent::defineOptions();
+    $options['include_exclude'] = array(
+      'default' => 'exclude',
+    );
+    $options['actions'] = array(
+      'default' => array(),
+    );
+
+    return $options;
+  }
+
+  /**
+   * Overrides \Drupal\views\Plugin\views\field\FieldPluginBase::buildOptionsForm().
+   */
+  public function buildOptionsForm(&$form, &$form_state) {
+    parent::buildOptionsForm($form, $form_state);
+
+    $form['include_exclude'] = array(
+      '#title' => t('Choose to include/exclude certain available options.'),
+      '#type' => 'radios',
+      '#default_value' => $this->options['include_exclude'],
+      '#options' => array(
+        'include' => t('Include just selected actions'),
+        'exclude' => t('Exclude selected actions'),
+      ),
+    );
+
+    $options = $this->getActionLabels();
+
+    $form['actions'] = array(
+      '#title' => t('Which actions should included/excluded.'),
+      '#default_value' => $this->options['actions'],
+      '#type' => 'checkboxes',
+      '#options' => $options,
+    );
+  }
+
+  public function validateOptionsForm(&$form, &$form_state) {
+    parent::validateOptionsForm($form, $form_state);
+
+    $form_state['values']['options']['actions'] = array_filter($form_state['values']['options']['actions']);
+  }
+
+
+  /**
    * Overrides \Drupal\views\Plugin\views\Plugin\field\FieldPluginBase::render().
    */
   public function render($values) {
@@ -44,6 +92,26 @@ public function pre_render(&$values) {
   }
 
   /**
+   * Return all available action labels for the current entity type.
+   *
+   * @return array
+   *   A list of action labels keyed by the action name.
+   */
+  protected function getActionLabels() {
+    $actions = action_get_all_actions();
+    $entity_type = $this->getEntityType();
+    // Filter actions by the entity type and build options for the form.
+    $actions = array_filter($actions, function($action) use ($entity_type) {
+      return $action['type'] == $entity_type && empty($action['configurable']);
+    });
+    $options = array_map(function($action) {
+      return $action['label'];
+    }, $actions);
+
+    return $options;
+  }
+
+  /**
    * Implements \Drupal\views\Plugin\views\Plugin\field\FieldPluginBase::views_form().
    */
   public function views_form(&$form, &$form_state) {
@@ -63,15 +131,18 @@ public function views_form(&$form, &$form_state) {
     $form[$this->options['id']]['#tree'] = TRUE;
 
     // Get all available actions.
-    $actions = action_get_all_actions();
-    $entity_type = $this->getEntityType();
-    // Filter actions by the entity type and build options for the form.
-    $actions = array_filter($actions, function($action) use ($entity_type) {
-      return $action['type'] == $entity_type && empty($action['configurable']);
-    });
-    $options = array_map(function($action) {
-      return $action['label'];
-    }, $actions);
+    $actions = $this->getActionLabels();
+    if ($this->options['include_exclude'] == 'include') {
+      // Just include selected actions.
+      $options = array_intersect_key($actions, $this->options['actions']);
+    }
+    else {
+      // Exclude all selected actions.
+      foreach ($this->options['actions'] as $action) {
+        unset($actions[$action]);
+      }
+      $options = $actions;
+    }
 
     $form['action'] = array(
       '#type' => 'select',
diff --git a/core/modules/action/lib/Drupal/action/Tests/BulkFormTest.php b/core/modules/action/lib/Drupal/action/Tests/BulkFormTest.php
index 8891ed4..41fdd19 100644
--- a/core/modules/action/lib/Drupal/action/Tests/BulkFormTest.php
+++ b/core/modules/action/lib/Drupal/action/Tests/BulkFormTest.php
@@ -78,6 +78,30 @@ public function testBulkForm() {
     // The second node should still be published.
     $node = node_load($nodes[1]->id(), TRUE);
     $this->assertTrue($node->status, 'An unchecked node is still published.');
+
+    // Setup to include just the sticky actions.
+    $view = views_get_view('test_bulk_form');
+    $display = &$view->storage->getDisplay('default');
+    $display['display_options']['fields']['bulk_form']['include_exclude'] = 'include';
+    $display['display_options']['fields']['bulk_form']['actions']['node_make_sticky_action'] = 'node_make_sticky_action';
+    $display['display_options']['fields']['bulk_form']['actions']['node_make_unsticky_action'] = 'node_make_unsticky_action';
+    $view->save();
+
+    $this->drupalGet('test_bulk_form');
+    $options = $this->xpath('//select[@id=:id]/option', array(':id' => 'edit-action'));
+    $this->assertEqual(count($options), 2);
+    $this->assertOption('edit-action', 'node_make_sticky_action');
+    $this->assertOption('edit-action', 'node_make_unsticky_action');
+
+    // Setup to exclude the sticky actions.
+    $view = views_get_view('test_bulk_form');
+    $display = &$view->storage->getDisplay('default');
+    $display['display_options']['fields']['bulk_form']['include_exclude'] = 'exclude';
+    $view->save();
+
+    $this->drupalGet('test_bulk_form');
+    $this->assertNoOption('edit-action', 'node_make_sticky_action');
+    $this->assertNoOption('edit-action', 'node_make_unsticky_action');
   }
 
 }
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/PluginBase.php b/core/modules/views/lib/Drupal/views/Plugin/views/PluginBase.php
index 118eb1c..9f72aad 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/PluginBase.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/PluginBase.php
@@ -79,17 +79,27 @@ public function __construct(array $configuration, $plugin_id, DiscoveryInterface
    */
   protected function defineOptions() { return array(); }
 
-  protected function setOptionDefaults(&$storage, $options, $level = 0) {
+  /**
+   * Fill up the options of the plugin with defaults.
+   *
+   * @param array $storage
+   *   An array which stores the actual option values of the plugin.
+   *
+   * @param array $options
+   *   An array which describes the options of a plugin. Each element is an
+   *   associative array containing:
+   *     - default: The default value of one option
+   *     - contains: (optional) An array which describes the available options
+   *       under the key.
+   */
+  protected function setOptionDefaults(array &$storage, array $options) {
     foreach ($options as $option => $definition) {
       if (isset($definition['contains']) && is_array($definition['contains'])) {
         $storage[$option] = array();
-        $this->setOptionDefaults($storage[$option], $definition['contains'], $level++);
-      }
-      elseif (!empty($definition['translatable']) && !empty($definition['default'])) {
-        $storage[$option] = t($definition['default']);
+        $this->setOptionDefaults($storage[$option], $definition['contains']);
       }
       else {
-        $storage[$option] = isset($definition['default']) ? $definition['default'] : NULL;
+        $storage[$option] = $definition['default'];
       }
     }
   }
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/field/Boolean.php b/core/modules/views/lib/Drupal/views/Plugin/views/field/Boolean.php
index 5a9ae65..2ec4c2f 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/field/Boolean.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/field/Boolean.php
@@ -35,7 +35,7 @@ class Boolean extends FieldPluginBase {
   protected function defineOptions() {
     $options = parent::defineOptions();
     $options['type'] = array('default' => 'yes-no');
-    $options['not'] = array('definition bool' => 'reverse');
+    $options['not'] = array('default' => 'reverse', 'bool' => TRUE);
 
     return $options;
   }
