From ac5cbb6cd66a41e2d77a86bcda743066714194f6 Mon Sep 17 00:00:00 2001 From: Mike Greiling Date: Tue, 23 Jan 2018 18:17:44 -0600 Subject: [PATCH 1/2] disable CopyAsGFM on iOS due to bug in webkit --- app/assets/javascripts/behaviors/copy_as_gfm.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/assets/javascripts/behaviors/copy_as_gfm.js b/app/assets/javascripts/behaviors/copy_as_gfm.js index c6eca72c51b..ffe90595b5d 100644 --- a/app/assets/javascripts/behaviors/copy_as_gfm.js +++ b/app/assets/javascripts/behaviors/copy_as_gfm.js @@ -299,6 +299,13 @@ const gfmRules = { export class CopyAsGFM { constructor() { + // iOS currently does not support clipboardData.setData(). This bug should + // be fixed in iOS 12, but for now we'll disable this for all iOS browsers + // ref: https://trac.webkit.org/changeset/222228/webkit + const userAgent = (typeof navigator !== 'undefined' && navigator.userAgent) || ''; + const isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent); + if (isIOS) return; + $(document).on('copy', '.md, .wiki', (e) => { CopyAsGFM.copyAsGFM(e, CopyAsGFM.transformGFMSelection); }); $(document).on('copy', 'pre.code.highlight, .diff-content .line_content', (e) => { CopyAsGFM.copyAsGFM(e, CopyAsGFM.transformCodeSelection); }); $(document).on('paste', '.js-gfm-input', CopyAsGFM.pasteGFM); From 194e1b8f32618e60af0cf7767b6facecce40d74e Mon Sep 17 00:00:00 2001 From: Mike Greiling Date: Tue, 23 Jan 2018 18:20:10 -0600 Subject: [PATCH 2/2] add CHANGELOG.md entry for !15804 --- changelogs/unreleased/32546-cannot-copy-paste-on-ios.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 changelogs/unreleased/32546-cannot-copy-paste-on-ios.yml diff --git a/changelogs/unreleased/32546-cannot-copy-paste-on-ios.yml b/changelogs/unreleased/32546-cannot-copy-paste-on-ios.yml new file mode 100644 index 00000000000..f4c44983736 --- /dev/null +++ b/changelogs/unreleased/32546-cannot-copy-paste-on-ios.yml @@ -0,0 +1,5 @@ +--- +title: Fix copy/paste on iOS devices due to a bug in webkit +merge_request: 15804 +author: +type: fixed