Source/WebCore/ChangeLog

 12014-01-16 Brian Burg <bburg@apple.com>
 2
 3 Web Inspector: Page should use std::unique_ptr for InspectorController
 4 https://bugs.webkit.org/show_bug.cgi?id=127068
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Make Page and WorkerGlobalScope keep a std::unique_ptr to InspectorController
 9 and WorkerInspectorController. Store page references and return controller
 10 references where possible.
 11
 12 Convert call sites to use an InspectorController reference.
 13 Convert instantiations of InspectorFrontendClient to use std::unique_ptr.
 14 Convert InspectorOverlay to keep Page references.
 15
 16 * WebCore.exp.in:
 17 * bindings/js/JSDOMWindowBase.cpp:
 18 (WebCore::JSDOMWindowBase::supportsProfiling):
 19 (WebCore::JSDOMWindowBase::supportsRichSourceInfo):
 20 * dom/Node.cpp:
 21 (WebCore::Node::inspect):
 22 * inspector/InspectorController.cpp:
 23 (WebCore::InspectorController::InspectorController):
 24 (WebCore::InspectorController::inspectedPageDestroyed):
 25 (WebCore::InspectorController::setInspectorFrontendClient):
 26 (WebCore::InspectorController::hasInspectorFrontendClient):
 27 (WebCore::InspectorController::connectFrontend):
 28 (WebCore::InspectorController::disconnectFrontend):
 29 (WebCore::InspectorController::inspectedPage):
 30 (WebCore::InspectorController::developerExtrasEnabled):
 31 * inspector/InspectorController.h:
 32 * inspector/InspectorFrontendClientLocal.cpp:
 33 (WebCore::InspectorFrontendClientLocal::canAttachWindow):
 34 (WebCore::InspectorFrontendClientLocal::changeAttachedWindowHeight):
 35 (WebCore::InspectorFrontendClientLocal::changeAttachedWindowWidth):
 36 (WebCore::InspectorFrontendClientLocal::openInNewTab):
 37 (WebCore::InspectorFrontendClientLocal::restoreAttachedWindowHeight):
 38 * inspector/InspectorOverlay.cpp:
 39 (WebCore::InspectorOverlay::InspectorOverlay):
 40 (WebCore::InspectorOverlay::getHighlight):
 41 (WebCore::InspectorOverlay::highlightQuad):
 42 (WebCore::InspectorOverlay::update):
 43 (WebCore::InspectorOverlay::buildObjectForHighlightedNode):
 44 (WebCore::InspectorOverlay::drawQuadHighlight):
 45 (WebCore::InspectorOverlay::overlayPage):
 46 (WebCore::InspectorOverlay::reset):
 47 * inspector/InspectorOverlay.h:
 48 * inspector/InstrumentingAgents.cpp:
 49 (WebCore::instrumentationForPage): remove null checks.
 50 (WebCore::instrumentationForWorkerGlobalScope): remove null checks.
 51 * inspector/WorkerInspectorController.cpp:
 52 (WebCore::WorkerInspectorController::WorkerInspectorController):
 53 (WebCore::WorkerInspectorController::connectFrontend):
 54 (WebCore::WorkerInspectorController::disconnectFrontend):
 55 * inspector/WorkerInspectorController.h:
 56 * loader/FrameLoader.cpp:
 57 (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
 58 (WebCore::FrameLoader::dispatchDidClearWindowObjectInWorld):
 59 * page/ContextMenuController.cpp:
 60 (WebCore::ContextMenuController::showContextMenu):
 61 (WebCore::ContextMenuController::contextMenuItemSelected):
 62 (WebCore::ContextMenuController::populate):
 63 (WebCore::ContextMenuController::addInspectElementItem):
 64 * page/FrameView.cpp:
 65 (WebCore::FrameView::sendResizeEventIfNeeded):
 66 * page/Page.cpp:
 67 (WebCore::Page::Page):
 68 * page/Page.h:
 69 (WebCore::Page::inspectorController):
 70 * page/PageDebuggable.cpp:
 71 (WebCore::PageDebuggable::hasLocalDebugger):
 72 (WebCore::PageDebuggable::parentProcessIdentifier):
 73 (WebCore::PageDebuggable::connect):
 74 (WebCore::PageDebuggable::disconnect):
 75 (WebCore::PageDebuggable::dispatchMessageFromRemoteFrontend):
 76 (WebCore::PageDebuggable::setIndicating):
 77 * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
 78 (WebCore::CompositingCoordinator::syncDisplayState):
 79 * testing/Internals.cpp:
 80 (WebCore::Internals::resetToConsistentState):
 81 (WebCore::Internals::inspectorHighlightRects):
 82 (WebCore::Internals::inspectorHighlightObject):
 83 (WebCore::Internals::emitInspectorDidBeginFrame):
 84 (WebCore::Internals::emitInspectorDidCancelFrame):
 85 (WebCore::Internals::openDummyInspectorFrontend):
 86 (WebCore::Internals::closeDummyInspectorFrontend):
 87 (WebCore::Internals::setInspectorResourcesDataSizeLimits):
 88 (WebCore::Internals::setJavaScriptProfilingEnabled):
 89 * workers/WorkerGlobalScope.cpp:
 90 (WebCore::WorkerGlobalScope::WorkerGlobalScope):
 91 * workers/WorkerGlobalScope.h: remove clearInspector().
 92 (WebCore::WorkerGlobalScope::workerInspectorController):
 93 * workers/WorkerMessagingProxy.cpp:
 94 (WebCore::connectToWorkerGlobalScopeInspectorTask):
 95 (WebCore::disconnectFromWorkerGlobalScopeInspectorTask):
 96 (WebCore::dispatchOnInspectorBackendTask):
 97 * workers/WorkerThread.cpp:
 98 (WebCore::WorkerThreadShutdownFinishTask::performTask):
 99
11002014-01-15 Brian Burg <bburg@apple.com>
2101
3102 Web Inspector: capture probe samples on the backend

Source/WebKit/efl/ChangeLog

 12014-01-15 Brian Burg <bburg@apple.com>
 2
 3 Web Inspector: Page should use std::unique_ptr for InspectorController
 4 https://bugs.webkit.org/show_bug.cgi?id=127068
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Convert call sites to use a InspectorController reference.
 9 Convert instantiations of InspectorFrontendClient to use std::unique_ptr.
 10
 11 * WebCoreSupport/DumpRenderTreeSupportEfl.cpp:
 12 (DumpRenderTreeSupportEfl::evaluateInWebInspector):
 13 * WebCoreSupport/InspectorClientEfl.cpp:
 14 (WebCore::InspectorClientEfl::openInspectorFrontend):
 15 * ewk/ewk_view.cpp:
 16 (ewk_view_inspector_show):
 17 (ewk_view_inspector_close):
 18
1192014-01-15 Ryuan Choi <ryuan.choi@samsung.com>
220
321 [EFL][WK1] Implement ProgressTrackerClientEfl to fix the crash

Source/WebKit/gtk/ChangeLog

 12014-01-15 Brian Burg <bburg@apple.com>
 2
 3 Web Inspector: Page should use std::unique_ptr for InspectorController
 4 https://bugs.webkit.org/show_bug.cgi?id=127068
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Convert call sites to use a InspectorController reference.
 9 Convert instantiations of InspectorFrontendClient to use std::unique_ptr.
 10
 11 * WebCoreSupport/ChromeClientGtk.cpp:
 12 (WebKit::paintWebView):
 13 * WebCoreSupport/InspectorClientGtk.cpp:
 14 (WebKit::InspectorClient::openInspectorFrontend):
 15 * webkit/webkitwebinspector.cpp:
 16 (webkit_web_inspector_set_property):
 17 (webkit_web_inspector_get_property):
 18 (webkit_web_inspector_show):
 19 (webkit_web_inspector_inspect_node):
 20 (webkit_web_inspector_inspect_coordinates):
 21 (webkit_web_inspector_close):
 22 (webkit_web_inspector_execute_script):
 23
1242014-01-15 Zan Dobersek <zdobersek@igalia.com>
225
326 [GTK][WK1] Add ProgressTrackerClient implementation

Source/WebKit/mac/ChangeLog

 12014-01-15 Brian Burg <bburg@apple.com>
 2
 3 Web Inspector: Page should use std::unique_ptr for InspectorController
 4 https://bugs.webkit.org/show_bug.cgi?id=127068
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Convert call sites to use a InspectorController reference.
 9 Convert instantiations of InspectorFrontendClient to use std::unique_ptr.
 10
 11 * WebCoreSupport/WebInspectorClient.mm:
 12 (WebInspectorClient::openInspectorFrontend):
 13 (-[WebInspectorWindowController destroyInspectorView:]):
 14 * WebInspector/WebInspector.mm:
 15 (-[WebInspector showWindow]):
 16 (-[WebInspector isJavaScriptProfilingEnabled]):
 17 (-[WebInspector setJavaScriptProfilingEnabled:]):
 18 (-[WebInspector close:]):
 19 (-[WebInspector evaluateInFrontend:callId:script:]):
 20 * WebInspector/WebNodeHighlighter.mm:
 21 (-[WebNodeHighlighter highlight]):
 22
1232014-01-15 David Kilzer <ddkilzer@apple.com>
224
325 [iOS] Missing RenderObject::style() symbol in WebDOMOperations.mm

Source/WebKit/win/ChangeLog

 12014-01-15 Brian Burg <bburg@apple.com>
 2
 3 Web Inspector: Page should use std::unique_ptr for InspectorController
 4 https://bugs.webkit.org/show_bug.cgi?id=127068
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Convert call sites to use a InspectorController reference.
 9
 10 * WebCoreSupport/WebInspectorClient.cpp:
 11 (WebInspectorClient::openInspectorFrontend):
 12 (WebInspectorFrontendClient::destroyInspectorView):
 13 (WebInspectorFrontendClient::onClose):
 14 * WebInspector.cpp:
 15 (WebInspector::show):
 16 (WebInspector::close):
 17 (WebInspector::isJavaScriptProfilingEnabled):
 18 (WebInspector::setJavaScriptProfilingEnabled):
 19 (WebInspector::evaluateInFrontend):
 20 * WebNodeHighlight.cpp:
 21 (WebNodeHighlight::update):
 22
1232014-01-10 Anders Carlsson <andersca@apple.com>
224
325 Tweak ProgressTrackerClient functions

Source/WebKit2/ChangeLog

 12014-01-15 Brian Burg <bburg@apple.com>
 2
 3 Web Inspector: Page should use std::unique_ptr for InspectorController
 4 https://bugs.webkit.org/show_bug.cgi?id=127068
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Convert call sites to use a InspectorController reference.
 9
 10 * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
 11 (WebKit::WebInspectorClient::drawRect):
 12 * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
 13 (WebKit::WebInspectorFrontendClient::WebInspectorFrontendClient):
 14 (WebKit::WebInspectorFrontendClient::closeWindow):
 15 * WebProcess/WebPage/WebInspector.cpp:
 16 (WebKit::WebInspector::createInspectorPage):
 17 (WebKit::WebInspector::show):
 18 (WebKit::WebInspector::close):
 19 (WebKit::WebInspector::evaluateScriptForTest):
 20 (WebKit::WebInspector::showConsole):
 21 (WebKit::WebInspector::showResources):
 22 (WebKit::WebInspector::showMainResourceForFrame):
 23 (WebKit::WebInspector::startJavaScriptDebugging):
 24 (WebKit::WebInspector::stopJavaScriptDebugging):
 25 (WebKit::WebInspector::setJavaScriptProfilingEnabled):
 26 (WebKit::WebInspector::startJavaScriptProfiling):
 27 (WebKit::WebInspector::stopJavaScriptProfiling):
 28 (WebKit::WebInspector::startPageProfiling):
 29 (WebKit::WebInspector::stopPageProfiling):
 30 (WebKit::WebInspector::dispatchMessageFromRemoteFrontend):
 31 (WebKit::WebInspector::remoteFrontendConnected):
 32 (WebKit::WebInspector::remoteFrontendDisconnected):
 33
1342014-01-15 Carlos Garcia Campos <cgarcia@igalia.com>
235
336 [GTK] Web process sometimes crashes when printing in synchronous mode

Source/WebCore/WebCore.exp.in

@@__ZN7WebCore19InspectorController15connectFrontendEPN9Inspector24InspectorFronte
27602760__ZN7WebCore19InspectorController18disconnectFrontendEv
27612761__ZN7WebCore19InspectorController18setProfilerEnabledEb
27622762__ZN7WebCore19InspectorController25evaluateForTestInFrontendElRKN3WTF6StringE
2763 __ZN7WebCore19InspectorController26setInspectorFrontendClientEN3WTF10PassOwnPtrINS_23InspectorFrontendClientEEE
 2763__ZN7WebCore19InspectorController26setInspectorFrontendClientENSt3__110unique_ptrINS_23InspectorFrontendClientENS1_14default_deleteIS3_EEEE
27642764__ZN7WebCore19InspectorController39setResourcesDataSizeLimitsFromInternalsEii
27652765__ZN7WebCore19InspectorController4showEv
27662766__ZN7WebCore19InspectorController5closeEv

Source/WebCore/bindings/js/JSDOMWindowBase.cpp

@@bool JSDOMWindowBase::supportsProfiling(const JSGlobalObject* object)
117117 return false;
118118
119119#if ENABLE(INSPECTOR)
120  return page->inspectorController()->profilerEnabled();
 120 return page->inspectorController().profilerEnabled();
121121#else
122122 return false;
123123#endif // ENABLE(INSPECTOR)

@@bool JSDOMWindowBase::supportsRichSourceInfo(const JSGlobalObject* object)
139139 if (!page)
140140 return false;
141141
142  bool enabled = page->inspectorController()->enabled();
 142 bool enabled = page->inspectorController().enabled();
143143 ASSERT(enabled || !thisObject->debugger());
144144 ASSERT(enabled || !supportsProfiling(thisObject));
145145 return enabled;

Source/WebCore/dom/Node.cpp

@@void Node::inspect()
557557{
558558#if ENABLE(INSPECTOR)
559559 if (document().page())
560  document().page()->inspectorController()->inspect(this);
 560 document().page()->inspectorController().inspect(this);
561561#endif
562562}
563563

Source/WebCore/inspector/InspectorController.cpp

@@using namespace Inspector;
8282
8383namespace WebCore {
8484
85 InspectorController::InspectorController(Page* page, InspectorClient* inspectorClient)
 85InspectorController::InspectorController(Page& page, InspectorClient* inspectorClient)
8686 : m_instrumentingAgents(InstrumentingAgents::create(*this))
8787 , m_injectedScriptManager(std::make_unique<PageInjectedScriptManager>(*this, PageInjectedScriptHost::create()))
88  , m_overlay(InspectorOverlay::create(page, inspectorClient))
 88 , m_overlay(std::make_unique<InspectorOverlay>(page, inspectorClient))
8989 , m_inspectorFrontendChannel(nullptr)
9090 , m_page(page)
9191 , m_inspectorClient(inspectorClient)

@@InspectorController::InspectorController(Page* page, InspectorClient* inspectorC
101101 m_instrumentingAgents->setInspectorAgent(m_inspectorAgent);
102102 m_agents.append(std::move(inspectorAgentPtr));
103103
104  auto pageAgentPtr = std::make_unique<InspectorPageAgent>(m_instrumentingAgents.get(), page, inspectorClient, m_overlay.get());
 104 auto pageAgentPtr = std::make_unique<InspectorPageAgent>(m_instrumentingAgents.get(), &page, inspectorClient, m_overlay.get());
105105 InspectorPageAgent* pageAgent = pageAgentPtr.get();
106106 m_pageAgent = pageAgentPtr.get();
107107 m_agents.append(std::move(pageAgentPtr));

@@InspectorController::InspectorController(Page* page, InspectorClient* inspectorC
137137 m_resourceAgent = resourceAgentPtr.get();
138138 m_agents.append(std::move(resourceAgentPtr));
139139
140  auto runtimeAgentPtr = std::make_unique<PageRuntimeAgent>(m_instrumentingAgents.get(), m_injectedScriptManager.get(), page, pageAgent);
 140 auto runtimeAgentPtr = std::make_unique<PageRuntimeAgent>(m_instrumentingAgents.get(), m_injectedScriptManager.get(), &page, pageAgent);
141141 InspectorRuntimeAgent* runtimeAgent = runtimeAgentPtr.get();
142142 m_agents.append(std::move(runtimeAgentPtr));
143143

@@InspectorController::InspectorController(Page* page, InspectorClient* inspectorC
154154 m_domDebuggerAgent = domDebuggerAgentPtr.get();
155155 m_agents.append(std::move(domDebuggerAgentPtr));
156156
157  auto profilerAgentPtr = InspectorProfilerAgent::create(m_instrumentingAgents.get(), consoleAgent, page, m_injectedScriptManager.get());
 157 auto profilerAgentPtr = InspectorProfilerAgent::create(m_instrumentingAgents.get(), consoleAgent, &page, m_injectedScriptManager.get());
158158 m_profilerAgent = profilerAgentPtr.get();
159159 m_agents.append(std::move(profilerAgentPtr));
160160

@@InspectorController::InspectorController(Page* page, InspectorClient* inspectorC
165165
166166 m_agents.append(std::make_unique<InspectorCanvasAgent>(m_instrumentingAgents.get(), pageAgent, m_injectedScriptManager.get()));
167167
168  m_agents.append(std::make_unique<InspectorInputAgent>(m_instrumentingAgents.get(), page));
 168 m_agents.append(std::make_unique<InspectorInputAgent>(m_instrumentingAgents.get(), &page));
169169
170170#if USE(ACCELERATED_COMPOSITING)
171171 m_agents.append(std::make_unique<InspectorLayerTreeAgent>(m_instrumentingAgents.get()));

@@InspectorController::~InspectorController()
195195 ASSERT(!m_inspectorClient);
196196}
197197
198 PassOwnPtr<InspectorController> InspectorController::create(Page* page, InspectorClient* client)
199 {
200  return adoptPtr(new InspectorController(page, client));
201 }
202 
203198void InspectorController::inspectedPageDestroyed()
204199{
205200 disconnectFrontend();
206201 m_injectedScriptManager->disconnect();
207202 m_inspectorClient->inspectorDestroyed();
208203 m_inspectorClient = 0;
209  m_page = 0;
210204}
211205
212 void InspectorController::setInspectorFrontendClient(PassOwnPtr<InspectorFrontendClient> inspectorFrontendClient)
 206void InspectorController::setInspectorFrontendClient(std::unique_ptr<InspectorFrontendClient> inspectorFrontendClient)
213207{
214  m_inspectorFrontendClient = inspectorFrontendClient;
 208 m_inspectorFrontendClient = std::move(inspectorFrontendClient);
215209}
216210
217211bool InspectorController::hasLocalFrontend() const

@@bool InspectorController::hasRemoteFrontend() const
234228
235229bool InspectorController::hasInspectorFrontendClient() const
236230{
237  return m_inspectorFrontendClient;
 231 return m_inspectorFrontendClient.get();
238232}
239233
240234void InspectorController::didClearWindowObjectInWorld(Frame* frame, DOMWrapperWorld& world)

@@void InspectorController::connectFrontend(InspectorFrontendChannel* frontendChan
268262
269263#if ENABLE(REMOTE_INSPECTOR)
270264 if (!m_hasRemoteFrontend)
271  m_page->remoteInspectorInformationDidChange();
 265 m_page.remoteInspectorInformationDidChange();
272266#endif
273267}
274268

@@void InspectorController::disconnectFrontend()
290284
291285#if ENABLE(REMOTE_INSPECTOR)
292286 if (!m_hasRemoteFrontend)
293  m_page->remoteInspectorInformationDidChange();
 287 m_page.remoteInspectorInformationDidChange();
294288#endif
295289}
296290

@@bool InspectorController::enabled() const
365359 return developerExtrasEnabled();
366360}
367361
368 Page* InspectorController::inspectedPage() const
 362Page& InspectorController::inspectedPage() const
369363{
370364 return m_page;
371365}

@@void InspectorController::didComposite()
453447
454448bool InspectorController::developerExtrasEnabled() const
455449{
456  if (!m_page)
457  return false;
458 
459  return m_page->settings().developerExtrasEnabled();
 450 return m_page.settings().developerExtrasEnabled();
460451}
461452
462453bool InspectorController::canAccessInspectedScriptState(JSC::ExecState* scriptState) const

Source/WebCore/inspector/InspectorController.h

@@class InspectorController FINAL : public Inspector::InspectorEnvironment {
7777 WTF_MAKE_NONCOPYABLE(InspectorController);
7878 WTF_MAKE_FAST_ALLOCATED;
7979public:
 80 explicit InspectorController(Page&, InspectorClient*);
8081 virtual ~InspectorController();
8182
82  static PassOwnPtr<InspectorController> create(Page*, InspectorClient*);
8383 void inspectedPageDestroyed();
8484
8585 bool enabled() const;
86  Page* inspectedPage() const;
 86 Page& inspectedPage() const;
8787
8888 void show();
8989 void close();
9090
91  void setInspectorFrontendClient(PassOwnPtr<InspectorFrontendClient>);
 91 void setInspectorFrontendClient(std::unique_ptr<InspectorFrontendClient>);
9292 bool hasInspectorFrontendClient() const;
9393 void didClearWindowObjectInWorld(Frame*, DOMWrapperWorld&);
9494

@@public:
144144 virtual void didCallInjectedScriptFunction() OVERRIDE;
145145
146146private:
147  InspectorController(Page*, InspectorClient*);
148 
149147 friend InstrumentingAgents* instrumentationForPage(Page*);
150148
151149 RefPtr<InstrumentingAgents> m_instrumentingAgents;
152150 std::unique_ptr<PageInjectedScriptManager> m_injectedScriptManager;
153  OwnPtr<InspectorOverlay> m_overlay;
 151 std::unique_ptr<InspectorOverlay> m_overlay;
154152
155153 Inspector::InspectorAgent* m_inspectorAgent;
156154 InspectorDOMAgent* m_domAgent;

@@private:
164162#endif
165163
166164 RefPtr<Inspector::InspectorBackendDispatcher> m_inspectorBackendDispatcher;
167  OwnPtr<InspectorFrontendClient> m_inspectorFrontendClient;
 165 std::unique_ptr<InspectorFrontendClient> m_inspectorFrontendClient;
168166 Inspector::InspectorFrontendChannel* m_inspectorFrontendChannel;
169  Page* m_page;
 167 Page& m_page;
170168 InspectorClient* m_inspectorClient;
171169 Inspector::InspectorAgentRegistry m_agents;
172170 Vector<InspectorInstrumentationCookie, 2> m_injectedScriptInstrumentationCookies;

Source/WebCore/inspector/InspectorFrontendClientLocal.cpp

@@bool InspectorFrontendClientLocal::canAttachWindow()
182182 return true;
183183
184184 // Don't allow the attach if the window would be too small to accommodate the minimum inspector size.
185  unsigned inspectedPageHeight = m_inspectorController->inspectedPage()->mainFrame().view()->visibleHeight();
186  unsigned inspectedPageWidth = m_inspectorController->inspectedPage()->mainFrame().view()->visibleWidth();
 185 unsigned inspectedPageHeight = m_inspectorController->inspectedPage().mainFrame().view()->visibleHeight();
 186 unsigned inspectedPageWidth = m_inspectorController->inspectedPage().mainFrame().view()->visibleWidth();
187187 unsigned maximumAttachedHeight = inspectedPageHeight * maximumAttachedHeightRatio;
188188 return minimumAttachedHeight <= maximumAttachedHeight && minimumAttachedWidth <= inspectedPageWidth;
189189}

@@void InspectorFrontendClientLocal::setDockingUnavailable(bool unavailable)
195195
196196void InspectorFrontendClientLocal::changeAttachedWindowHeight(unsigned height)
197197{
198  unsigned totalHeight = m_frontendPage->mainFrame().view()->visibleHeight() + m_inspectorController->inspectedPage()->mainFrame().view()->visibleHeight();
 198 unsigned totalHeight = m_frontendPage->mainFrame().view()->visibleHeight() + m_inspectorController->inspectedPage().mainFrame().view()->visibleHeight();
199199 unsigned attachedHeight = constrainedAttachedWindowHeight(height, totalHeight);
200200 m_settings->setProperty(inspectorAttachedHeightSetting, String::number(attachedHeight));
201201 setAttachedWindowHeight(attachedHeight);

@@void InspectorFrontendClientLocal::changeAttachedWindowHeight(unsigned height)
203203
204204void InspectorFrontendClientLocal::changeAttachedWindowWidth(unsigned width)
205205{
206  unsigned totalWidth = m_frontendPage->mainFrame().view()->visibleWidth() + m_inspectorController->inspectedPage()->mainFrame().view()->visibleWidth();
 206 unsigned totalWidth = m_frontendPage->mainFrame().view()->visibleWidth() + m_inspectorController->inspectedPage().mainFrame().view()->visibleWidth();
207207 unsigned attachedWidth = constrainedAttachedWindowWidth(width, totalWidth);
208208 setAttachedWindowWidth(attachedWidth);
209209}

@@void InspectorFrontendClientLocal::changeAttachedWindowWidth(unsigned width)
211211void InspectorFrontendClientLocal::openInNewTab(const String& url)
212212{
213213 UserGestureIndicator indicator(DefinitelyProcessingUserGesture);
214  Page* page = m_inspectorController->inspectedPage();
215  Frame& mainFrame = page->mainFrame();
 214 Frame& mainFrame = m_inspectorController->inspectedPage().mainFrame();
216215 FrameLoadRequest request(mainFrame.document()->securityOrigin(), ResourceRequest(), "_blank");
217216
218217 bool created;

@@void InspectorFrontendClientLocal::setAttachedWindow(DockSide dockSide)
257256
258257void InspectorFrontendClientLocal::restoreAttachedWindowHeight()
259258{
260  unsigned inspectedPageHeight = m_inspectorController->inspectedPage()->mainFrame().view()->visibleHeight();
 259 unsigned inspectedPageHeight = m_inspectorController->inspectedPage().mainFrame().view()->visibleHeight();
261260 String value = m_settings->getProperty(inspectorAttachedHeightSetting);
262261 unsigned preferredHeight = value.isEmpty() ? defaultAttachedHeight : value.toUInt();
263262

Source/WebCore/inspector/InspectorOverlay.cpp

@@static void buildNodeHighlight(Node* node, RenderRegion* region, const Highlight
228228 buildRendererHighlight(renderer, region, highlightConfig, highlight);
229229}
230230
231 static void buildQuadHighlight(Page* page, const FloatQuad& quad, const HighlightConfig& highlightConfig, Highlight *highlight)
 231static void buildQuadHighlight(const FloatQuad& quad, const HighlightConfig& highlightConfig, Highlight *highlight)
232232{
233  if (!page)
234  return;
235233 highlight->setDataFromConfig(highlightConfig);
236234 highlight->type = HighlightTypeRects;
237235 highlight->quads.append(quad);

@@static void buildQuadHighlight(Page* page, const FloatQuad& quad, const Highligh
239237
240238} // anonymous namespace
241239
242 InspectorOverlay::InspectorOverlay(Page* page, InspectorClient* client)
 240InspectorOverlay::InspectorOverlay(Page& page, InspectorClient* client)
243241 : m_page(page)
244242 , m_client(client)
245243{

@@void InspectorOverlay::getHighlight(Highlight* highlight) const
274272 if (m_highlightNode)
275273 buildNodeHighlight(m_highlightNode.get(), nullptr, m_nodeHighlightConfig, highlight);
276274 else
277  buildQuadHighlight(m_page, *m_highlightQuad, m_quadHighlightConfig, highlight);
 275 buildQuadHighlight(*m_highlightQuad, m_quadHighlightConfig, highlight);
278276}
279277
280278void InspectorOverlay::setPausedInDebuggerMessage(const String* message)

@@void InspectorOverlay::highlightNode(Node* node, const HighlightConfig& highligh
300298void InspectorOverlay::highlightQuad(PassOwnPtr<FloatQuad> quad, const HighlightConfig& highlightConfig)
301299{
302300 if (m_quadHighlightConfig.usePageCoordinates)
303  *quad -= m_page->mainFrame().view()->scrollOffset();
 301 *quad -= m_page.mainFrame().view()->scrollOffset();
304302
305303 m_quadHighlightConfig = highlightConfig;
306304 m_highlightQuad = quad;

@@void InspectorOverlay::update()
324322 return;
325323 }
326324
327  FrameView* view = m_page->mainFrame().view();
 325 FrameView* view = m_page.mainFrame().view();
328326 if (!view)
329327 return;
330328

@@void InspectorOverlay::update()
332330 IntSize viewportSize = view->visibleContentRect().size();
333331 IntSize frameViewFullSize = view->visibleContentRect(ScrollableArea::IncludeScrollbars).size();
334332 IntSize size = m_size.isEmpty() ? frameViewFullSize : m_size;
335  overlayPage()->setPageScaleFactor(m_page->pageScaleFactor(), IntPoint());
336  size.scale(m_page->pageScaleFactor());
 333 overlayPage()->setPageScaleFactor(m_page.pageScaleFactor(), IntPoint());
 334 size.scale(m_page.pageScaleFactor());
337335 overlayView->resize(size);
338336
339337 // Clear canvas and paint things.

@@PassRefPtr<InspectorObject> InspectorOverlay::buildObjectForHighlightedNode() co
710708 RefPtr<InspectorObject> highlightObject = InspectorObject::create();
711709
712710 // The main view's scroll offset is shared across all quads.
713  FrameView* mainView = m_page->mainFrame().view();
 711 FrameView* mainView = m_page.mainFrame().view();
714712 highlightObject->setObject("scroll", buildObjectForPoint(!mainView->delegatesScrolling() ? mainView->visibleContentRect().location() : FloatPoint()));
715713
716714 highlightObject->setArray("fragments", highlightFragments.release());

@@void InspectorOverlay::drawQuadHighlight()
738736 return;
739737
740738 Highlight highlight;
741  buildQuadHighlight(m_page, *m_highlightQuad, m_quadHighlightConfig, &highlight);
 739 buildQuadHighlight(*m_highlightQuad, m_quadHighlightConfig, &highlight);
742740 evaluateInOverlay("drawQuadHighlight", buildObjectForHighlight(highlight));
743741}
744742

@@Page* InspectorOverlay::overlayPage()
757755 fillWithEmptyClients(pageClients);
758756 m_overlayPage = adoptPtr(new Page(pageClients));
759757
760  Settings& settings = m_page->settings();
 758 Settings& settings = m_page.settings();
761759 Settings& overlaySettings = m_overlayPage->settings();
762760
763761 overlaySettings.setStandardFontFamily(settings.standardFontFamily());

@@Page* InspectorOverlay::overlayPage()
798796void InspectorOverlay::reset(const IntSize& viewportSize, const IntSize& frameViewFullSize)
799797{
800798 RefPtr<InspectorObject> resetData = InspectorObject::create();
801  resetData->setNumber("deviceScaleFactor", m_page->deviceScaleFactor());
 799 resetData->setNumber("deviceScaleFactor", m_page.deviceScaleFactor());
802800 resetData->setObject("viewportSize", buildObjectForSize(viewportSize));
803801 resetData->setObject("frameViewFullSize", buildObjectForSize(frameViewFullSize));
804802 evaluateInOverlay("reset", resetData.release());

Source/WebCore/inspector/InspectorOverlay.h

@@struct Highlight {
105105class InspectorOverlay {
106106 WTF_MAKE_FAST_ALLOCATED;
107107public:
108  static PassOwnPtr<InspectorOverlay> create(Page* page, InspectorClient* client)
109  {
110  return adoptPtr(new InspectorOverlay(page, client));
111  }
 108 explicit InspectorOverlay(Page&, InspectorClient*);
112109 ~InspectorOverlay();
113110
114111 void update();

@@public:
130127
131128 void freePage();
132129private:
133  InspectorOverlay(Page*, InspectorClient*);
134 
135130 void drawGutter();
136131 void drawNodeHighlight();
137132 void drawQuadHighlight();

@@private:
141136 void evaluateInOverlay(const String& method, const String& argument);
142137 void evaluateInOverlay(const String& method, PassRefPtr<Inspector::InspectorValue> argument);
143138
144  Page* m_page;
 139 Page& m_page;
145140 InspectorClient* m_client;
146141 String m_pausedInDebuggerMessage;
147142 RefPtr<Node> m_highlightNode;

Source/WebCore/inspector/InstrumentingAgents.cpp

@@void InstrumentingAgents::reset()
105105InstrumentingAgents* instrumentationForPage(Page* page)
106106{
107107 ASSERT(isMainThread());
108  if (InspectorController* controller = page->inspectorController())
109  return controller->m_instrumentingAgents.get();
110  return 0;
 108 return page ? page->inspectorController().m_instrumentingAgents.get() : nullptr;
111109}
112110
113111InstrumentingAgents* instrumentationForWorkerGlobalScope(WorkerGlobalScope* workerGlobalScope)
114112{
115  if (WorkerInspectorController* controller = workerGlobalScope->workerInspectorController())
116  return controller->m_instrumentingAgents.get();
117  return 0;
 113 return workerGlobalScope ? workerGlobalScope->workerInspectorController().m_instrumentingAgents.get() : nullptr;
118114}
119115
120116} // namespace WebCore

Source/WebCore/inspector/WorkerInspectorController.cpp

5555#include "WorkerRuntimeAgent.h"
5656#include "WorkerThread.h"
5757#include <inspector/InspectorBackendDispatcher.h>
58 #include <wtf/PassOwnPtr.h>
5958
6059using namespace Inspector;
6160

@@namespace {
6665class PageInspectorProxy : public InspectorFrontendChannel {
6766 WTF_MAKE_FAST_ALLOCATED;
6867public:
69  explicit PageInspectorProxy(WorkerGlobalScope* workerGlobalScope) : m_workerGlobalScope(workerGlobalScope) { }
 68 explicit PageInspectorProxy(WorkerGlobalScope& workerGlobalScope)
 69 : m_workerGlobalScope(workerGlobalScope) { }
7070 virtual ~PageInspectorProxy() { }
7171private:
7272 virtual bool sendMessageToFrontend(const String& message)
7373 {
74  m_workerGlobalScope->thread()->workerReportingProxy().postMessageToPageInspector(message);
 74 m_workerGlobalScope.thread()->workerReportingProxy().postMessageToPageInspector(message);
7575 return true;
7676 }
77  WorkerGlobalScope* m_workerGlobalScope;
 77 WorkerGlobalScope& m_workerGlobalScope;
7878};
7979
8080}
8181
82 WorkerInspectorController::WorkerInspectorController(WorkerGlobalScope* workerGlobalScope)
 82WorkerInspectorController::WorkerInspectorController(WorkerGlobalScope& workerGlobalScope)
8383 : m_workerGlobalScope(workerGlobalScope)
8484 , m_instrumentingAgents(InstrumentingAgents::create(*this))
8585 , m_injectedScriptManager(std::make_unique<PageInjectedScriptManager>(*this, PageInjectedScriptHost::create()))
86  , m_runtimeAgent(0)
 86 , m_runtimeAgent(nullptr)
8787{
88  auto runtimeAgent = std::make_unique<WorkerRuntimeAgent>(m_instrumentingAgents.get(), m_injectedScriptManager.get(), workerGlobalScope);
 88 auto runtimeAgent = std::make_unique<WorkerRuntimeAgent>(m_instrumentingAgents.get(), m_injectedScriptManager.get(), &workerGlobalScope);
8989 m_runtimeAgent = runtimeAgent.get();
9090 m_agents.append(std::move(runtimeAgent));
9191
9292 auto consoleAgent = std::make_unique<WorkerConsoleAgent>(m_instrumentingAgents.get(), m_injectedScriptManager.get());
9393#if ENABLE(JAVASCRIPT_DEBUGGER)
94  auto debuggerAgent = std::make_unique<WorkerDebuggerAgent>(m_instrumentingAgents.get(), workerGlobalScope, m_injectedScriptManager.get());
 94 auto debuggerAgent = std::make_unique<WorkerDebuggerAgent>(m_instrumentingAgents.get(), &workerGlobalScope, m_injectedScriptManager.get());
9595 m_runtimeAgent->setScriptDebugServer(&debuggerAgent->scriptDebugServer());
9696 m_agents.append(std::move(debuggerAgent));
9797
98  m_agents.append(InspectorProfilerAgent::create(m_instrumentingAgents.get(), consoleAgent.get(), workerGlobalScope, m_injectedScriptManager.get()));
 98 m_agents.append(InspectorProfilerAgent::create(m_instrumentingAgents.get(), consoleAgent.get(), &workerGlobalScope, m_injectedScriptManager.get()));
9999 m_agents.append(std::make_unique<InspectorHeapProfilerAgent>(m_instrumentingAgents.get(), m_injectedScriptManager.get()));
100100#endif
101101 m_agents.append(std::make_unique<InspectorTimelineAgent>(m_instrumentingAgents.get(), nullptr, nullptr, InspectorTimelineAgent::WorkerInspector, nullptr));

@@WorkerInspectorController::~WorkerInspectorController()
122122void WorkerInspectorController::connectFrontend()
123123{
124124 ASSERT(!m_frontendChannel);
125  m_frontendChannel = adoptPtr(new PageInspectorProxy(m_workerGlobalScope));
 125 m_frontendChannel = std::make_unique<PageInspectorProxy>(m_workerGlobalScope);
126126 m_backendDispatcher = InspectorBackendDispatcher::create(m_frontendChannel.get());
127127 m_agents.didCreateFrontendAndBackend(m_frontendChannel.get(), m_backendDispatcher.get());
128128}

@@void WorkerInspectorController::disconnectFrontend()
134134 m_agents.willDestroyFrontendAndBackend();
135135 m_backendDispatcher->clearFrontend();
136136 m_backendDispatcher.clear();
137  m_frontendChannel.clear();
 137 m_frontendChannel.reset();
138138}
139139
140140void WorkerInspectorController::dispatchMessageFromFrontend(const String& message)

Source/WebCore/inspector/WorkerInspectorController.h

4040#include <wtf/FastMalloc.h>
4141#include <wtf/Forward.h>
4242#include <wtf/Noncopyable.h>
43 #include <wtf/OwnPtr.h>
4443#include <wtf/RefPtr.h>
4544#include <wtf/Vector.h>
4645

@@class WorkerInspectorController FINAL : public Inspector::InspectorEnvironment {
6059 WTF_MAKE_NONCOPYABLE(WorkerInspectorController);
6160 WTF_MAKE_FAST_ALLOCATED;
6261public:
63  WorkerInspectorController(WorkerGlobalScope*);
 62 explicit WorkerInspectorController(WorkerGlobalScope&);
6463 ~WorkerInspectorController();
6564
6665 void connectFrontend();

@@public:
8079private:
8180 friend InstrumentingAgents* instrumentationForWorkerGlobalScope(WorkerGlobalScope*);
8281
83  WorkerGlobalScope* m_workerGlobalScope;
 82 WorkerGlobalScope& m_workerGlobalScope;
8483 RefPtr<InstrumentingAgents> m_instrumentingAgents;
8584 std::unique_ptr<PageInjectedScriptManager> m_injectedScriptManager;
8685 InspectorRuntimeAgent* m_runtimeAgent;
8786 Inspector::InspectorAgentRegistry m_agents;
88  OwnPtr<InspectorFrontendChannel> m_frontendChannel;
 87 std::unique_ptr<InspectorFrontendChannel> m_frontendChannel;
8988 RefPtr<Inspector::InspectorBackendDispatcher> m_backendDispatcher;
9089 Vector<InspectorInstrumentationCookie, 2> m_injectedScriptInstrumentationCookies;
9190};

Source/WebCore/loader/FrameLoader.cpp

@@void FrameLoader::continueLoadAfterNavigationPolicy(const ResourceRequest&, Pass
29572957#if ENABLE(JAVASCRIPT_DEBUGGER) && ENABLE(INSPECTOR)
29582958 if (Page* page = m_frame.page()) {
29592959 if (m_frame.isMainFrame())
2960  page->inspectorController()->resume();
 2960 page->inspectorController().resume();
29612961 }
29622962#endif
29632963

@@void FrameLoader::dispatchDidClearWindowObjectInWorld(DOMWrapperWorld& world)
33703370
33713371#if ENABLE(INSPECTOR)
33723372 if (Page* page = m_frame.page())
3373  page->inspectorController()->didClearWindowObjectInWorld(&m_frame, world);
 3373 page->inspectorController().didClearWindowObjectInWorld(&m_frame, world);
33743374#endif
33753375
33763376 InspectorInstrumentation::didClearWindowObjectInWorld(&m_frame, world);

Source/WebCore/page/ContextMenuController.cpp

@@PassOwnPtr<ContextMenu> ContextMenuController::createContextMenu(Event* event)
157157void ContextMenuController::showContextMenu(Event* event)
158158{
159159#if ENABLE(INSPECTOR)
160  if (m_page.inspectorController()->enabled())
 160 if (m_page.inspectorController().enabled())
161161 addInspectElementItem();
162162#endif
163163

@@void ContextMenuController::contextMenuItemSelected(ContextMenuItem* item)
503503#if ENABLE(INSPECTOR)
504504 case ContextMenuItemTagInspectElement:
505505 if (Page* page = frame->page())
506  page->inspectorController()->inspect(m_hitTestResult.innerNonSharedNode());
 506 page->inspectorController().inspect(m_hitTestResult.innerNonSharedNode());
507507 break;
508508#endif
509509 case ContextMenuItemTagDictationAlternative:

@@void ContextMenuController::populate()
893893#endif
894894 } else {
895895#if ENABLE(INSPECTOR)
896  if (!(frame->page() && (frame->page()->inspectorController()->hasInspectorFrontendClient() || frame->page()->inspectorController()->hasRemoteFrontend()))) {
 896 if (!(frame->page() && (frame->page()->inspectorController().hasInspectorFrontendClient() || frame->page()->inspectorController().hasRemoteFrontend()))) {
897897#endif
898898
899899 // In GTK+ unavailable items are not hidden but insensitive.

@@void ContextMenuController::addInspectElementItem()
11011101 if (!page)
11021102 return;
11031103
1104  if (!page->inspectorController())
1105  return;
1106 
11071104 ContextMenuItem InspectElementItem(ActionType, ContextMenuItemTagInspectElement, contextMenuItemTagInspectElement());
11081105#if USE(CROSS_PLATFORM_CONTEXT_MENUS)
11091106 if (m_contextMenu && !m_contextMenu->items().isEmpty())

Source/WebCore/page/FrameView.cpp

@@void FrameView::sendResizeEventIfNeeded()
28902890#if ENABLE(INSPECTOR)
28912891 Page* page = frame().page();
28922892 if (InspectorInstrumentation::hasFrontends() && isMainFrame) {
2893  if (InspectorClient* inspectorClient = page ? page->inspectorController()->inspectorClient() : 0)
 2893 if (InspectorClient* inspectorClient = page ? page->inspectorController().inspectorClient() : nullptr)
28942894 inspectorClient->didResizeMainFrame(&frame());
28952895 }
28962896#endif

Source/WebCore/page/Page.cpp

@@Page::Page(PageClients& pageClients)
136136 , m_contextMenuController(std::make_unique<ContextMenuController>(*this, *pageClients.contextMenuClient))
137137#endif
138138#if ENABLE(INSPECTOR)
139  , m_inspectorController(InspectorController::create(this, pageClients.inspectorClient))
 139 , m_inspectorController(std::make_unique<InspectorController>(*this, pageClients.inspectorClient))
140140#endif
141141#if ENABLE(POINTER_LOCK)
142142 , m_pointerLockController(PointerLockController::create(this))

Source/WebCore/page/Page.h

@@public:
203203 ContextMenuController& contextMenuController() const { return *m_contextMenuController; }
204204#endif
205205#if ENABLE(INSPECTOR)
206  InspectorController* inspectorController() const { return m_inspectorController.get(); }
 206 InspectorController& inspectorController() const { return *m_inspectorController; }
207207#endif
208208#if ENABLE(POINTER_LOCK)
209209 PointerLockController* pointerLockController() const { return m_pointerLockController.get(); }

@@private:
461461 const std::unique_ptr<ContextMenuController> m_contextMenuController;
462462#endif
463463#if ENABLE(INSPECTOR)
464  OwnPtr<InspectorController> m_inspectorController;
 464 const std::unique_ptr<InspectorController> m_inspectorController;
465465#endif
466466#if ENABLE(POINTER_LOCK)
467467 OwnPtr<PointerLockController> m_pointerLockController;

Source/WebCore/page/PageDebuggable.cpp

@@String PageDebuggable::url() const
6363
6464bool PageDebuggable::hasLocalDebugger() const
6565{
66  return m_page.inspectorController()->hasLocalFrontend();
 66 return m_page.inspectorController().hasLocalFrontend();
6767}
6868
6969pid_t PageDebuggable::parentProcessIdentifier() const
7070{
71  if (InspectorClient* inspectorClient = m_page.inspectorController()->inspectorClient())
 71 if (InspectorClient* inspectorClient = m_page.inspectorController().inspectorClient())
7272 return inspectorClient->parentProcessIdentifier();
7373
7474 return 0;

@@pid_t PageDebuggable::parentProcessIdentifier() const
7676
7777void PageDebuggable::connect(Inspector::InspectorFrontendChannel* channel)
7878{
79  InspectorController* inspectorController = m_page.inspectorController();
80  inspectorController->setHasRemoteFrontend(true);
81  inspectorController->connectFrontend(reinterpret_cast<WebCore::InspectorFrontendChannel*>(channel));
 79 InspectorController& inspectorController = m_page.inspectorController();
 80 inspectorController.setHasRemoteFrontend(true);
 81 inspectorController.connectFrontend(reinterpret_cast<WebCore::InspectorFrontendChannel*>(channel));
8282}
8383
8484void PageDebuggable::disconnect()
8585{
86  InspectorController* inspectorController = m_page.inspectorController();
87  inspectorController->disconnectFrontend();
88  inspectorController->setHasRemoteFrontend(false);
 86 InspectorController& inspectorController = m_page.inspectorController();
 87 inspectorController.disconnectFrontend();
 88 inspectorController.setHasRemoteFrontend(false);
8989}
9090
9191void PageDebuggable::dispatchMessageFromRemoteFrontend(const String& message)
9292{
93  m_page.inspectorController()->dispatchMessageFromFrontend(message);
 93 m_page.inspectorController().dispatchMessageFromFrontend(message);
9494}
9595
9696void PageDebuggable::setIndicating(bool indicating)
9797{
98  m_page.inspectorController()->setIndicating(indicating);
 98 m_page.inspectorController().setIndicating(indicating);
9999}
100100
101101} // namespace WebCore

Source/WebCore/platform/graphics/texmap/coordinated/CompositingCoordinator.cpp

@@bool CompositingCoordinator::flushPendingLayerChanges()
126126void CompositingCoordinator::syncDisplayState()
127127{
128128#if ENABLE(INSPECTOR)
129  m_page->inspectorController()->didBeginFrame();
 129 m_page->inspectorController().didBeginFrame();
130130#endif
131131
132132#if ENABLE(REQUEST_ANIMATION_FRAME) && !USE(REQUEST_ANIMATION_FRAME_TIMER) && !USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)

Source/WebCore/testing/Internals.cpp

@@using namespace HTMLNames;
177177#if ENABLE(INSPECTOR)
178178class InspectorFrontendClientDummy : public InspectorFrontendClientLocal {
179179public:
180  InspectorFrontendClientDummy(InspectorController*, Page*);
 180 explicit InspectorFrontendClientDummy(InspectorController*, Page*);
181181 virtual ~InspectorFrontendClientDummy() { }
182182 virtual void attachWindow(DockSide) OVERRIDE { }
183183 virtual void detachWindow() OVERRIDE { }

@@void Internals::resetToConsistentState(Page* page)
280280 WebCore::overrideUserPreferredLanguages(Vector<String>());
281281 WebCore::Settings::setUsesOverlayScrollbars(false);
282282#if ENABLE(INSPECTOR) && ENABLE(JAVASCRIPT_DEBUGGER)
283  if (page->inspectorController())
284  page->inspectorController()->setProfilerEnabled(false);
 283 page->inspectorController().setProfilerEnabled(false);
285284#endif
286285#if ENABLE(VIDEO_TRACK) && !PLATFORM(WIN)
287286 page->group().captionPreferences()->setCaptionsStyleSheetOverride(emptyString());

@@PassRefPtr<ClientRectList> Internals::inspectorHighlightRects(ExceptionCode& ec)
705704{
706705#if ENABLE(INSPECTOR)
707706 Document* document = contextDocument();
708  if (!document || !document->page() || !document->page()->inspectorController()) {
 707 if (!document || !document->page()) {
709708 ec = INVALID_ACCESS_ERR;
710709 return ClientRectList::create();
711710 }
712711
713712 Highlight highlight;
714  document->page()->inspectorController()->getHighlight(&highlight);
 713 document->page()->inspectorController().getHighlight(&highlight);
715714 return ClientRectList::create(highlight.quads);
716715#else
717716 UNUSED_PARAM(ec);

@@String Internals::inspectorHighlightObject(ExceptionCode& ec)
723722{
724723#if ENABLE(INSPECTOR)
725724 Document* document = contextDocument();
726  if (!document || !document->page() || !document->page()->inspectorController()) {
 725 if (!document || !document->page()) {
727726 ec = INVALID_ACCESS_ERR;
728727 return String();
729728 }
730  RefPtr<InspectorObject> object = document->page()->inspectorController()->buildObjectForHighlightedNode();
 729 RefPtr<InspectorObject> object = document->page()->inspectorController().buildObjectForHighlightedNode();
731730 return object ? object->toJSONString() : String();
732731#else
733732 UNUSED_PARAM(ec);

@@PassRefPtr<NodeList> Internals::nodesFromRect(Document* document, int centerX, i
12531252void Internals::emitInspectorDidBeginFrame()
12541253{
12551254#if ENABLE(INSPECTOR)
1256  InspectorController* inspectorController = contextDocument()->frame()->page()->inspectorController();
1257  inspectorController->didBeginFrame();
 1255 contextDocument()->frame()->page()->inspectorController().didBeginFrame();
12581256#endif
12591257}
12601258
12611259void Internals::emitInspectorDidCancelFrame()
12621260{
12631261#if ENABLE(INSPECTOR)
1264  InspectorController* inspectorController = contextDocument()->frame()->page()->inspectorController();
1265  inspectorController->didCancelFrame();
 1262 contextDocument()->frame()->page()->inspectorController().didCancelFrame();
12661263#endif
12671264}
12681265

@@PassRefPtr<DOMWindow> Internals::openDummyInspectorFrontend(const String& url)
15501547 Page* frontendPage = m_frontendWindow->document()->page();
15511548 ASSERT(frontendPage);
15521549
1553  OwnPtr<InspectorFrontendClientDummy> frontendClient = adoptPtr(new InspectorFrontendClientDummy(page->inspectorController(), frontendPage));
 1550 auto frontendClient = std::make_unique<InspectorFrontendClientDummy>(&page->inspectorController(), frontendPage);
15541551
1555  frontendPage->inspectorController()->setInspectorFrontendClient(frontendClient.release());
 1552 frontendPage->inspectorController().setInspectorFrontendClient(std::move(frontendClient));
15561553
15571554 m_frontendChannel = adoptPtr(new InspectorFrontendChannelDummy(frontendPage));
15581555
1559  page->inspectorController()->connectFrontend(m_frontendChannel.get());
 1556 page->inspectorController().connectFrontend(m_frontendChannel.get());
15601557
15611558 return m_frontendWindow;
15621559}

@@void Internals::closeDummyInspectorFrontend()
15671564 ASSERT(page);
15681565 ASSERT(m_frontendWindow);
15691566
1570  page->inspectorController()->disconnectFrontend();
 1567 page->inspectorController().disconnectFrontend();
15711568
15721569 m_frontendChannel.release();
15731570

@@void Internals::closeDummyInspectorFrontend()
15781575void Internals::setInspectorResourcesDataSizeLimits(int maximumResourcesContentSize, int maximumSingleResourceContentSize, ExceptionCode& ec)
15791576{
15801577 Page* page = contextDocument()->frame()->page();
1581  if (!page || !page->inspectorController()) {
 1578 if (!page) {
15821579 ec = INVALID_ACCESS_ERR;
15831580 return;
15841581 }
1585  page->inspectorController()->setResourcesDataSizeLimitsFromInternals(maximumResourcesContentSize, maximumSingleResourceContentSize);
 1582 page->inspectorController().setResourcesDataSizeLimitsFromInternals(maximumResourcesContentSize, maximumSingleResourceContentSize);
15861583}
15871584
15881585void Internals::setJavaScriptProfilingEnabled(bool enabled, ExceptionCode& ec)
15891586{
15901587 Page* page = contextDocument()->frame()->page();
1591  if (!page || !page->inspectorController()) {
 1588 if (!page) {
15921589 ec = INVALID_ACCESS_ERR;
15931590 return;
15941591 }
15951592
1596  page->inspectorController()->setProfilerEnabled(enabled);
 1593 page->inspectorController().setProfilerEnabled(enabled);
15971594}
15981595#endif // ENABLE(INSPECTOR)
15991596

Source/WebCore/workers/WorkerGlobalScope.cpp

@@WorkerGlobalScope::WorkerGlobalScope(const URL& url, const String& userAgent, st
8888 , m_script(adoptPtr(new WorkerScriptController(this)))
8989 , m_thread(thread)
9090#if ENABLE(INSPECTOR)
91  , m_workerInspectorController(adoptPtr(new WorkerInspectorController(this)))
 91 , m_workerInspectorController(std::make_unique<WorkerInspectorController>(*this))
9292#endif
9393 , m_closing(false)
9494 , m_eventQueue(*this)

@@void WorkerGlobalScope::clearTimeout(int timeoutId)
192192 DOMTimer::removeById(scriptExecutionContext(), timeoutId);
193193}
194194
195 #if ENABLE(INSPECTOR)
196 void WorkerGlobalScope::clearInspector()
197 {
198  m_workerInspectorController.clear();
199 }
200 #endif
201 
202195int WorkerGlobalScope::setInterval(PassOwnPtr<ScheduledAction> action, int timeout)
203196{
204197 return DOMTimer::install(scriptExecutionContext(), action, timeout, false);

Source/WebCore/workers/WorkerGlobalScope.h

@@namespace WebCore {
7373
7474 WorkerScriptController* script() { return m_script.get(); }
7575 void clearScript() { m_script.clear(); }
76 #if ENABLE(INSPECTOR)
77  void clearInspector();
78 #endif
7976
8077 WorkerThread* thread() const { return m_thread; }
8178

@@namespace WebCore {
106103 virtual bool isJSExecutionForbidden() const OVERRIDE;
107104
108105#if ENABLE(INSPECTOR)
109  WorkerInspectorController* workerInspectorController() { return m_workerInspectorController.get(); }
 106 WorkerInspectorController& workerInspectorController() { return *m_workerInspectorController; }
110107#endif
111108 // These methods are used for GC marking. See JSWorkerGlobalScope::visitChildrenVirtual(SlotVisitor&) in
112109 // JSWorkerGlobalScopeCustom.cpp.

@@namespace WebCore {
168165 WorkerThread* m_thread;
169166
170167#if ENABLE(INSPECTOR)
171  OwnPtr<WorkerInspectorController> m_workerInspectorController;
 168 const std::unique_ptr<WorkerInspectorController> m_workerInspectorController;
172169#endif
173170 bool m_closing;
174171

Source/WebCore/workers/WorkerMessagingProxy.cpp

@@void WorkerMessagingProxy::workerObjectDestroyedInternal(ScriptExecutionContext*
409409static void connectToWorkerGlobalScopeInspectorTask(ScriptExecutionContext* context, bool)
410410{
411411 ASSERT_WITH_SECURITY_IMPLICATION(context->isWorkerGlobalScope());
412  static_cast<WorkerGlobalScope*>(context)->workerInspectorController()->connectFrontend();
 412 static_cast<WorkerGlobalScope*>(context)->workerInspectorController().connectFrontend();
413413}
414414#endif
415415

@@void WorkerMessagingProxy::connectToInspector(WorkerGlobalScopeProxy::PageInspec
428428static void disconnectFromWorkerGlobalScopeInspectorTask(ScriptExecutionContext* context, bool)
429429{
430430 ASSERT_WITH_SECURITY_IMPLICATION(context->isWorkerGlobalScope());
431  static_cast<WorkerGlobalScope*>(context)->workerInspectorController()->disconnectFrontend();
 431 static_cast<WorkerGlobalScope*>(context)->workerInspectorController().disconnectFrontend();
432432}
433433#endif
434434

@@void WorkerMessagingProxy::disconnectFromInspector()
446446static void dispatchOnInspectorBackendTask(ScriptExecutionContext* context, const String& message)
447447{
448448 ASSERT_WITH_SECURITY_IMPLICATION(context->isWorkerGlobalScope());
449  static_cast<WorkerGlobalScope*>(context)->workerInspectorController()->dispatchMessageFromFrontend(message);
 449 static_cast<WorkerGlobalScope*>(context)->workerInspectorController().dispatchMessageFromFrontend(message);
450450}
451451#endif
452452

Source/WebCore/workers/WorkerThread.cpp

@@public:
216216 {
217217 ASSERT_WITH_SECURITY_IMPLICATION(context->isWorkerGlobalScope());
218218 WorkerGlobalScope* workerGlobalScope = static_cast<WorkerGlobalScope*>(context);
219 #if ENABLE(INSPECTOR)
220  workerGlobalScope->clearInspector();
221 #endif
222219 // It's not safe to call clearScript until all the cleanup tasks posted by functions initiated by WorkerThreadShutdownStartTask have completed.
223220 workerGlobalScope->clearScript();
224221 }

Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp

@@void DumpRenderTreeSupportEfl::evaluateInWebInspector(const Evas_Object* ewkView
467467 DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page);
468468
469469 if (page->inspectorController())
470  page->inspectorController()->evaluateForTestInFrontend(callId, script);
 470 page->inspectorController().evaluateForTestInFrontend(callId, script);
471471#else
472472 UNUSED_PARAM(ewkView);
473473 UNUSED_PARAM(callId);

Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp

@@InspectorFrontendChannel* InspectorClientEfl::openInspectorFrontend(InspectorCon
9999 String inspectorUri = inspectorFilesPath() + "/Main.html";
100100 ewk_view_uri_set(m_inspectorView, inspectorUri.utf8().data());
101101
102  OwnPtr<InspectorFrontendClientEfl> frontendClient = adoptPtr(new InspectorFrontendClientEfl(m_inspectedView, m_inspectorView, this));
 102 auto frontendClient = std::make_unique<InspectorFrontendClientEfl>(m_inspectedView, m_inspectorView, this);
103103 m_frontendClient = frontendClient.get();
104104
105105 InspectorController* controller = EWKPrivate::corePage(m_inspectorView)->inspectorController();
106  controller->setInspectorFrontendClient(frontendClient.release());
 106 controller->setInspectorFrontendClient(std::move(frontendClient));
107107
108108 return this;
109109}

Source/WebKit/efl/ewk/ewk_view.cpp

@@void ewk_view_inspector_show(const Evas_Object* ewkView)
46624662 EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData);
46634663 EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv);
46644664
4665  priv->page->inspectorController()->show();
 4665 priv->page->inspectorController().show();
46664666#else
46674667 UNUSED_PARAM(ewkView);
46684668#endif

@@void ewk_view_inspector_close(const Evas_Object* ewkView)
46744674 EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData);
46754675 EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv);
46764676
4677  priv->page->inspectorController()->close();
 4677 priv->page->inspectorController().close();
46784678#else
46794679 UNUSED_PARAM(ewkView);
46804680#endif

Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp

@@static void paintWebView(WebKitWebView* webView, Frame* frame, const Region& dir
567567
568568 gc.save();
569569 gc.clip(dirtyRegion.bounds());
570  frame->page()->inspectorController()->drawHighlight(gc);
 570 frame->page()->inspectorController().drawHighlight(gc);
571571 gc.restore();
572572}
573573

Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp

@@InspectorFrontendChannel* InspectorClient::openInspectorFrontend(InspectorContro
109109 gtk_widget_show(GTK_WIDGET(inspectorWebView));
110110
111111 m_frontendPage = core(inspectorWebView);
112  OwnPtr<InspectorFrontendClient> frontendClient = adoptPtr(new InspectorFrontendClient(m_inspectedWebView, inspectorWebView, webInspector, m_frontendPage, this));
 112 auto frontendClient = std::make_unique<InspectorFrontendClient>(m_inspectedWebView, inspectorWebView, webInspector, m_frontendPage, this);
113113 m_frontendClient = frontendClient.get();
114  m_frontendPage->inspectorController()->setInspectorFrontendClient(frontendClient.release());
 114 m_frontendPage->inspectorController().setInspectorFrontendClient(std::move(frontendClient));
115115
116116 // The inspector must be in it's own PageGroup to avoid deadlock while debugging.
117117 m_frontendPage->setGroupName("");

Source/WebKit/gtk/webkit/webkitwebinspector.cpp

@@static void webkit_web_inspector_set_property(GObject* object, guint prop_id, co
353353 case PROP_JAVASCRIPT_PROFILING_ENABLED: {
354354#if ENABLE(JAVASCRIPT_DEBUGGER)
355355 bool enabled = g_value_get_boolean(value);
356  priv->page->inspectorController()->setProfilerEnabled(enabled);
 356 priv->page->inspectorController().setProfilerEnabled(enabled);
357357#else
358358 g_message("PROP_JAVASCRIPT_PROFILING_ENABLED is not work because of the javascript debugger is disabled\n");
359359#endif

@@static void webkit_web_inspector_get_property(GObject* object, guint prop_id, GV
383383 break;
384384 case PROP_JAVASCRIPT_PROFILING_ENABLED:
385385#if ENABLE(JAVASCRIPT_DEBUGGER)
386  g_value_set_boolean(value, priv->page->inspectorController()->profilerEnabled());
 386 g_value_set_boolean(value, priv->page->inspectorController().profilerEnabled());
387387#else
388388 g_message("PROP_JAVASCRIPT_PROFILING_ENABLED is not work because of the javascript debugger is disabled\n");
389389#endif

@@void webkit_web_inspector_show(WebKitWebInspector* webInspector)
491491 if (!view)
492492 return;
493493
494  priv->page->inspectorController()->show();
 494 priv->page->inspectorController().show();
495495}
496496
497497/**

@@void webkit_web_inspector_inspect_node(WebKitWebInspector* webInspector, WebKitD
508508 g_return_if_fail(WEBKIT_IS_WEB_INSPECTOR(webInspector));
509509 g_return_if_fail(WEBKIT_DOM_IS_NODE(node));
510510
511  webInspector->priv->page->inspectorController()->inspect(core(node));
 511 webInspector->priv->page->inspectorController().inspect(core(node));
512512}
513513
514514/**

@@void webkit_web_inspector_inspect_coordinates(WebKitWebInspector* webInspector,
546546 HitTestResult result(documentPoint);
547547
548548 frame.contentRenderer()->layer()->hitTest(request, result);
549  priv->page->inspectorController()->inspect(result.innerNonSharedNode());
 549 priv->page->inspectorController().inspect(result.innerNonSharedNode());
550550}
551551
552552/**

@@void webkit_web_inspector_close(WebKitWebInspector* webInspector)
562562 g_return_if_fail(WEBKIT_IS_WEB_INSPECTOR(webInspector));
563563
564564 WebKitWebInspectorPrivate* priv = webInspector->priv;
565  priv->page->inspectorController()->close();
 565 priv->page->inspectorController().close();
566566}
567567
568568void webkit_web_inspector_execute_script(WebKitWebInspector* webInspector, long callId, const gchar* script)

@@void webkit_web_inspector_execute_script(WebKitWebInspector* webInspector, long
571571 g_return_if_fail(script);
572572
573573 WebKitWebInspectorPrivate* priv = webInspector->priv;
574  priv->page->inspectorController()->evaluateForTestInFrontend(callId, script);
 574 priv->page->inspectorController().evaluateForTestInFrontend(callId, script);
575575}

Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm

@@InspectorFrontendChannel* WebInspectorClient::openInspectorFrontend(InspectorCon
145145 [windowController.get() setInspectorClient:this];
146146
147147 m_frontendPage = core([windowController.get() webView]);
148  OwnPtr<WebInspectorFrontendClient> frontendClient = adoptPtr(new WebInspectorFrontendClient(m_webView, windowController.get(), inspectorController, m_frontendPage, createFrontendSettings()));
 148 auto frontendClient = std::make_unique<WebInspectorFrontendClient>(m_webView, windowController.get(), inspectorController, m_frontendPage, createFrontendSettings());
149149 m_frontendClient = frontendClient.get();
150150 RetainPtr<WebInspectorFrontend> webInspectorFrontend = adoptNS([[WebInspectorFrontend alloc] initWithFrontendClient:frontendClient.get()]);
151151 [[m_webView inspector] setFrontend:webInspectorFrontend.get()];
152  m_frontendPage->inspectorController()->setInspectorFrontendClient(frontendClient.release());
 152 m_frontendPage->inspectorController().setInspectorFrontendClient(std::move(frontendClient));
153153 return this;
154154}
155155

@@void WebInspectorFrontendClient::append(const String& suggestedURL, const String
693693
694694 if (notifyInspectorController) {
695695 if (Page* inspectedPage = [_inspectedWebView.get() page])
696  inspectedPage->inspectorController()->disconnectFrontend();
 696 inspectedPage->inspectorController().disconnectFrontend();
697697 }
698698
699699 RetainPtr<WebInspectorWindowController> protect(self);

Source/WebKit/mac/WebInspector/WebInspector.mm

@@NSString *WebInspectorDidStopSearchingForNode = @"WebInspectorDidStopSearchingFo
6666- (void)showWindow
6767{
6868 if (Page* page = core(_webView))
69  page->inspectorController()->show();
 69 page->inspectorController().show();
7070}
7171
7272- (void)show:(id)sender

@@NSString *WebInspectorDidStopSearchingForNode = @"WebInspectorDidStopSearchingFo
142142- (BOOL)isJavaScriptProfilingEnabled
143143{
144144 if (Page* page = core(_webView))
145  return page->inspectorController()->profilerEnabled();
 145 return page->inspectorController().profilerEnabled();
146146 return NO;
147147}
148148

@@NSString *WebInspectorDidStopSearchingForNode = @"WebInspectorDidStopSearchingFo
152152 if (!page)
153153 return;
154154
155  page->inspectorController()->setProfilerEnabled(enabled);
 155 page->inspectorController().setProfilerEnabled(enabled);
156156}
157157
158158- (BOOL)isTimelineProfilingEnabled

@@NSString *WebInspectorDidStopSearchingForNode = @"WebInspectorDidStopSearchingFo
169169- (void)close:(id)sender
170170{
171171 if (Page* page = core(_webView))
172  page->inspectorController()->close();
 172 page->inspectorController().close();
173173}
174174
175175- (void)attach:(id)sender

@@NSString *WebInspectorDidStopSearchingForNode = @"WebInspectorDidStopSearchingFo
185185- (void)evaluateInFrontend:(id)sender callId:(long)callId script:(NSString *)script
186186{
187187 if (Page* page = core(_webView))
188  page->inspectorController()->evaluateForTestInFrontend(callId, script);
 188 page->inspectorController().evaluateForTestInFrontend(callId, script);
189189}
190190
191191- (void)setFrontend:(WebInspectorFrontend *)frontend

Source/WebKit/mac/WebInspector/WebNodeHighlighter.mm

6666 return; // Skip the highlight if we have no window (e.g. hidden tab).
6767
6868 if (!_currentHighlight) {
69  _currentHighlight = [[WebNodeHighlight alloc] initWithTargetView:view inspectorController:[_inspectedWebView page]->inspectorController()];
 69 _currentHighlight = [[WebNodeHighlight alloc] initWithTargetView:view inspectorController:&[_inspectedWebView page]->inspectorController()];
7070 [_currentHighlight setDelegate:self];
7171 [_currentHighlight attach];
7272 } else {

Source/WebKit/win/WebCoreSupport/WebInspectorClient.cpp

@@WebCore::InspectorFrontendChannel* WebInspectorClient::openInspectorFrontend(Ins
170170 return 0;
171171
172172 m_frontendPage = core(frontendWebView.get());
173  OwnPtr<WebInspectorFrontendClient> frontendClient = adoptPtr(new WebInspectorFrontendClient(m_inspectedWebView, m_inspectedWebViewHwnd, frontendHwnd, frontendWebView, frontendWebViewHwnd, this, createFrontendSettings()));
 173 auto frontendClient = std::make_unique<WebInspectorFrontendClient>(m_inspectedWebView, m_inspectedWebViewHwnd, frontendHwnd, frontendWebView, frontendWebViewHwnd, this, createFrontendSettings());
174174 m_frontendClient = frontendClient.get();
175  m_frontendPage->inspectorController()->setInspectorFrontendClient(frontendClient.release());
 175 m_frontendPage->inspectorController().setInspectorFrontendClient(std::move(frontendClient));
176176 m_frontendHwnd = frontendHwnd;
177177 return this;
178178}

@@void WebInspectorFrontendClient::destroyInspectorView(bool notifyInspectorContro
438438 closeWindowWithoutNotifications();
439439
440440 if (notifyInspectorController) {
441  m_inspectedWebView->page()->inspectorController()->disconnectFrontend();
 441 m_inspectedWebView->page()->inspectorController().disconnectFrontend();
442442 m_inspectorClient->updateHighlight();
443443 }
444444 ::DestroyWindow(m_frontendHwnd);

@@LRESULT WebInspectorFrontendClient::onSize(WPARAM, LPARAM)
472472LRESULT WebInspectorFrontendClient::onClose(WPARAM, LPARAM)
473473{
474474 ::ShowWindow(m_frontendHwnd, SW_HIDE);
475  m_inspectedWebView->page()->inspectorController()->close();
 475 m_inspectedWebView->page()->inspectorController().close();
476476
477477 return 0;
478478}

Source/WebKit/win/WebInspector.cpp

@@HRESULT STDMETHODCALLTYPE WebInspector::show()
109109{
110110 if (m_webView)
111111 if (Page* page = m_webView->page())
112  page->inspectorController()->show();
 112 page->inspectorController().show();
113113
114114 return S_OK;
115115}

@@HRESULT STDMETHODCALLTYPE WebInspector::close()
131131{
132132 if (m_webView)
133133 if (Page* page = m_webView->page())
134  page->inspectorController()->close();
 134 page->inspectorController().close();
135135
136136 return S_OK;
137137}

@@HRESULT STDMETHODCALLTYPE WebInspector::isJavaScriptProfilingEnabled(BOOL* isPro
219219 if (!page)
220220 return S_OK;
221221
222  *isProfilingEnabled = page->inspectorController()->profilerEnabled();
 222 *isProfilingEnabled = page->inspectorController().profilerEnabled();
223223 return S_OK;
224224}
225225

@@HRESULT STDMETHODCALLTYPE WebInspector::setJavaScriptProfilingEnabled(BOOL enabl
232232 if (!page)
233233 return S_OK;
234234
235  page->inspectorController()->setProfilerEnabled(enabled);
 235 page->inspectorController().setProfilerEnabled(enabled);
236236
237237 return S_OK;
238238}

@@HRESULT STDMETHODCALLTYPE WebInspector::evaluateInFrontend(ULONG callId, BSTR b
247247 return S_OK;
248248
249249 String script(bScript, SysStringLen(bScript));
250  page->inspectorController()->evaluateForTestInFrontend(callId, script);
 250 page->inspectorController().evaluateForTestInFrontend(callId, script);
251251 return S_OK;
252252}
253253

Source/WebKit/win/WebNodeHighlight.cpp

@@void WebNodeHighlight::update()
165165
166166 GraphicsContext context(hdc.get());
167167#if ENABLE(INSPECTOR)
168  m_inspectedWebView->page()->inspectorController()->drawHighlight(context);
169 #endif // ENABLE(INSPECTOR)
 168 m_inspectedWebView->page()->inspectorController().drawHighlight(context);
 169#endif
170170
171171 BLENDFUNCTION bf;
172172 bf.BlendOp = AC_SRC_OVER;

Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp

@@void WebInspectorClient::didMoveToWebPage(PageOverlay*, WebPage*)
145145
146146void WebInspectorClient::drawRect(PageOverlay*, WebCore::GraphicsContext& context, const WebCore::IntRect& /*dirtyRect*/)
147147{
148  m_page->corePage()->inspectorController()->drawHighlight(context);
 148 m_page->corePage()->inspectorController().drawHighlight(context);
149149}
150150
151151bool WebInspectorClient::mouseEvent(PageOverlay*, const WebMouseEvent&)

Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp

@@using namespace WebCore;
4040namespace WebKit {
4141
4242WebInspectorFrontendClient::WebInspectorFrontendClient(WebPage* page, WebPage* inspectorPage)
43  : InspectorFrontendClientLocal(page->corePage()->inspectorController(), inspectorPage->corePage(), adoptPtr(new Settings()))
 43 : InspectorFrontendClientLocal(&page->corePage()->inspectorController(), inspectorPage->corePage(), adoptPtr(new Settings()))
4444 , m_page(page)
4545{
4646}

@@void WebInspectorFrontendClient::bringToFront()
5757
5858void WebInspectorFrontendClient::closeWindow()
5959{
60  m_page->corePage()->inspectorController()->disconnectFrontend();
 60 m_page->corePage()->inspectorController().disconnectFrontend();
6161 m_page->inspector()->didClose();
6262}
6363

Source/WebKit2/WebProcess/WebPage/WebInspector.cpp

@@WebPage* WebInspector::createInspectorPage()
8989 m_inspectorPage = WebProcess::shared().webPage(inspectorPageID);
9090 ASSERT(m_inspectorPage);
9191
92  OwnPtr<WebInspectorFrontendClient> frontendClient = adoptPtr(new WebInspectorFrontendClient(m_page, m_inspectorPage));
 92 auto frontendClient = std::make_unique<WebInspectorFrontendClient>(m_page, m_inspectorPage);
9393 m_frontendClient = frontendClient.get();
94  m_inspectorPage->corePage()->inspectorController()->setInspectorFrontendClient(frontendClient.release());
 94 m_inspectorPage->corePage()->inspectorController().setInspectorFrontendClient(std::move(frontendClient));
9595 return m_inspectorPage;
9696}
9797

@@void WebInspector::setToolbarHeight(unsigned height)
162162// Called by WebInspector messages
163163void WebInspector::show()
164164{
165  m_page->corePage()->inspectorController()->show();
 165 m_page->corePage()->inspectorController().show();
166166}
167167
168168void WebInspector::close()
169169{
170  m_page->corePage()->inspectorController()->close();
 170 m_page->corePage()->inspectorController().close();
171171}
172172
173173void WebInspector::didSave(const String& url)

@@void WebInspector::detached()
202202
203203void WebInspector::evaluateScriptForTest(long callID, const String& script)
204204{
205  m_page->corePage()->inspectorController()->evaluateForTestInFrontend(callID, script);
 205 m_page->corePage()->inspectorController().evaluateForTestInFrontend(callID, script);
206206}
207207
208208void WebInspector::showConsole()
209209{
210  m_page->corePage()->inspectorController()->show();
 210 m_page->corePage()->inspectorController().show();
211211 if (m_frontendClient)
212212 m_frontendClient->showConsole();
213213}
214214
215215void WebInspector::showResources()
216216{
217  m_page->corePage()->inspectorController()->show();
 217 m_page->corePage()->inspectorController().show();
218218 if (m_frontendClient)
219219 m_frontendClient->showResources();
220220}

@@void WebInspector::showMainResourceForFrame(uint64_t frameID)
225225 if (!frame)
226226 return;
227227
228  m_page->corePage()->inspectorController()->show();
 228 m_page->corePage()->inspectorController().show();
229229 if (m_frontendClient)
230230 m_frontendClient->showMainResourceForFrame(frame->coreFrame());
231231}

@@void WebInspector::showMainResourceForFrame(uint64_t frameID)
233233void WebInspector::startJavaScriptDebugging()
234234{
235235#if ENABLE(JAVASCRIPT_DEBUGGER)
236  m_page->corePage()->inspectorController()->show();
 236 m_page->corePage()->inspectorController().show();
237237 if (m_frontendClient)
238238 m_frontendClient->setDebuggingEnabled(true);
239239#endif

@@void WebInspector::startJavaScriptDebugging()
242242void WebInspector::stopJavaScriptDebugging()
243243{
244244#if ENABLE(JAVASCRIPT_DEBUGGER)
245  m_page->corePage()->inspectorController()->show();
 245 m_page->corePage()->inspectorController().show();
246246 if (m_frontendClient)
247247 m_frontendClient->setDebuggingEnabled(false);
248248#endif

@@void WebInspector::stopJavaScriptDebugging()
251251void WebInspector::setJavaScriptProfilingEnabled(bool enabled)
252252{
253253#if ENABLE(JAVASCRIPT_DEBUGGER)
254  m_page->corePage()->inspectorController()->show();
 254 m_page->corePage()->inspectorController().show();
255255 if (!m_frontendClient)
256256 return;
257257
258  m_page->corePage()->inspectorController()->setProfilerEnabled(enabled);
 258 m_page->corePage()->inspectorController().setProfilerEnabled(enabled);
259259#endif
260260}
261261
262262void WebInspector::startJavaScriptProfiling()
263263{
264264#if ENABLE(JAVASCRIPT_DEBUGGER)
265  m_page->corePage()->inspectorController()->show();
 265 m_page->corePage()->inspectorController().show();
266266 if (m_frontendClient)
267267 m_frontendClient->startProfilingJavaScript();
268268#endif

@@void WebInspector::startJavaScriptProfiling()
271271void WebInspector::stopJavaScriptProfiling()
272272{
273273#if ENABLE(JAVASCRIPT_DEBUGGER)
274  m_page->corePage()->inspectorController()->show();
 274 m_page->corePage()->inspectorController().show();
275275 if (m_frontendClient)
276276 m_frontendClient->stopProfilingJavaScript();
277277#endif

@@void WebInspector::stopJavaScriptProfiling()
279279
280280void WebInspector::startPageProfiling()
281281{
282  m_page->corePage()->inspectorController()->show();
 282 m_page->corePage()->inspectorController().show();
283283 if (m_frontendClient)
284284 m_frontendClient->setTimelineProfilingEnabled(true);
285285}
286286
287287void WebInspector::stopPageProfiling()
288288{
289  m_page->corePage()->inspectorController()->show();
 289 m_page->corePage()->inspectorController().show();
290290 if (m_frontendClient)
291291 m_frontendClient->setTimelineProfilingEnabled(false);
292292}

@@void WebInspector::sendMessageToRemoteFrontend(const String& message)
310310
311311void WebInspector::dispatchMessageFromRemoteFrontend(const String& message)
312312{
313  m_page->corePage()->inspectorController()->dispatchMessageFromFrontend(message);
 313 m_page->corePage()->inspectorController().dispatchMessageFromFrontend(message);
314314}
315315
316316void WebInspector::remoteFrontendConnected()

@@void WebInspector::remoteFrontendConnected()
319319 // Switching between in-process and remote inspectors isn't supported yet.
320320 ASSERT(!m_inspectorPage);
321321
322  m_page->corePage()->inspectorController()->connectFrontend(m_frontendChannel);
 322 m_page->corePage()->inspectorController().connectFrontend(m_frontendChannel);
323323 m_remoteFrontendConnected = true;
324324}
325325
326326void WebInspector::remoteFrontendDisconnected()
327327{
328328 ASSERT(m_remoteFrontendConnected);
329  m_page->corePage()->inspectorController()->disconnectFrontend();
 329 m_page->corePage()->inspectorController().disconnectFrontend();
330330 m_remoteFrontendConnected = false;
331331}
332332#endif