Title: [177708] trunk/Source/WebKit2
Revision
177708
Author
[email protected]
Date
2014-12-23 17:00:20 -0800 (Tue, 23 Dec 2014)

Log Message

ContextMenuContextData should store a ShareableBitmap not a ShareableBitmap::Handle
https://bugs.webkit.org/show_bug.cgi?id=139924

Reviewed by Anders Carlsson.

Replaces the ShareableBitmap::Handle in ContextMenuContextData with a RefPtr<ShareableBitmap>.
Removes the now unnecessary override copy-constructor and assignment-operator.

* Shared/ContextMenuContextData.cpp:
(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::encode):
(WebKit::ContextMenuContextData::decode):
(WebKit::ContextMenuContextData::controlledDataIsEditable):
(WebKit::ContextMenuContextData::operator=): Deleted.
* Shared/ContextMenuContextData.h:
(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::controlledImage):
(WebKit::ContextMenuContextData::needsServicesMenu):
(WebKit::ContextMenuContextData::controlledImageHandle): Deleted.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::internalShowContextMenu):
* UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::setupServicesMenu):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (177707 => 177708)


--- trunk/Source/WebKit2/ChangeLog	2014-12-24 00:46:18 UTC (rev 177707)
+++ trunk/Source/WebKit2/ChangeLog	2014-12-24 01:00:20 UTC (rev 177708)
@@ -1,3 +1,29 @@
+2014-12-23  Sam Weinig  <[email protected]>
+
+        ContextMenuContextData should store a ShareableBitmap not a ShareableBitmap::Handle
+        https://bugs.webkit.org/show_bug.cgi?id=139924
+
+        Reviewed by Anders Carlsson.
+
+        Replaces the ShareableBitmap::Handle in ContextMenuContextData with a RefPtr<ShareableBitmap>.
+        Removes the now unnecessary override copy-constructor and assignment-operator.
+
+        * Shared/ContextMenuContextData.cpp:
+        (WebKit::ContextMenuContextData::ContextMenuContextData):
+        (WebKit::ContextMenuContextData::encode):
+        (WebKit::ContextMenuContextData::decode):
+        (WebKit::ContextMenuContextData::controlledDataIsEditable):
+        (WebKit::ContextMenuContextData::operator=): Deleted.
+        * Shared/ContextMenuContextData.h:
+        (WebKit::ContextMenuContextData::ContextMenuContextData):
+        (WebKit::ContextMenuContextData::controlledImage):
+        (WebKit::ContextMenuContextData::needsServicesMenu):
+        (WebKit::ContextMenuContextData::controlledImageHandle): Deleted.
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::internalShowContextMenu):
+        * UIProcess/mac/WebContextMenuProxyMac.mm:
+        (WebKit::WebContextMenuProxyMac::setupServicesMenu):
+
 2014-12-23  Chris Dumez  <[email protected]>
 
         Unreviewed iOS build fix after 177692.

Modified: trunk/Source/WebKit2/Shared/ContextMenuContextData.cpp (177707 => 177708)


--- trunk/Source/WebKit2/Shared/ContextMenuContextData.cpp	2014-12-24 00:46:18 UTC (rev 177707)
+++ trunk/Source/WebKit2/Shared/ContextMenuContextData.cpp	2014-12-24 01:00:20 UTC (rev 177708)
@@ -64,37 +64,13 @@
     Image* image = context.controlledImage();
     if (!image)
         return;
+
     // FIXME: figure out the rounding startegy for ShareableBitmap.
-    RefPtr<ShareableBitmap> bitmap = ShareableBitmap::createShareable(IntSize(image->size()), ShareableBitmap::SupportsAlpha);
-    bitmap->createGraphicsContext()->drawImage(image, ColorSpaceDeviceRGB, IntPoint());
-    bitmap->createHandle(m_controlledImageHandle);
+    m_controlledImage = ShareableBitmap::createShareable(IntSize(image->size()), ShareableBitmap::SupportsAlpha);
+    m_controlledImage->createGraphicsContext()->drawImage(image, ColorSpaceDeviceRGB, IntPoint());
 #endif
 }
 
-ContextMenuContextData::ContextMenuContextData(const ContextMenuContextData& other)
-{
-    *this = other;
-}
-
-ContextMenuContextData& ContextMenuContextData::operator=(const ContextMenuContextData& other)
-{
-    m_webHitTestResultData = other.m_webHitTestResultData;
-    m_isTelephoneNumberContext = other.m_isTelephoneNumberContext;
-
-#if ENABLE(SERVICE_CONTROLS)
-    m_controlledImageHandle.clear();
-
-    if (!other.m_controlledImageHandle.isNull()) {
-        RefPtr<ShareableBitmap> bitmap = ShareableBitmap::create(other.m_controlledImageHandle);
-        bitmap->createHandle(m_controlledImageHandle);
-    }
-
-    m_selectionIsEditable = other.m_selectionIsEditable;
-#endif
-
-    return *this;
-}
-
 void ContextMenuContextData::encode(IPC::ArgumentEncoder& encoder) const
 {
     encoder << m_webHitTestResultData;
@@ -104,7 +80,10 @@
 #endif
 
 #if ENABLE(SERVICE_CONTROLS)
-    encoder << m_controlledImageHandle;
+    ShareableBitmap::Handle handle;
+    if (m_controlledImage)
+        m_controlledImage->createHandle(handle, SharedMemory::ReadOnly);
+    encoder << handle;
 #endif
 }
 
@@ -119,8 +98,12 @@
 #endif
 
 #if ENABLE(SERVICE_CONTROLS)
-    if (!decoder.decode(contextMenuContextData.m_controlledImageHandle))
+    ShareableBitmap::Handle handle;
+    if (!decoder.decode(handle))
         return false;
+
+    if (!handle.isNull())
+        contextMenuContextData.m_controlledImage = ShareableBitmap::create(handle, SharedMemory::ReadOnly);
 #endif
 
     return true;
@@ -132,7 +115,7 @@
     if (!m_controlledSelectionData.isEmpty())
         return m_selectionIsEditable;
 
-    if (!m_controlledImageHandle.isNull())
+    if (m_controlledImage)
         return m_webHitTestResultData.isContentEditable;
 
     return false;

Modified: trunk/Source/WebKit2/Shared/ContextMenuContextData.h (177707 => 177708)


--- trunk/Source/WebKit2/Shared/ContextMenuContextData.h	2014-12-24 00:46:18 UTC (rev 177707)
+++ trunk/Source/WebKit2/Shared/ContextMenuContextData.h	2014-12-24 01:00:20 UTC (rev 177708)
@@ -50,9 +50,6 @@
     ContextMenuContextData();
     ContextMenuContextData(TelephoneNumberContextTag);
     ContextMenuContextData(const WebCore::ContextMenuContext&);
-
-    ContextMenuContextData(const ContextMenuContextData&);
-    ContextMenuContextData& operator=(const ContextMenuContextData&);
     
     const WebHitTestResult::Data& webHitTestResultData() const { return m_webHitTestResultData; }
 
@@ -62,14 +59,15 @@
         , m_controlledSelectionData(selectionData)
         , m_selectedTelephoneNumbers(selectedTelephoneNumbers)
         , m_selectionIsEditable(isEditable)
-    { }
+    {
+    }
 
-    const ShareableBitmap::Handle& controlledImageHandle() const { return m_controlledImageHandle; }
+    ShareableBitmap* controlledImage() const { return m_controlledImage.get(); }
     const Vector<uint8_t>& controlledSelectionData() const { return m_controlledSelectionData; }
     const Vector<String>& selectedTelephoneNumbers() const { return m_selectedTelephoneNumbers; }
 
     bool controlledDataIsEditable() const;
-    bool needsServicesMenu() const { return !m_controlledImageHandle.isNull() || !m_controlledSelectionData.isEmpty(); }
+    bool needsServicesMenu() const { return m_controlledImage || !m_controlledSelectionData.isEmpty(); }
 #endif
 
 #if ENABLE(TELEPHONE_NUMBER_DETECTION)
@@ -80,12 +78,11 @@
     static bool decode(IPC::ArgumentDecoder&, ContextMenuContextData&);
 
 private:
-
     WebHitTestResult::Data m_webHitTestResultData;
     bool m_isTelephoneNumberContext;
 
 #if ENABLE(SERVICE_CONTROLS)
-    ShareableBitmap::Handle m_controlledImageHandle;
+    RefPtr<ShareableBitmap> m_controlledImage;
     Vector<uint8_t> m_controlledSelectionData;
     Vector<String> m_selectedTelephoneNumbers;
     bool m_selectionIsEditable;

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (177707 => 177708)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2014-12-24 00:46:18 UTC (rev 177707)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2014-12-24 01:00:20 UTC (rev 177708)
@@ -3913,7 +3913,7 @@
     bool useProposedItems = true;
     bool askClientToChangeMenu = clientEligibility == ContextMenuClientEligibility::EligibleForClient;
 #if ENABLE(SERVICE_CONTROLS)
-    if (!contextMenuContextData.controlledImageHandle().isNull())
+    if (contextMenuContextData.controlledImage())
         askClientToChangeMenu = false;
 #endif
 

Modified: trunk/Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm (177707 => 177708)


--- trunk/Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm	2014-12-24 00:46:18 UTC (rev 177707)
+++ trunk/Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm	2014-12-24 01:00:20 UTC (rev 177708)
@@ -354,10 +354,10 @@
 void WebContextMenuProxyMac::setupServicesMenu(const ContextMenuContextData& context)
 {
     bool includeEditorServices = context.controlledDataIsEditable();
-    bool hasControlledImage = !context.controlledImageHandle().isNull();
+    bool hasControlledImage = context.controlledImage();
     NSArray *items = nil;
     if (hasControlledImage) {
-        RefPtr<ShareableBitmap> image = ShareableBitmap::create(context.controlledImageHandle());
+        RefPtr<ShareableBitmap> image = context.controlledImage();
         if (!image)
             return;
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to