Example #1
0
static void
load_status_cb (GObject* object, GParamSpec* pspec, gpointer data) {
    WebKitDOMDocument *document;
    WebKitWebView *web_view;
    WebKitLoadStatus status;
    Ctx *ctx;
    gulong count;
    gint64 now, elapsed;

    ctx = (Ctx *) data;
    web_view = WEBKIT_WEB_VIEW(object);
    status = webkit_web_view_get_load_status(web_view);
    if (status != WEBKIT_LOAD_FINISHED) {
        return;
    }

    /* We now know that the document has been loaded */
    g_main_loop_quit(ctx->loop);
    now = g_get_monotonic_time();
    printf("Document loaded in %lldms\n", TO_MS(now - (ctx->start_time)));

    document = webkit_web_view_get_dom_document(web_view);
    count = walk_dom(WEBKIT_DOM_NODE(document));
    elapsed = g_get_monotonic_time() - now;
    printf("Document has %ld nodes and took %lldms to walk\n", count, TO_MS(elapsed));
}
Example #2
0
/*
 * ----------------------------------------------------------------------------
 *
 * DevGraphicsInit --
 *
 *	Initialize the mouse and the screen.
 *
 * Results:
 *	None.
 *
 * Side effects:
 *	The world is initialized.
 *
 * ----------------------------------------------------------------------------
 */
void
DevGraphicsInit()
{
    Time		time;
    int			i;
    int			slot;
    Mach_SlotInfo	slotInfo;
    ReturnStatus	status;
    char		*slotAddr;
    DisplayInfo		*displayInfoPtr = (DisplayInfo *) NIL;

    Sync_SemInitDynamic(&graphicsMutex, "graphicsMutex");
    for (i = 0; i < numConfigDisplays; i++) {
	displayInfoPtr = &configDisplays[i];
	for (slot = 0; slot < 3; slot++) {
	    slotAddr = (char *) MACH_IO_SLOT_ADDR(slot);
	    status = Mach_GetSlotInfo(slotAddr + displayInfoPtr->romOffset, 
			&slotInfo);
	    if (status == SUCCESS) {
		if ((!strcmp(slotInfo.vendor, displayInfoPtr->vendor)) && 
		    (!strcmp(slotInfo.module, displayInfoPtr->module))) {
		    displayType = displayInfoPtr->type;
		    break;
		}
	    }
	}
	if (displayType != UNKNOWN) {
	    break;
	}
    }
    switch (displayType) {
	case UNKNOWN :
	    Mach_MonPrintf(
		"Assuming you have one of those fancy graphics displays.\n");
	    displayType = PMAGDA;
	    break;
	case PMAGBA:
	    Mach_MonPrintf("Color frame buffer in slot %d, (%s %s %s %s)\n",
			slot, slotInfo.module, slotInfo.vendor,
			slotInfo.revision, slotInfo.type);
	    break;
    }
    if (displayType == PMAGBA) {
	ramdac.addrLowPtr = (unsigned char *) (slotAddr + PMAGBA_RAMDAC_OFFSET);
	ramdac.addrHighPtr = (unsigned char *) 
				(slotAddr + PMAGBA_RAMDAC_OFFSET + 0x4);
	ramdac.regPtr = (unsigned char *) 
				(slotAddr + PMAGBA_RAMDAC_OFFSET + 0x8);
	ramdac.colorMap = (unsigned char *) 
				(slotAddr + PMAGBA_RAMDAC_OFFSET + 0xc);

	/*
	 * Initialize screen info.
	 */
	scrInfoPtr = (DevScreenInfo *) MACH_UNCACHED_ADDR(&scrInfoCached);
	events = (DevEvent *) MACH_UNCACHED_ADDR(eventsCached);
	tcs = (DevTimeCoord *)  MACH_UNCACHED_ADDR(tcsCached);

	InitScreenDefaults(scrInfoPtr);
	scrInfoPtr->eventQueue.events = events;
	scrInfoPtr->eventQueue.tcs = tcs;
	frameBuffer = (char *) (slotAddr + PMAGBA_BUFFER_OFFSET);
	scrInfoPtr->bitmap = (char *) frameBuffer;
	scrInfoPtr->cursorBits = (short *)(cursorBits);
	Timer_GetRealTimeOfDay(&time, (int *) NIL, (Boolean *) NIL);
	scrInfoPtr->eventQueue.timestampMS = TO_MS(time);
	scrInfoPtr->eventQueue.eSize = DEV_MAXEVQ;
	scrInfoPtr->eventQueue.eHead = scrInfoPtr->eventQueue.eTail = 0;
	scrInfoPtr->eventQueue.tcSize = MOTION_BUFFER_SIZE;
	scrInfoPtr->eventQueue.tcNext = 0;

	/*
	 * Initialize the color map, and the screen, and the mouse.
	 */
	InitColorMap();
	ScreenInit();
    }
    MouseInit();
    Scroll();

    /*
     * Init the "latest mouse report" structure
     */
    lastRep.state = 0;
    lastRep.dx = 0;
    lastRep.dy = 0;
    lastRep.byteCount = 0;


    /*
     * Reset the keyboard.
     */
    if(!inKBDReset) {
	KBDReset();
    }

    if (displayType == PMAGBA) {
	/*
	 * Clear any pending video interrupts.
	 */

	* ((int *) (slotAddr + PMAGBA_IREQ_OFFSET)) = 1;
    }

    initialized = TRUE;

    bzero((char *) debugArray, sizeof(debugArray));
}