Reviewed by Pavel Feldman.
This is a WebCore part of the fix that allows to view plugin
resources loaded by plugins.
https://bugs.webkit.org/show_bug.cgi?id=31832
* inspector/InspectorController.cpp:
(WebCore::InspectorController::willSendRequest):
(WebCore::InspectorController::didReceiveResponse):
(WebCore::InspectorController::didReceiveContentLength):
(WebCore::InspectorController::didFinishLoading):
(WebCore::InspectorController::didFailLoading):
* inspector/InspectorController.h:
* inspector/InspectorResource.cpp:
(WebCore::InspectorResource::addLength):
* loader/ResourceLoadNotifier.cpp:
(WebCore::ResourceLoadNotifier::didFailToLoad):
(WebCore::ResourceLoadNotifier::dispatchWillSendRequest):
(WebCore::ResourceLoadNotifier::dispatchDidReceiveResponse):
(WebCore::ResourceLoadNotifier::dispatchDidReceiveContentLength):
(WebCore::ResourceLoadNotifier::dispatchDidFinishLoading):
2009-11-27 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
WebCore part of the fix that allows to view plugin
resources loaded by plugins. Methods that for resource
loading notifications are exposed through WebDevToolsAgent
interface to the glue code to allow Chromium's plugin
implementation to notify InspectorController about resource
loading in plugins.
https://bugs.webkit.org/show_bug.cgi?id=31832
* public/WebDevToolsAgent.h:
* public/WebView.h:
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::createUniqueIdentifierForRequest):
* src/WebViewImpl.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@51440
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2009-11-27 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ This is a WebCore part of the fix that allows to view plugin
+ resources loaded by plugins.
+
+ https://bugs.webkit.org/show_bug.cgi?id=31832
+
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::willSendRequest):
+ (WebCore::InspectorController::didReceiveResponse):
+ (WebCore::InspectorController::didReceiveContentLength):
+ (WebCore::InspectorController::didFinishLoading):
+ (WebCore::InspectorController::didFailLoading):
+ * inspector/InspectorController.h:
+ * inspector/InspectorResource.cpp:
+ (WebCore::InspectorResource::addLength):
+ * loader/ResourceLoadNotifier.cpp:
+ (WebCore::ResourceLoadNotifier::didFailToLoad):
+ (WebCore::ResourceLoadNotifier::dispatchWillSendRequest):
+ (WebCore::ResourceLoadNotifier::dispatchDidReceiveResponse):
+ (WebCore::ResourceLoadNotifier::dispatchDidReceiveContentLength):
+ (WebCore::ResourceLoadNotifier::dispatchDidFinishLoading):
+
2009-11-27 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
return loader->frame() == m_inspectedPage->mainFrame() && requestUrl == loader->requestURL();
}
-void InspectorController::willSendRequest(DocumentLoader* loader, unsigned long identifier, ResourceRequest& request, const ResourceResponse& redirectResponse)
+void InspectorController::willSendRequest(unsigned long identifier, const ResourceRequest& request, const ResourceResponse& redirectResponse)
{
+ bool isMainResource = (m_mainResource && m_mainResource->identifier() == identifier);
if (m_timelineAgent)
- m_timelineAgent->willSendResourceRequest(identifier, isMainResourceLoader(loader, request.url()), request);
+ m_timelineAgent->willSendResourceRequest(identifier, isMainResource, request);
RefPtr<InspectorResource> resource = getTrackedResource(identifier);
if (!resource)
resource->createScriptObject(m_frontend.get());
}
-void InspectorController::didReceiveResponse(DocumentLoader*, unsigned long identifier, const ResourceResponse& response)
+void InspectorController::didReceiveResponse(unsigned long identifier, const ResourceResponse& response)
{
if (m_timelineAgent)
m_timelineAgent->didReceiveResourceResponse(identifier, response);
resource->updateScriptObject(m_frontend.get());
}
-void InspectorController::didReceiveContentLength(DocumentLoader*, unsigned long identifier, int lengthReceived)
+void InspectorController::didReceiveContentLength(unsigned long identifier, int lengthReceived)
{
RefPtr<InspectorResource> resource = getTrackedResource(identifier);
if (!resource)
resource->updateScriptObject(m_frontend.get());
}
-void InspectorController::didFinishLoading(DocumentLoader*, unsigned long identifier)
+void InspectorController::didFinishLoading(unsigned long identifier)
{
if (m_timelineAgent)
m_timelineAgent->didFinishLoadingResource(identifier, false);
resource->updateScriptObject(m_frontend.get());
}
-void InspectorController::didFailLoading(DocumentLoader*, unsigned long identifier, const ResourceError& /*error*/)
+void InspectorController::didFailLoading(unsigned long identifier, const ResourceError& /*error*/)
{
if (m_timelineAgent)
m_timelineAgent->didFinishLoadingResource(identifier, true);
void didLoadResourceFromMemoryCache(DocumentLoader*, const CachedResource*);
void identifierForInitialRequest(unsigned long identifier, DocumentLoader*, const ResourceRequest&);
- void willSendRequest(DocumentLoader*, unsigned long identifier, ResourceRequest&, const ResourceResponse& redirectResponse);
- void didReceiveResponse(DocumentLoader*, unsigned long identifier, const ResourceResponse&);
- void didReceiveContentLength(DocumentLoader*, unsigned long identifier, int lengthReceived);
- void didFinishLoading(DocumentLoader*, unsigned long identifier);
- void didFailLoading(DocumentLoader*, unsigned long identifier, const ResourceError&);
+ void willSendRequest(unsigned long identifier, const ResourceRequest&, const ResourceResponse& redirectResponse);
+ void didReceiveResponse(unsigned long identifier, const ResourceResponse&);
+ void didReceiveContentLength(unsigned long identifier, int lengthReceived);
+ void didFinishLoading(unsigned long identifier);
+ void didFailLoading(unsigned long identifier, const ResourceError&);
void resourceRetrievedByXMLHttpRequest(unsigned long identifier, const ScriptString& sourceString);
void scriptImported(unsigned long identifier, const String& sourceString);
{
m_length += lengthReceived;
m_changes.set(LengthChange);
+
+ // Update load time, otherwise the resource will
+ // have start time == end time and 0 load duration
+ // until its loading is completed.
+ m_endTime = currentTime();
+ m_changes.set(TimingChange);
}
} // namespace WebCore
if (!error.isNull())
m_frame->loader()->client()->dispatchDidFailLoading(loader->documentLoader(), loader->identifier(), error);
+
+#if ENABLE(INSPECTOR)
+ if (Page* page = m_frame->page())
+ page->inspectorController()->didFailLoading(loader->identifier(), error);
+#endif
}
void ResourceLoadNotifier::didLoadResourceByXMLHttpRequest(unsigned long identifier, const ScriptString& sourceString)
#if ENABLE(INSPECTOR)
if (Page* page = m_frame->page())
- page->inspectorController()->willSendRequest(loader, identifier, request, redirectResponse);
+ page->inspectorController()->willSendRequest(identifier, request, redirectResponse);
#endif
}
#if ENABLE(INSPECTOR)
if (Page* page = m_frame->page())
- page->inspectorController()->didReceiveResponse(loader, identifier, r);
+ page->inspectorController()->didReceiveResponse(identifier, r);
#endif
}
#if ENABLE(INSPECTOR)
if (Page* page = m_frame->page())
- page->inspectorController()->didReceiveContentLength(loader, identifier, length);
+ page->inspectorController()->didReceiveContentLength(identifier, length);
#endif
}
#if ENABLE(INSPECTOR)
if (Page* page = m_frame->page())
- page->inspectorController()->didFinishLoading(loader, identifier);
+ page->inspectorController()->didFinishLoading(identifier);
#endif
}
+2009-11-27 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ WebCore part of the fix that allows to view plugin
+ resources loaded by plugins. Methods that for resource
+ loading notifications are exposed through WebDevToolsAgent
+ interface to the glue code to allow Chromium's plugin
+ implementation to notify InspectorController about resource
+ loading in plugins.
+
+ https://bugs.webkit.org/show_bug.cgi?id=31832
+
+ * public/WebDevToolsAgent.h:
+ * public/WebView.h:
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::createUniqueIdentifierForRequest):
+ * src/WebViewImpl.h:
+
2009-11-26 Yury Semikhatsky <yurys@chromium.org>
Not reviewed. Build fix: revert r51421.
namespace WebKit {
class WebDevToolsAgentClient;
+class WebFrame;
class WebString;
+class WebURLRequest;
+class WebURLResponse;
class WebView;
struct WebPoint;
+struct WebURLError;
class WebDevToolsAgent {
public:
// Installs dispatch handle that is going to be called periodically
// while on a breakpoint.
WEBKIT_API static void setMessageLoopDispatchHandler(MessageLoopDispatchHandler);
+
+ virtual void identifierForInitialRequest(unsigned long resourceId, WebFrame*, const WebURLRequest&) = 0;
+ virtual void willSendRequest(unsigned long resourceId, const WebURLRequest&) = 0;
+ virtual void didReceiveData(unsigned long resourceId, int length) = 0;
+ virtual void didReceiveResponse(unsigned long resourceId, const WebURLResponse&) = 0;
+ virtual void didFinishLoading(unsigned long resourceId) = 0;
+ virtual void didFailLoading(unsigned long resourceId, const WebURLError&) = 0;
};
} // namespace WebKit
virtual bool setDropEffect(bool accept) = 0;
+ // Support for resource loading initiated by plugins -------------------
+
+ // Returns next unused request identifier which is unique within the
+ // parent Page.
+ virtual unsigned long createUniqueIdentifierForRequest() = 0;
+
+
// Developer tools -----------------------------------------------------
// Inspect a particular point in the WebView. (x = -1 || y = -1) is a
#include "PluginInfoStore.h"
#include "PopupMenuChromium.h"
#include "PopupMenuClient.h"
+#include "ProgressTracker.h"
#include "RenderView.h"
#include "ResourceHandle.h"
#include "SecurityOrigin.h"
return 0;
}
+unsigned long WebViewImpl::createUniqueIdentifierForRequest() {
+ if (m_page)
+ return m_page->progress()->createUniqueIdentifier();
+ return 0;
+}
+
void WebViewImpl::inspectElementAt(const WebPoint& point)
{
if (!m_page.get())
const WebPoint& screenPoint);
virtual int dragIdentity();
virtual bool setDropEffect(bool accept);
+ virtual unsigned long createUniqueIdentifierForRequest();
virtual void inspectElementAt(const WebPoint& point);
virtual WebString inspectorSettings() const;
virtual void setInspectorSettings(const WebString& settings);