| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 #include "config.h" | 31 #include "config.h" |
| 32 #include "core/inspector/InspectorPageAgent.h" | 32 #include "core/inspector/InspectorPageAgent.h" |
| 33 | 33 |
| 34 #include "bindings/core/v8/DOMWrapperWorld.h" | 34 #include "bindings/core/v8/DOMWrapperWorld.h" |
| 35 #include "bindings/core/v8/ScriptController.h" | 35 #include "bindings/core/v8/ScriptController.h" |
| 36 #include "bindings/core/v8/ScriptRegexp.h" | 36 #include "bindings/core/v8/ScriptRegexp.h" |
| 37 #include "core/HTMLNames.h" | 37 #include "core/HTMLNames.h" |
| 38 #include "core/animation/AnimationTimeline.h" | 38 #include "core/animation/AnimationTimeline.h" |
| 39 #include "core/css/StyleSheetContents.h" | 39 #include "core/css/StyleSheetContents.h" |
| 40 #include "core/css/resolver/StyleResolver.h" | 40 #include "core/css/resolver/StyleResolver.h" |
| 41 #include "core/css/resolver/ViewportStyleResolver.h" | |
| 42 #include "core/dom/DOMImplementation.h" | 41 #include "core/dom/DOMImplementation.h" |
| 43 #include "core/dom/Document.h" | 42 #include "core/dom/Document.h" |
| 44 #include "core/fetch/CSSStyleSheetResource.h" | 43 #include "core/fetch/CSSStyleSheetResource.h" |
| 45 #include "core/fetch/FontResource.h" | 44 #include "core/fetch/FontResource.h" |
| 46 #include "core/fetch/ImageResource.h" | 45 #include "core/fetch/ImageResource.h" |
| 47 #include "core/fetch/MemoryCache.h" | 46 #include "core/fetch/MemoryCache.h" |
| 48 #include "core/fetch/Resource.h" | 47 #include "core/fetch/Resource.h" |
| 49 #include "core/fetch/ResourceFetcher.h" | 48 #include "core/fetch/ResourceFetcher.h" |
| 50 #include "core/fetch/ScriptResource.h" | 49 #include "core/fetch/ScriptResource.h" |
| 51 #include "core/frame/FrameView.h" | 50 #include "core/frame/FrameView.h" |
| (...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 432 , m_lastScriptIdentifier(0) | 431 , m_lastScriptIdentifier(0) |
| 433 , m_enabled(false) | 432 , m_enabled(false) |
| 434 , m_ignoreScriptsEnabledNotification(false) | 433 , m_ignoreScriptsEnabledNotification(false) |
| 435 , m_deviceMetricsOverridden(false) | 434 , m_deviceMetricsOverridden(false) |
| 436 , m_emulateMobileEnabled(false) | 435 , m_emulateMobileEnabled(false) |
| 437 , m_touchEmulationEnabled(false) | 436 , m_touchEmulationEnabled(false) |
| 438 , m_originalTouchEnabled(false) | 437 , m_originalTouchEnabled(false) |
| 439 , m_originalDeviceSupportsMouse(false) | 438 , m_originalDeviceSupportsMouse(false) |
| 440 , m_originalDeviceSupportsTouch(false) | 439 , m_originalDeviceSupportsTouch(false) |
| 441 , m_originalMaxTouchPoints(0) | 440 , m_originalMaxTouchPoints(0) |
| 441 , m_embedderFontScaleFactor(m_page->settings().deviceScaleAdjustment()) |
| 442 , m_embedderTextAutosizingEnabled(m_page->settings().textAutosizingEnabled()
) | 442 , m_embedderTextAutosizingEnabled(m_page->settings().textAutosizingEnabled()
) |
| 443 , m_embedderFontScaleFactor(m_page->settings().deviceScaleAdjustment()) | |
| 444 , m_embedderPreferCompositingToLCDTextEnabled(m_page->settings().preferCompo
sitingToLCDTextEnabled()) | 443 , m_embedderPreferCompositingToLCDTextEnabled(m_page->settings().preferCompo
sitingToLCDTextEnabled()) |
| 445 , m_reloading(false) | 444 , m_reloading(false) |
| 445 , m_embedderUseMobileViewport(m_page->settings().useMobileViewportStyle()) |
| 446 { | 446 { |
| 447 } | 447 } |
| 448 | 448 |
| 449 void InspectorPageAgent::setTextAutosizingEnabled(bool enabled) | 449 void InspectorPageAgent::setTextAutosizingEnabled(bool enabled) |
| 450 { | 450 { |
| 451 m_embedderTextAutosizingEnabled = enabled; | 451 m_embedderTextAutosizingEnabled = enabled; |
| 452 bool emulateMobileEnabled = m_enabled && m_deviceMetricsOverridden && m_emul
ateMobileEnabled; | 452 bool emulateMobileEnabled = m_enabled && m_deviceMetricsOverridden && m_emul
ateMobileEnabled; |
| 453 if (!emulateMobileEnabled) | 453 if (!emulateMobileEnabled) |
| 454 m_page->settings().setTextAutosizingEnabled(enabled); | 454 m_page->settings().setTextAutosizingEnabled(enabled); |
| 455 } | 455 } |
| 456 | 456 |
| 457 void InspectorPageAgent::setDeviceScaleAdjustment(float deviceScaleAdjustment) | 457 void InspectorPageAgent::setDeviceScaleAdjustment(float deviceScaleAdjustment) |
| 458 { | 458 { |
| 459 m_embedderFontScaleFactor = deviceScaleAdjustment; | 459 m_embedderFontScaleFactor = deviceScaleAdjustment; |
| 460 bool emulateMobileEnabled = m_enabled && m_deviceMetricsOverridden && m_emul
ateMobileEnabled; | 460 bool emulateMobileEnabled = m_enabled && m_deviceMetricsOverridden && m_emul
ateMobileEnabled; |
| 461 if (!emulateMobileEnabled) | 461 if (!emulateMobileEnabled) |
| 462 m_page->settings().setDeviceScaleAdjustment(deviceScaleAdjustment); | 462 m_page->settings().setDeviceScaleAdjustment(deviceScaleAdjustment); |
| 463 } | 463 } |
| 464 | 464 |
| 465 void InspectorPageAgent::setPreferCompositingToLCDTextEnabled(bool enabled) | 465 void InspectorPageAgent::setPreferCompositingToLCDTextEnabled(bool enabled) |
| 466 { | 466 { |
| 467 m_embedderPreferCompositingToLCDTextEnabled = enabled; | 467 m_embedderPreferCompositingToLCDTextEnabled = enabled; |
| 468 bool emulateMobileEnabled = m_enabled && m_deviceMetricsOverridden && m_emul
ateMobileEnabled; | 468 bool emulateMobileEnabled = m_enabled && m_deviceMetricsOverridden && m_emul
ateMobileEnabled; |
| 469 if (!emulateMobileEnabled) | 469 if (!emulateMobileEnabled) |
| 470 m_page->settings().setPreferCompositingToLCDTextEnabled(enabled); | 470 m_page->settings().setPreferCompositingToLCDTextEnabled(enabled); |
| 471 } | 471 } |
| 472 | 472 |
| 473 void InspectorPageAgent::setUseMobileViewportStyle(bool enabled) |
| 474 { |
| 475 m_embedderUseMobileViewport = enabled; |
| 476 bool emulateMobileEnabled = m_enabled && m_deviceMetricsOverridden && m_emul
ateMobileEnabled; |
| 477 if (!emulateMobileEnabled) |
| 478 m_page->settings().setUseMobileViewportStyle(enabled); |
| 479 } |
| 480 |
| 473 void InspectorPageAgent::setFrontend(InspectorFrontend* frontend) | 481 void InspectorPageAgent::setFrontend(InspectorFrontend* frontend) |
| 474 { | 482 { |
| 475 m_frontend = frontend->page(); | 483 m_frontend = frontend->page(); |
| 476 } | 484 } |
| 477 | 485 |
| 478 void InspectorPageAgent::clearFrontend() | 486 void InspectorPageAgent::clearFrontend() |
| 479 { | 487 { |
| 480 ErrorString error; | 488 ErrorString error; |
| 481 disable(&error); | 489 disable(&error); |
| 482 m_frontend = 0; | 490 m_frontend = 0; |
| (...skipping 902 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1385 Document* document = inspectedFrame()->document(); | 1393 Document* document = inspectedFrame()->document(); |
| 1386 if (document) { | 1394 if (document) { |
| 1387 document->styleResolverChanged(); | 1395 document->styleResolverChanged(); |
| 1388 document->mediaQueryAffectingValueChanged(); | 1396 document->mediaQueryAffectingValueChanged(); |
| 1389 } | 1397 } |
| 1390 | 1398 |
| 1391 if (m_deviceMetricsOverridden) { | 1399 if (m_deviceMetricsOverridden) { |
| 1392 m_page->settings().setTextAutosizingEnabled(mobile); | 1400 m_page->settings().setTextAutosizingEnabled(mobile); |
| 1393 m_page->settings().setPreferCompositingToLCDTextEnabled(mobile); | 1401 m_page->settings().setPreferCompositingToLCDTextEnabled(mobile); |
| 1394 m_page->settings().setDeviceScaleAdjustment(calculateFontScaleFactor(wid
th, height, static_cast<float>(deviceScaleFactor))); | 1402 m_page->settings().setDeviceScaleAdjustment(calculateFontScaleFactor(wid
th, height, static_cast<float>(deviceScaleFactor))); |
| 1403 m_page->settings().setUseMobileViewportStyle(mobile); |
| 1395 } else { | 1404 } else { |
| 1396 m_page->settings().setTextAutosizingEnabled(m_embedderTextAutosizingEnab
led); | 1405 m_page->settings().setTextAutosizingEnabled(m_embedderTextAutosizingEnab
led); |
| 1397 m_page->settings().setPreferCompositingToLCDTextEnabled(m_embedderPrefer
CompositingToLCDTextEnabled); | 1406 m_page->settings().setPreferCompositingToLCDTextEnabled(m_embedderPrefer
CompositingToLCDTextEnabled); |
| 1398 m_page->settings().setDeviceScaleAdjustment(m_embedderFontScaleFactor); | 1407 m_page->settings().setDeviceScaleAdjustment(m_embedderFontScaleFactor); |
| 1408 m_page->settings().setUseMobileViewportStyle(m_embedderUseMobileViewport
); |
| 1399 } | 1409 } |
| 1400 | 1410 |
| 1401 // FIXME: allow metrics override, fps counter and continuous painting at the
same time: crbug.com/299837. | 1411 // FIXME: allow metrics override, fps counter and continuous painting at the
same time: crbug.com/299837. |
| 1402 m_client->setShowFPSCounter(m_state->getBoolean(PageAgentState::pageAgentSho
wFPSCounter) && !m_deviceMetricsOverridden); | 1412 m_client->setShowFPSCounter(m_state->getBoolean(PageAgentState::pageAgentSho
wFPSCounter) && !m_deviceMetricsOverridden); |
| 1403 m_client->setContinuousPaintingEnabled(m_state->getBoolean(PageAgentState::p
ageAgentContinuousPaintingEnabled) && !m_deviceMetricsOverridden); | 1413 m_client->setContinuousPaintingEnabled(m_state->getBoolean(PageAgentState::p
ageAgentContinuousPaintingEnabled) && !m_deviceMetricsOverridden); |
| 1404 } | 1414 } |
| 1405 | 1415 |
| 1406 void InspectorPageAgent::updateTouchEventEmulationInPage(bool enabled) | 1416 void InspectorPageAgent::updateTouchEventEmulationInPage(bool enabled) |
| 1407 { | 1417 { |
| 1408 if (!inspectedFrame()->isMainFrame()) | 1418 if (!inspectedFrame()->isMainFrame()) |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1444 | 1454 |
| 1445 m_state->setString(PageAgentState::pageAgentEmulatedMedia, media); | 1455 m_state->setString(PageAgentState::pageAgentEmulatedMedia, media); |
| 1446 Document* document = inspectedFrame()->document(); | 1456 Document* document = inspectedFrame()->document(); |
| 1447 if (document) { | 1457 if (document) { |
| 1448 document->mediaQueryAffectingValueChanged(); | 1458 document->mediaQueryAffectingValueChanged(); |
| 1449 document->styleResolverChanged(); | 1459 document->styleResolverChanged(); |
| 1450 document->updateLayout(); | 1460 document->updateLayout(); |
| 1451 } | 1461 } |
| 1452 } | 1462 } |
| 1453 | 1463 |
| 1454 bool InspectorPageAgent::applyViewportStyleOverride(StyleResolver* resolver) | |
| 1455 { | |
| 1456 if (!m_deviceMetricsOverridden || !m_emulateMobileEnabled) | |
| 1457 return false; | |
| 1458 | |
| 1459 RefPtrWillBeRawPtr<StyleSheetContents> styleSheet = StyleSheetContents::crea
te(CSSParserContext(UASheetMode, 0)); | |
| 1460 styleSheet->parseString(loadResourceAsASCIIString("viewportAndroid.css")); | |
| 1461 OwnPtrWillBeRawPtr<RuleSet> ruleSet = RuleSet::create(); | |
| 1462 ruleSet->addRulesFromSheet(styleSheet.get(), MediaQueryEvaluator("screen")); | |
| 1463 resolver->viewportStyleResolver()->collectViewportRules(ruleSet.get(), Viewp
ortStyleResolver::UserAgentOrigin); | |
| 1464 return true; | |
| 1465 } | |
| 1466 | |
| 1467 void InspectorPageAgent::applyEmulatedMedia(String* media) | 1464 void InspectorPageAgent::applyEmulatedMedia(String* media) |
| 1468 { | 1465 { |
| 1469 String emulatedMedia = m_state->getString(PageAgentState::pageAgentEmulatedM
edia); | 1466 String emulatedMedia = m_state->getString(PageAgentState::pageAgentEmulatedM
edia); |
| 1470 if (!emulatedMedia.isEmpty()) | 1467 if (!emulatedMedia.isEmpty()) |
| 1471 *media = emulatedMedia; | 1468 *media = emulatedMedia; |
| 1472 } | 1469 } |
| 1473 | 1470 |
| 1474 bool InspectorPageAgent::compositingEnabled(ErrorString* errorString) | 1471 bool InspectorPageAgent::compositingEnabled(ErrorString* errorString) |
| 1475 { | 1472 { |
| 1476 if (!m_page->settings().acceleratedCompositingEnabled()) { | 1473 if (!m_page->settings().acceleratedCompositingEnabled()) { |
| (...skipping 30 matching lines...) Expand all Loading... |
| 1507 visitor->trace(m_page); | 1504 visitor->trace(m_page); |
| 1508 visitor->trace(m_injectedScriptManager); | 1505 visitor->trace(m_injectedScriptManager); |
| 1509 visitor->trace(m_debuggerAgent); | 1506 visitor->trace(m_debuggerAgent); |
| 1510 visitor->trace(m_cssAgent); | 1507 visitor->trace(m_cssAgent); |
| 1511 visitor->trace(m_inspectorResourceContentLoader); | 1508 visitor->trace(m_inspectorResourceContentLoader); |
| 1512 InspectorBaseAgent::trace(visitor); | 1509 InspectorBaseAgent::trace(visitor); |
| 1513 } | 1510 } |
| 1514 | 1511 |
| 1515 } // namespace blink | 1512 } // namespace blink |
| 1516 | 1513 |
| OLD | NEW |