void InspectorFrontendClientLocal::requestSetDockSide(DockSide dockSide) { if (dockSide == DockSide::Undocked) { detachWindow(); setAttachedWindow(dockSide); } else if (canAttachWindow()) { attachWindow(dockSide); setAttachedWindow(dockSide); } }
void InspectorFrontendClientLocal::frontendLoaded() { // Call setDockingUnavailable before bringToFront. If we display the inspector window via bringToFront first it causes // the call to canAttachWindow to return the wrong result on Windows. // Calling bringToFront first causes the visibleHeight of the inspected page to always return 0 immediately after. // Thus if we call canAttachWindow first we can avoid this problem. This change does not cause any regressions on Mac. setDockingUnavailable(!canAttachWindow()); bringToFront(); m_frontendLoaded = true; for (Vector<String>::iterator it = m_evaluateOnLoad.begin(); it != m_evaluateOnLoad.end(); ++it) evaluateOnLoad(*it); m_evaluateOnLoad.clear(); }
// Called from WebInspectorClient void WebInspector::openFrontendConnection(bool underTest) { #if USE(UNIX_DOMAIN_SOCKETS) IPC::Connection::SocketPair socketPair = IPC::Connection::createPlatformConnection(); IPC::Connection::Identifier connectionIdentifier(socketPair.server); IPC::Attachment connectionClientPort(socketPair.client); #elif OS(DARWIN) mach_port_t listeningPort; mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_RECEIVE, &listeningPort); mach_port_insert_right(mach_task_self(), listeningPort, listeningPort, MACH_MSG_TYPE_MAKE_SEND); IPC::Connection::Identifier connectionIdentifier(listeningPort); IPC::Attachment connectionClientPort(listeningPort, MACH_MSG_TYPE_MOVE_SEND); #else notImplemented(); return; #endif m_frontendConnection = IPC::Connection::createServerConnection(connectionIdentifier, *this); m_frontendConnection->open(); WebProcess::singleton().parentProcessConnection()->send(Messages::WebInspectorProxy::CreateInspectorPage(connectionClientPort, canAttachWindow(), underTest), m_page->pageID()); }