Title: [164053] trunk
Revision
164053
Author
mmaxfi...@apple.com
Date
2014-02-13 13:55:29 -0800 (Thu, 13 Feb 2014)

Log Message

During a copy, position:fixed gets converted to position:absolute even if only part of the document is selected
https://bugs.webkit.org/show_bug.cgi?id=128688

Reviewed by Ryosuke Niwa.

Source/WebCore:

Adds a field, m_needsPositionStyleConversion, to StyledMarkupAccumulator.

Also, renames the ConvertPositionStyleOnCopy setting to ShouldConvertPositionStyleOnCopy

Test: editing/pasteboard/copy-paste-doesnt-convert-sticky-and-fixed-during-partial-copy.html

* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator):
(WebCore::StyledMarkupAccumulator::appendElement):
(WebCore::createMarkupInternal):
* page/Settings.in:
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setShouldConvertPositionStyleOnCopy):
* testing/InternalSettings.h:
* testing/InternalSettings.idl:

Source/WebKit/mac:

Renames the ConvertPositionStyleOnCopy setting to ShouldConvertPositionStyleOnCopy

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(-[WebPreferences shouldConvertPositionStyleOnCopy]):
(-[WebPreferences setShouldConvertPositionStyleOnCopy:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Source/WebKit2:

Renames the ConvertPositionStyleOnCopy setting to ShouldConvertPositionStyleOnCopy

* Shared/WebPreferencesStore.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetShouldConvertPositionStyleOnCopy):
(WKPreferencesGetShouldConvertPositionStyleOnCopy):
* UIProcess/API/C/WKPreferencesPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

LayoutTests:

Performs a copy of the contents of a particular div, rather than the entire body. Makes sure that
no position:fixed -> position:absolute conversion occurs.

* editing/pasteboard/copy-paste-converts-sticky-and-fixed-expected.txt:
* editing/pasteboard/copy-paste-converts-sticky-and-fixed.html:
* editing/pasteboard/copy-paste-doesnt-convert-sticky-and-fixed-during-partial-copy-expected.txt: Added.
* editing/pasteboard/copy-paste-doesnt-convert-sticky-and-fixed-during-partial-copy.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (164052 => 164053)


--- trunk/LayoutTests/ChangeLog	2014-02-13 21:38:05 UTC (rev 164052)
+++ trunk/LayoutTests/ChangeLog	2014-02-13 21:55:29 UTC (rev 164053)
@@ -1,3 +1,18 @@
+2014-02-13  Myles C. Maxfield  <mmaxfi...@apple.com>
+
+        During a copy, position:fixed gets converted to position:absolute even if only part of the document is selected
+        https://bugs.webkit.org/show_bug.cgi?id=128688
+
+        Reviewed by Ryosuke Niwa.
+
+        Performs a copy of the contents of a particular div, rather than the entire body. Makes sure that
+        no position:fixed -> position:absolute conversion occurs.
+
+        * editing/pasteboard/copy-paste-converts-sticky-and-fixed-expected.txt:
+        * editing/pasteboard/copy-paste-converts-sticky-and-fixed.html:
+        * editing/pasteboard/copy-paste-doesnt-convert-sticky-and-fixed-during-partial-copy-expected.txt: Added.
+        * editing/pasteboard/copy-paste-doesnt-convert-sticky-and-fixed-during-partial-copy.html: Added.
+
 2014-02-13  Chang Shu  <c...@webkit.org>
 
         Copying (createMarkup) wrapping text results in space between wrapped lines stripped.

Modified: trunk/LayoutTests/editing/pasteboard/copy-paste-converts-sticky-and-fixed-expected.txt (164052 => 164053)


--- trunk/LayoutTests/editing/pasteboard/copy-paste-converts-sticky-and-fixed-expected.txt	2014-02-13 21:38:05 UTC (rev 164052)
+++ trunk/LayoutTests/editing/pasteboard/copy-paste-converts-sticky-and-fixed-expected.txt	2014-02-13 21:55:29 UTC (rev 164053)
@@ -37,7 +37,7 @@
 document.designMode = 'on';
 
 if (window.internals)
-    window.internals.settings.setConvertPositionStyleOnCopy(true);
+    window.internals.settings.setShouldConvertPositionStyleOnCopy(true);
 
 var s = window.getSelection();
 
@@ -85,7 +85,7 @@
 document.designMode = 'on';
 
 if (window.internals)
-    window.internals.settings.setConvertPositionStyleOnCopy(true);
+    window.internals.settings.setShouldConvertPositionStyleOnCopy(true);
 
 var s = window.getSelection();
 

Modified: trunk/LayoutTests/editing/pasteboard/copy-paste-converts-sticky-and-fixed.html (164052 => 164053)


--- trunk/LayoutTests/editing/pasteboard/copy-paste-converts-sticky-and-fixed.html	2014-02-13 21:38:05 UTC (rev 164052)
+++ trunk/LayoutTests/editing/pasteboard/copy-paste-converts-sticky-and-fixed.html	2014-02-13 21:55:29 UTC (rev 164053)
@@ -14,7 +14,7 @@
 document.designMode = 'on';
 
 if (window.internals)
-    window.internals.settings.setConvertPositionStyleOnCopy(true);
+    window.internals.settings.setShouldConvertPositionStyleOnCopy(true);
 
 var s = window.getSelection();
 

Added: trunk/LayoutTests/editing/pasteboard/copy-paste-doesnt-convert-sticky-and-fixed-during-partial-copy-expected.txt (0 => 164053)


--- trunk/LayoutTests/editing/pasteboard/copy-paste-doesnt-convert-sticky-and-fixed-during-partial-copy-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/editing/pasteboard/copy-paste-doesnt-convert-sticky-and-fixed-during-partial-copy-expected.txt	2014-02-13 21:55:29 UTC (rev 164053)
@@ -0,0 +1,17 @@
+This tests to see if position:sticky and position:fixed don't get converted to position:static and position:absolute upon copy/paste when there is only a partial selection (not the entire body is selected)
+
+Before:
+| "
+abc"
+| <div>
+|   style="position: fixed; left: 0px; top: 0px;"
+|   "def"
+| "ghi
+"
+
+After:
+| "abc"
+| <div>
+|   style="position: fixed; left: 0px; top: 0px;"
+|   "def"
+| "ghi<#selection-caret>"

Added: trunk/LayoutTests/editing/pasteboard/copy-paste-doesnt-convert-sticky-and-fixed-during-partial-copy.html (0 => 164053)


--- trunk/LayoutTests/editing/pasteboard/copy-paste-doesnt-convert-sticky-and-fixed-during-partial-copy.html	                        (rev 0)
+++ trunk/LayoutTests/editing/pasteboard/copy-paste-doesnt-convert-sticky-and-fixed-during-partial-copy.html	2014-02-13 21:55:29 UTC (rev 164053)
@@ -0,0 +1,30 @@
+<html>
+<head>
+<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+<script type="text/_javascript_" src=""
+</head>
+<body>
+<div contenteditable="true" id="test">
+abc<div style="position: fixed; left: 0px; top: 0px;">def</div>ghi
+</div>
+
+<script>
+
+Markup.description('This tests to see if position:sticky and position:fixed don\'t get converted to position:static and position:absolute upon copy/paste when there is only a partial selection (not the entire body is selected)');
+
+if (window.internals)
+    window.internals.settings.setShouldConvertPositionStyleOnCopy(true);
+
+var e = document.getElementById("test");
+var s = window.getSelection();
+
+Markup.dump('test', 'Before');
+s.setPosition(e, 0);
+document.execCommand("SelectAll");
+document.execCommand("Cut");
+document.execCommand("Paste");
+Markup.dump('test', 'After');
+
+</script>
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (164052 => 164053)


--- trunk/Source/WebCore/ChangeLog	2014-02-13 21:38:05 UTC (rev 164052)
+++ trunk/Source/WebCore/ChangeLog	2014-02-13 21:55:29 UTC (rev 164053)
@@ -1,3 +1,28 @@
+2014-02-13  Myles C. Maxfield  <mmaxfi...@apple.com>
+
+        During a copy, position:fixed gets converted to position:absolute even if only part of the document is selected
+        https://bugs.webkit.org/show_bug.cgi?id=128688
+
+        Reviewed by Ryosuke Niwa.
+
+        Adds a field, m_needsPositionStyleConversion, to StyledMarkupAccumulator.
+
+        Also, renames the ConvertPositionStyleOnCopy setting to ShouldConvertPositionStyleOnCopy
+
+        Test: editing/pasteboard/copy-paste-doesnt-convert-sticky-and-fixed-during-partial-copy.html
+
+        * editing/markup.cpp:
+        (WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator):
+        (WebCore::StyledMarkupAccumulator::appendElement):
+        (WebCore::createMarkupInternal):
+        * page/Settings.in:
+        * testing/InternalSettings.cpp:
+        (WebCore::InternalSettings::Backup::Backup):
+        (WebCore::InternalSettings::Backup::restoreTo):
+        (WebCore::InternalSettings::setShouldConvertPositionStyleOnCopy):
+        * testing/InternalSettings.h:
+        * testing/InternalSettings.idl:
+
 2014-02-12  Timothy Hatcher  <timo...@apple.com>
 
         Enable inspection of recently used IndexedDB databases.

Modified: trunk/Source/WebCore/editing/markup.cpp (164052 => 164053)


--- trunk/Source/WebCore/editing/markup.cpp	2014-02-13 21:38:05 UTC (rev 164052)
+++ trunk/Source/WebCore/editing/markup.cpp	2014-02-13 21:55:29 UTC (rev 164053)
@@ -117,17 +117,14 @@
 public:
     enum RangeFullySelectsNode { DoesFullySelectNode, DoesNotFullySelectNode };
 
-    StyledMarkupAccumulator(Vector<Node*>* nodes, EAbsoluteURLs, EAnnotateForInterchange, const Range*, Node* highestNodeToBeSerialized = 0);
+    StyledMarkupAccumulator(Vector<Node*>* nodes, EAbsoluteURLs, EAnnotateForInterchange, const Range*, bool needsPositionStyleConversion, Node* highestNodeToBeSerialized = 0);
 
     Node* serializeNodes(Node* startNode, Node* pastEnd);
     void wrapWithNode(Node&, bool convertBlocksToInlines = false, RangeFullySelectsNode = DoesFullySelectNode);
     void wrapWithStyleNode(StyleProperties*, Document&, bool isBlock = false);
     String takeResults();
     
-    bool needRelativeStyleWrapper() const
-    {
-        return m_needRelativeStyleWrapper;
-    }
+    bool needRelativeStyleWrapper() const { return m_needRelativeStyleWrapper; }
 
     using MarkupAccumulator::appendString;
 
@@ -164,13 +161,15 @@
     Node* m_highestNodeToBeSerialized;
     RefPtr<EditingStyle> m_wrappingStyle;
     bool m_needRelativeStyleWrapper;
+    bool m_needsPositionStyleConversion;
 };
 
-inline StyledMarkupAccumulator::StyledMarkupAccumulator(Vector<Node*>* nodes, EAbsoluteURLs shouldResolveURLs, EAnnotateForInterchange shouldAnnotate, const Range* range, Node* highestNodeToBeSerialized)
+inline StyledMarkupAccumulator::StyledMarkupAccumulator(Vector<Node*>* nodes, EAbsoluteURLs shouldResolveURLs, EAnnotateForInterchange shouldAnnotate, const Range* range, bool needsPositionStyleConversion, Node* highestNodeToBeSerialized)
     : MarkupAccumulator(nodes, shouldResolveURLs, range)
     , m_shouldAnnotate(shouldAnnotate)
     , m_highestNodeToBeSerialized(highestNodeToBeSerialized)
     , m_needRelativeStyleWrapper(false)
+    , m_needsPositionStyleConversion(needsPositionStyleConversion)
 {
 }
 
@@ -328,7 +327,7 @@
             if (addDisplayInline)
                 newInlineStyle->forceInline();
             
-            if (element.document().settings() && element.document().settings()->convertPositionStyleOnCopy())
+            if (m_needsPositionStyleConversion)
                 m_needRelativeStyleWrapper |= newInlineStyle->convertFixedAndStickyPosition();
 
             // If the node is not fully selected by the range, then we don't want to keep styles that affect its relationship to the nodes around it
@@ -571,7 +570,9 @@
         fullySelectedRoot = body;
     Node* specialCommonAncestor = highestAncestorToWrapMarkup(&updatedRange, shouldAnnotate);
 
-    StyledMarkupAccumulator accumulator(nodes, shouldResolveURLs, shouldAnnotate, &updatedRange, specialCommonAncestor);
+    bool needsPositionStyleConversion = body && fullySelectedRoot == body
+        && document.settings() && document.settings()->shouldConvertPositionStyleOnCopy();
+    StyledMarkupAccumulator accumulator(nodes, shouldResolveURLs, shouldAnnotate, &updatedRange, needsPositionStyleConversion, specialCommonAncestor);
     Node* pastEnd = updatedRange.pastLastNode();
 
     Node* startNode = updatedRange.firstNode();
@@ -627,7 +628,7 @@
         }
     }
     
-    if (accumulator.needRelativeStyleWrapper() && body && fullySelectedRoot == body) {
+    if (accumulator.needRelativeStyleWrapper() && needsPositionStyleConversion) {
         RefPtr<EditingStyle> positionRelativeStyle = styleFromMatchedRulesAndInlineDecl(body);
         positionRelativeStyle->style()->setProperty(CSSPropertyPosition, CSSValueRelative);
         accumulator.wrapWithStyleNode(positionRelativeStyle->style(), document, true);

Modified: trunk/Source/WebCore/page/Settings.in (164052 => 164053)


--- trunk/Source/WebCore/page/Settings.in	2014-02-13 21:38:05 UTC (rev 164052)
+++ trunk/Source/WebCore/page/Settings.in	2014-02-13 21:55:29 UTC (rev 164053)
@@ -205,4 +205,4 @@
 
 mediaPlaybackAllowsAirPlay initial=true, conditional=IOS_AIRPLAY
 
-convertPositionStyleOnCopy initial=false
+shouldConvertPositionStyleOnCopy initial=false

Modified: trunk/Source/WebCore/testing/InternalSettings.cpp (164052 => 164053)


--- trunk/Source/WebCore/testing/InternalSettings.cpp	2014-02-13 21:38:05 UTC (rev 164052)
+++ trunk/Source/WebCore/testing/InternalSettings.cpp	2014-02-13 21:55:29 UTC (rev 164053)
@@ -94,7 +94,7 @@
     , m_useLegacyBackgroundSizeShorthandBehavior(settings.useLegacyBackgroundSizeShorthandBehavior())
     , m_autoscrollForDragAndDropEnabled(settings.autoscrollForDragAndDropEnabled())
     , m_pluginReplacementEnabled(RuntimeEnabledFeatures::sharedFeatures().pluginReplacementEnabled())
-    , m_convertPositionStyleOnCopy(settings.convertPositionStyleOnCopy())
+    , m_shouldConvertPositionStyleOnCopy(settings.shouldConvertPositionStyleOnCopy())
 {
 }
 
@@ -156,7 +156,7 @@
     settings.setTimeWithoutMouseMovementBeforeHidingControls(m_originalTimeWithoutMouseMovementBeforeHidingControls);
     settings.setUseLegacyBackgroundSizeShorthandBehavior(m_useLegacyBackgroundSizeShorthandBehavior);
     settings.setAutoscrollForDragAndDropEnabled(m_autoscrollForDragAndDropEnabled);
-    settings.setConvertPositionStyleOnCopy(m_convertPositionStyleOnCopy);
+    settings.setShouldConvertPositionStyleOnCopy(m_shouldConvertPositionStyleOnCopy);
     RuntimeEnabledFeatures::sharedFeatures().setPluginReplacementEnabled(m_pluginReplacementEnabled);
 }
 
@@ -529,10 +529,10 @@
     settings()->setBackgroundShouldExtendBeyondPage(hasExtendedBackground);
 }
 
-void InternalSettings::setConvertPositionStyleOnCopy(bool convert, ExceptionCode& ec)
+void InternalSettings::setShouldConvertPositionStyleOnCopy(bool convert, ExceptionCode& ec)
 {
     InternalSettingsGuardForSettings();
-    settings()->setConvertPositionStyleOnCopy(convert);
+    settings()->setShouldConvertPositionStyleOnCopy(convert);
 }
 
 }

Modified: trunk/Source/WebCore/testing/InternalSettings.h (164052 => 164053)


--- trunk/Source/WebCore/testing/InternalSettings.h	2014-02-13 21:38:05 UTC (rev 164052)
+++ trunk/Source/WebCore/testing/InternalSettings.h	2014-02-13 21:55:29 UTC (rev 164053)
@@ -91,7 +91,7 @@
         bool m_useLegacyBackgroundSizeShorthandBehavior;
         bool m_autoscrollForDragAndDropEnabled;
         bool m_pluginReplacementEnabled;
-        bool m_convertPositionStyleOnCopy;
+        bool m_shouldConvertPositionStyleOnCopy;
     };
 
     static PassRefPtr<InternalSettings> create(Page* page)
@@ -137,7 +137,7 @@
     void setFontFallbackPrefersPictographs(bool preferPictographs, ExceptionCode&);
     void setPluginReplacementEnabled(bool);
     void setBackgroundShouldExtendBeyondPage(bool hasExtendedBackground, ExceptionCode&);
-    void setConvertPositionStyleOnCopy(bool convert, ExceptionCode&);
+    void setShouldConvertPositionStyleOnCopy(bool convert, ExceptionCode&);
 
 
 private:

Modified: trunk/Source/WebCore/testing/InternalSettings.idl (164052 => 164053)


--- trunk/Source/WebCore/testing/InternalSettings.idl	2014-02-13 21:38:05 UTC (rev 164052)
+++ trunk/Source/WebCore/testing/InternalSettings.idl	2014-02-13 21:55:29 UTC (rev 164053)
@@ -60,5 +60,5 @@
     [RaisesException] void setFontFallbackPrefersPictographs(boolean preferPictographs);
     void setPluginReplacementEnabled(boolean enabled);
     [RaisesException] void setBackgroundShouldExtendBeyondPage(boolean hasExtendedBackground);
-    [RaisesException] void setConvertPositionStyleOnCopy(boolean convert);
+    [RaisesException] void setShouldConvertPositionStyleOnCopy(boolean convert);
 };

Modified: trunk/Source/WebKit/mac/ChangeLog (164052 => 164053)


--- trunk/Source/WebKit/mac/ChangeLog	2014-02-13 21:38:05 UTC (rev 164052)
+++ trunk/Source/WebKit/mac/ChangeLog	2014-02-13 21:55:29 UTC (rev 164053)
@@ -1,3 +1,20 @@
+2014-02-13  Myles C. Maxfield  <mmaxfi...@apple.com>
+
+        During a copy, position:fixed gets converted to position:absolute even if only part of the document is selected
+        https://bugs.webkit.org/show_bug.cgi?id=128688
+
+        Reviewed by Ryosuke Niwa.
+
+        Renames the ConvertPositionStyleOnCopy setting to ShouldConvertPositionStyleOnCopy
+
+        * WebView/WebPreferenceKeysPrivate.h:
+        * WebView/WebPreferences.mm:
+        (-[WebPreferences shouldConvertPositionStyleOnCopy]):
+        (-[WebPreferences setShouldConvertPositionStyleOnCopy:]):
+        * WebView/WebPreferencesPrivate.h:
+        * WebView/WebView.mm:
+        (-[WebView _preferencesChanged:]):
+
 2014-02-13  Alexey Proskuryakov  <a...@apple.com>
 
         [Mac] Add a WebKit1 SPI to get WebCrypto master key from a client

Modified: trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h (164052 => 164053)


--- trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h	2014-02-13 21:38:05 UTC (rev 164052)
+++ trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h	2014-02-13 21:55:29 UTC (rev 164053)
@@ -146,7 +146,7 @@
 #define WebKitLowPowerVideoAudioBufferSizeEnabledPreferenceKey @"WebKitLowPowerVideoAudioBufferSizeEnabled"
 #define WebKitUseLegacyTextAlignPositionedElementBehaviorPreferenceKey @"WebKitUseLegacyTextAlignPositionedElementBehavior"
 #define WebKitMediaSourceEnabledPreferenceKey @"WebKitMediaSourceEnabled"
-#define WebKitConvertPositionStyleOnCopyPreferenceKey @"WebKitConvertPositionStyleOnCopy"
+#define WebKitShouldConvertPositionStyleOnCopyPreferenceKey @"WebKitShouldConvertPositionStyleOnCopy"
 
 #if !TARGET_OS_IPHONE
 // These are private both because callers should be using the cover methods and because the

Modified: trunk/Source/WebKit/mac/WebView/WebPreferences.mm (164052 => 164053)


--- trunk/Source/WebKit/mac/WebView/WebPreferences.mm	2014-02-13 21:38:05 UTC (rev 164052)
+++ trunk/Source/WebKit/mac/WebView/WebPreferences.mm	2014-02-13 21:55:29 UTC (rev 164053)
@@ -2535,14 +2535,14 @@
     [self _setBoolValue:enabled forKey:WebKitMediaSourceEnabledPreferenceKey];
 }
 
-- (BOOL)convertPositionStyleOnCopy
+- (BOOL)shouldConvertPositionStyleOnCopy
 {
-    return [self _boolValueForKey:WebKitConvertPositionStyleOnCopyPreferenceKey];
+    return [self _boolValueForKey:WebKitShouldConvertPositionStyleOnCopyPreferenceKey];
 }
 
-- (void)setConvertPositionStyleOnCopy:(BOOL)enabled
+- (void)setShouldConvertPositionStyleOnCopy:(BOOL)enabled
 {
-    [self _setBoolValue:enabled forKey:WebKitConvertPositionStyleOnCopyPreferenceKey];
+    [self _setBoolValue:enabled forKey:WebKitShouldConvertPositionStyleOnCopyPreferenceKey];
 }
 
 @end

Modified: trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h (164052 => 164053)


--- trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h	2014-02-13 21:38:05 UTC (rev 164052)
+++ trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h	2014-02-13 21:55:29 UTC (rev 164053)
@@ -432,7 +432,7 @@
 - (void)setMediaSourceEnabled:(BOOL)flag;
 - (BOOL)mediaSourceEnabled;
 
-- (void)setConvertPositionStyleOnCopy:(BOOL)flag;
-- (BOOL)convertPositionStyleOnCopy;
+- (void)setShouldConvertPositionStyleOnCopy:(BOOL)flag;
+- (BOOL)shouldConvertPositionStyleOnCopy;
 
 @end

Modified: trunk/Source/WebKit/mac/WebView/WebView.mm (164052 => 164053)


--- trunk/Source/WebKit/mac/WebView/WebView.mm	2014-02-13 21:38:05 UTC (rev 164052)
+++ trunk/Source/WebKit/mac/WebView/WebView.mm	2014-02-13 21:55:29 UTC (rev 164053)
@@ -2382,7 +2382,7 @@
     settings.setMediaSourceEnabled([preferences mediaSourceEnabled]);
 #endif
 
-    settings.setConvertPositionStyleOnCopy([preferences convertPositionStyleOnCopy]);
+    settings.setShouldConvertPositionStyleOnCopy([preferences shouldConvertPositionStyleOnCopy]);
 
     switch ([preferences storageBlockingPolicy]) {
     case WebAllowAllStorage:

Modified: trunk/Source/WebKit2/ChangeLog (164052 => 164053)


--- trunk/Source/WebKit2/ChangeLog	2014-02-13 21:38:05 UTC (rev 164052)
+++ trunk/Source/WebKit2/ChangeLog	2014-02-13 21:55:29 UTC (rev 164053)
@@ -1,3 +1,20 @@
+2014-02-13  Myles C. Maxfield  <mmaxfi...@apple.com>
+
+        During a copy, position:fixed gets converted to position:absolute even if only part of the document is selected
+        https://bugs.webkit.org/show_bug.cgi?id=128688
+
+        Reviewed by Ryosuke Niwa.
+
+        Renames the ConvertPositionStyleOnCopy setting to ShouldConvertPositionStyleOnCopy
+
+        * Shared/WebPreferencesStore.h:
+        * UIProcess/API/C/WKPreferences.cpp:
+        (WKPreferencesSetShouldConvertPositionStyleOnCopy):
+        (WKPreferencesGetShouldConvertPositionStyleOnCopy):
+        * UIProcess/API/C/WKPreferencesPrivate.h:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::updatePreferences):
+
 2014-02-12  Timothy Hatcher  <timo...@apple.com>
 
         Enable inspection of recently used IndexedDB databases.

Modified: trunk/Source/WebKit2/Shared/WebPreferencesStore.h (164052 => 164053)


--- trunk/Source/WebKit2/Shared/WebPreferencesStore.h	2014-02-13 21:38:05 UTC (rev 164052)
+++ trunk/Source/WebKit2/Shared/WebPreferencesStore.h	2014-02-13 21:55:29 UTC (rev 164053)
@@ -190,7 +190,7 @@
     macro(SpatialNavigationEnabled, spatialNavigationEnabled, Bool, bool, false) \
     macro(MediaSourceEnabled, mediaSourceEnabled, Bool, bool, false) \
     macro(ViewGestureDebuggingEnabled, viewGestureDebuggingEnabled, Bool, bool, false) \
-    macro(ConvertPositionStyleOnCopy, convertPositionStyleOnCopy, Bool, bool, false) \
+    macro(ShouldConvertPositionStyleOnCopy, shouldConvertPositionStyleOnCopy, Bool, bool, false) \
     \
 
 #define FOR_EACH_WEBKIT_DOUBLE_PREFERENCE(macro) \

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp (164052 => 164053)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2014-02-13 21:38:05 UTC (rev 164052)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2014-02-13 21:55:29 UTC (rev 164053)
@@ -1236,12 +1236,12 @@
     return toImpl(preferencesRef)->viewGestureDebuggingEnabled();
 }
 
-void WKPreferencesSetConvertPositionStyleOnCopy(WKPreferencesRef preferencesRef, bool convert)
+void WKPreferencesSetShouldConvertPositionStyleOnCopy(WKPreferencesRef preferencesRef, bool convert)
 {
-    toImpl(preferencesRef)->setConvertPositionStyleOnCopy(convert);
+    toImpl(preferencesRef)->setShouldConvertPositionStyleOnCopy(convert);
 }
 
-bool WKPreferencesGetConvertPositionStyleOnCopy(WKPreferencesRef preferencesRef)
+bool WKPreferencesGetShouldConvertPositionStyleOnCopy(WKPreferencesRef preferencesRef)
 {
-    return toImpl(preferencesRef)->convertPositionStyleOnCopy();
+    return toImpl(preferencesRef)->shouldConvertPositionStyleOnCopy();
 }

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h (164052 => 164053)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h	2014-02-13 21:38:05 UTC (rev 164052)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h	2014-02-13 21:55:29 UTC (rev 164053)
@@ -315,8 +315,8 @@
 WK_EXPORT bool WKPreferencesGetViewGestureDebuggingEnabled(WKPreferencesRef preferencesRef);
 
 // Default to false.
-WK_EXPORT void WKPreferencesSetConvertPositionStyleOnCopy(WKPreferencesRef preferencesRef, bool convert);
-WK_EXPORT bool WKPreferencesGetConvertPositionStyleOnCopy(WKPreferencesRef preferencesRef);
+WK_EXPORT void WKPreferencesSetShouldConvertPositionStyleOnCopy(WKPreferencesRef preferencesRef, bool convert);
+WK_EXPORT bool WKPreferencesGetShouldConvertPositionStyleOnCopy(WKPreferencesRef preferencesRef);
 
 #ifdef __cplusplus
 }

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (164052 => 164053)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2014-02-13 21:38:05 UTC (rev 164052)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2014-02-13 21:55:29 UTC (rev 164053)
@@ -2575,7 +2575,7 @@
     settings.setMediaSourceEnabled(store.getBoolValueForKey(WebPreferencesKey::mediaSourceEnabledKey()));
 #endif
 
-    settings.setConvertPositionStyleOnCopy(store.getBoolValueForKey(WebPreferencesKey::convertPositionStyleOnCopyKey()));
+    settings.setShouldConvertPositionStyleOnCopy(store.getBoolValueForKey(WebPreferencesKey::shouldConvertPositionStyleOnCopyKey()));
 
     if (store.getBoolValueForKey(WebPreferencesKey::pageVisibilityBasedProcessSuppressionEnabledKey())) {
         if (m_processSuppressionDisabledByWebPreference.isActive())
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to