diff --git a/core/modules/media/config/install/field.storage.media.field_media_file.yml b/core/modules/media/config/install/field.storage.media.field_media_file.yml
index 344abd1761..1fa8af99a6 100644
--- a/core/modules/media/config/install/field.storage.media.field_media_file.yml
+++ b/core/modules/media/config/install/field.storage.media.field_media_file.yml
@@ -17,7 +17,7 @@ settings:
   display_field: false
   display_default: false
 module: file
-locked: true
+locked: false
 cardinality: 1
 translatable: true
 indexes: {  }
diff --git a/core/modules/media/config/install/field.storage.media.field_media_image.yml b/core/modules/media/config/install/field.storage.media.field_media_image.yml
index 155db1173e..231200d59b 100644
--- a/core/modules/media/config/install/field.storage.media.field_media_image.yml
+++ b/core/modules/media/config/install/field.storage.media.field_media_image.yml
@@ -24,7 +24,7 @@ settings:
   display_default: false
   uri_scheme: public
 module: image
-locked: true
+locked: false
 cardinality: 1
 translatable: true
 indexes: {  }
diff --git a/core/modules/media/src/MediaSourceBase.php b/core/modules/media/src/MediaSourceBase.php
index d22d86ceeb..dea0140260 100644
--- a/core/modules/media/src/MediaSourceBase.php
+++ b/core/modules/media/src/MediaSourceBase.php
@@ -240,7 +240,6 @@ protected function createSourceFieldStorage() {
         'entity_type' => 'media',
         'field_name' => $this->getSourceFieldName(),
         'type' => reset($this->pluginDefinition['allowed_field_types']),
-        'locked' => TRUE,
       ]);
   }
 
diff --git a/core/modules/media/src/MediaTypeForm.php b/core/modules/media/src/MediaTypeForm.php
index 3a96291e5a..80f7d21161 100644
--- a/core/modules/media/src/MediaTypeForm.php
+++ b/core/modules/media/src/MediaTypeForm.php
@@ -318,8 +318,8 @@ public function save(array $form, FormStateInterface $form_state) {
       $source_field = $source->createSourceField($media_type);
       /** @var \Drupal\field\FieldStorageConfigInterface $storage */
       $storage = $source_field->getFieldStorageDefinition();
-      if ($storage->isNew() || !$storage->isLocked()) {
-        $storage->setLocked(TRUE)->save();
+      if ($storage->isNew()) {
+        $storage->save();
       }
       $source_field->save();
 
diff --git a/core/modules/media/tests/src/Functional/MediaFunctionalTestCreateMediaTypeTrait.php b/core/modules/media/tests/src/Functional/MediaFunctionalTestCreateMediaTypeTrait.php
index 2d60c9bff6..4197caab65 100644
--- a/core/modules/media/tests/src/Functional/MediaFunctionalTestCreateMediaTypeTrait.php
+++ b/core/modules/media/tests/src/Functional/MediaFunctionalTestCreateMediaTypeTrait.php
@@ -51,7 +51,7 @@ protected function createMediaType(array $values = [], $source = 'test') {
       $source_field = $source->createSourceField($media_type);
       /** @var \Drupal\field\FieldStorageConfigInterface $storage */
       $storage = $source_field->getFieldStorageDefinition();
-      $storage->setLocked(TRUE)->save();
+      $storage->save();
       $source_field->save();
 
       $media_type
diff --git a/core/modules/media/tests/src/Functional/MediaSourceFileTest.php b/core/modules/media/tests/src/Functional/MediaSourceFileTest.php
new file mode 100644
index 0000000000..881b95ce3b
--- /dev/null
+++ b/core/modules/media/tests/src/Functional/MediaSourceFileTest.php
@@ -0,0 +1,52 @@
+<?php
+
+namespace Drupal\Tests\media\Functional;
+
+use Drupal\media\Entity\MediaType;
+
+/**
+ * Tests the file media source.
+ *
+ * @group media
+ */
+class MediaSourceFileTest extends MediaFunctionalTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    // We need to test without any default configuration in place.
+    // @TODO: Remove this as part of https://www.drupal.org/node/2883813.
+    MediaType::load('file')->delete();
+  }
+
+  /**
+   * Test that it's possible to change the allowed file extensions.
+   */
+  public function testSourceFieldSettingsEditing() {
+
+    $session = $this->getSession();
+    $page = $session->getPage();
+    $assert_session = $this->assertSession();
+
+    $mediaType = $this->createMediaType([], 'file');
+    $media_type_id = $mediaType->id();
+
+    $this->drupalGet("admin/structure/media/manage/$media_type_id/fields/media.$media_type_id.field_media_file");
+
+    // File extension field exists.
+    $assert_session->fieldExists('Allowed file extensions');
+
+    // Add another extension.
+    $page->fillField('settings[file_extensions]', 'txt, doc, docx, pdf, odt');
+
+    $page->pressButton('Save settings');
+    $this->drupalGet("admin/structure/media/manage/$media_type_id/fields/media.$media_type_id.field_media_file");
+
+    // Verify that new extension is present.
+    $assert_session->fieldValueEquals('settings[file_extensions]', 'txt, doc, docx, pdf, odt');
+  }
+
+}
diff --git a/core/modules/media/tests/src/FunctionalJavascript/MediaUiJavascriptTest.php b/core/modules/media/tests/src/FunctionalJavascript/MediaUiJavascriptTest.php
index b150f894da..80fa633bac 100644
--- a/core/modules/media/tests/src/FunctionalJavascript/MediaUiJavascriptTest.php
+++ b/core/modules/media/tests/src/FunctionalJavascript/MediaUiJavascriptTest.php
@@ -90,7 +90,7 @@ public function testMediaTypes() {
     /** @var \Drupal\field\FieldStorageConfigInterface $storage */
     $storage = $source_field->getFieldStorageDefinition();
     $this->assertFalse($storage->isNew(), 'Source field storage definition was saved.');
-    $this->assertTrue($storage->isLocked(), 'Source field storage definition was locked.');
+    $this->assertFalse($storage->isLocked(), 'Source field storage definition was not locked.');
 
     /** @var \Drupal\media\MediaTypeInterface $media_type_storage */
     $media_type_storage = $this->container->get('entity_type.manager')->getStorage('media_type');
diff --git a/core/modules/media/tests/src/Kernel/MediaSourceTest.php b/core/modules/media/tests/src/Kernel/MediaSourceTest.php
index c236914ce9..90f6f2b592 100644
--- a/core/modules/media/tests/src/Kernel/MediaSourceTest.php
+++ b/core/modules/media/tests/src/Kernel/MediaSourceTest.php
@@ -352,7 +352,7 @@ public function testSourceFieldCreation() {
 
     // Test field storage.
     $this->assertTrue($field_storage->isNew(), 'Field storage is saved automatically.');
-    $this->assertTrue($field_storage->isLocked(), 'Field storage is not locked.');
+    $this->assertFalse($field_storage->isLocked(), 'Field storage is not locked.');
     $this->assertEquals('string', $field_storage->getType(), 'Field is not of correct type.');
     $this->assertEquals('field_media_test_1', $field_storage->getName(), 'Incorrect field name is used.');
     $this->assertEquals('media', $field_storage->getTargetEntityTypeId(), 'Field is not targeting media entities.');
@@ -387,7 +387,7 @@ public function testSourceFieldCreation() {
 
     // Test field storage.
     $this->assertTrue($field_storage->isNew(), 'Field storage is saved automatically.');
-    $this->assertTrue($field_storage->isLocked(), 'Field storage is not locked.');
+    $this->assertFalse($field_storage->isLocked(), 'Field storage is not locked.');
     $this->assertEquals('string_long', $field_storage->getType(), 'Field is of incorrect type.');
     $this->assertEquals('field_media_test_constraints_1', $field_storage->getName(), 'Incorrect field name is used.');
     $this->assertEquals('media', $field_storage->getTargetEntityTypeId(), 'Field is not targeting media entities.');
