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