Skip to content
Permalink
Browse files
2011-05-13 Anders Carlsson <andersca@apple.com>
        Reviewed by Sam Weinig.

        NPN_GetURL with a javascript: URL doesn't send back the result in the stream
        https://bugs.webkit.org/show_bug.cgi?id=60810

        In NetscapePluginStream::sendJavaScriptStream, we were incorrectly passing the result URL
        to the stream, instead of the result. Also, store the request URL in the NetscapePluginStream object
        to avoid sending it over the wire.

        * PluginProcess/PluginControllerProxy.cpp:
        (WebKit::PluginControllerProxy::didEvaluateJavaScript):
        * PluginProcess/PluginControllerProxy.h:
        * PluginProcess/PluginControllerProxy.messages.in:
        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
        (WebKit::NetscapePlugin::loadURL):
        (WebKit::NetscapePlugin::didEvaluateJavaScript):
        (WebKit::NetscapePlugin::manualStreamDidReceiveResponse):
        * WebProcess/Plugins/Netscape/NetscapePlugin.h:
        * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
        (WebKit::NetscapePluginStream::NetscapePluginStream):
        (WebKit::NetscapePluginStream::sendJavaScriptStream):
        * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
        (WebKit::NetscapePluginStream::create):
        * WebProcess/Plugins/Plugin.h:
        * WebProcess/Plugins/PluginProxy.cpp:
        (WebKit::PluginProxy::didEvaluateJavaScript):
        * WebProcess/Plugins/PluginProxy.h:
        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::performJavaScriptURLRequest):
2011-05-13  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig.

        NPN_GetURL with a javascript: URL doesn't send back the result in the stream
        https://bugs.webkit.org/show_bug.cgi?id=60810

        Add a test that calls NPN_GetURL on a javascript: URL and checks that it gets back the expected result.

        * plugins/get-url-with-javascript-url-expected.txt: Added.
        * plugins/get-url-with-javascript-url.html: Added.
2011-05-13  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig.

        NPN_GetURL with a javascript: URL doesn't send back the result in the stream
        https://bugs.webkit.org/show_bug.cgi?id=60810

        Add a test that calls NPN_GetURL on a javascript: URL and checks that it gets back the expected result.

        * DumpRenderTree/DumpRenderTree.gypi:
        * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
        * DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePlugin.vcproj:
        * DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro:
        * GNUmakefile.am:
        Add files.

        * DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp:
        * DumpRenderTree/TestNetscapePlugIn/PluginTest.h:
        Add new NPN and NPP wrappers and sort them according to the order they appear in npfunctions.h

        * DumpRenderTree/TestNetscapePlugIn/Tests/GetURLWithJavaScriptURL.cpp: Added.
        (GetURLWithJavaScriptURL::GetURLWithJavaScriptURL):
        (GetURLWithJavaScriptURL::NPP_New):
        (GetURLWithJavaScriptURL::NPP_NewStream):
        (GetURLWithJavaScriptURL::NPP_DestroyStream):
        (GetURLWithJavaScriptURL::NPP_WriteReady):
        (GetURLWithJavaScriptURL::NPP_Write):
        * DumpRenderTree/TestNetscapePlugIn/main.cpp:
        (NPP_NewStream):
        (NPP_WriteReady):
        (NPP_Write):
        (NPP_URLNotify):
        call the PluginTest NPP wrappers.


Canonical link: https://commits.webkit.org/76122@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@86467 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  • Loading branch information
Anders Carlsson committed May 13, 2011
1 parent 49e1d40 commit e891dbfb58aee04c766718348a2c9e9febaa7d50
Showing 25 changed files with 308 additions and 44 deletions.
@@ -1,3 +1,15 @@
2011-05-13 Anders Carlsson <andersca@apple.com>

Reviewed by Sam Weinig.

NPN_GetURL with a javascript: URL doesn't send back the result in the stream
https://bugs.webkit.org/show_bug.cgi?id=60810

Add a test that calls NPN_GetURL on a javascript: URL and checks that it gets back the expected result.

* plugins/get-url-with-javascript-url-expected.txt: Added.
* plugins/get-url-with-javascript-url.html: Added.

2011-05-13 Mark Pilgrim <pilgrim@chromium.org>

Reviewed by Tony Chang.
@@ -0,0 +1,4 @@

Test that evaluating a javascript: URL will send a stream with the result of the evaluation.

SUCCESS
@@ -0,0 +1,16 @@
<script>
function testSucceeded() {
document.getElementById('console').innerText = 'SUCCESS';
if (window.layoutTestController)
layoutTestController.notifyDone();
}

if (window.layoutTestController) {
layoutTestController.dumpAsText();
layoutTestController.waitUntilDone();
}
</script>
<body>
<embed id="plugin" type="application/x-webkit-test-netscape" test="get-url-with-javascript-url" width=100 height=100></embed>
<p id="description">Test that evaluating a javascript: URL will send a stream with the result of the evaluation.</p>
<div id="console">FAILURE</div>
@@ -1,3 +1,35 @@
2011-05-13 Anders Carlsson <andersca@apple.com>

Reviewed by Sam Weinig.

NPN_GetURL with a javascript: URL doesn't send back the result in the stream
https://bugs.webkit.org/show_bug.cgi?id=60810

In NetscapePluginStream::sendJavaScriptStream, we were incorrectly passing the result URL
to the stream, instead of the result. Also, store the request URL in the NetscapePluginStream object
to avoid sending it over the wire.

* PluginProcess/PluginControllerProxy.cpp:
(WebKit::PluginControllerProxy::didEvaluateJavaScript):
* PluginProcess/PluginControllerProxy.h:
* PluginProcess/PluginControllerProxy.messages.in:
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::loadURL):
(WebKit::NetscapePlugin::didEvaluateJavaScript):
(WebKit::NetscapePlugin::manualStreamDidReceiveResponse):
* WebProcess/Plugins/Netscape/NetscapePlugin.h:
* WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
(WebKit::NetscapePluginStream::NetscapePluginStream):
(WebKit::NetscapePluginStream::sendJavaScriptStream):
* WebProcess/Plugins/Netscape/NetscapePluginStream.h:
(WebKit::NetscapePluginStream::create):
* WebProcess/Plugins/Plugin.h:
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::didEvaluateJavaScript):
* WebProcess/Plugins/PluginProxy.h:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::performJavaScriptURLRequest):

2011-05-13 Jeff Miller <jeffm@apple.com>

Reviewed by Darin Adler.
@@ -402,9 +402,9 @@ void PluginControllerProxy::geometryDidChange(const IntRect& frameRect, const In
m_plugin->geometryDidChange(frameRect, clipRect);
}

void PluginControllerProxy::didEvaluateJavaScript(uint64_t requestID, const String& requestURLString, const String& result)
void PluginControllerProxy::didEvaluateJavaScript(uint64_t requestID, const String& result)
{
m_plugin->didEvaluateJavaScript(requestID, requestURLString, result);
m_plugin->didEvaluateJavaScript(requestID, result);
}

void PluginControllerProxy::streamDidReceiveResponse(uint64_t streamID, const String& responseURLString, uint32_t streamLength, uint32_t lastModifiedTime, const String& mimeType, const String& headers)
@@ -110,7 +110,7 @@ class PluginControllerProxy : PluginController {
void frameDidFinishLoading(uint64_t requestID);
void frameDidFail(uint64_t requestID, bool wasCancelled);
void geometryDidChange(const WebCore::IntRect& frameRect, const WebCore::IntRect& clipRect, const ShareableBitmap::Handle& backingStoreHandle);
void didEvaluateJavaScript(uint64_t requestID, const String& requestURLString, const String& result);
void didEvaluateJavaScript(uint64_t requestID, const String& result);
void streamDidReceiveResponse(uint64_t streamID, const String& responseURLString, uint32_t streamLength, uint32_t lastModifiedTime, const String& mimeType, const String& headers);
void streamDidReceiveData(uint64_t streamID, const CoreIPC::DataReference& data);
void streamDidFinishLoading(uint64_t streamID);
@@ -33,7 +33,7 @@ messages -> PluginControllerProxy {
FrameDidFail(uint64_t requestID, bool wasCancelled)

# Sent when JavaScript that the plug-in asked to be evaluated has been evaluated.
DidEvaluateJavaScript(uint64_t requestID, WTF::String requestURLString, WTF::String result)
DidEvaluateJavaScript(uint64_t requestID, WTF::String result)

# Sent when the plug-in receives a response for a stream.
StreamDidReceiveResponse(uint64_t streamID, WTF::String responseURLString, uint32_t streamLength, uint32_t lastModifiedTime, WTF::String mimeType, WTF::String headers)
@@ -168,7 +168,7 @@ void NetscapePlugin::loadURL(const String& method, const String& urlString, cons

if (target.isNull()) {
// The browser is going to send the data in a stream, create a plug-in stream.
RefPtr<NetscapePluginStream> pluginStream = NetscapePluginStream::create(this, requestID, sendNotification, notificationData);
RefPtr<NetscapePluginStream> pluginStream = NetscapePluginStream::create(this, requestID, urlString, sendNotification, notificationData);
ASSERT(!m_streams.contains(requestID));

m_streams.set(requestID, pluginStream.release());
@@ -611,12 +611,12 @@ void NetscapePlugin::frameDidFail(uint64_t requestID, bool wasCancelled)
NPP_URLNotify(url.utf8().data(), wasCancelled ? NPRES_USER_BREAK : NPRES_NETWORK_ERR, notificationData);
}

void NetscapePlugin::didEvaluateJavaScript(uint64_t requestID, const String& requestURLString, const String& result)
void NetscapePlugin::didEvaluateJavaScript(uint64_t requestID, const String& result)
{
ASSERT(m_isStarted);

if (NetscapePluginStream* pluginStream = streamFromID(requestID))
pluginStream->sendJavaScriptStream(requestURLString, result);
pluginStream->sendJavaScriptStream(result);
}

void NetscapePlugin::streamDidReceiveResponse(uint64_t streamID, const KURL& responseURL, uint32_t streamLength,
@@ -659,7 +659,7 @@ void NetscapePlugin::manualStreamDidReceiveResponse(const KURL& responseURL, uin
ASSERT(m_loadManually);
ASSERT(!m_manualStream);

m_manualStream = NetscapePluginStream::create(this, 0, false, 0);
m_manualStream = NetscapePluginStream::create(this, 0, responseURL.string(), false, 0);
m_manualStream->didReceiveResponse(responseURL, streamLength, lastModifiedTime, mimeType, headers);
}

@@ -154,7 +154,7 @@ class NetscapePlugin : public Plugin {
virtual void visibilityDidChange();
virtual void frameDidFinishLoading(uint64_t requestID);
virtual void frameDidFail(uint64_t requestID, bool wasCancelled);
virtual void didEvaluateJavaScript(uint64_t requestID, const String& requestURLString, const String& result);
virtual void didEvaluateJavaScript(uint64_t requestID, const String& result);
virtual void streamDidReceiveResponse(uint64_t streamID, const WebCore::KURL& responseURL, uint32_t streamLength,
uint32_t lastModifiedTime, const String& mimeType, const String& headers);
virtual void streamDidReceiveData(uint64_t streamID, const char* bytes, int length);
@@ -34,9 +34,10 @@ using namespace std;

namespace WebKit {

NetscapePluginStream::NetscapePluginStream(PassRefPtr<NetscapePlugin> plugin, uint64_t streamID, bool sendNotification, void* notificationData)
NetscapePluginStream::NetscapePluginStream(PassRefPtr<NetscapePlugin> plugin, uint64_t streamID, const String& requestURLString, bool sendNotification, void* notificationData)
: m_plugin(plugin)
, m_streamID(streamID)
, m_requestURLString(requestURLString)
, m_sendNotification(sendNotification)
, m_notificationData(notificationData)
, m_npStream()
@@ -91,20 +92,20 @@ void NetscapePluginStream::didFail(bool wasCancelled)
stop(wasCancelled ? NPRES_USER_BREAK : NPRES_NETWORK_ERR);
}

void NetscapePluginStream::sendJavaScriptStream(const String& requestURLString, const String& result)
void NetscapePluginStream::sendJavaScriptStream(const String& result)
{
// starting the stream or delivering the data to it might cause the plug-in stream to go away, so we keep
// a reference to it here.
RefPtr<NetscapePluginStream> protect(this);

CString resultCString = requestURLString.utf8();
CString resultCString = result.utf8();
if (resultCString.isNull()) {
// There was an error evaluating the JavaScript, call NPP_URLNotify if needed and then destroy the stream.
notifyAndDestroyStream(NPRES_NETWORK_ERR);
return;
}

if (!start(requestURLString, resultCString.length(), 0, "text/plain", ""))
if (!start(m_requestURLString, resultCString.length(), 0, "text/plain", ""))
return;

deliverData(resultCString.data(), resultCString.length());
@@ -45,9 +45,9 @@ class NetscapePlugin;

class NetscapePluginStream : public RefCounted<NetscapePluginStream> {
public:
static PassRefPtr<NetscapePluginStream> create(PassRefPtr<NetscapePlugin> plugin, uint64_t streamID, bool sendNotification, void* notificationData)
static PassRefPtr<NetscapePluginStream> create(PassRefPtr<NetscapePlugin> plugin, uint64_t streamID, const String& requestURLString, bool sendNotification, void* notificationData)
{
return adoptRef(new NetscapePluginStream(plugin, streamID, sendNotification, notificationData));
return adoptRef(new NetscapePluginStream(plugin, streamID, requestURLString, sendNotification, notificationData));
}
~NetscapePluginStream();

@@ -60,13 +60,13 @@ class NetscapePluginStream : public RefCounted<NetscapePluginStream> {
void didFinishLoading();
void didFail(bool wasCancelled);

void sendJavaScriptStream(const String& requestURLString, const String& result);
void sendJavaScriptStream(const String& result);

void stop(NPReason);
NPError destroy(NPReason);

private:
NetscapePluginStream(PassRefPtr<NetscapePlugin>, uint64_t streamID, bool sendNotification, void* notificationData);
NetscapePluginStream(PassRefPtr<NetscapePlugin>, uint64_t streamID, const String& requestURLString, bool sendNotification, void* notificationData);

bool start(const String& responseURLString, uint32_t streamLength,
uint32_t lastModifiedTime, const String& mimeType, const String& headers);
@@ -80,7 +80,8 @@ class NetscapePluginStream : public RefCounted<NetscapePluginStream> {

RefPtr<NetscapePlugin> m_plugin;
uint64_t m_streamID;


String m_requestURLString;
bool m_sendNotification;
void* m_notificationData;

@@ -102,7 +102,7 @@ class Plugin : public RefCounted<Plugin> {

// Tells the plug-in that a request to evaluate JavaScript (using PluginController::loadURL) has been fulfilled and passes
// back the result. If evaluating the script failed, result will be null.
virtual void didEvaluateJavaScript(uint64_t requestID, const String& requestURLString, const String& result) = 0;
virtual void didEvaluateJavaScript(uint64_t requestID, const String& result) = 0;

// Tells the plug-in that a stream has received its HTTP response.
virtual void streamDidReceiveResponse(uint64_t streamID, const WebCore::KURL& responseURL, uint32_t streamLength,
@@ -233,9 +233,9 @@ void PluginProxy::frameDidFail(uint64_t requestID, bool wasCancelled)
m_connection->connection()->send(Messages::PluginControllerProxy::FrameDidFail(requestID, wasCancelled), m_pluginInstanceID);
}

void PluginProxy::didEvaluateJavaScript(uint64_t requestID, const WTF::String& requestURLString, const WTF::String& result)
void PluginProxy::didEvaluateJavaScript(uint64_t requestID, const WTF::String& result)
{
m_connection->connection()->send(Messages::PluginControllerProxy::DidEvaluateJavaScript(requestID, requestURLString, result), m_pluginInstanceID);
m_connection->connection()->send(Messages::PluginControllerProxy::DidEvaluateJavaScript(requestID, result), m_pluginInstanceID);
}

void PluginProxy::streamDidReceiveResponse(uint64_t streamID, const KURL& responseURL, uint32_t streamLength, uint32_t lastModifiedTime, const WTF::String& mimeType, const WTF::String& headers)
@@ -75,7 +75,7 @@ class PluginProxy : public Plugin {
virtual void visibilityDidChange();
virtual void frameDidFinishLoading(uint64_t requestID);
virtual void frameDidFail(uint64_t requestID, bool wasCancelled);
virtual void didEvaluateJavaScript(uint64_t requestID, const WTF::String& requestURLString, const WTF::String& result);
virtual void didEvaluateJavaScript(uint64_t requestID, const String& result);
virtual void streamDidReceiveResponse(uint64_t streamID, const WebCore::KURL& responseURL, uint32_t streamLength, uint32_t lastModifiedTime, const WTF::String& mimeType, const WTF::String& headers);
virtual void streamDidReceiveData(uint64_t streamID, const char* bytes, int length);
virtual void streamDidFinishLoading(uint64_t streamID);
@@ -793,7 +793,7 @@ void PluginView::performJavaScriptURLRequest(URLRequest* request)
result.getString(scriptState, resultString);

// Send the result back to the plug-in.
plugin->didEvaluateJavaScript(request->requestID(), decodeURLEscapeSequences(request->request().url()), resultString);
plugin->didEvaluateJavaScript(request->requestID(), resultString);
}

void PluginView::addStream(Stream* stream)
@@ -1,3 +1,37 @@
2011-05-13 Anders Carlsson <andersca@apple.com>

Reviewed by Sam Weinig.

NPN_GetURL with a javascript: URL doesn't send back the result in the stream
https://bugs.webkit.org/show_bug.cgi?id=60810

Add a test that calls NPN_GetURL on a javascript: URL and checks that it gets back the expected result.

* DumpRenderTree/DumpRenderTree.gypi:
* DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
* DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePlugin.vcproj:
* DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro:
* GNUmakefile.am:
Add files.

* DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp:
* DumpRenderTree/TestNetscapePlugIn/PluginTest.h:
Add new NPN and NPP wrappers and sort them according to the order they appear in npfunctions.h

* DumpRenderTree/TestNetscapePlugIn/Tests/GetURLWithJavaScriptURL.cpp: Added.
(GetURLWithJavaScriptURL::GetURLWithJavaScriptURL):
(GetURLWithJavaScriptURL::NPP_New):
(GetURLWithJavaScriptURL::NPP_NewStream):
(GetURLWithJavaScriptURL::NPP_DestroyStream):
(GetURLWithJavaScriptURL::NPP_WriteReady):
(GetURLWithJavaScriptURL::NPP_Write):
* DumpRenderTree/TestNetscapePlugIn/main.cpp:
(NPP_NewStream):
(NPP_WriteReady):
(NPP_Write):
(NPP_URLNotify):
call the PluginTest NPP wrappers.

2011-05-13 Sheriff Bot <webkit.review.bot@gmail.com>

Unreviewed, rolling out r86447.
@@ -52,6 +52,7 @@
'TestNetscapePlugIn/TestObject.h',
'TestNetscapePlugIn/Tests/DocumentOpenInDestroyStream.cpp',
'TestNetscapePlugIn/Tests/EvaluateJSAfterRemovingPluginElement.cpp',
'TestNetscapePlugIn/Tests/GetURLWithJavaScriptURL.cpp',
'TestNetscapePlugIn/Tests/GetURLWithJavaScriptURLDestroyingPlugin.cpp',
'TestNetscapePlugIn/Tests/GetUserAgentWithNullNPPFromNPPNew.cpp',
'TestNetscapePlugIn/Tests/NPRuntimeObjectFromDestroyedPlugin.cpp',
@@ -38,6 +38,7 @@
1A24BAA9120734EE00FBB059 /* NPRuntimeObjectFromDestroyedPlugin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A24BAA8120734EE00FBB059 /* NPRuntimeObjectFromDestroyedPlugin.cpp */; };
1A31EB3813466AC100017372 /* ConvertPoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A31EB3713466AC100017372 /* ConvertPoint.cpp */; };
1A3E28AA1311D73B00501349 /* GetURLWithJavaScriptURLDestroyingPlugin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A3E28A91311D73B00501349 /* GetURLWithJavaScriptURLDestroyingPlugin.cpp */; };
1A5CC1F5137DD2EC00A5D7E7 /* GetURLWithJavaScriptURL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A5CC1F3137DD2EC00A5D7E7 /* GetURLWithJavaScriptURL.cpp */; };
1A8F02E80BB9B4EC008CFA34 /* TestObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A8F024C0BB9B056008CFA34 /* TestObject.h */; };
1AC6C8490D07638600CD3161 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AC6C77F0D07589B00CD3161 /* main.cpp */; };
1AC6C84A0D07638600CD3161 /* PluginObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AC6C7800D07589B00CD3161 /* PluginObject.cpp */; };
@@ -215,6 +216,7 @@
1A24BAA8120734EE00FBB059 /* NPRuntimeObjectFromDestroyedPlugin.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NPRuntimeObjectFromDestroyedPlugin.cpp; sourceTree = "<group>"; };
1A31EB3713466AC100017372 /* ConvertPoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ConvertPoint.cpp; sourceTree = "<group>"; };
1A3E28A91311D73B00501349 /* GetURLWithJavaScriptURLDestroyingPlugin.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GetURLWithJavaScriptURLDestroyingPlugin.cpp; sourceTree = "<group>"; };
1A5CC1F3137DD2EC00A5D7E7 /* GetURLWithJavaScriptURL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GetURLWithJavaScriptURL.cpp; sourceTree = "<group>"; };
1A8F024C0BB9B056008CFA34 /* TestObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestObject.h; sourceTree = "<group>"; };
1AC6C77F0D07589B00CD3161 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = "<group>"; };
1AC6C7800D07589B00CD3161 /* PluginObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PluginObject.cpp; sourceTree = "<group>"; };
@@ -487,6 +489,7 @@
1A31EB3613466AC100017372 /* mac */,
1A215A7511F26072008AD0F5 /* DocumentOpenInDestroyStream.cpp */,
C0E720741281C828004EF533 /* EvaluateJSAfterRemovingPluginElement.cpp */,
1A5CC1F3137DD2EC00A5D7E7 /* GetURLWithJavaScriptURL.cpp */,
1A3E28A91311D73B00501349 /* GetURLWithJavaScriptURLDestroyingPlugin.cpp */,
1AD4CB2012A6D1350027A7AF /* GetUserAgentWithNullNPPFromNPPNew.cpp */,
1ACF898B132EF41C00E915D4 /* NPDeallocateCalledBeforeNPShutdown.cpp */,
@@ -799,6 +802,7 @@
1ACF898D132EF41C00E915D4 /* NPDeallocateCalledBeforeNPShutdown.cpp in Sources */,
1A31EB3813466AC100017372 /* ConvertPoint.cpp in Sources */,
C031182B134E4A2B00919757 /* NPPSetWindowCalledDuringDestruction.cpp in Sources */,
1A5CC1F5137DD2EC00A5D7E7 /* GetURLWithJavaScriptURL.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};

0 comments on commit e891dbf

Please sign in to comment.