Changeset 55227 in webkit


Ignore:
Timestamp:
Feb 25, 2010 3:24:53 AM (14 years ago)
Author:
eric@webkit.org
Message:

2010-02-25 Andrey Kosyakov <caseq@chromium.org>

Reviewed by Pavel Feldman.

Fake workers implementation that simulates workers using iframe and timer,
needed to support workers debugging. Also, a facility to inject scripts into
inspected page upon load.
https://bugs.webkit.org/show_bug.cgi?id=35148

  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • inspector/InspectorBackend.cpp: (WebCore::InspectorBackend::addScriptToEvaluateOnLoad): (WebCore::InspectorBackend::removeAllScriptsToEvaluateOnLoad):
  • inspector/InspectorBackend.h:
  • inspector/InspectorBackend.idl:
  • inspector/InspectorController.cpp: (WebCore::InspectorController::didCommitLoad): (WebCore::InspectorController::addScriptToEvaluateOnLoad): (WebCore::InspectorController::removeAllScriptsToEvaluateOnLoad):
  • inspector/InspectorController.h:
  • inspector/front-end/InjectedFakeWorker.js: Added. (InjectedFakeWorker.Worker): (InjectedFakeWorker.FakeWorker): (InjectedFakeWorker.FakeWorker.prototype.postMessage): (InjectedFakeWorker.FakeWorker.prototype.terminate): (InjectedFakeWorker.FakeWorker.prototype._onmessageWrapper): (InjectedFakeWorker.FakeWorker.prototype._dispatchMessage): (InjectedFakeWorker.FakeWorker.prototype._handleException): (InjectedFakeWorker.FakeWorker.prototype._buildWorker): (InjectedFakeWorker.FakeWorker.prototype._setupWorkerContext.handler): (InjectedFakeWorker.FakeWorker.prototype._setupWorkerContext): (InjectedFakeWorker.FakeWorker.prototype._importScripts): (InjectedFakeWorker.FakeWorker.prototype._loadScript): (InjectedFakeWorker.URL): (InjectedFakeWorker.URL.prototype.urlRegEx.split): (InjectedFakeWorker.URL.prototype.mockLocation): (InjectedFakeWorker.URL.prototype.completeWith): (InjectedFakeWorker.URL.prototype.sameOrigin): (InjectedFakeWorker.DOMCoreException.formatError): (InjectedFakeWorker.DOMCoreException): (InjectedFakeWorker.noop):
  • inspector/front-end/InspectorBackendStub.js: (.WebInspector.InspectorBackendStub.prototype.setInjectedScriptSource): (.WebInspector.InspectorBackendStub.prototype.addScriptToEvaluateOnLoad): (.WebInspector.InspectorBackendStub.prototype.removeAllScriptsToEvaluateOnLoad):
  • inspector/front-end/WebKit.qrc:
  • inspector/front-end/inspector.html:
Location:
trunk/WebCore
Files:
1 added
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r55225 r55227  
     12010-02-25  Andrey Kosyakov  <caseq@chromium.org>
     2
     3        Reviewed by Pavel Feldman.
     4
     5        Fake workers implementation that simulates workers using iframe and timer,
     6        needed to support workers debugging. Also, a facility to inject scripts into
     7        inspected page upon load.
     8        https://bugs.webkit.org/show_bug.cgi?id=35148
     9
     10        * WebCore.gypi:
     11        * WebCore.vcproj/WebCore.vcproj:
     12        * inspector/InspectorBackend.cpp:
     13        (WebCore::InspectorBackend::addScriptToEvaluateOnLoad):
     14        (WebCore::InspectorBackend::removeAllScriptsToEvaluateOnLoad):
     15        * inspector/InspectorBackend.h:
     16        * inspector/InspectorBackend.idl:
     17        * inspector/InspectorController.cpp:
     18        (WebCore::InspectorController::didCommitLoad):
     19        (WebCore::InspectorController::addScriptToEvaluateOnLoad):
     20        (WebCore::InspectorController::removeAllScriptsToEvaluateOnLoad):
     21        * inspector/InspectorController.h:
     22        * inspector/front-end/InjectedFakeWorker.js: Added.
     23        (InjectedFakeWorker.Worker):
     24        (InjectedFakeWorker.FakeWorker):
     25        (InjectedFakeWorker.FakeWorker.prototype.postMessage):
     26        (InjectedFakeWorker.FakeWorker.prototype.terminate):
     27        (InjectedFakeWorker.FakeWorker.prototype._onmessageWrapper):
     28        (InjectedFakeWorker.FakeWorker.prototype._dispatchMessage):
     29        (InjectedFakeWorker.FakeWorker.prototype._handleException):
     30        (InjectedFakeWorker.FakeWorker.prototype._buildWorker):
     31        (InjectedFakeWorker.FakeWorker.prototype._setupWorkerContext.handler):
     32        (InjectedFakeWorker.FakeWorker.prototype._setupWorkerContext):
     33        (InjectedFakeWorker.FakeWorker.prototype._importScripts):
     34        (InjectedFakeWorker.FakeWorker.prototype._loadScript):
     35        (InjectedFakeWorker.URL):
     36        (InjectedFakeWorker.URL.prototype.urlRegEx.split):
     37        (InjectedFakeWorker.URL.prototype.mockLocation):
     38        (InjectedFakeWorker.URL.prototype.completeWith):
     39        (InjectedFakeWorker.URL.prototype.sameOrigin):
     40        (InjectedFakeWorker.DOMCoreException.formatError):
     41        (InjectedFakeWorker.DOMCoreException):
     42        (InjectedFakeWorker.noop):
     43        * inspector/front-end/InspectorBackendStub.js:
     44        (.WebInspector.InspectorBackendStub.prototype.setInjectedScriptSource):
     45        (.WebInspector.InspectorBackendStub.prototype.addScriptToEvaluateOnLoad):
     46        (.WebInspector.InspectorBackendStub.prototype.removeAllScriptsToEvaluateOnLoad):
     47        * inspector/front-end/WebKit.qrc:
     48        * inspector/front-end/inspector.html:
     49
    1502010-02-24  Nicholas Young  <nicholas.young@nokia.com>
    251
  • trunk/WebCore/WebCore.gypi

    r55215 r55227  
    37473747            'inspector/front-end/InspectorBackendStub.js',
    37483748            'inspector/front-end/InspectorFrontendHostStub.js',
     3749            'inspector/front-end/InjectedFakeWorker.js',
    37493750            'inspector/front-end/InjectedScript.js',
    37503751            'inspector/front-end/InjectedScriptAccess.js',
  • trunk/WebCore/WebCore.vcproj/WebCore.vcproj

    r55215 r55227  
    4285742857                                </File>
    4285842858                                <File
     42859                                        RelativePath="..\inspector\front-end\InjectedFakeWorker.js"
     42860                                        >
     42861                                </File>
     42862                                <File
    4285942863                                        RelativePath="..\inspector\front-end\InjectedScript.js"
    4286042864                                        >
  • trunk/WebCore/inspector/InspectorBackend.cpp

    r55077 r55227  
    470470}
    471471
     472void InspectorBackend::addScriptToEvaluateOnLoad(const String& source)
     473{
     474    if (m_inspectorController)
     475        m_inspectorController->addScriptToEvaluateOnLoad(source);
     476}
     477
     478void InspectorBackend::removeAllScriptsToEvaluateOnLoad()
     479{
     480    if (m_inspectorController)
     481        m_inspectorController->removeAllScriptsToEvaluateOnLoad();
     482}
     483
    472484} // namespace WebCore
    473485
  • trunk/WebCore/inspector/InspectorBackend.h

    r55077 r55227  
    106106    void setInjectedScriptSource(const String& source);
    107107    void dispatchOnInjectedScript(long callId, long injectedScriptId, const String& methodName, const String& arguments, bool async);
     108    void addScriptToEvaluateOnLoad(const String& source);
     109    void removeAllScriptsToEvaluateOnLoad();
    108110    void getChildNodes(long callId, long nodeId);
    109111    void setAttribute(long callId, long elementId, const String& name, const String& value);
  • trunk/WebCore/inspector/InspectorBackend.idl

    r55077 r55227  
    8181        void dispatchOnInjectedScript(in long callId, in long injectedScriptId, in DOMString methodName, in DOMString arguments, in boolean async);
    8282
     83        void addScriptToEvaluateOnLoad(in DOMString scriptSource);
     84        void removeAllScriptsToEvaluateOnLoad();
     85
    8386        void getChildNodes(in long callId, in long nodeId);
    8487        void setAttribute(in long callId, in long elementId, in DOMString name, in DOMString value);
  • trunk/WebCore/inspector/InspectorController.cpp

    r55207 r55227  
    7777#include "ScriptProfile.h"
    7878#include "ScriptProfiler.h"
     79#include "ScriptSourceCode.h"
    7980#include "ScriptString.h"
    8081#include "SecurityOrigin.h"
     
    803804        if (ResourcesMap* resourceMap = m_frameResources.get(frame))
    804805            pruneResources(resourceMap, loader);
     806
     807    for (Vector<String>::iterator it = m_scriptsToEvaluateOnLoad.begin();
     808         it != m_scriptsToEvaluateOnLoad.end(); ++it) {
     809        ScriptSourceCode scriptSourceCode(*it);
     810        loader->frame()->script()->evaluate(scriptSourceCode);
     811    }
    805812}
    806813
     
    19011908}
    19021909
     1910void InspectorController::addScriptToEvaluateOnLoad(const String& source)
     1911{
     1912    m_scriptsToEvaluateOnLoad.append(source);
     1913}
     1914
     1915void InspectorController::removeAllScriptsToEvaluateOnLoad()
     1916{
     1917    m_scriptsToEvaluateOnLoad.clear();
     1918}
     1919
    19031920} // namespace WebCore
    19041921   
  • trunk/WebCore/inspector/InspectorController.h

    r55107 r55227  
    251251
    252252    InjectedScript injectedScriptForNodeId(long id);
     253    void addScriptToEvaluateOnLoad(const String& source);
     254    void removeAllScriptsToEvaluateOnLoad();
    253255
    254256private:
     
    350352
    351353    Vector<pair<long, String> > m_pendingEvaluateTestCommands;
     354    Vector<String> m_scriptsToEvaluateOnLoad;
    352355#if ENABLE(JAVASCRIPT_DEBUGGER)
    353356    bool m_debuggerEnabled;
  • trunk/WebCore/inspector/front-end/InspectorBackendStub.js

    r55077 r55227  
    265265    setInjectedScriptSource: function()
    266266    {
     267    },
     268   
     269    addScriptToEvaluateOnLoad: function()
     270    {
     271    },
     272
     273    removeAllScriptsToEvaluateOnLoad: function()
     274    {
    267275    }
    268276}
  • trunk/WebCore/inspector/front-end/WebKit.qrc

    r55187 r55227  
    3333    <file>FontView.js</file>
    3434    <file>ImageView.js</file>
     35    <file>InjectedFakeWorker.js</file>
    3536    <file>InjectedScript.js</file>
    3637    <file>InjectedScriptAccess.js</file>
  • trunk/WebCore/inspector/front-end/inspector.html

    r54962 r55227  
    8686    <script type="text/javascript" src="ElementsPanel.js"></script>
    8787    <script type="text/javascript" src="ResourcesPanel.js"></script>
     88    <script type="text/javascript" src="InjectedFakeWorker.js"></script>
    8889    <script type="text/javascript" src="ScriptsPanel.js"></script>
    8990    <script type="text/javascript" src="StoragePanel.js"></script>
Note: See TracChangeset for help on using the changeset viewer.