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

Side by Side Diff: third_party/WebKit/Source/web/WebViewImpl.cpp

Issue 2050123002: Remove OwnPtr from Blink. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: First attempt to land. Created 4 years, 6 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) 2011, 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2011, 2012 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 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 #include "web/ValidationMessageClientImpl.h" 173 #include "web/ValidationMessageClientImpl.h"
174 #include "web/ViewportAnchor.h" 174 #include "web/ViewportAnchor.h"
175 #include "web/WebDevToolsAgentImpl.h" 175 #include "web/WebDevToolsAgentImpl.h"
176 #include "web/WebInputEventConversion.h" 176 #include "web/WebInputEventConversion.h"
177 #include "web/WebLocalFrameImpl.h" 177 #include "web/WebLocalFrameImpl.h"
178 #include "web/WebPagePopupImpl.h" 178 #include "web/WebPagePopupImpl.h"
179 #include "web/WebPluginContainerImpl.h" 179 #include "web/WebPluginContainerImpl.h"
180 #include "web/WebRemoteFrameImpl.h" 180 #include "web/WebRemoteFrameImpl.h"
181 #include "web/WebSettingsImpl.h" 181 #include "web/WebSettingsImpl.h"
182 #include "wtf/CurrentTime.h" 182 #include "wtf/CurrentTime.h"
183 #include "wtf/PtrUtil.h"
183 #include "wtf/RefPtr.h" 184 #include "wtf/RefPtr.h"
184 #include "wtf/TemporaryChange.h" 185 #include "wtf/TemporaryChange.h"
186 #include <memory>
185 187
186 #if USE(DEFAULT_RENDER_THEME) 188 #if USE(DEFAULT_RENDER_THEME)
187 #include "core/layout/LayoutThemeDefault.h" 189 #include "core/layout/LayoutThemeDefault.h"
188 #endif 190 #endif
189 191
190 // Get rid of WTF's pow define so we can use std::pow. 192 // Get rid of WTF's pow define so we can use std::pow.
191 #undef pow 193 #undef pow
192 #include <cmath> // for std::pow 194 #include <cmath> // for std::pow
193 195
194 // The following constants control parameters for automated scaling of webpages 196 // The following constants control parameters for automated scaling of webpages
(...skipping 27 matching lines...) Expand all
222 // Change the text zoom level by kTextSizeMultiplierRatio each time the user 224 // Change the text zoom level by kTextSizeMultiplierRatio each time the user
223 // zooms text in or out (ie., change by 20%). The min and max values limit 225 // zooms text in or out (ie., change by 20%). The min and max values limit
224 // text zoom to half and 3x the original text size. These three values match 226 // text zoom to half and 3x the original text size. These three values match
225 // those in Apple's port in WebKit/WebKit/WebView/WebView.mm 227 // those in Apple's port in WebKit/WebKit/WebView/WebView.mm
226 const double WebView::textSizeMultiplierRatio = 1.2; 228 const double WebView::textSizeMultiplierRatio = 1.2;
227 const double WebView::minTextSizeMultiplier = 0.5; 229 const double WebView::minTextSizeMultiplier = 0.5;
228 const double WebView::maxTextSizeMultiplier = 3.0; 230 const double WebView::maxTextSizeMultiplier = 3.0;
229 231
230 // Used to defer all page activity in cases where the embedder wishes to run 232 // Used to defer all page activity in cases where the embedder wishes to run
231 // a nested event loop. Using a stack enables nesting of message loop invocation s. 233 // a nested event loop. Using a stack enables nesting of message loop invocation s.
232 static Vector<OwnPtr<ScopedPageLoadDeferrer>>& pageLoadDeferrerStack() 234 static Vector<std::unique_ptr<ScopedPageLoadDeferrer>>& pageLoadDeferrerStack()
233 { 235 {
234 DEFINE_STATIC_LOCAL(Vector<OwnPtr<ScopedPageLoadDeferrer>>, deferrerStack, ( )); 236 DEFINE_STATIC_LOCAL(Vector<std::unique_ptr<ScopedPageLoadDeferrer>>, deferre rStack, ());
235 return deferrerStack; 237 return deferrerStack;
236 } 238 }
237 239
238 // Ensure that the WebDragOperation enum values stay in sync with the original 240 // Ensure that the WebDragOperation enum values stay in sync with the original
239 // DragOperation constants. 241 // DragOperation constants.
240 #define STATIC_ASSERT_ENUM(a, b) \ 242 #define STATIC_ASSERT_ENUM(a, b) \
241 static_assert(static_cast<int>(a) == static_cast<int>(b), \ 243 static_assert(static_cast<int>(a) == static_cast<int>(b), \
242 "mismatching enum : " #a) 244 "mismatching enum : " #a)
243 STATIC_ASSERT_ENUM(DragOperationNone, WebDragOperationNone); 245 STATIC_ASSERT_ENUM(DragOperationNone, WebDragOperationNone);
244 STATIC_ASSERT_ENUM(DragOperationCopy, WebDragOperationCopy); 246 STATIC_ASSERT_ENUM(DragOperationCopy, WebDragOperationCopy);
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 Page::visitedStateChanged(linkHash); 357 Page::visitedStateChanged(linkHash);
356 } 358 }
357 359
358 void WebView::resetVisitedLinkState(bool invalidateVisitedLinkHashes) 360 void WebView::resetVisitedLinkState(bool invalidateVisitedLinkHashes)
359 { 361 {
360 Page::allVisitedStateChanged(invalidateVisitedLinkHashes); 362 Page::allVisitedStateChanged(invalidateVisitedLinkHashes);
361 } 363 }
362 364
363 void WebView::willEnterModalLoop() 365 void WebView::willEnterModalLoop()
364 { 366 {
365 pageLoadDeferrerStack().append(adoptPtr(new ScopedPageLoadDeferrer())); 367 pageLoadDeferrerStack().append(wrapUnique(new ScopedPageLoadDeferrer()));
366 } 368 }
367 369
368 void WebView::didExitModalLoop() 370 void WebView::didExitModalLoop()
369 { 371 {
370 DCHECK(pageLoadDeferrerStack().size()); 372 DCHECK(pageLoadDeferrerStack().size());
371 pageLoadDeferrerStack().removeLast(); 373 pageLoadDeferrerStack().removeLast();
372 } 374 }
373 375
374 void WebViewImpl::setMainFrame(WebFrame* frame) 376 void WebViewImpl::setMainFrame(WebFrame* frame)
375 { 377 {
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 , m_baseBackgroundColor(Color::white) 443 , m_baseBackgroundColor(Color::white)
442 , m_backgroundColorOverride(Color::transparent) 444 , m_backgroundColorOverride(Color::transparent)
443 , m_zoomFactorOverride(0) 445 , m_zoomFactorOverride(0)
444 , m_userGestureObserved(false) 446 , m_userGestureObserved(false)
445 , m_shouldDispatchFirstVisuallyNonEmptyLayout(false) 447 , m_shouldDispatchFirstVisuallyNonEmptyLayout(false)
446 , m_shouldDispatchFirstLayoutAfterFinishedParsing(false) 448 , m_shouldDispatchFirstLayoutAfterFinishedParsing(false)
447 , m_shouldDispatchFirstLayoutAfterFinishedLoading(false) 449 , m_shouldDispatchFirstLayoutAfterFinishedLoading(false)
448 , m_displayMode(WebDisplayModeBrowser) 450 , m_displayMode(WebDisplayModeBrowser)
449 , m_elasticOverscroll(FloatSize()) 451 , m_elasticOverscroll(FloatSize())
450 , m_mutator(nullptr) 452 , m_mutator(nullptr)
451 , m_scheduler(adoptPtr(Platform::current()->currentThread()->scheduler()->cr eateWebViewScheduler(this).release())) 453 , m_scheduler(wrapUnique(Platform::current()->currentThread()->scheduler()-> createWebViewScheduler(this).release()))
452 , m_lastFrameTimeMonotonic(0) 454 , m_lastFrameTimeMonotonic(0)
453 { 455 {
454 Page::PageClients pageClients; 456 Page::PageClients pageClients;
455 pageClients.chromeClient = m_chromeClientImpl.get(); 457 pageClients.chromeClient = m_chromeClientImpl.get();
456 pageClients.contextMenuClient = &m_contextMenuClientImpl; 458 pageClients.contextMenuClient = &m_contextMenuClientImpl;
457 pageClients.editorClient = &m_editorClientImpl; 459 pageClients.editorClient = &m_editorClientImpl;
458 pageClients.spellCheckerClient = &m_spellCheckerClientImpl; 460 pageClients.spellCheckerClient = &m_spellCheckerClientImpl;
459 461
460 m_page = Page::createOrdinary(pageClients); 462 m_page = Page::createOrdinary(pageClients);
461 MediaKeysController::provideMediaKeysTo(*m_page, &m_mediaKeysClientImpl); 463 MediaKeysController::provideMediaKeysTo(*m_page, &m_mediaKeysClientImpl);
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
731 case WebInputEvent::GestureFlingStart: { 733 case WebInputEvent::GestureFlingStart: {
732 if (mainFrameImpl()->frame()->eventHandler().isScrollbarHandlingGestures ()) 734 if (mainFrameImpl()->frame()->eventHandler().isScrollbarHandlingGestures ())
733 break; 735 break;
734 endActiveFlingAnimation(); 736 endActiveFlingAnimation();
735 m_client->cancelScheduledContentIntents(); 737 m_client->cancelScheduledContentIntents();
736 m_positionOnFlingStart = WebPoint(event.x, event.y); 738 m_positionOnFlingStart = WebPoint(event.x, event.y);
737 m_globalPositionOnFlingStart = WebPoint(event.globalX, event.globalY); 739 m_globalPositionOnFlingStart = WebPoint(event.globalX, event.globalY);
738 m_flingModifier = event.modifiers; 740 m_flingModifier = event.modifiers;
739 m_flingSourceDevice = event.sourceDevice; 741 m_flingSourceDevice = event.sourceDevice;
740 DCHECK_NE(m_flingSourceDevice, WebGestureDeviceUninitialized); 742 DCHECK_NE(m_flingSourceDevice, WebGestureDeviceUninitialized);
741 OwnPtr<WebGestureCurve> flingCurve = adoptPtr(Platform::current()->creat eFlingAnimationCurve(event.sourceDevice, WebFloatPoint(event.data.flingStart.vel ocityX, event.data.flingStart.velocityY), WebSize())); 743 std::unique_ptr<WebGestureCurve> flingCurve = wrapUnique(Platform::curre nt()->createFlingAnimationCurve(event.sourceDevice, WebFloatPoint(event.data.fli ngStart.velocityX, event.data.flingStart.velocityY), WebSize()));
742 DCHECK(flingCurve); 744 DCHECK(flingCurve);
743 m_gestureAnimation = WebActiveGestureAnimation::createAtAnimationStart(s td::move(flingCurve), this); 745 m_gestureAnimation = WebActiveGestureAnimation::createAtAnimationStart(s td::move(flingCurve), this);
744 scheduleAnimation(); 746 scheduleAnimation();
745 eventResult = WebInputEventResult::HandledSystem; 747 eventResult = WebInputEventResult::HandledSystem;
746 748
747 // Plugins may need to see GestureFlingStart to balance 749 // Plugins may need to see GestureFlingStart to balance
748 // GestureScrollBegin (since the former replaces GestureScrollEnd when 750 // GestureScrollBegin (since the former replaces GestureScrollEnd when
749 // transitioning to a fling). 751 // transitioning to a fling).
750 PlatformGestureEventBuilder platformEvent(mainFrameImpl()->frameView(), event); 752 PlatformGestureEventBuilder platformEvent(mainFrameImpl()->frameView(), event);
751 // TODO(dtapuska): Why isn't the response used? 753 // TODO(dtapuska): Why isn't the response used?
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
952 return handleInputEvent(wheelEvent); 954 return handleInputEvent(wheelEvent);
953 } 955 }
954 956
955 void WebViewImpl::transferActiveWheelFlingAnimation(const WebActiveWheelFlingPar ameters& parameters) 957 void WebViewImpl::transferActiveWheelFlingAnimation(const WebActiveWheelFlingPar ameters& parameters)
956 { 958 {
957 TRACE_EVENT0("blink", "WebViewImpl::transferActiveWheelFlingAnimation"); 959 TRACE_EVENT0("blink", "WebViewImpl::transferActiveWheelFlingAnimation");
958 DCHECK(!m_gestureAnimation); 960 DCHECK(!m_gestureAnimation);
959 m_positionOnFlingStart = parameters.point; 961 m_positionOnFlingStart = parameters.point;
960 m_globalPositionOnFlingStart = parameters.globalPoint; 962 m_globalPositionOnFlingStart = parameters.globalPoint;
961 m_flingModifier = parameters.modifiers; 963 m_flingModifier = parameters.modifiers;
962 OwnPtr<WebGestureCurve> curve = adoptPtr(Platform::current()->createFlingAni mationCurve(parameters.sourceDevice, WebFloatPoint(parameters.delta), parameters .cumulativeScroll)); 964 std::unique_ptr<WebGestureCurve> curve = wrapUnique(Platform::current()->cre ateFlingAnimationCurve(parameters.sourceDevice, WebFloatPoint(parameters.delta), parameters.cumulativeScroll));
963 DCHECK(curve); 965 DCHECK(curve);
964 m_gestureAnimation = WebActiveGestureAnimation::createWithTimeOffset(std::mo ve(curve), this, parameters.startTime); 966 m_gestureAnimation = WebActiveGestureAnimation::createWithTimeOffset(std::mo ve(curve), this, parameters.startTime);
965 DCHECK_NE(parameters.sourceDevice, WebGestureDeviceUninitialized); 967 DCHECK_NE(parameters.sourceDevice, WebGestureDeviceUninitialized);
966 m_flingSourceDevice = parameters.sourceDevice; 968 m_flingSourceDevice = parameters.sourceDevice;
967 scheduleAnimation(); 969 scheduleAnimation();
968 } 970 }
969 971
970 bool WebViewImpl::endActiveFlingAnimation() 972 bool WebViewImpl::endActiveFlingAnimation()
971 { 973 {
972 if (m_gestureAnimation) { 974 if (m_gestureAnimation) {
(...skipping 1210 matching lines...) Expand 10 before | Expand all | Expand 10 after
2183 2185
2184 if (m_mouseCaptureNode && WebInputEvent::isMouseEventType(inputEvent.type)) { 2186 if (m_mouseCaptureNode && WebInputEvent::isMouseEventType(inputEvent.type)) {
2185 TRACE_EVENT1("input", "captured mouse event", "type", inputEvent.type); 2187 TRACE_EVENT1("input", "captured mouse event", "type", inputEvent.type);
2186 // Save m_mouseCaptureNode since mouseCaptureLost() will clear it. 2188 // Save m_mouseCaptureNode since mouseCaptureLost() will clear it.
2187 Node* node = m_mouseCaptureNode; 2189 Node* node = m_mouseCaptureNode;
2188 2190
2189 // Not all platforms call mouseCaptureLost() directly. 2191 // Not all platforms call mouseCaptureLost() directly.
2190 if (inputEvent.type == WebInputEvent::MouseUp) 2192 if (inputEvent.type == WebInputEvent::MouseUp)
2191 mouseCaptureLost(); 2193 mouseCaptureLost();
2192 2194
2193 OwnPtr<UserGestureIndicator> gestureIndicator; 2195 std::unique_ptr<UserGestureIndicator> gestureIndicator;
2194 2196
2195 AtomicString eventType; 2197 AtomicString eventType;
2196 switch (inputEvent.type) { 2198 switch (inputEvent.type) {
2197 case WebInputEvent::MouseMove: 2199 case WebInputEvent::MouseMove:
2198 eventType = EventTypeNames::mousemove; 2200 eventType = EventTypeNames::mousemove;
2199 break; 2201 break;
2200 case WebInputEvent::MouseLeave: 2202 case WebInputEvent::MouseLeave:
2201 eventType = EventTypeNames::mouseout; 2203 eventType = EventTypeNames::mouseout;
2202 break; 2204 break;
2203 case WebInputEvent::MouseDown: 2205 case WebInputEvent::MouseDown:
2204 eventType = EventTypeNames::mousedown; 2206 eventType = EventTypeNames::mousedown;
2205 gestureIndicator = adoptPtr(new UserGestureIndicator(DefinitelyProce ssingNewUserGesture)); 2207 gestureIndicator = wrapUnique(new UserGestureIndicator(DefinitelyPro cessingNewUserGesture));
2206 m_mouseCaptureGestureToken = gestureIndicator->currentToken(); 2208 m_mouseCaptureGestureToken = gestureIndicator->currentToken();
2207 break; 2209 break;
2208 case WebInputEvent::MouseUp: 2210 case WebInputEvent::MouseUp:
2209 eventType = EventTypeNames::mouseup; 2211 eventType = EventTypeNames::mouseup;
2210 gestureIndicator = adoptPtr(new UserGestureIndicator(m_mouseCaptureG estureToken.release())); 2212 gestureIndicator = wrapUnique(new UserGestureIndicator(m_mouseCaptur eGestureToken.release()));
2211 break; 2213 break;
2212 default: 2214 default:
2213 NOTREACHED(); 2215 NOTREACHED();
2214 } 2216 }
2215 2217
2216 node->dispatchMouseEvent( 2218 node->dispatchMouseEvent(
2217 PlatformMouseEventBuilder(mainFrameImpl()->frameView(), static_cast< const WebMouseEvent&>(inputEvent)), 2219 PlatformMouseEventBuilder(mainFrameImpl()->frameView(), static_cast< const WebMouseEvent&>(inputEvent)),
2218 eventType, static_cast<const WebMouseEvent&>(inputEvent).clickCount) ; 2220 eventType, static_cast<const WebMouseEvent&>(inputEvent).clickCount) ;
2219 return WebInputEventResult::HandledSystem; 2221 return WebInputEventResult::HandledSystem;
2220 } 2222 }
(...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after
2830 UseCounter::count(document, UseCounter::FixedRasterScaleBlurryContent); 2832 UseCounter::count(document, UseCounter::FixedRasterScaleBlurryContent);
2831 if (hasPotentialPerformanceRegression) 2833 if (hasPotentialPerformanceRegression)
2832 UseCounter::count(document, UseCounter::FixedRasterScalePotentialPerform anceRegression); 2834 UseCounter::count(document, UseCounter::FixedRasterScalePotentialPerform anceRegression);
2833 } 2835 }
2834 2836
2835 // WebView -------------------------------------------------------------------- 2837 // WebView --------------------------------------------------------------------
2836 2838
2837 WebSettingsImpl* WebViewImpl::settingsImpl() 2839 WebSettingsImpl* WebViewImpl::settingsImpl()
2838 { 2840 {
2839 if (!m_webSettings) 2841 if (!m_webSettings)
2840 m_webSettings = adoptPtr(new WebSettingsImpl(&m_page->settings(), m_devT oolsEmulator.get())); 2842 m_webSettings = wrapUnique(new WebSettingsImpl(&m_page->settings(), m_de vToolsEmulator.get()));
2841 DCHECK(m_webSettings); 2843 DCHECK(m_webSettings);
2842 return m_webSettings.get(); 2844 return m_webSettings.get();
2843 } 2845 }
2844 2846
2845 WebSettings* WebViewImpl::settings() 2847 WebSettings* WebViewImpl::settings()
2846 { 2848 {
2847 return settingsImpl(); 2849 return settingsImpl();
2848 } 2850 }
2849 2851
2850 WebString WebViewImpl::pageEncoding() const 2852 WebString WebViewImpl::pageEncoding() const
(...skipping 1616 matching lines...) Expand 10 before | Expand all | Expand 10 after
4467 m_page->setVisibilityState(static_cast<PageVisibilityState>(static_cast< int>(visibilityState)), isInitialState); 4469 m_page->setVisibilityState(static_cast<PageVisibilityState>(static_cast< int>(visibilityState)), isInitialState);
4468 4470
4469 bool visible = visibilityState == WebPageVisibilityStateVisible; 4471 bool visible = visibilityState == WebPageVisibilityStateVisible;
4470 if (m_layerTreeView) 4472 if (m_layerTreeView)
4471 m_layerTreeView->setVisible(visible); 4473 m_layerTreeView->setVisible(visible);
4472 m_scheduler->setPageVisible(visible); 4474 m_scheduler->setPageVisible(visible);
4473 } 4475 }
4474 4476
4475 void WebViewImpl::pointerLockMouseEvent(const WebInputEvent& event) 4477 void WebViewImpl::pointerLockMouseEvent(const WebInputEvent& event)
4476 { 4478 {
4477 OwnPtr<UserGestureIndicator> gestureIndicator; 4479 std::unique_ptr<UserGestureIndicator> gestureIndicator;
4478 AtomicString eventType; 4480 AtomicString eventType;
4479 switch (event.type) { 4481 switch (event.type) {
4480 case WebInputEvent::MouseDown: 4482 case WebInputEvent::MouseDown:
4481 eventType = EventTypeNames::mousedown; 4483 eventType = EventTypeNames::mousedown;
4482 gestureIndicator = adoptPtr(new UserGestureIndicator(DefinitelyProcessin gNewUserGesture)); 4484 gestureIndicator = wrapUnique(new UserGestureIndicator(DefinitelyProcess ingNewUserGesture));
4483 m_pointerLockGestureToken = gestureIndicator->currentToken(); 4485 m_pointerLockGestureToken = gestureIndicator->currentToken();
4484 break; 4486 break;
4485 case WebInputEvent::MouseUp: 4487 case WebInputEvent::MouseUp:
4486 eventType = EventTypeNames::mouseup; 4488 eventType = EventTypeNames::mouseup;
4487 gestureIndicator = adoptPtr(new UserGestureIndicator(m_pointerLockGestur eToken.release())); 4489 gestureIndicator = wrapUnique(new UserGestureIndicator(m_pointerLockGest ureToken.release()));
4488 break; 4490 break;
4489 case WebInputEvent::MouseMove: 4491 case WebInputEvent::MouseMove:
4490 eventType = EventTypeNames::mousemove; 4492 eventType = EventTypeNames::mousemove;
4491 break; 4493 break;
4492 default: 4494 default:
4493 NOTREACHED(); 4495 NOTREACHED();
4494 } 4496 }
4495 4497
4496 const WebMouseEvent& mouseEvent = static_cast<const WebMouseEvent&>(event); 4498 const WebMouseEvent& mouseEvent = static_cast<const WebMouseEvent&>(event);
4497 4499
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
4566 { 4568 {
4567 // TODO(oshima): Investigate if this should return the ScreenInfo's scale fa ctor rather than 4569 // TODO(oshima): Investigate if this should return the ScreenInfo's scale fa ctor rather than
4568 // page's scale factor, which can be 1 in use-zoom-for-dsf mode. 4570 // page's scale factor, which can be 1 in use-zoom-for-dsf mode.
4569 if (!page()) 4571 if (!page())
4570 return 1; 4572 return 1;
4571 4573
4572 return page()->deviceScaleFactor(); 4574 return page()->deviceScaleFactor();
4573 } 4575 }
4574 4576
4575 } // namespace blink 4577 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/WebViewImpl.h ('k') | third_party/WebKit/Source/web/WorkerContentSettingsClient.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698