Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(352)

Side by Side Diff: Source/core/inspector/InspectorDOMAgent.cpp

Issue 237313003: CSS shapes support in Web Inspector (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Updated test to use inspector protocol instead of internals Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2009 Apple Inc. All rights reserved.
3 * Copyright (C) 2011 Google Inc. All rights reserved. 3 * Copyright (C) 2011 Google Inc. All rights reserved.
4 * Copyright (C) 2009 Joseph Pecoraro 4 * Copyright (C) 2009 Joseph Pecoraro
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 9 *
10 * 1. Redistributions of source code must retain the above copyright 10 * 1. Redistributions of source code must retain the above copyright
(...skipping 1367 matching lines...) Expand 10 before | Expand all | Expand 10 after
1378 return array.release(); 1378 return array.release();
1379 } 1379 }
1380 1380
1381 void InspectorDOMAgent::getBoxModel(ErrorString* errorString, int nodeId, RefPtr <TypeBuilder::DOM::BoxModel>& model) 1381 void InspectorDOMAgent::getBoxModel(ErrorString* errorString, int nodeId, RefPtr <TypeBuilder::DOM::BoxModel>& model)
1382 { 1382 {
1383 Node* node = assertNode(errorString, nodeId); 1383 Node* node = assertNode(errorString, nodeId);
1384 if (!node) 1384 if (!node)
1385 return; 1385 return;
1386 1386
1387 Vector<FloatQuad> quads; 1387 Vector<FloatQuad> quads;
1388 bool isInlineOrBox = m_overlay->getBoxModel(node, &quads); 1388 String shapeOutsideInfo;
1389 bool isInlineOrBox = m_overlay->getBoxModel(node, &quads, shapeOutsideInfo);
1389 if (!isInlineOrBox) { 1390 if (!isInlineOrBox) {
1390 *errorString = "Could not compute box model."; 1391 *errorString = "Could not compute box model.";
1391 return; 1392 return;
1392 } 1393 }
1393 1394
1394 RenderObject* renderer = node->renderer(); 1395 RenderObject* renderer = node->renderer();
1395 LocalFrame* frame = node->document().frame(); 1396 LocalFrame* frame = node->document().frame();
1396 FrameView* view = frame->view(); 1397 FrameView* view = frame->view();
1397 1398
1398 IntRect boundingBox = pixelSnappedIntRect(view->contentsToRootView(renderer- >absoluteBoundingBoxRect())); 1399 IntRect boundingBox = pixelSnappedIntRect(view->contentsToRootView(renderer- >absoluteBoundingBoxRect()));
1399 RenderBoxModelObject* modelObject = renderer->isBoxModelObject() ? toRenderB oxModelObject(renderer) : 0; 1400 RenderBoxModelObject* modelObject = renderer->isBoxModelObject() ? toRenderB oxModelObject(renderer) : 0;
1400 1401
1401 model = TypeBuilder::DOM::BoxModel::create() 1402 model = TypeBuilder::DOM::BoxModel::create()
1402 .setContent(buildArrayForQuad(quads.at(3))) 1403 .setContent(buildArrayForQuad(quads.at(3)))
1403 .setPadding(buildArrayForQuad(quads.at(2))) 1404 .setPadding(buildArrayForQuad(quads.at(2)))
1404 .setBorder(buildArrayForQuad(quads.at(1))) 1405 .setBorder(buildArrayForQuad(quads.at(1)))
1405 .setMargin(buildArrayForQuad(quads.at(0))) 1406 .setMargin(buildArrayForQuad(quads.at(0)))
1406 .setWidth(modelObject ? adjustForAbsoluteZoom(modelObject->pixelSnappedO ffsetWidth(), modelObject) : boundingBox.width()) 1407 .setWidth(modelObject ? adjustForAbsoluteZoom(modelObject->pixelSnappedO ffsetWidth(), modelObject) : boundingBox.width())
1407 .setHeight(modelObject ? adjustForAbsoluteZoom(modelObject->pixelSnapped OffsetHeight(), modelObject) : boundingBox.height()); 1408 .setHeight(modelObject ? adjustForAbsoluteZoom(modelObject->pixelSnapped OffsetHeight(), modelObject) : boundingBox.height())
1409 .setShapeOutside(shapeOutsideInfo);
1408 } 1410 }
1409 1411
1410 void InspectorDOMAgent::getNodeForLocation(ErrorString* errorString, int x, int y, int* nodeId) 1412 void InspectorDOMAgent::getNodeForLocation(ErrorString* errorString, int x, int y, int* nodeId)
1411 { 1413 {
1412 if (!pushDocumentUponHandlelessOperation(errorString)) 1414 if (!pushDocumentUponHandlelessOperation(errorString))
1413 return; 1415 return;
1414 1416
1415 Node* node = hoveredNodeForPoint(m_document->frame(), IntPoint(x, y), false) ; 1417 Node* node = hoveredNodeForPoint(m_document->frame(), IntPoint(x, y), false) ;
1416 if (!node) { 1418 if (!node) {
1417 *errorString = "No node found at given location"; 1419 *errorString = "No node found at given location";
(...skipping 684 matching lines...) Expand 10 before | Expand all | Expand 10 after
2102 if (!m_documentNodeToIdMap.contains(m_document)) { 2104 if (!m_documentNodeToIdMap.contains(m_document)) {
2103 RefPtr<TypeBuilder::DOM::Node> root; 2105 RefPtr<TypeBuilder::DOM::Node> root;
2104 getDocument(errorString, root); 2106 getDocument(errorString, root);
2105 return errorString->isEmpty(); 2107 return errorString->isEmpty();
2106 } 2108 }
2107 return true; 2109 return true;
2108 } 2110 }
2109 2111
2110 } // namespace WebCore 2112 } // namespace WebCore
2111 2113
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698