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

Side by Side Diff: Source/web/WebDevToolsAgentImpl.cpp

Issue 45363004: DevTools: explicitly control support for viewport meta tag so that desktop emulation was possible (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Review comments addressed. Created 7 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « Source/web/WebDevToolsAgentImpl.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010-2011 Google Inc. All rights reserved. 2 * Copyright (C) 2010-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 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 191
192 WebDevToolsAgentImpl::WebDevToolsAgentImpl( 192 WebDevToolsAgentImpl::WebDevToolsAgentImpl(
193 WebViewImpl* webViewImpl, 193 WebViewImpl* webViewImpl,
194 WebDevToolsAgentClient* client) 194 WebDevToolsAgentClient* client)
195 : m_hostId(client->hostIdentifier()) 195 : m_hostId(client->hostIdentifier())
196 , m_client(client) 196 , m_client(client)
197 , m_webViewImpl(webViewImpl) 197 , m_webViewImpl(webViewImpl)
198 , m_attached(false) 198 , m_attached(false)
199 , m_generatingEvent(false) 199 , m_generatingEvent(false)
200 , m_deviceMetricsEnabled(false) 200 , m_deviceMetricsEnabled(false)
201 , m_emulateViewportEnabled(false)
202 , m_originalViewportEnabled(false)
201 , m_isOverlayScrollbarsEnabled(false) 203 , m_isOverlayScrollbarsEnabled(false)
202 , m_isCSSViewportEnabled(false)
203 { 204 {
204 ASSERT(m_hostId > 0); 205 ASSERT(m_hostId > 0);
205 ClientMessageLoopAdapter::ensureClientMessageLoopCreated(m_client); 206 ClientMessageLoopAdapter::ensureClientMessageLoopCreated(m_client);
206 } 207 }
207 208
208 WebDevToolsAgentImpl::~WebDevToolsAgentImpl() 209 WebDevToolsAgentImpl::~WebDevToolsAgentImpl()
209 { 210 {
210 ClientMessageLoopAdapter::inspectedViewClosed(m_webViewImpl); 211 ClientMessageLoopAdapter::inspectedViewClosed(m_webViewImpl);
211 if (m_attached) 212 if (m_attached)
212 WebKit::Platform::current()->currentThread()->removeTaskObserver(this); 213 WebKit::Platform::current()->currentThread()->removeTaskObserver(this);
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 PlatformMouseEvent mouseEvent = PlatformMouseEventBuilder(page->mainFram e()->view(), *static_cast<const WebMouseEvent*>(&inputEvent)); 308 PlatformMouseEvent mouseEvent = PlatformMouseEventBuilder(page->mainFram e()->view(), *static_cast<const WebMouseEvent*>(&inputEvent));
308 return ic->handleMouseEvent(page->mainFrame(), mouseEvent); 309 return ic->handleMouseEvent(page->mainFrame(), mouseEvent);
309 } 310 }
310 if (WebInputEvent::isTouchEventType(inputEvent.type)) { 311 if (WebInputEvent::isTouchEventType(inputEvent.type)) {
311 PlatformTouchEvent touchEvent = PlatformTouchEventBuilder(page->mainFram e()->view(), *static_cast<const WebTouchEvent*>(&inputEvent)); 312 PlatformTouchEvent touchEvent = PlatformTouchEventBuilder(page->mainFram e()->view(), *static_cast<const WebTouchEvent*>(&inputEvent));
312 return ic->handleTouchEvent(page->mainFrame(), touchEvent); 313 return ic->handleTouchEvent(page->mainFrame(), touchEvent);
313 } 314 }
314 return false; 315 return false;
315 } 316 }
316 317
317 void WebDevToolsAgentImpl::overrideDeviceMetrics(int width, int height, float de viceScaleFactor, bool fitWindow) 318 void WebDevToolsAgentImpl::overrideDeviceMetrics(int width, int height, float de viceScaleFactor, bool emulateViewport, bool fitWindow)
318 { 319 {
319 if (!width && !height) { 320 if (!width && !height) {
320 if (m_deviceMetricsEnabled) { 321 if (m_deviceMetricsEnabled) {
321 m_deviceMetricsEnabled = false; 322 m_deviceMetricsEnabled = false;
322 m_webViewImpl->setBackgroundColorOverride(Color::transparent); 323 m_webViewImpl->setBackgroundColorOverride(Color::transparent);
323 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(m_isOverlayScrol lbarsEnabled); 324 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(m_isOverlayScrol lbarsEnabled);
324 325 disableViewportEmulation();
325 RuntimeEnabledFeatures::setCSSViewportEnabled(m_isCSSViewportEnabled );
326 m_webViewImpl->settings()->setViewportEnabled(false);
327 m_webViewImpl->setIgnoreViewportTagScaleLimits(false);
328 m_webViewImpl->setPageScaleFactorLimits(1, 1);
329
330 m_client->disableDeviceEmulation(); 326 m_client->disableDeviceEmulation();
331 } 327 }
332 } else { 328 } else {
333 if (!m_deviceMetricsEnabled) { 329 if (!m_deviceMetricsEnabled) {
334 m_deviceMetricsEnabled = true; 330 m_deviceMetricsEnabled = true;
335 m_webViewImpl->setBackgroundColorOverride(Color::darkGray); 331 m_webViewImpl->setBackgroundColorOverride(Color::darkGray);
336 m_isOverlayScrollbarsEnabled = RuntimeEnabledFeatures::overlayScroll barsEnabled(); 332 m_isOverlayScrollbarsEnabled = RuntimeEnabledFeatures::overlayScroll barsEnabled();
337 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(true); 333 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(true);
338
339 m_isCSSViewportEnabled = RuntimeEnabledFeatures::cssViewportEnabled( );
340 RuntimeEnabledFeatures::setCSSViewportEnabled(true);
341 m_webViewImpl->settings()->setViewportEnabled(true);
342 m_webViewImpl->setIgnoreViewportTagScaleLimits(true);
343 m_webViewImpl->setPageScaleFactorLimits(-1, -1);
344 } 334 }
335 if (emulateViewport)
336 enableViewportEmulation();
337 else
338 disableViewportEmulation();
345 m_client->enableDeviceEmulation(IntSize(width, height), IntRect(0, 0, wi dth, height), deviceScaleFactor, fitWindow); 339 m_client->enableDeviceEmulation(IntSize(width, height), IntRect(0, 0, wi dth, height), deviceScaleFactor, fitWindow);
346 } 340 }
347 } 341 }
348 342
343 void WebDevToolsAgentImpl::enableViewportEmulation()
344 {
345 if (m_emulateViewportEnabled)
346 return;
347 m_emulateViewportEnabled = true;
348 m_originalViewportEnabled = RuntimeEnabledFeatures::cssViewportEnabled();
349 RuntimeEnabledFeatures::setCSSViewportEnabled(true);
350 m_webViewImpl->settings()->setViewportEnabled(true);
351 m_webViewImpl->setIgnoreViewportTagScaleLimits(true);
352 m_webViewImpl->setPageScaleFactorLimits(-1, -1);
353 }
354
355 void WebDevToolsAgentImpl::disableViewportEmulation()
356 {
357 if (!m_emulateViewportEnabled)
358 return;
359 RuntimeEnabledFeatures::setCSSViewportEnabled(m_originalViewportEnabled);
360 m_webViewImpl->settings()->setViewportEnabled(false);
361 m_webViewImpl->setIgnoreViewportTagScaleLimits(false);
362 m_webViewImpl->setPageScaleFactorLimits(1, 1);
363 m_emulateViewportEnabled = false;
364 }
365
349 void WebDevToolsAgentImpl::getAllocatedObjects(HashSet<const void*>& set) 366 void WebDevToolsAgentImpl::getAllocatedObjects(HashSet<const void*>& set)
350 { 367 {
351 class CountingVisitor : public WebDevToolsAgentClient::AllocatedObjectVisito r { 368 class CountingVisitor : public WebDevToolsAgentClient::AllocatedObjectVisito r {
352 public: 369 public:
353 CountingVisitor() : m_totalObjectsCount(0) 370 CountingVisitor() : m_totalObjectsCount(0)
354 { 371 {
355 } 372 }
356 373
357 virtual bool visitObject(const void* ptr) 374 virtual bool visitObject(const void* ptr)
358 { 375 {
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke ndDispatcher::kProfiler_getCPUProfileCmd) 617 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke ndDispatcher::kProfiler_getCPUProfileCmd)
601 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke ndDispatcher::kHeapProfiler_getHeapSnapshotCmd); 618 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke ndDispatcher::kHeapProfiler_getHeapSnapshotCmd);
602 } 619 }
603 620
604 void WebDevToolsAgent::processPendingMessages() 621 void WebDevToolsAgent::processPendingMessages()
605 { 622 {
606 PageScriptDebugServer::shared().runPendingTasks(); 623 PageScriptDebugServer::shared().runPendingTasks();
607 } 624 }
608 625
609 } // namespace WebKit 626 } // namespace WebKit
OLDNEW
« no previous file with comments | « Source/web/WebDevToolsAgentImpl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698