Diff
Modified: trunk/Source/WebCore/ChangeLog (154742 => 154743)
--- trunk/Source/WebCore/ChangeLog 2013-08-28 14:10:47 UTC (rev 154742)
+++ trunk/Source/WebCore/ChangeLog 2013-08-28 14:11:49 UTC (rev 154743)
@@ -1,3 +1,13 @@
+2013-08-28 Andreas Kling <[email protected]>
+
+ Page::pluginData() should return a reference.
+ <https://webkit.org/b/120386>
+
+ Reviewed by Darin Adler.
+
+ The PluginData is lazily constructed by pluginData(); it never returns null.
+ A small number of null checks were harmed in the making of this patch.
+
2013-08-28 Andrei Parvu <[email protected]>
<https://webkit.org/b/120002> [CSS Masking] Add -webkit-mask-source-type shorthand property
Modified: trunk/Source/WebCore/dom/DOMImplementation.cpp (154742 => 154743)
--- trunk/Source/WebCore/dom/DOMImplementation.cpp 2013-08-28 14:10:47 UTC (rev 154742)
+++ trunk/Source/WebCore/dom/DOMImplementation.cpp 2013-08-28 14:11:49 UTC (rev 154743)
@@ -354,7 +354,7 @@
if (frame->loader().subframeLoader()->allowPlugins(NotAboutToInstantiatePlugin))
allowedPluginTypes = PluginData::AllPlugins;
- pluginData = frame->page()->pluginData();
+ pluginData = &frame->page()->pluginData();
}
// PDF is one image type for which a plugin can override built-in support.
Modified: trunk/Source/WebCore/loader/SubframeLoader.cpp (154742 => 154743)
--- trunk/Source/WebCore/loader/SubframeLoader.cpp 2013-08-28 14:10:47 UTC (rev 154742)
+++ trunk/Source/WebCore/loader/SubframeLoader.cpp 2013-08-28 14:11:49 UTC (rev 154743)
@@ -167,12 +167,10 @@
String extension = url.substring(dotIndex + 1);
- PluginData* pluginData = page->pluginData();
- if (!pluginData)
- return String();
+ const PluginData& pluginData = page->pluginData();
- for (size_t i = 0; i < pluginData->mimes().size(); ++i) {
- const MimeClassInfo& mimeClassInfo = pluginData->mimes()[i];
+ for (size_t i = 0; i < pluginData.mimes().size(); ++i) {
+ const MimeClassInfo& mimeClassInfo = pluginData.mimes()[i];
for (size_t j = 0; j < mimeClassInfo.extensions.size(); ++j) {
if (equalIgnoringCase(extension, mimeClassInfo.extensions[j]))
return mimeClassInfo.type;
@@ -195,8 +193,7 @@
return;
}
- PluginData* pluginData = page->pluginData();
- String pluginFile = pluginData ? pluginData->pluginFileForMimeType(newMIMEType) : String();
+ String pluginFile = page->pluginData().pluginFileForMimeType(newMIMEType);
String description = !pluginFile ? newMIMEType : pluginFile;
ChromeClient& chromeClient = page->chrome().client();
@@ -416,8 +413,7 @@
// Allow other plug-ins to win over QuickTime because if the user has installed a plug-in that
// can handle TIFF (which QuickTime can also handle) they probably intended to override QT.
if (m_frame->page() && (mimeType == "image/tiff" || mimeType == "image/tif" || mimeType == "image/x-tiff")) {
- const PluginData* pluginData = m_frame->page()->pluginData();
- String pluginName = pluginData ? pluginData->pluginNameForMimeType(mimeType) : String();
+ String pluginName = m_frame->page()->pluginData().pluginNameForMimeType(mimeType);
if (!pluginName.isEmpty() && !pluginName.contains("QuickTime", false))
return true;
}
Modified: trunk/Source/WebCore/page/Page.cpp (154742 => 154743)
--- trunk/Source/WebCore/page/Page.cpp 2013-08-28 14:10:47 UTC (rev 154742)
+++ trunk/Source/WebCore/page/Page.cpp 2013-08-28 14:11:49 UTC (rev 154743)
@@ -516,11 +516,11 @@
framesNeedingReload[i]->loader().reload();
}
-PluginData* Page::pluginData() const
+PluginData& Page::pluginData() const
{
if (!m_pluginData)
m_pluginData = PluginData::create(this);
- return m_pluginData.get();
+ return *m_pluginData;
}
inline MediaCanStartListener* Page::takeAnyMediaCanStartListener()
Modified: trunk/Source/WebCore/page/Page.h (154742 => 154743)
--- trunk/Source/WebCore/page/Page.h 2013-08-28 14:10:47 UTC (rev 154742)
+++ trunk/Source/WebCore/page/Page.h 2013-08-28 14:11:49 UTC (rev 154743)
@@ -152,7 +152,7 @@
ViewportArguments viewportArguments() const;
static void refreshPlugins(bool reload);
- PluginData* pluginData() const;
+ PluginData& pluginData() const;
void setCanStartMedia(bool);
bool canStartMedia() const { return m_canStartMedia; }
Modified: trunk/Source/WebCore/plugins/DOMMimeTypeArray.cpp (154742 => 154743)
--- trunk/Source/WebCore/plugins/DOMMimeTypeArray.cpp 2013-08-28 14:10:47 UTC (rev 154742)
+++ trunk/Source/WebCore/plugins/DOMMimeTypeArray.cpp 2013-08-28 14:11:49 UTC (rev 154743)
@@ -86,10 +86,10 @@
{
if (!m_frame)
return 0;
- Page* p = m_frame->page();
- if (!p)
+ Page* page = m_frame->page();
+ if (!page)
return 0;
- return p->pluginData();
+ return &page->pluginData();
}
} // namespace WebCore
Modified: trunk/Source/WebCore/plugins/DOMPluginArray.cpp (154742 => 154743)
--- trunk/Source/WebCore/plugins/DOMPluginArray.cpp 2013-08-28 14:10:47 UTC (rev 154742)
+++ trunk/Source/WebCore/plugins/DOMPluginArray.cpp 2013-08-28 14:11:49 UTC (rev 154743)
@@ -94,7 +94,7 @@
Page* page = m_frame->page();
if (!page)
return 0;
- return page->pluginData();
+ return &page->pluginData();
}
} // namespace WebCore
Modified: trunk/Source/WebKit/mac/WebView/WebFrame.mm (154742 => 154743)
--- trunk/Source/WebKit/mac/WebView/WebFrame.mm 2013-08-28 14:10:47 UTC (rev 154742)
+++ trunk/Source/WebKit/mac/WebView/WebFrame.mm 2013-08-28 14:11:49 UTC (rev 154743)
@@ -803,7 +803,7 @@
{
Frame* frame = _private->coreFrame;
String mimeType = frame->document()->loader()->writer()->mimeType();
- PluginData* pluginData = frame->page() ? frame->page()->pluginData() : 0;
+ PluginData* pluginData = frame->page() ? &frame->page()->pluginData() : 0;
if (WebCore::DOMImplementation::isTextMIMEType(mimeType)
|| Image::supportsType(mimeType)
Modified: trunk/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp (154742 => 154743)
--- trunk/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp 2013-08-28 14:10:47 UTC (rev 154742)
+++ trunk/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp 2013-08-28 14:11:49 UTC (rev 154743)
@@ -1358,10 +1358,10 @@
ObjectContentType plugInType = ObjectContentNone;
if (arePluginsEnabled && PluginDatabase::installedPlugins()->isMIMETypeRegistered(mimeType))
plugInType = ObjectContentNetscapePlugin;
- else if (m_frame->page() && m_frame->page()->pluginData()) {
+ else if (m_frame->page()) {
bool allowPlugins = m_frame->loader().subframeLoader()->allowPlugins(NotAboutToInstantiatePlugin);
- if ((m_frame->page()->pluginData()->supportsMimeType(mimeType, PluginData::AllPlugins) && allowPlugins)
- || m_frame->page()->pluginData()->supportsMimeType(mimeType, PluginData::OnlyApplicationPlugins))
+ if ((m_frame->page()->pluginData().supportsMimeType(mimeType, PluginData::AllPlugins) && allowPlugins)
+ || m_frame->page()->pluginData().supportsMimeType(mimeType, PluginData::OnlyApplicationPlugins))
plugInType = ObjectContentOtherPlugin;
}
Modified: trunk/Source/WebKit/win/WebView.cpp (154742 => 154743)
--- trunk/Source/WebKit/win/WebView.cpp 2013-08-28 14:10:47 UTC (rev 154742)
+++ trunk/Source/WebKit/win/WebView.cpp 2013-08-28 14:11:49 UTC (rev 154743)
@@ -2545,9 +2545,9 @@
*canShow = MIMETypeRegistry::isSupportedImageMIMEType(mimeTypeStr)
|| MIMETypeRegistry::isSupportedNonImageMIMEType(mimeTypeStr);
- if (!*canShow && m_page && m_page->pluginData()) {
- *canShow = (m_page->pluginData()->supportsMimeType(mimeTypeStr, PluginData::AllPlugins) && allowPlugins)
- || m_page->pluginData()->supportsMimeType(mimeTypeStr, PluginData::OnlyApplicationPlugins);
+ if (!*canShow && m_page) {
+ *canShow = (m_page->pluginData().supportsMimeType(mimeTypeStr, PluginData::AllPlugins) && allowPlugins)
+ || m_page->pluginData().supportsMimeType(mimeTypeStr, PluginData::OnlyApplicationPlugins);
}
if (!*canShow)
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (154742 => 154743)
--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp 2013-08-28 14:10:47 UTC (rev 154742)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp 2013-08-28 14:11:49 UTC (rev 154743)
@@ -1376,12 +1376,12 @@
}
#endif
-static bool pluginSupportsExtension(PluginData* pluginData, const String& extension)
+static bool pluginSupportsExtension(const PluginData& pluginData, const String& extension)
{
ASSERT(extension.lower() == extension);
- for (size_t i = 0; i < pluginData->mimes().size(); ++i) {
- const MimeClassInfo& mimeClassInfo = pluginData->mimes()[i];
+ for (size_t i = 0; i < pluginData.mimes().size(); ++i) {
+ const MimeClassInfo& mimeClassInfo = pluginData.mimes()[i];
if (mimeClassInfo.extensions.contains(extension))
return true;
@@ -1404,10 +1404,8 @@
if (mimeType.isEmpty()) {
// Check if there's a plug-in around that can handle the extension.
if (WebPage* webPage = m_frame->page()) {
- if (PluginData* pluginData = webPage->corePage()->pluginData()) {
- if (pluginSupportsExtension(pluginData, extension))
- return ObjectContentNetscapePlugin;
- }
+ if (pluginSupportsExtension(webPage->corePage()->pluginData(), extension))
+ return ObjectContentNetscapePlugin;
}
}
}
@@ -1417,12 +1415,11 @@
bool plugInSupportsMIMEType = false;
if (WebPage* webPage = m_frame->page()) {
- if (PluginData* pluginData = webPage->corePage()->pluginData()) {
- if (pluginData->supportsMimeType(mimeType, PluginData::AllPlugins) && webFrame()->coreFrame()->loader().subframeLoader()->allowPlugins(NotAboutToInstantiatePlugin))
- plugInSupportsMIMEType = true;
- else if (pluginData->supportsMimeType(mimeType, PluginData::OnlyApplicationPlugins))
- plugInSupportsMIMEType = true;
- }
+ const PluginData& pluginData = webPage->corePage()->pluginData();
+ if (pluginData.supportsMimeType(mimeType, PluginData::AllPlugins) && webFrame()->coreFrame()->loader().subframeLoader()->allowPlugins(NotAboutToInstantiatePlugin))
+ plugInSupportsMIMEType = true;
+ else if (pluginData.supportsMimeType(mimeType, PluginData::OnlyApplicationPlugins))
+ plugInSupportsMIMEType = true;
}
if (MIMETypeRegistry::isSupportedImageMIMEType(mimeType))
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (154742 => 154743)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2013-08-28 14:10:47 UTC (rev 154742)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2013-08-28 14:11:49 UTC (rev 154743)
@@ -3939,14 +3939,13 @@
if (MIMETypeRegistry::canShowMIMEType(MIMEType))
return true;
- if (PluginData* pluginData = m_page->pluginData()) {
- if (pluginData->supportsMimeType(MIMEType, PluginData::AllPlugins) && corePage()->mainFrame().loader().subframeLoader()->allowPlugins(NotAboutToInstantiatePlugin))
- return true;
+ const PluginData& pluginData = m_page->pluginData();
+ if (pluginData.supportsMimeType(MIMEType, PluginData::AllPlugins) && corePage()->mainFrame().loader().subframeLoader()->allowPlugins(NotAboutToInstantiatePlugin))
+ return true;
- // We can use application plugins even if plugins aren't enabled.
- if (pluginData->supportsMimeType(MIMEType, PluginData::OnlyApplicationPlugins))
- return true;
- }
+ // We can use application plugins even if plugins aren't enabled.
+ if (pluginData.supportsMimeType(MIMEType, PluginData::OnlyApplicationPlugins))
+ return true;
return false;
}