Changeset 146208 in webkit


Ignore:
Timestamp:
Mar 19, 2013 8:54:14 AM (11 years ago)
Author:
commit-queue@webkit.org
Message:

Web Inspector: split Console into two entities, a web-facing bound object and page console.
https://bugs.webkit.org/show_bug.cgi?id=111578

Patch by Sergey Ryazanov <serya@chromium.org> on 2013-03-19
Reviewed by Vsevolod Vlasov.

Otherwise, a lot of logging in WebCore needs to go through the DOMWindow which is unnecessary.

Source/WebCore:

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.exp.in:
  • WebCore.gypi:
  • WebCore.order:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSCustomXPathNSResolver.cpp:

(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):

  • bindings/v8/custom/V8CustomXPathNSResolver.cpp:

(WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):

  • dom/Document.cpp:

(WebCore::Document::addConsoleMessage):
(WebCore::Document::addMessage):

  • inspector/PageDebuggerAgent.cpp:

(WebCore::PageDebuggerAgent::muteConsole):
(WebCore::PageDebuggerAgent::unmuteConsole):

  • inspector/PageRuntimeAgent.cpp:

(WebCore::PageRuntimeAgent::muteConsole):
(WebCore::PageRuntimeAgent::unmuteConsole):

  • page/Console.cpp:

(WebCore::internalAddMessage):

  • page/Console.h:

(WebCore):
(Console):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::pageConsole):
(WebCore):
(WebCore::DOMWindow::dispatchMessageEventWithOriginCheck):
(WebCore::DOMWindow::printErrorMessage):

  • page/DOMWindow.h:

(WebCore):
(DOMWindow):

  • page/Page.cpp:

(WebCore::Page::Page):

  • page/Page.h:

(WebCore):
(WebCore::Page::console):
(Page):

  • page/PageConsole.cpp: Added.

(WebCore::PageConsole::PageConsole):
(WebCore):
(WebCore::PageConsole::~PageConsole):
(WebCore::PageConsole::printSourceURLAndLine):
(WebCore::PageConsole::printMessageSourceAndLevelPrefix):
(WebCore::PageConsole::addMessage):
(WebCore::PageConsole::mute):
(WebCore::PageConsole::unmute):
(WebCore::PageConsole::shouldPrintExceptions):
(WebCore::PageConsole::setShouldPrintExceptions):

  • page/PageConsole.h: Copied from Source/WebCore/page/Console.h.

(WebCore):
(PageConsole):
(WebCore::PageConsole::create):
(WebCore::PageConsole::page):

  • xml/XSLStyleSheetLibxslt.cpp:

(WebCore::XSLStyleSheet::parseString):

  • xml/XSLTProcessorLibxslt.cpp:

(WebCore::XSLTProcessor::parseErrorFunc):
(WebCore::docLoaderFunc):

Source/WebKit/mac:

  • Misc/WebCoreStatistics.mm:

(+[WebCoreStatistics shouldPrintExceptions]):
(+[WebCoreStatistics setShouldPrintExceptions:]):

Location:
trunk/Source
Files:
2 added
26 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/CMakeLists.txt

    r145787 r146208  
    17891789    page/OriginAccessEntry.cpp
    17901790    page/Page.cpp
     1791    page/PageConsole.cpp
    17911792    page/PageGroup.cpp
    17921793    page/PageGroupLoadDeferrer.cpp
  • trunk/Source/WebCore/ChangeLog

    r146204 r146208  
     12013-03-19  Sergey Ryazanov  <serya@chromium.org>
     2
     3        Web Inspector: split Console into two entities, a web-facing bound object and page console.
     4        https://bugs.webkit.org/show_bug.cgi?id=111578
     5
     6        Reviewed by Vsevolod Vlasov.
     7
     8        Otherwise, a lot of logging in WebCore needs to go through the DOMWindow which is unnecessary.
     9
     10        * CMakeLists.txt:
     11        * GNUmakefile.list.am:
     12        * Target.pri:
     13        * WebCore.exp.in:
     14        * WebCore.gypi:
     15        * WebCore.order:
     16        * WebCore.vcproj/WebCore.vcproj:
     17        * WebCore.vcxproj/WebCore.vcxproj:
     18        * WebCore.vcxproj/WebCore.vcxproj.filters:
     19        * WebCore.xcodeproj/project.pbxproj:
     20        * bindings/js/JSCustomXPathNSResolver.cpp:
     21        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
     22        * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
     23        (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
     24        * dom/Document.cpp:
     25        (WebCore::Document::addConsoleMessage):
     26        (WebCore::Document::addMessage):
     27        * inspector/PageDebuggerAgent.cpp:
     28        (WebCore::PageDebuggerAgent::muteConsole):
     29        (WebCore::PageDebuggerAgent::unmuteConsole):
     30        * inspector/PageRuntimeAgent.cpp:
     31        (WebCore::PageRuntimeAgent::muteConsole):
     32        (WebCore::PageRuntimeAgent::unmuteConsole):
     33        * page/Console.cpp:
     34        (WebCore::internalAddMessage):
     35        * page/Console.h:
     36        (WebCore):
     37        (Console):
     38        * page/DOMWindow.cpp:
     39        (WebCore::DOMWindow::pageConsole):
     40        (WebCore):
     41        (WebCore::DOMWindow::dispatchMessageEventWithOriginCheck):
     42        (WebCore::DOMWindow::printErrorMessage):
     43        * page/DOMWindow.h:
     44        (WebCore):
     45        (DOMWindow):
     46        * page/Page.cpp:
     47        (WebCore::Page::Page):
     48        * page/Page.h:
     49        (WebCore):
     50        (WebCore::Page::console):
     51        (Page):
     52        * page/PageConsole.cpp: Added.
     53        (WebCore::PageConsole::PageConsole):
     54        (WebCore):
     55        (WebCore::PageConsole::~PageConsole):
     56        (WebCore::PageConsole::printSourceURLAndLine):
     57        (WebCore::PageConsole::printMessageSourceAndLevelPrefix):
     58        (WebCore::PageConsole::addMessage):
     59        (WebCore::PageConsole::mute):
     60        (WebCore::PageConsole::unmute):
     61        (WebCore::PageConsole::shouldPrintExceptions):
     62        (WebCore::PageConsole::setShouldPrintExceptions):
     63        * page/PageConsole.h: Copied from Source/WebCore/page/Console.h.
     64        (WebCore):
     65        (PageConsole):
     66        (WebCore::PageConsole::create):
     67        (WebCore::PageConsole::page):
     68        * xml/XSLStyleSheetLibxslt.cpp:
     69        (WebCore::XSLStyleSheet::parseString):
     70        * xml/XSLTProcessorLibxslt.cpp:
     71        (WebCore::XSLTProcessor::parseErrorFunc):
     72        (WebCore::docLoaderFunc):
     73
    1742013-03-19  Ilya Tikhonovsky  <loislo@chromium.org>
    275
  • trunk/Source/WebCore/GNUmakefile.list.am

    r145922 r146208  
    42364236        Source/WebCore/page/Page.cpp \
    42374237        Source/WebCore/page/Page.h \
     4238        Source/WebCore/page/PageConsole.cpp \
     4239        Source/WebCore/page/PageConsole.h \
    42384240        Source/WebCore/page/PageGroup.cpp \
    42394241        Source/WebCore/page/PageGroup.h \
  • trunk/Source/WebCore/Target.pri

    r145922 r146208  
    948948    page/OriginAccessEntry.cpp \
    949949    page/Page.cpp \
     950    page/PageConsole.cpp \
    950951    page/PageGroup.cpp \
    951952    page/PageGroupLoadDeferrer.cpp \
     
    21452146    page/PageGroupLoadDeferrer.h \
    21462147    page/Page.h \
     2148    page/PageConsole.h \
    21472149    page/PageVisibilityState.h \
    21482150    page/PlugInClient.h \
  • trunk/Source/WebCore/WebCore.exp.in

    r146154 r146208  
    937937__ZN7WebCore6WidgetD2Ev
    938938__ZN7WebCore6toNodeEN3JSC7JSValueE
    939 __ZN7WebCore7Console21shouldPrintExceptionsEv
    940 __ZN7WebCore7Console24setShouldPrintExceptionsEb
    941939__ZN7WebCore7Element12setAttributeERKN3WTF12AtomicStringES4_Ri
    942940__ZN7WebCore7Element12setAttributeERKNS_13QualifiedNameERKN3WTF12AtomicStringE
     
    17261724__ZN7WebCore11globalPointERK8_NSPointP8NSWindow
    17271725__ZN7WebCore11toUserSpaceERK7_NSRectP8NSWindow
     1726__ZN7WebCore11PageConsole21shouldPrintExceptionsEv
     1727__ZN7WebCore11PageConsole24setShouldPrintExceptionsEb
    17281728__ZN7WebCore12EventHandler10mouseMovedEP7NSEvent
    17291729__ZN7WebCore12EventHandler10wheelEventEP7NSEvent
  • trunk/Source/WebCore/WebCore.gypi

    r146204 r146208  
    22532253            'page/OriginAccessEntry.h',
    22542254            'page/Page.cpp',
     2255            'page/PageConsole.cpp',
    22552256            'page/PageGroup.cpp',
    22562257            'page/PageGroupLoadDeferrer.cpp',
  • trunk/Source/WebCore/WebCore.order

    r145717 r146208  
    1556015560__ZN7WebCore5TimerINS_14DocumentLoaderEE5firedEv
    1556115561__ZN7WebCore14DocumentLoader36substituteResourceDeliveryTimerFiredEPNS_5TimerIS0_EE
    15562 __ZN7WebCore7Console24setShouldPrintExceptionsEb
    1556315562__ZN7WebCore16jsClipboardTypesEPN3JSC9ExecStateENS0_7JSValueERKNS0_10IdentifierE
    1556415563__ZNK7WebCore11JSClipboard5typesEPN3JSC9ExecStateE
     
    1568015679__ZN7WebCore11FileChooser10chooseFileERKN3WTF6StringE
    1568115680__ZN7WebCore11FileChooser11chooseFilesERKN3WTF6VectorINS1_6StringELm0EEE
     15681__ZN7WebCore11PageConsole24setShouldPrintExceptionsEb
    1568215682__ZThn184_N7WebCore23RenderFileUploadControl18chooseIconForFilesEPNS_11FileChooserERKN3WTF6VectorINS3_6StringELm0EEE
    1568315683__ZN7WebCore6Chrome18chooseIconForFilesERKN3WTF6VectorINS1_6StringELm0EEEPNS_11FileChooserE
  • trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj

    r146204 r146208  
    2759127591                                >
    2759227592                        </File>
     27593                        <File
     27594                                RelativePath="..\page\PageConsole.cpp"
     27595                                >
     27596                        </File>
     27597                        <File
     27598                                RelativePath="..\page\PageConsole.h"
     27599                                >
     27600                        </File>
    2759327601                        <File
    2759427602                                RelativePath="..\page\PageGroup.cpp"
  • trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj

    r146204 r146208  
    39383938    <ClCompile Include="..\page\OriginAccessEntry.cpp" />
    39393939    <ClCompile Include="..\page\Page.cpp" />
     3940    <ClCompile Include="..\page\PageConsole.cpp" />
    39403941    <ClCompile Include="..\page\PageGroup.cpp" />
    39413942    <ClCompile Include="..\page\PageGroupLoadDeferrer.cpp" />
  • trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters

    r146204 r146208  
    66976697      <Filter>page</Filter>
    66986698    </ClCompile>
     6699    <ClCompile Include="..\page\PageConsole.cpp">
     6700      <Filter>page</Filter>
     6701    </ClCompile>
    66996702    <ClCompile Include="..\page\PageGroup.cpp">
    67006703      <Filter>page</Filter>
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r145922 r146208  
    61546154                D7613AC414753E5600DB8606 /* JSWebKitNamedFlow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D7613AC214753E5600DB8606 /* JSWebKitNamedFlow.cpp */; };
    61556155                D8B6152F1032495100C8554A /* Cookie.h in Headers */ = {isa = PBXBuildFile; fileRef = D8B6152E1032495100C8554A /* Cookie.h */; settings = {ATTRIBUTES = (Private, ); }; };
     6156                DAED203016F2442B0070EC0F /* PageConsole.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DAACB3D916F2416400666135 /* PageConsole.cpp */; };
     6157                DAED203116F244480070EC0F /* PageConsole.h in Headers */ = {isa = PBXBuildFile; fileRef = DAACB3DA16F2416400666135 /* PageConsole.h */; settings = {ATTRIBUTES = (Private, ); }; };
    61566158                DB23C2CB0A508D29002489EB /* IndentOutdentCommand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DB23C2C90A508D29002489EB /* IndentOutdentCommand.cpp */; };
    61576159                DB23C2CC0A508D29002489EB /* IndentOutdentCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = DB23C2CA0A508D29002489EB /* IndentOutdentCommand.h */; };
     
    1386313865                D7613AC314753E5600DB8606 /* JSWebKitNamedFlow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSWebKitNamedFlow.h; sourceTree = "<group>"; };
    1386413866                D8B6152E1032495100C8554A /* Cookie.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Cookie.h; sourceTree = "<group>"; };
     13867                DAACB3D916F2416400666135 /* PageConsole.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PageConsole.cpp; sourceTree = "<group>"; };
     13868                DAACB3DA16F2416400666135 /* PageConsole.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PageConsole.h; sourceTree = "<group>"; };
    1386513869                DB23C2C90A508D29002489EB /* IndentOutdentCommand.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = IndentOutdentCommand.cpp; sourceTree = "<group>"; };
    1386613870                DB23C2CA0A508D29002489EB /* IndentOutdentCommand.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = IndentOutdentCommand.h; sourceTree = "<group>"; };
     
    1647916483                                975CA288130365F800E99AD9 /* Crypto.h */,
    1648016484                                975CA289130365F800E99AD9 /* Crypto.idl */,
     16485                                DAACB3D916F2416400666135 /* PageConsole.cpp */,
     16486                                DAACB3DA16F2416400666135 /* PageConsole.h */,
    1648116487                                CCC2B51015F613060048CDD6 /* DeviceClient.h */,
    1648216488                                CCC2B51115F613060048CDD6 /* DeviceController.cpp */,
     
    2676526771                                977E2E0F12F0FC9C00C13380 /* XSSAuditorDelegate.h in Headers */,
    2676626772                                FD537353137B651800008DCE /* ZeroPole.h in Headers */,
     26773                                DAED203116F244480070EC0F /* PageConsole.h in Headers */,
    2676726774                        );
    2676826775                        runOnlyForDeploymentPostprocessing = 0;
     
    2997229979                                977E2E0E12F0FC9C00C13380 /* XSSAuditorDelegate.cpp in Sources */,
    2997329980                                FD537352137B651800008DCE /* ZeroPole.cpp in Sources */,
     29981                                DAED203016F2442B0070EC0F /* PageConsole.cpp in Sources */,
    2997429982                        );
    2997529983                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/Source/WebCore/bindings/js/JSCustomXPathNSResolver.cpp

    r137318 r146208  
    2727#include "JSCustomXPathNSResolver.h"
    2828
    29 #include "Console.h"
    3029#include "Document.h"
    3130#include "ExceptionCode.h"
     
    3332#include "JSDOMWindowCustom.h"
    3433#include "JSMainThreadExecState.h"
     34#include "Page.h"
     35#include "PageConsole.h"
    3536#include "SecurityOrigin.h"
    3637#include <runtime/JSLock.h>
     
    7980        if (callType == CallTypeNone) {
    8081            // FIXME: Pass actual line number and source URL.
    81             m_globalObject->impl()->console()->addMessage(JSMessageSource, ErrorMessageLevel, "XPathNSResolver does not have a lookupNamespaceURI method.");
     82            if (PageConsole* console = m_globalObject->impl()->pageConsole())
     83                console->addMessage(JSMessageSource, ErrorMessageLevel, "XPathNSResolver does not have a lookupNamespaceURI method.");
    8284            return String();
    8385        }
  • trunk/Source/WebCore/bindings/v8/custom/V8CustomXPathNSResolver.cpp

    r141948 r146208  
    3131#include "V8CustomXPathNSResolver.h"
    3232
    33 #include "Console.h"
    3433#include "DOMWindow.h"
     34#include "Frame.h"
     35#include "Page.h"
     36#include "PageConsole.h"
    3537#include "ScriptCallStack.h"
    3638#include "ScriptController.h"
     
    7072
    7173    if (lookupNamespaceURIFunc.IsEmpty() && !m_resolver->IsFunction()) {
    72         activeDOMWindow(BindingState::instance())->console()->addMessage(JSMessageSource, ErrorMessageLevel, "XPathNSResolver does not have a lookupNamespaceURI method.");
     74        Frame* frame = activeDOMWindow(BindingState::instance())->frame();
     75        if (frame && frame->page())
     76            frame->page()->console()->addMessage(JSMessageSource, ErrorMessageLevel, "XPathNSResolver does not have a lookupNamespaceURI method.");
    7377        return String();
    7478    }
  • trunk/Source/WebCore/dom/Document.cpp

    r145932 r146208  
    4343#include "ChromeClient.h"
    4444#include "Comment.h"
    45 #include "Console.h"
    4645#include "ContentSecurityPolicy.h"
    4746#include "ContextFeatures.h"
     
    125124#include "NodeWithIndex.h"
    126125#include "Page.h"
     126#include "PageConsole.h"
    127127#include "PageGroup.h"
    128128#include "PageTransitionEvent.h"
     
    48454845    }
    48464846
    4847     if (DOMWindow* window = domWindow()) {
    4848         if (Console* console = window->console())
    4849             console->addMessage(source, level, message, requestIdentifier, this);
    4850     }
     4847    if (Page* page = this->page())
     4848        page->console()->addMessage(source, level, message, requestIdentifier, this);
    48514849}
    48524850
     
    48584856    }
    48594857
    4860     if (DOMWindow* window = domWindow()) {
    4861         if (Console* console = window->console())
    4862             console->addMessage(source, level, message, sourceURL, lineNumber, callStack, state, requestIdentifier);
    4863     }
     4858    if (Page* page = this->page())
     4859        page->console()->addMessage(source, level, message, sourceURL, lineNumber, callStack, state, requestIdentifier);
    48644860}
    48654861
  • trunk/Source/WebCore/inspector/PageDebuggerAgent.cpp

    r139416 r146208  
    3535#include "PageDebuggerAgent.h"
    3636
    37 #include "Console.h"
    3837#include "InspectorOverlay.h"
    3938#include "InspectorPageAgent.h"
    4039#include "InstrumentingAgents.h"
    4140#include "Page.h"
     41#include "PageConsole.h"
    4242#include "PageScriptDebugServer.h"
    4343
     
    8989void PageDebuggerAgent::muteConsole()
    9090{
    91     Console::mute();
     91    PageConsole::mute();
    9292}
    9393
    9494void PageDebuggerAgent::unmuteConsole()
    9595{
    96     Console::unmute();
     96    PageConsole::unmute();
    9797}
    9898
  • trunk/Source/WebCore/inspector/PageRuntimeAgent.cpp

    r142869 r146208  
    3535#include "PageRuntimeAgent.h"
    3636
    37 #include "Console.h"
    3837#include "Document.h"
    3938#include "InjectedScript.h"
     
    4342#include "InstrumentingAgents.h"
    4443#include "Page.h"
     44#include "PageConsole.h"
    4545#include "SecurityOrigin.h"
    4646
     
    149149void PageRuntimeAgent::muteConsole()
    150150{
    151     Console::mute();
     151    PageConsole::mute();
    152152}
    153153
    154154void PageRuntimeAgent::unmuteConsole()
    155155{
    156     Console::unmute();
     156    PageConsole::unmute();
    157157}
    158158
  • trunk/Source/WebCore/page/Console.cpp

    r144949 r146208  
    4242#include "MemoryInfo.h"
    4343#include "Page.h"
     44#include "PageConsole.h"
    4445#include "PageGroup.h"
    4546#include "ScriptArguments.h"
     
    6263namespace WebCore {
    6364
    64 namespace {
    65     int muteCount = 0;
    66 }
    67 
    6865Console::Console(Frame* frame)
    6966    : DOMWindowProperty(frame)
     
    7370Console::~Console()
    7471{
    75 }
    76 
    77 static void printSourceURLAndLine(const String& sourceURL, unsigned lineNumber)
    78 {
    79     if (!sourceURL.isEmpty()) {
    80         if (lineNumber > 0)
    81             printf("%s:%d: ", sourceURL.utf8().data(), lineNumber);
    82         else
    83             printf("%s: ", sourceURL.utf8().data());
    84     }
    85 }
    86 
    87 static void printMessageSourceAndLevelPrefix(MessageSource source, MessageLevel level)
    88 {
    89     const char* sourceString;
    90     switch (source) {
    91     case XMLMessageSource:
    92         sourceString = "XML";
    93         break;
    94     case JSMessageSource:
    95         sourceString = "JS";
    96         break;
    97     case NetworkMessageSource:
    98         sourceString = "NETWORK";
    99         break;
    100     case ConsoleAPIMessageSource:
    101         sourceString = "CONSOLEAPI";
    102         break;
    103     case StorageMessageSource:
    104         sourceString = "STORAGE";
    105         break;
    106     case AppCacheMessageSource:
    107         sourceString = "APPCACHE";
    108         break;
    109     case RenderingMessageSource:
    110         sourceString = "RENDERING";
    111         break;
    112     case CSSMessageSource:
    113         sourceString = "CSS";
    114         break;
    115     case SecurityMessageSource:
    116         sourceString = "SECURITY";
    117         break;
    118     case OtherMessageSource:
    119         sourceString = "OTHER";
    120         break;
    121     default:
    122         ASSERT_NOT_REACHED();
    123         sourceString = "UNKNOWN";
    124         break;
    125     }
    126 
    127     const char* levelString;
    128     switch (level) {
    129     case DebugMessageLevel:
    130         levelString = "DEBUG";
    131         break;
    132     case LogMessageLevel:
    133         levelString = "LOG";
    134         break;
    135     case WarningMessageLevel:
    136         levelString = "WARN";
    137         break;
    138     case ErrorMessageLevel:
    139         levelString = "ERROR";
    140         break;
    141     default:
    142         ASSERT_NOT_REACHED();
    143         levelString = "UNKNOWN";
    144         break;
    145     }
    146 
    147     printf("%s %s:", sourceString, levelString);
    148 }
    149 
    150 void Console::addMessage(MessageSource source, MessageLevel level, const String& message, unsigned long requestIdentifier, Document* document)
    151 {
    152     String url;
    153     if (document)
    154         url = document->url().string();
    155     unsigned line = 0;
    156     if (document && document->parsing() && !document->isInDocumentWrite() && document->scriptableDocumentParser()) {
    157         ScriptableDocumentParser* parser = document->scriptableDocumentParser();
    158         if (!parser->isWaitingForScripts() && !parser->isExecutingScript())
    159             line = parser->lineNumber().oneBasedInt();
    160     }
    161     addMessage(source, level, message, url, line, 0, 0, requestIdentifier);
    162 }
    163 
    164 void Console::addMessage(MessageSource source, MessageLevel level, const String& message, PassRefPtr<ScriptCallStack> callStack)
    165 {
    166     addMessage(source, level, message, String(), 0, callStack, 0);
    167 }
    168 
    169 void Console::addMessage(MessageSource source, MessageLevel level, const String& message, const String& url, unsigned lineNumber, PassRefPtr<ScriptCallStack> callStack, ScriptState* state, unsigned long requestIdentifier)
    170 {
    171     if (muteCount && source != ConsoleAPIMessageSource)
    172         return;
    173 
    174     Page* page = this->page();
    175     if (!page)
    176         return;
    177 
    178     if (callStack)
    179         InspectorInstrumentation::addMessageToConsole(page, source, LogMessageType, level, message, callStack, requestIdentifier);
    180     else
    181         InspectorInstrumentation::addMessageToConsole(page, source, LogMessageType, level, message, url, lineNumber, state, requestIdentifier);
    182 
    183     if (!m_frame->settings() || m_frame->settings()->privateBrowsingEnabled())
    184         return;
    185 
    186     page->chrome()->client()->addMessageToConsole(source, level, message, lineNumber, url);
    187 
    188     if (!m_frame->settings()->logsPageMessagesToSystemConsoleEnabled() && !shouldPrintExceptions())
    189         return;
    190 
    191     printSourceURLAndLine(url, lineNumber);
    192     printMessageSourceAndLevelPrefix(source, level);
    193 
    194     printf(" %s\n", message.utf8().data());
    19572}
    19673
     
    21390    InspectorInstrumentation::addMessageToConsole(page, ConsoleAPIMessageSource, type, level, message, state, arguments);
    21491
    215     if (!page->settings() || page->settings()->privateBrowsingEnabled())
     92    if (page->settings()->privateBrowsingEnabled())
    21693        return;
    21794
     
    21996        page->chrome()->client()->addMessageToConsole(ConsoleAPIMessageSource, type, level, message, lastCaller.lineNumber(), lastCaller.sourceURL());
    22097
    221     if (!page->settings()->logsPageMessagesToSystemConsoleEnabled() && !Console::shouldPrintExceptions())
    222         return;
    223 
    224     printSourceURLAndLine(lastCaller.sourceURL(), lastCaller.lineNumber());
    225     printMessageSourceAndLevelPrefix(ConsoleAPIMessageSource, level);
     98    if (!page->settings()->logsPageMessagesToSystemConsoleEnabled() && !PageConsole::shouldPrintExceptions())
     99        return;
     100
     101    PageConsole::printSourceURLAndLine(lastCaller.sourceURL(), lastCaller.lineNumber());
     102    PageConsole::printMessageSourceAndLevelPrefix(ConsoleAPIMessageSource, level);
    226103
    227104    for (size_t i = 0; i < arguments->argumentCount(); ++i) {
     
    389266}
    390267
    391 // static
    392 void Console::mute()
    393 {
    394     muteCount++;
    395 }
    396 
    397 // static
    398 void Console::unmute()
    399 {
    400     ASSERT(muteCount > 0);
    401     muteCount--;
    402 }
    403 
    404268PassRefPtr<MemoryInfo> Console::memory() const
    405269{
     
    409273}
    410274
    411 static bool printExceptions = false;
    412 
    413 bool Console::shouldPrintExceptions()
    414 {
    415     return printExceptions;
    416 }
    417 
    418 void Console::setShouldPrintExceptions(bool print)
    419 {
    420     printExceptions = print;
    421 }
    422 
    423275Page* Console::page() const
    424276{
  • trunk/Source/WebCore/page/Console.h

    r143186 r146208  
    3030#define Console_h
    3131
    32 #include "ConsoleAPITypes.h"
    33 #include "ConsoleTypes.h"
    3432#include "DOMWindowProperty.h"
    35 #include "ScriptCallStack.h"
    3633#include "ScriptProfile.h"
    3734#include "ScriptState.h"
     
    4340namespace WebCore {
    4441
    45 class Document;
    4642class Frame;
    4743class MemoryInfo;
    4844class Page;
    4945class ScriptArguments;
    50 class ScriptCallStack;
    5146
    5247#if ENABLE(JAVASCRIPT_DEBUGGER)
     
    5853    static PassRefPtr<Console> create(Frame* frame) { return adoptRef(new Console(frame)); }
    5954    virtual ~Console();
    60 
    61     void addMessage(MessageSource, MessageLevel, const String& message, const String& sourceURL, unsigned lineNumber, PassRefPtr<ScriptCallStack> = 0, ScriptState* = 0, unsigned long requestIdentifier = 0);
    62     void addMessage(MessageSource, MessageLevel, const String& message, PassRefPtr<ScriptCallStack>);
    63     void addMessage(MessageSource, MessageLevel, const String& message, unsigned long requestIdentifier = 0, Document* = 0);
    6455
    6556    void debug(ScriptState*, PassRefPtr<ScriptArguments>);
     
    8879    void groupEnd();
    8980
    90     static void mute();
    91     static void unmute();
    92 
    93     static bool shouldPrintExceptions();
    94     static void setShouldPrintExceptions(bool);
    95 
    9681    PassRefPtr<MemoryInfo> memory() const;
    9782
  • trunk/Source/WebCore/page/DOMWindow.cpp

    r145745 r146208  
    7676#include "Navigator.h"
    7777#include "Page.h"
     78#include "PageConsole.h"
    7879#include "PageGroup.h"
    7980#include "PageTransitionEvent.h"
     
    695696}
    696697
     698PageConsole* DOMWindow::pageConsole() const
     699{
     700    if (!isCurrentlyDisplayedInFrame())
     701        return 0;
     702    return m_frame->page() ? m_frame->page()->console() : 0;
     703}
     704
    697705DOMApplicationCache* DOMWindow::applicationCache() const
    698706{
     
    885893            String message = "Unable to post message to " + intendedTargetOrigin->toString() +
    886894                             ". Recipient has origin " + document()->securityOrigin()->toString() + ".\n";
    887             console()->addMessage(SecurityMessageSource, ErrorMessageLevel, message, stackTrace);
     895            pageConsole()->addMessage(SecurityMessageSource, ErrorMessageLevel, message, stackTrace);
    888896            return;
    889897        }
     
    17991807        return;
    18001808
    1801     console()->addMessage(JSMessageSource, ErrorMessageLevel, message);
     1809    pageConsole()->addMessage(JSMessageSource, ErrorMessageLevel, message);
    18021810}
    18031811
  • trunk/Source/WebCore/page/DOMWindow.h

    r145930 r146208  
    6060    class Node;
    6161    class Page;
     62    class PageConsole;
    6263    class Performance;
    6364    class PostMessageTimer;
     
    234235
    235236        Console* console() const;
     237        PageConsole* pageConsole() const;
    236238
    237239        void printErrorMessage(const String&);
  • trunk/Source/WebCore/page/Page.cpp

    r145913 r146208  
    5555#include "NetworkStateNotifier.h"
    5656#include "PageCache.h"
     57#include "PageConsole.h"
    5758#include "PageGroup.h"
    5859#include "PlugInClient.h"
     
    177178    , m_alternativeTextClient(pageClients.alternativeTextClient)
    178179    , m_scriptedAnimationsSuspended(false)
     180    , m_console(PageConsole::create(this))
    179181{
    180182    ASSERT(m_editorClient);
  • trunk/Source/WebCore/page/Page.h

    r145826 r146208  
    7575class MediaCanStartListener;
    7676class Node;
     77class PageConsole;
    7778class PageGroup;
    7879class PlugInClient;
     
    379380    void resetSeenMediaEngines();
    380381
     382    PageConsole* console() { return m_console.get(); }
    381383    void reportMemoryUsage(MemoryObjectInfo*) const;
    382384
     
    505507
    506508    bool m_scriptedAnimationsSuspended;
     509    OwnPtr<PageConsole> m_console;
    507510
    508511    HashSet<String> m_seenPlugins;
  • trunk/Source/WebCore/xml/XSLStyleSheetLibxslt.cpp

    r125615 r146208  
    2525#if ENABLE(XSLT)
    2626
    27 #include "Console.h"
    28 #include "DOMWindow.h"
    2927#include "CachedResourceLoader.h"
    3028#include "Document.h"
    3129#include "Frame.h"
    3230#include "Node.h"
     31#include "Page.h"
     32#include "PageConsole.h"
    3333#include "TransformSource.h"
    3434#include "XMLDocumentParser.h"
     
    145145    m_stylesheetDocTaken = false;
    146146
    147     Console* console = 0;
    148     if (ownerDocument()->frame())
    149         console = ownerDocument()->domWindow()->console();
     147    PageConsole* console = 0;
     148    Frame* frame = ownerDocument()->frame();
     149    if (frame && frame->page())
     150        console = frame->page()->console();
    150151
    151152    XMLDocumentParserScope scope(cachedResourceLoader(), XSLTProcessor::genericErrorFunc, XSLTProcessor::parseErrorFunc, console);
  • trunk/Source/WebCore/xml/XSLTProcessorLibxslt.cpp

    r144565 r146208  
    2828
    2929#include "CachedResourceLoader.h"
    30 #include "Console.h"
    31 #include "DOMWindow.h"
    3230#include "Document.h"
    3331#include "Frame.h"
     32#include "Page.h"
     33#include "PageConsole.h"
    3434#include "ResourceError.h"
    3535#include "ResourceHandle.h"
     
    8383void XSLTProcessor::parseErrorFunc(void* userData, xmlError* error)
    8484{
    85     Console* console = static_cast<Console*>(userData);
     85    PageConsole* console = static_cast<PageConsole*>(userData);
    8686    if (!console)
    8787        return;
     
    138138        }
    139139
    140         Console* console = 0;
    141         if (globalProcessor->xslStylesheet()->ownerDocument()->frame())
    142             console = globalProcessor->xslStylesheet()->ownerDocument()->domWindow()->console();
     140        PageConsole* console = 0;
     141        Frame* frame = globalProcessor->xslStylesheet()->ownerDocument()->frame();
     142        if (frame && frame->page())
     143            console = frame->page()->console();
    143144        xmlSetStructuredErrorFunc(console, XSLTProcessor::parseErrorFunc);
    144145        xmlSetGenericErrorFunc(console, XSLTProcessor::genericErrorFunc);
  • trunk/Source/WebKit/mac/ChangeLog

    r146025 r146208  
     12013-03-19  Sergey Ryazanov  <serya@chromium.org>
     2
     3        Web Inspector: split Console into two entities, a web-facing bound object and page console.
     4        https://bugs.webkit.org/show_bug.cgi?id=111578
     5
     6        Reviewed by Vsevolod Vlasov.
     7
     8        Otherwise, a lot of logging in WebCore needs to go through the DOMWindow which is unnecessary.
     9
     10        * Misc/WebCoreStatistics.mm:
     11        (+[WebCoreStatistics shouldPrintExceptions]):
     12        (+[WebCoreStatistics setShouldPrintExceptions:]):
     13
    1142013-03-17  Adam Barth  <abarth@webkit.org>
    215
  • trunk/Source/WebKit/mac/Misc/WebCoreStatistics.mm

    r144953 r146208  
    3434#import <JavaScriptCore/JSLock.h>
    3535#import <JavaScriptCore/MemoryStatistics.h>
    36 #import <WebCore/Console.h>
    3736#import <WebCore/FontCache.h>
    3837#import <WebCore/Frame.h>
     
    4342#import <WebCore/JSDOMWindow.h>
    4443#import <WebCore/PageCache.h>
     44#import <WebCore/PageConsole.h>
    4545#import <WebCore/PrintContext.h>
    4646#import <WebCore/RenderTreeAsText.h>
     
    169169{
    170170    JSLockHolder lock(JSDOMWindow::commonJSGlobalData());
    171     return Console::shouldPrintExceptions();
     171    return PageConsole::shouldPrintExceptions();
    172172}
    173173
     
    175175{
    176176    JSLockHolder lock(JSDOMWindow::commonJSGlobalData());
    177     Console::setShouldPrintExceptions(print);
     177    PageConsole::setShouldPrintExceptions(print);
    178178}
    179179
Note: See TracChangeset for help on using the changeset viewer.