Diff
Modified: trunk/Source/WebKit2/ChangeLog (176419 => 176420)
--- trunk/Source/WebKit2/ChangeLog 2014-11-20 22:33:07 UTC (rev 176419)
+++ trunk/Source/WebKit2/ChangeLog 2014-11-20 22:56:22 UTC (rev 176420)
@@ -1,3 +1,20 @@
+2014-11-20 Anders Carlsson <[email protected]>
+
+ WebPlugInClient::m_webPage can never be null, use a reference
+ https://bugs.webkit.org/show_bug.cgi?id=138937
+
+ Reviewed by Andreas Kling.
+
+ * WebProcess/WebCoreSupport/WebPlugInClient.cpp:
+ (WebKit::WebPlugInClient::WebPlugInClient):
+ (WebKit::WebPlugInClient::shouldAutoStartFromOrigin):
+ * WebProcess/WebCoreSupport/WebPlugInClient.h:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::WebPage):
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::shouldPlugInAutoStartFromOrigin):
+ * WebProcess/WebProcess.h:
+
2014-11-20 Tim Horton <[email protected]>
TextIndicator should have getters for TextIndicator::Data properties
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlugInClient.cpp (176419 => 176420)
--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlugInClient.cpp 2014-11-20 22:33:07 UTC (rev 176419)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlugInClient.cpp 2014-11-20 22:56:22 UTC (rev 176420)
@@ -33,8 +33,9 @@
namespace WebKit {
-WebPlugInClient::WebPlugInClient(WebPage* page)
- : m_page(page)
+WebPlugInClient::WebPlugInClient(WebPage& webPage)
+ : m_webPage(webPage)
+
{
}
@@ -49,7 +50,7 @@
bool WebPlugInClient::shouldAutoStartFromOrigin(const String& pageOrigin, const String& pluginOrigin, const String& mimeType)
{
- return WebProcess::shared().shouldPlugInAutoStartFromOrigin(m_page, pageOrigin, pluginOrigin, mimeType);
+ return WebProcess::shared().shouldPlugInAutoStartFromOrigin(m_webPage, pageOrigin, pluginOrigin, mimeType);
}
void WebPlugInClient::didStartFromOrigin(const String& pageOrigin, const String& pluginOrigin, const String& mimeType, WebCore::SessionID sessionID)
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlugInClient.h (176419 => 176420)
--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlugInClient.h 2014-11-20 22:33:07 UTC (rev 176419)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlugInClient.h 2014-11-20 22:56:22 UTC (rev 176420)
@@ -35,14 +35,15 @@
class WebPlugInClient : public WebCore::PlugInClient {
public:
- WebPlugInClient(WebPage*);
+ explicit WebPlugInClient(WebPage&);
virtual ~WebPlugInClient();
+
private:
virtual void pageDestroyed();
virtual bool shouldAutoStartFromOrigin(const String& pageOrigin, const String& pluginOrigin, const String& mimeType);
virtual void didStartFromOrigin(const String& pageOrigin, const String& pluginOrigin, const String& mimeType, WebCore::SessionID);
- WebPage* m_page;
+ WebPage& m_webPage;
};
} // namespace WebKit
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (176419 => 176420)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2014-11-20 22:33:07 UTC (rev 176419)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2014-11-20 22:56:22 UTC (rev 176420)
@@ -356,7 +356,7 @@
#if USE(AUTOCORRECTION_PANEL)
pageClients.alternativeTextClient = new WebAlternativeTextClient(this);
#endif
- pageClients.plugInClient = new WebPlugInClient(this);
+ pageClients.plugInClient = new WebPlugInClient(*this);
pageClients.loaderClientForMainFrame = new WebFrameLoaderClient;
pageClients.progressTrackerClient = new WebProgressTrackerClient(*this);
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.cpp (176419 => 176420)
--- trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2014-11-20 22:33:07 UTC (rev 176419)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2014-11-20 22:56:22 UTC (rev 176420)
@@ -765,21 +765,21 @@
return currentTime() < it->value;
}
-bool WebProcess::shouldPlugInAutoStartFromOrigin(const WebPage* page, const String& pageOrigin, const String& pluginOrigin, const String& mimeType)
+bool WebProcess::shouldPlugInAutoStartFromOrigin(WebPage& webPage, const String& pageOrigin, const String& pluginOrigin, const String& mimeType)
{
if (!pluginOrigin.isEmpty() && m_plugInAutoStartOrigins.contains(pluginOrigin))
return true;
#ifdef ENABLE_PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC
// The plugin wasn't in the general whitelist, so check if it similar to the primary plugin for the page (if we've found one).
- if (page && page->matchesPrimaryPlugIn(pageOrigin, pluginOrigin, mimeType))
+ if (webPage.matchesPrimaryPlugIn(pageOrigin, pluginOrigin, mimeType))
return true;
#else
UNUSED_PARAM(page);
#endif
// Lastly check against the more explicit hash list.
- return isPlugInAutoStartOriginHash(hashForPlugInOrigin(pageOrigin, pluginOrigin, mimeType), page->sessionID());
+ return isPlugInAutoStartOriginHash(hashForPlugInOrigin(pageOrigin, pluginOrigin, mimeType), webPage.sessionID());
}
void WebProcess::plugInDidStartFromOrigin(const String& pageOrigin, const String& pluginOrigin, const String& mimeType, SessionID sessionID)
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.h (176419 => 176420)
--- trunk/Source/WebKit2/WebProcess/WebProcess.h 2014-11-20 22:33:07 UTC (rev 176419)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.h 2014-11-20 22:56:22 UTC (rev 176420)
@@ -122,7 +122,7 @@
bool needsQuickLookResourceCachingQuirks() const { return m_needsQuickLookResourceCachingQuirks; }
#endif
- bool shouldPlugInAutoStartFromOrigin(const WebPage*, const String& pageOrigin, const String& pluginOrigin, const String& mimeType);
+ bool shouldPlugInAutoStartFromOrigin(WebPage&, const String& pageOrigin, const String& pluginOrigin, const String& mimeType);
void plugInDidStartFromOrigin(const String& pageOrigin, const String& pluginOrigin, const String& mimeType, WebCore::SessionID);
void plugInDidReceiveUserInteraction(const String& pageOrigin, const String& pluginOrigin, const String& mimeType, WebCore::SessionID);