diff --git a/DEPS b/DEPS index 13c545e0..e970a2d 100644 --- a/DEPS +++ b/DEPS
@@ -51,7 +51,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': 'daa8c27f57c16cfc574ec6e4b32d56396f70c4bd', + 'angle_revision': '847638a64a32df1b357b57507170301195263a1c', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling build tools # and whatever else without interference from each other. @@ -190,7 +190,7 @@ Var('chromium_git') + '/chromium/third_party/ffmpeg.git' + '@' + 'c21cf0893cb95476b2a902d6c06a5c2652b832cc', 'src/third_party/libjingle/source/talk': - Var('chromium_git') + '/external/webrtc/trunk/talk.git' + '@' + 'eddf34f4a9ddd5bdac8d85125a4ed04eff704638', # commit position 10725 + Var('chromium_git') + '/external/webrtc/trunk/talk.git' + '@' + '15bbf6cdc4ce473f93befea563c56d7af4bc6ba2', # commit position 10735 'src/third_party/usrsctp/usrsctplib': Var('chromium_git') + '/external/usrsctplib.git' + '@' + '36444a999739e9e408f8f587cb4c3ffeef2e50ac', # from svn revision 9215 @@ -214,7 +214,7 @@ Var('chromium_git') + '/native_client/src/third_party/scons-2.0.1.git' + '@' + '1c1550e17fc26355d08627fbdec13d8291227067', 'src/third_party/webrtc': - Var('chromium_git') + '/external/webrtc/trunk/webrtc.git' + '@' + 'dba3e4553cbe4aa286dda6074fdb004fb1eb652f', # commit position 10724 + Var('chromium_git') + '/external/webrtc/trunk/webrtc.git' + '@' + '3e38ef990fa4264c1dffaee831af26dc9bfc5fbf', # commit position 10736 'src/third_party/openmax_dl': Var('chromium_git') + '/external/webrtc/deps/third_party/openmax.git' + '@' + Var('openmax_dl_revision'),
diff --git a/ash/BUILD.gn b/ash/BUILD.gn index 06bfa93..862e57c 100644 --- a/ash/BUILD.gn +++ b/ash/BUILD.gn
@@ -273,8 +273,8 @@ sources = gypi_values.ash_shell_with_content_lib_sources deps = [ - #"//chrome:packed_resources", TODO(GYP) ":ash_shell_lib", + "//chrome:packed_resources", "//content", "//content/shell:content_shell_lib", "//skia",
diff --git a/build/common.gypi b/build/common.gypi index ca1c73a..5c2098b 100644 --- a/build/common.gypi +++ b/build/common.gypi
@@ -2056,9 +2056,8 @@ 'enable_browser_cdms%': 0, }], - # Native Client glibc toolchain is enabled - # by default except on arm, mips and mips64. - ['target_arch=="arm" or target_arch=="mipsel" or target_arch=="mips64el"', { + # Native Client glibc toolchain is enabled except on mips + ['target_arch=="mipsel" or target_arch=="mips64el"', { 'disable_glibc%': 1, }, { 'disable_glibc%': 0,
diff --git a/chrome/browser_tests.isolate b/chrome/browser_tests.isolate index c9bf511..601c8591 100644 --- a/chrome/browser_tests.isolate +++ b/chrome/browser_tests.isolate
@@ -125,7 +125,7 @@ ], }, }], - ['disable_nacl==0 and (OS=="linux" or OS=="mac" or OS=="win") and (target_arch=="x64" or target_arch=="ia32")', { + ['disable_nacl==0 and (OS=="linux" or OS=="mac" or OS=="win") and (target_arch=="x64" or target_arch=="ia32" or target_arch=="arm")', { 'variables': { 'files': [ '<(PRODUCT_DIR)/ppapi_nacl_tests_glibc.nmf', @@ -142,6 +142,8 @@ ['disable_nacl==0 and OS=="linux" and target_arch=="arm"', { 'variables': { 'files': [ + '<(PRODUCT_DIR)/libarm/', + '<(PRODUCT_DIR)/ppapi_nacl_tests_glibc_arm.nexe', '<(PRODUCT_DIR)/ppapi_nacl_tests_newlib_arm.nexe', '<(PRODUCT_DIR)/ppapi_nacl_tests_pnacl_newlib_arm.nexe', '<(PRODUCT_DIR)/ppapi_nacl_tests_pnacl_newlib_arm_nonsfi.nexe',
diff --git a/ppapi/ppapi_nacl.gyp b/ppapi/ppapi_nacl.gyp index b546954..dd1ccba 100644 --- a/ppapi/ppapi_nacl.gyp +++ b/ppapi/ppapi_nacl.gyp
@@ -13,6 +13,31 @@ ], 'targets': [ { + 'target_name': 'nacl_elf_loader', + 'type': 'none', + 'conditions': [ + ['target_arch=="arm" and disable_glibc==0', { + 'dependencies': [ + '<(DEPTH)/native_client/src/untrusted/elf_loader/elf_loader.gyp:elf_loader_nexe', + ], + 'actions': [ + { + 'action_name': 'copy_arm_elf_loader', + 'message': 'Copying elf_loader_arm.nexe', + 'inputs': [ + '<(PRODUCT_DIR)/elf_loader_newlib_arm.nexe', + ], + 'outputs': [ + '>(tc_lib_dir_glibc_arm)/elf_loader_arm.nexe', + ], + 'action': [ + 'python', '<(DEPTH)/build/cp.py', '>@(_inputs)', '>@(_outputs)' + ], + }], + }], + ], + }, + { 'target_name': 'ppapi_cpp_lib', 'type': 'none', 'variables': { @@ -56,6 +81,7 @@ '<(DEPTH)/native_client/src/untrusted/nacl/nacl.gyp:nacl_lib', '<(DEPTH)/native_client/src/untrusted/pthread/pthread.gyp:pthread_lib', 'ppapi_cpp_lib', + 'nacl_elf_loader', 'native_client/native_client.gyp:ppapi_lib', ], 'variables': { @@ -134,15 +160,24 @@ 'extra_args': [ '--strip-all', ], + 'variables': { + 'conditions': [ + ['target_arch=="arm"', { + 'objdump': '>(nacl_glibc_tc_root)/bin/arm-nacl-objdump' + }, { + 'objdump': '>(nacl_glibc_tc_root)/bin/x86_64-nacl-objdump' + }], + ] + }, 'create_nmf': '<(DEPTH)/native_client_sdk/src/tools/create_nmf.py', 'create_nmf_flags': [ '--no-default-libpath', - '--objdump=>(nacl_glibc_tc_root)/bin/x86_64-nacl-objdump', + '--objdump=<(objdump)', ], 'create_nonsfi_test_nmf': 'tests/create_nonsfi_test_nmf.py', }, 'conditions': [ - ['(target_arch=="ia32" or target_arch=="x64") and disable_glibc==0', { + ['target_arch!="mipsel" and disable_glibc==0', { 'variables': { 'build_glibc': 1, # NOTE: Use /lib, not /lib64 here; it is a symbolic link which @@ -176,6 +211,13 @@ ], 'inputs': ['>(out_glibc32)'], }], + ['target_arch=="arm"', { + 'action': [ + '--library-path=>(nacl_glibc_tc_root)/arm-nacl/lib', + '--library-path=>(tc_lib_dir_glibc_arm)', + ], + 'inputs': ['>(out_glibc_arm)'], + }], ['target_arch=="x64" or (target_arch=="ia32" and OS=="win")', { 'action': [ '--library-path=>(libdir_glibc64)',
diff --git a/ppapi/ppapi_nacl_test_common.gypi b/ppapi/ppapi_nacl_test_common.gypi index fd1cf27..9d06aff 100644 --- a/ppapi/ppapi_nacl_test_common.gypi +++ b/ppapi/ppapi_nacl_test_common.gypi
@@ -45,6 +45,7 @@ '<(DEPTH)/native_client/src/untrusted/nacl/nacl.gyp:nacl_lib', '<(DEPTH)/native_client/src/untrusted/pthread/pthread.gyp:pthread_lib', '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib', + '<(DEPTH)/ppapi/ppapi_nacl.gyp:nacl_elf_loader', '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib', ], 'target_conditions': [ @@ -58,7 +59,7 @@ }, ], }], - ['test_files!=[] and "<(target_arch)"!="arm" and "<(target_arch)"!="mipsel" and disable_glibc==0 and build_glibc==1', { + ['test_files!=[] and "<(target_arch)"!="mipsel" and disable_glibc==0 and build_glibc==1', { 'copies': [ { 'destination': '>(nacl_glibc_out_dir)', @@ -108,12 +109,21 @@ 'extra_args': [ '--strip-all', ], + 'variables': { + 'conditions': [ + ['target_arch=="arm"', { + 'objdump': '>(nacl_glibc_tc_root)/bin/arm-nacl-objdump' + }, { + 'objdump': '>(nacl_glibc_tc_root)/bin/x86_64-nacl-objdump' + }], + ] + }, 'create_nmf': '<(DEPTH)/native_client_sdk/src/tools/create_nmf.py', 'create_nmf_args_portable%': [], 'create_nonsfi_test_nmf': '<(DEPTH)/ppapi/tests/create_nonsfi_test_nmf.py', 'create_nmf_args': [ '--no-default-libpath', - '--objdump=>(nacl_glibc_tc_root)/bin/x86_64-nacl-objdump', + '--objdump=<(objdump)', ], }, 'target_conditions': [ @@ -151,12 +161,13 @@ }, ], }], - ['"<(target_arch)"!="arm" and "<(target_arch)"!="mipsel" and generate_nmf==1 and disable_glibc==0 and build_glibc==1', { + ['"<(target_arch)"!="mipsel" and generate_nmf==1 and disable_glibc==0 and build_glibc==1', { 'variables': { # NOTE: Use /lib, not /lib64 here; it is a symbolic link which # doesn't work on Windows. 'libdir_glibc64': '>(nacl_glibc_tc_root)/x86_64-nacl/lib', 'libdir_glibc32': '>(nacl_glibc_tc_root)/x86_64-nacl/lib32', + 'libdir_glibc_arm': '>(nacl_glibc_tc_root)/arm-nacl/lib', }, 'actions': [ { @@ -190,7 +201,13 @@ '--library-path=>(tc_lib_dir_glibc32)', ], }], - # TODO(ncbray) handle arm case. We don't have ARM glibc yet. + ['enable_arm==1', { + 'inputs': ['>(out_glibc_arm)'], + 'action': [ + '--library-path=>(libdir_glibc_arm)', + '--library-path=>(tc_lib_dir_glibc_arm)', + ], + }], ], }, ],
diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector/network/json-preview.html b/third_party/WebKit/LayoutTests/http/tests/inspector/network/json-preview.html index c3a0806..dc20622 100644 --- a/third_party/WebKit/LayoutTests/http/tests/inspector/network/json-preview.html +++ b/third_party/WebKit/LayoutTests/http/tests/inspector/network/json-preview.html
@@ -18,7 +18,7 @@ { var previewView = new WebInspector.RequestPreviewView(request, null); var previewer = previewView._createPreviewView(); - InspectorTest.addResult("Its previewer is the JSON previewer: " + (previewer && previewer instanceof WebInspector.RequestJSONView)); + InspectorTest.addResult("Its previewer is the JSON previewer: " + (previewer && previewer instanceof WebInspector.JSONView)); } function testType(contentType, callback)
diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector/network/network-preview-json.html b/third_party/WebKit/LayoutTests/http/tests/inspector/network/network-preview-json.html index b50b9f97..498dd2ccb 100644 --- a/third_party/WebKit/LayoutTests/http/tests/inspector/network/network-preview-json.html +++ b/third_party/WebKit/LayoutTests/http/tests/inspector/network/network-preview-json.html
@@ -9,7 +9,7 @@ function check(text) { InspectorTest.addResult(""); InspectorTest.addResult("Input: " + text); - var parsedJSON = WebInspector.RequestJSONView.parseJSON(text); + var parsedJSON = WebInspector.JSONView.parseJSON(text); if (!parsedJSON) { InspectorTest.addResult("Can't parse"); return;
diff --git a/third_party/WebKit/LayoutTests/inspector/network/network-json-parser.html b/third_party/WebKit/LayoutTests/inspector/network/network-json-parser.html index 37184bd..b2287a5f 100644 --- a/third_party/WebKit/LayoutTests/inspector/network/network-json-parser.html +++ b/third_party/WebKit/LayoutTests/inspector/network/network-json-parser.html
@@ -6,7 +6,7 @@ function test() { function check(jsonText) { - var result = WebInspector.RequestJSONView.parseJSON(jsonText); + var result = WebInspector.JSONView.parseJSON(jsonText); InspectorTest.addResult(""); InspectorTest.addResult("Input: " + jsonText); if (!result) {
diff --git a/third_party/WebKit/Source/core/animation/CompositorAnimationsTestHelper.h b/third_party/WebKit/Source/core/animation/CompositorAnimationsTestHelper.h index 687fa04..384f4cc2 100644 --- a/third_party/WebKit/Source/core/animation/CompositorAnimationsTestHelper.h +++ b/third_party/WebKit/Source/core/animation/CompositorAnimationsTestHelper.h
@@ -26,7 +26,7 @@ #define CompositorAnimationsTestHelper_h #include "core/animation/CompositorAnimations.h" -#include "platform/testing/TestingPlatformSupport.h" +#include "public/platform/Platform.h" #include "public/platform/WebCompositorAnimationPlayer.h" #include "public/platform/WebCompositorAnimationTimeline.h" #include "public/platform/WebCompositorSupport.h" @@ -152,13 +152,31 @@ }; private: - class PlatformProxy : public TestingPlatformSupport { + class PlatformProxy : public Platform { public: - explicit PlatformProxy(WebCompositorSupportMock** compositor) : m_compositor(compositor) { } - private: - WebCompositorSupport* compositorSupport() override { return *m_compositor; } + PlatformProxy(WebCompositorSupportMock** compositor) : m_platform(Platform::current()), m_compositor(compositor) { } + ~PlatformProxy() + { + blink::Platform::initialize(m_platform); + } + + virtual void cryptographicallyRandomValues(unsigned char* buffer, size_t length) { ASSERT_NOT_REACHED(); } + const unsigned char* getTraceCategoryEnabledFlag(const char* categoryName) override + { + static const unsigned char tracingIsDisabled = 0; + return &tracingIsDisabled; + } + + WebThread* currentThread() override + { + return m_platform->currentThread(); + } + + private: + blink::Platform* m_platform; // Not owned. WebCompositorSupportMock** m_compositor; + WebCompositorSupport* compositorSupport() override { return *m_compositor; } }; WebCompositorSupportMock* m_mockCompositor;
diff --git a/third_party/WebKit/Source/core/css/CSSCrossfadeValue.cpp b/third_party/WebKit/Source/core/css/CSSCrossfadeValue.cpp index d4875fa..6afcd5a5 100644 --- a/third_party/WebKit/Source/core/css/CSSCrossfadeValue.cpp +++ b/third_party/WebKit/Source/core/css/CSSCrossfadeValue.cpp
@@ -88,9 +88,7 @@ { ImageResource* cachedImage = cachedImageForCSSValue(value, &layoutObject->document()); - // If the image can be rendered at 1 zoom it will have non-empty dimension - // and should be able to render at other scales as well. - if (!cachedImage || !cachedImage->canRender(*layoutObject, 1)) + if (!cachedImage || !cachedImage->canRender()) return nullptr; return cachedImage->image();
diff --git a/third_party/WebKit/Source/core/dom/ScriptRunnerTest.cpp b/third_party/WebKit/Source/core/dom/ScriptRunnerTest.cpp index 09e5579..b9668ec 100644 --- a/third_party/WebKit/Source/core/dom/ScriptRunnerTest.cpp +++ b/third_party/WebKit/Source/core/dom/ScriptRunnerTest.cpp
@@ -10,7 +10,6 @@ #include "core/dom/ScriptLoader.h" #include "platform/heap/Handle.h" #include "platform/scheduler/CancellableTaskFactory.h" -#include "platform/testing/TestingPlatformSupport.h" #include "public/platform/Platform.h" #include "public/platform/WebViewScheduler.h" #include "testing/gmock/include/gmock/gmock.h" @@ -96,7 +95,7 @@ Deque<OwnPtr<WebTaskRunner::Task>>* m_tasks; // NOT OWNED }; -class MockPlatform : public TestingPlatformSupport, public WebScheduler { +class MockPlatform : public Platform, public WebScheduler { public: MockPlatform() : m_mockWebThread(this) @@ -104,6 +103,17 @@ { } + void cryptographicallyRandomValues(unsigned char* buffer, size_t length) override + { + RELEASE_ASSERT_NOT_REACHED(); + } + + const unsigned char* getTraceCategoryEnabledFlag(const char* categoryName) override + { + static const unsigned char tracingIsDisabled = 0; + return &tracingIsDisabled; + } + WebThread* currentThread() override { return &m_mockWebThread; } void runSingleTask() @@ -153,14 +163,16 @@ class ScriptRunnerTest : public testing::Test { public: - ScriptRunnerTest() - : m_document(Document::create()) - , m_element(m_document->createElement("foo", ASSERT_NO_EXCEPTION)) - { - } - void SetUp() override { + m_document = Document::create(); + m_element = m_document->createElement("foo", ASSERT_NO_EXCEPTION); + + m_oldPlatform = Platform::current(); + + // Force Platform::initialize to create a new one pointing at MockPlatform. + Platform::initialize(&m_platform); + // We have to create ScriptRunner after initializing platform, because we need // Platform::current()->currentThread()->scheduler()->loadingTaskRunner() // to be initialized before creating ScriptRunner to save it in constructor. @@ -170,13 +182,15 @@ void TearDown() override { m_scriptRunner.release(); + Platform::initialize(m_oldPlatform); } RefPtrWillBePersistent<Document> m_document; RefPtrWillBePersistent<Element> m_element; - MockPlatform m_platform; OwnPtrWillBePersistent<ScriptRunner> m_scriptRunner; WTF::Vector<int> m_order; + MockPlatform m_platform; + Platform* m_oldPlatform; // NOT OWNED }; TEST_F(ScriptRunnerTest, QueueSingleScript_Async)
diff --git a/third_party/WebKit/Source/core/fetch/CachingCorrectnessTest.cpp b/third_party/WebKit/Source/core/fetch/CachingCorrectnessTest.cpp index ac0c261..99066f6 100644 --- a/third_party/WebKit/Source/core/fetch/CachingCorrectnessTest.cpp +++ b/third_party/WebKit/Source/core/fetch/CachingCorrectnessTest.cpp
@@ -38,7 +38,6 @@ #include "core/fetch/ResourceFetcher.h" #include "core/fetch/ResourcePtr.h" #include "platform/network/ResourceRequest.h" -#include "platform/testing/TestingPlatformSupport.h" #include "public/platform/Platform.h" #include "testing/gtest/include/gtest/gtest.h" #include "wtf/OwnPtr.h" @@ -56,6 +55,8 @@ const char kOneDayBeforeOriginalRequest[] = "Wed, 24 May 1977 18:30:00 GMT"; const char kOneDayAfterOriginalRequest[] = "Fri, 26 May 1977 18:30:00 GMT"; +const unsigned char kAConstUnsignedCharZero = 0; + class MockFetchContext : public FetchContext { public: static MockFetchContext* create() @@ -119,15 +120,25 @@ private: // A simple platform that mocks out the clock, for cache freshness testing. - class ProxyPlatform : public TestingPlatformSupport { + class ProxyPlatform : public blink::Platform { public: - ProxyPlatform() : m_elapsedSeconds(0.) { } + ProxyPlatform() : m_platform(blink::Platform::current()), m_elapsedSeconds(0.) { } + + ~ProxyPlatform() + { + blink::Platform::initialize(m_platform); + } void advanceClock(double seconds) { m_elapsedSeconds += seconds; } + WebThread* currentThread() override + { + return m_platform->currentThread(); + } + private: // From blink::Platform: double currentTimeSeconds() override @@ -135,11 +146,24 @@ return kOriginalRequestDateAsDouble + m_elapsedSeconds; } + // These blink::Platform methods must be overriden to make a usable object. + virtual void cryptographicallyRandomValues(unsigned char* buffer, size_t length) + { + RELEASE_ASSERT_NOT_REACHED(); + } + virtual const unsigned char* getTraceCategoryEnabledFlag(const char* categoryName) + { + return &kAConstUnsignedCharZero; + } + + blink::Platform* m_platform; // Not owned. double m_elapsedSeconds; }; virtual void SetUp() { + blink::Platform::initialize(&m_proxyPlatform); + // Save the global memory cache to restore it upon teardown. m_globalMemoryCache = replaceMemoryCacheForTesting(MemoryCache::create());
diff --git a/third_party/WebKit/Source/core/fetch/ImageResource.h b/third_party/WebKit/Source/core/fetch/ImageResource.h index 5cfe9ca..43eeabf 100644 --- a/third_party/WebKit/Source/core/fetch/ImageResource.h +++ b/third_party/WebKit/Source/core/fetch/ImageResource.h
@@ -67,7 +67,8 @@ static std::pair<blink::Image*, float> brokenImage(float deviceScaleFactor); // Returns an image and the image's resolution scale factor. bool willPaintBrokenImage() const; - bool canRender(const LayoutObject& layoutObject, float multiplier) { return !errorOccurred() && !imageSizeForLayoutObject(&layoutObject, multiplier).isEmpty(); } + // Assumes that image rotation or scale doesn't effect the image size being empty or not. + bool canRender() { return !errorOccurred() && !imageSizeForLayoutObject(nullptr, 1).isEmpty(); } bool usesImageContainerSize() const; bool imageHasRelativeWidth() const;
diff --git a/third_party/WebKit/Source/core/fetch/ResourceTest.cpp b/third_party/WebKit/Source/core/fetch/ResourceTest.cpp index 3a100eff..143d942f 100644 --- a/third_party/WebKit/Source/core/fetch/ResourceTest.cpp +++ b/third_party/WebKit/Source/core/fetch/ResourceTest.cpp
@@ -8,7 +8,6 @@ #include "core/fetch/ResourcePtr.h" #include "platform/network/ResourceRequest.h" #include "platform/network/ResourceResponse.h" -#include "platform/testing/TestingPlatformSupport.h" #include "platform/testing/URLTestHelpers.h" #include "public/platform/Platform.h" #include "testing/gtest/include/gtest/gtest.h" @@ -18,9 +17,9 @@ namespace { -class MockPlatform final : public TestingPlatformSupport { +class MockPlatform final : public Platform { public: - MockPlatform() { } + MockPlatform() : m_oldPlatform(Platform::current()) { } ~MockPlatform() override { } // From blink::Platform: @@ -34,10 +33,45 @@ return m_cachedURLs; } + WebThread* currentThread() override + { + return m_oldPlatform->currentThread(); + } + + // These blink::Platform methods must be overriden to make a usable object. + void cryptographicallyRandomValues(unsigned char* buffer, size_t length) override + { + ASSERT_NOT_REACHED(); + } + + const unsigned char* getTraceCategoryEnabledFlag(const char* categoryName) override + { + static const unsigned char tracingIsDisabled = 0; + return &tracingIsDisabled; + } + private: + Platform* m_oldPlatform; // Not owned. Vector<WebURL> m_cachedURLs; }; +class AutoInstallMockPlatform { +public: + AutoInstallMockPlatform() + { + m_oldPlatform = Platform::current(); + Platform::initialize(&m_mockPlatform); + } + ~AutoInstallMockPlatform() + { + Platform::initialize(m_oldPlatform); + } + MockPlatform* platform() { return &m_mockPlatform; } +private: + MockPlatform m_mockPlatform; + Platform* m_oldPlatform; +}; + PassOwnPtr<ResourceResponse> createTestResourceResponse() { OwnPtr<ResourceResponse> response = adoptPtr(new ResourceResponse); @@ -59,19 +93,19 @@ TEST(ResourceTest, SetCachedMetadata_SendsMetadataToPlatform) { - MockPlatform mock; + AutoInstallMockPlatform mock; OwnPtr<ResourceResponse> response(createTestResourceResponse()); createTestResourceAndSetCachedMetadata(response.get()); - EXPECT_EQ(1u, mock.cachedURLs().size()); + EXPECT_EQ(1u, mock.platform()->cachedURLs().size()); } TEST(ResourceTest, SetCachedMetadata_DoesNotSendMetadataToPlatformWhenFetchedViaServiceWorker) { - MockPlatform mock; + AutoInstallMockPlatform mock; OwnPtr<ResourceResponse> response(createTestResourceResponse()); response->setWasFetchedViaServiceWorker(true); createTestResourceAndSetCachedMetadata(response.get()); - EXPECT_EQ(0u, mock.cachedURLs().size()); + EXPECT_EQ(0u, mock.platform()->cachedURLs().size()); } } // namespace blink
diff --git a/third_party/WebKit/Source/core/layout/LayoutBox.cpp b/third_party/WebKit/Source/core/layout/LayoutBox.cpp index 84aa10f..4a4f729 100644 --- a/third_party/WebKit/Source/core/layout/LayoutBox.cpp +++ b/third_party/WebKit/Source/core/layout/LayoutBox.cpp
@@ -4762,7 +4762,7 @@ // Make sure we have a valid image. StyleImage* img = layer.image(); - if (!img || !img->canRender(*this, style()->effectiveZoom())) + if (!img || !img->canRender()) return false; if (layer.repeatX() != RepeatFill && layer.repeatX() != NoRepeatFill) @@ -4837,7 +4837,7 @@ return false; StyleImage* borderImage = style()->borderImage().image(); - return borderImage && borderImage->canRender(*this, style()->effectiveZoom()) && borderImage->isLoaded(); + return borderImage && borderImage->canRender() && borderImage->isLoaded(); } ShapeOutsideInfo* LayoutBox::shapeOutsideInfo() const
diff --git a/third_party/WebKit/Source/core/layout/LayoutObject.cpp b/third_party/WebKit/Source/core/layout/LayoutObject.cpp index efec9b15..d3ba572 100644 --- a/third_party/WebKit/Source/core/layout/LayoutObject.cpp +++ b/third_party/WebKit/Source/core/layout/LayoutObject.cpp
@@ -956,7 +956,7 @@ // Make sure we have a valid image. StyleImage* img = layer.image(); - if (!img || !img->canRender(*this, style()->effectiveZoom())) + if (!img || !img->canRender()) return false; if (layer.repeatY() != RepeatFill && layer.repeatY() != NoRepeatFill)
diff --git a/third_party/WebKit/Source/core/layout/line/InlineFlowBox.cpp b/third_party/WebKit/Source/core/layout/line/InlineFlowBox.cpp index 21300bb..5a94a49f 100644 --- a/third_party/WebKit/Source/core/layout/line/InlineFlowBox.cpp +++ b/third_party/WebKit/Source/core/layout/line/InlineFlowBox.cpp
@@ -1062,7 +1062,7 @@ // The checks here match how paintFillLayer() decides whether to clip (if it does, the shadow // would be clipped out, so it has to be drawn separately). StyleImage* image = lastBackgroundLayer.image(); - bool hasFillImage = image && image->canRender(layoutObject(), layoutObject().style()->effectiveZoom()); + bool hasFillImage = image && image->canRender(); return (!hasFillImage && !layoutObject().style()->hasBorderRadius()) || (!prevLineBox() && !nextLineBox()) || !parent(); }
diff --git a/third_party/WebKit/Source/core/paint/BoxPainter.cpp b/third_party/WebKit/Source/core/paint/BoxPainter.cpp index c56ba6ae..709167a 100644 --- a/third_party/WebKit/Source/core/paint/BoxPainter.cpp +++ b/third_party/WebKit/Source/core/paint/BoxPainter.cpp
@@ -143,7 +143,7 @@ static bool isFillLayerOpaque(const FillLayer& layer, const LayoutObject& imageClient) { return layer.hasOpaqueImage(&imageClient) - && layer.image()->canRender(imageClient, imageClient.style()->effectiveZoom()) + && layer.image()->canRender() && !layer.image()->imageSize(&imageClient, imageClient.style()->effectiveZoom()).isEmpty() && layer.hasRepeatXY(); } @@ -438,7 +438,7 @@ BackgroundImageGeometry geometry; if (bgImage) geometry.calculate(obj, paintInfo.paintContainer(), paintInfo.globalPaintFlags(), bgLayer, scrolledPaintRect); - bool shouldPaintBackgroundImage = bgImage && bgImage->canRender(obj, obj.style()->effectiveZoom()); + bool shouldPaintBackgroundImage = bgImage && bgImage->canRender(); // Paint the color first underneath all images, culled if background image occludes it. // TODO(trchen): In the !bgLayer.hasRepeatXY() case, we could improve the culling test
diff --git a/third_party/WebKit/Source/core/paint/InlineFlowBoxPainter.cpp b/third_party/WebKit/Source/core/paint/InlineFlowBoxPainter.cpp index 8b4c6d8..94e9a2b 100644 --- a/third_party/WebKit/Source/core/paint/InlineFlowBoxPainter.cpp +++ b/third_party/WebKit/Source/core/paint/InlineFlowBoxPainter.cpp
@@ -70,7 +70,7 @@ { LayoutBoxModelObject* boxModel = toLayoutBoxModelObject(LineLayoutPaintShim::layoutObjectFrom(m_inlineFlowBox.boxModelObject())); StyleImage* img = fillLayer.image(); - bool hasFillImage = img && img->canRender(m_inlineFlowBox.layoutObject(), m_inlineFlowBox.lineLayoutItem().style()->effectiveZoom()); + bool hasFillImage = img && img->canRender(); if ((!hasFillImage && !m_inlineFlowBox.lineLayoutItem().style()->hasBorderRadius()) || (!m_inlineFlowBox.prevLineBox() && !m_inlineFlowBox.nextLineBox()) || !m_inlineFlowBox.parent()) { BoxPainter::paintFillLayerExtended(*boxModel, paintInfo, c, fillLayer, rect, BackgroundBleedNone, &m_inlineFlowBox, rect.size(), op); } else if (m_inlineFlowBox.lineLayoutItem().style()->boxDecorationBreak() == DCLONE) { @@ -164,8 +164,7 @@ if (m_inlineFlowBox.parent() && m_inlineFlowBox.lineLayoutItem().style()->hasBorderDecoration()) { const NinePieceImage& borderImage = m_inlineFlowBox.lineLayoutItem().style()->borderImage(); StyleImage* borderImageSource = borderImage.image(); - const ComputedStyle* styleToUse = m_inlineFlowBox.lineLayoutItem().style(m_inlineFlowBox.isFirstLineStyle()); - bool hasBorderImage = borderImageSource && borderImageSource->canRender(m_inlineFlowBox.layoutObject(), styleToUse->effectiveZoom()); + bool hasBorderImage = borderImageSource && borderImageSource->canRender(); if (hasBorderImage && !borderImageSource->isLoaded()) return DontPaintBorders; @@ -278,7 +277,7 @@ LayoutRect paintRect = LayoutRect(adjustedPaintOffset, frameRect.size()); paintFillLayers(paintInfo, Color::transparent, m_inlineFlowBox.lineLayoutItem().style()->maskLayers(), paintRect, compositeOp); - bool hasBoxImage = maskBoxImage && maskBoxImage->canRender(m_inlineFlowBox.layoutObject(), m_inlineFlowBox.lineLayoutItem().style()->effectiveZoom()); + bool hasBoxImage = maskBoxImage && maskBoxImage->canRender(); if (!hasBoxImage || !maskBoxImage->isLoaded()) { if (pushTransparencyLayer) paintInfo.context->endLayer();
diff --git a/third_party/WebKit/Source/core/paint/NinePieceImagePainter.cpp b/third_party/WebKit/Source/core/paint/NinePieceImagePainter.cpp index 8947ad8..afd882d6 100644 --- a/third_party/WebKit/Source/core/paint/NinePieceImagePainter.cpp +++ b/third_party/WebKit/Source/core/paint/NinePieceImagePainter.cpp
@@ -33,7 +33,7 @@ if (!styleImage->isLoaded()) return true; // Never paint a nine-piece image incrementally, but don't paint the fallback borders either. - if (!styleImage->canRender(m_layoutObject, style.effectiveZoom())) + if (!styleImage->canRender()) return false; // Find out if the hasImage() check in ComputedStyle::border*Width had any affect, i.e. if a border is non-zero while border-style is
diff --git a/third_party/WebKit/Source/core/style/StyleFetchedImage.cpp b/third_party/WebKit/Source/core/style/StyleFetchedImage.cpp index bcc2857..099b407 100644 --- a/third_party/WebKit/Source/core/style/StyleFetchedImage.cpp +++ b/third_party/WebKit/Source/core/style/StyleFetchedImage.cpp
@@ -66,9 +66,9 @@ return cssValue(); } -bool StyleFetchedImage::canRender(const LayoutObject& layoutObject, float multiplier) const +bool StyleFetchedImage::canRender() const { - return m_image->canRender(layoutObject, multiplier); + return m_image->canRender(); } bool StyleFetchedImage::isLoaded() const
diff --git a/third_party/WebKit/Source/core/style/StyleFetchedImage.h b/third_party/WebKit/Source/core/style/StyleFetchedImage.h index 9b5c9ab..6d13020 100644 --- a/third_party/WebKit/Source/core/style/StyleFetchedImage.h +++ b/third_party/WebKit/Source/core/style/StyleFetchedImage.h
@@ -47,7 +47,7 @@ PassRefPtrWillBeRawPtr<CSSValue> cssValue() const override; PassRefPtrWillBeRawPtr<CSSValue> computedCSSValue() const override; - bool canRender(const LayoutObject&, float multiplier) const override; + bool canRender() const override; bool isLoaded() const override; bool errorOccurred() const override; LayoutSize imageSize(const LayoutObject*, float multiplier) const override;
diff --git a/third_party/WebKit/Source/core/style/StyleFetchedImageSet.cpp b/third_party/WebKit/Source/core/style/StyleFetchedImageSet.cpp index 6f2688c..b1e2601 100644 --- a/third_party/WebKit/Source/core/style/StyleFetchedImageSet.cpp +++ b/third_party/WebKit/Source/core/style/StyleFetchedImageSet.cpp
@@ -69,9 +69,9 @@ return m_imageSetValue->valueWithURLsMadeAbsolute(); } -bool StyleFetchedImageSet::canRender(const LayoutObject& layoutObject, float multiplier) const +bool StyleFetchedImageSet::canRender() const { - return m_bestFitImage->canRender(layoutObject, multiplier); + return m_bestFitImage->canRender(); } bool StyleFetchedImageSet::isLoaded() const
diff --git a/third_party/WebKit/Source/core/style/StyleFetchedImageSet.h b/third_party/WebKit/Source/core/style/StyleFetchedImageSet.h index 6b5b141..1805cb4 100644 --- a/third_party/WebKit/Source/core/style/StyleFetchedImageSet.h +++ b/third_party/WebKit/Source/core/style/StyleFetchedImageSet.h
@@ -59,7 +59,7 @@ void clearImageSetValue() { m_imageSetValue = nullptr; } #endif - bool canRender(const LayoutObject&, float multiplier) const override; + bool canRender() const override; bool isLoaded() const override; bool errorOccurred() const override; LayoutSize imageSize(const LayoutObject*, float multiplier) const override;
diff --git a/third_party/WebKit/Source/core/style/StyleImage.h b/third_party/WebKit/Source/core/style/StyleImage.h index 8d5df40..d5d96b7 100644 --- a/third_party/WebKit/Source/core/style/StyleImage.h +++ b/third_party/WebKit/Source/core/style/StyleImage.h
@@ -53,7 +53,7 @@ virtual PassRefPtrWillBeRawPtr<CSSValue> cssValue() const = 0; virtual PassRefPtrWillBeRawPtr<CSSValue> computedCSSValue() const = 0; - virtual bool canRender(const LayoutObject&, float /*multiplier*/) const { return true; } + virtual bool canRender() const { return true; } virtual bool isLoaded() const { return true; } virtual bool errorOccurred() const { return false; } virtual LayoutSize imageSize(const LayoutObject*, float multiplier) const = 0;
diff --git a/third_party/WebKit/Source/devtools/devtools.gypi b/third_party/WebKit/Source/devtools/devtools.gypi index abd0e4f..3449ce7 100644 --- a/third_party/WebKit/Source/devtools/devtools.gypi +++ b/third_party/WebKit/Source/devtools/devtools.gypi
@@ -512,6 +512,7 @@ 'front_end/network/EventSourceMessagesView.js', 'front_end/network/FilterSuggestionBuilder.js', 'front_end/network/HARWriter.js', + 'front_end/network/JSONView.js', 'front_end/network/NetworkConfigView.js', 'front_end/network/NetworkDataGridNode.js', 'front_end/network/NetworkItemView.js', @@ -522,7 +523,6 @@ 'front_end/network/RequestCookiesView.js', 'front_end/network/RequestHeadersView.js', 'front_end/network/RequestHTMLView.js', - 'front_end/network/RequestJSONView.js', 'front_end/network/RequestPreviewView.js', 'front_end/network/RequestResponseView.js', 'front_end/network/RequestTimingView.js',
diff --git a/third_party/WebKit/Source/devtools/front_end/network/RequestJSONView.js b/third_party/WebKit/Source/devtools/front_end/network/JSONView.js similarity index 76% rename from third_party/WebKit/Source/devtools/front_end/network/RequestJSONView.js rename to third_party/WebKit/Source/devtools/front_end/network/JSONView.js index a5b3eed..1ad2804 100644 --- a/third_party/WebKit/Source/devtools/front_end/network/RequestJSONView.js +++ b/third_party/WebKit/Source/devtools/front_end/network/JSONView.js
@@ -30,25 +30,24 @@ /** * @constructor - * @extends {WebInspector.RequestView} - * @param {!WebInspector.NetworkRequest} request + * @extends {WebInspector.VBox} * @param {!WebInspector.ParsedJSON} parsedJSON */ -WebInspector.RequestJSONView = function(request, parsedJSON) +WebInspector.JSONView = function(parsedJSON) { - WebInspector.RequestView.call(this, request); + WebInspector.VBox.call(this); this._parsedJSON = parsedJSON; - this.element.classList.add("json"); + this.element.classList.add("json-view"); } // "false", "true", "null", ",", "{", "}", "[", "]", number, double-quoted string. -WebInspector.RequestJSONView._jsonToken = new RegExp('(?:false|true|null|[/*&\\|;=\\(\\),\\{\\}\\[\\]]|(?:-?\\b(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\b)|(?:\"(?:[^\\0-\\x08\\x0a-\\x1f\"\\\\]|\\\\(?:[\"/\\\\bfnrt]|u[0-9A-Fa-f]{4}))*\"))', 'g'); +WebInspector.JSONView._jsonToken = new RegExp('(?:false|true|null|[/*&\\|;=\\(\\),\\{\\}\\[\\]]|(?:-?\\b(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\b)|(?:\"(?:[^\\0-\\x08\\x0a-\\x1f\"\\\\]|\\\\(?:[\"/\\\\bfnrt]|u[0-9A-Fa-f]{4}))*\"))', 'g'); // Escaped unicode char. -WebInspector.RequestJSONView._escapedUnicode = new RegExp('\\\\(?:([^u])|u(.{4}))', 'g'); +WebInspector.JSONView._escapedUnicode = new RegExp('\\\\(?:([^u])|u(.{4}))', 'g'); // Map from escaped char to its literal value. -WebInspector.RequestJSONView._standardEscapes = {'"': '"', '/': '/', '\\': '\\', 'b': '\b', 'f': '\f', 'n': '\n', 'r': '\r', 't': '\t'}; +WebInspector.JSONView._standardEscapes = {'"': '"', '/': '/', '\\': '\\', 'b': '\b', 'f': '\f', 'n': '\n', 'r': '\r', 't': '\t'}; /** * @param {string} full @@ -56,26 +55,26 @@ * @param {string} unicode * @return {string} */ -WebInspector.RequestJSONView._unescape = function(full, standard, unicode) +WebInspector.JSONView._unescape = function(full, standard, unicode) { - return standard ? WebInspector.RequestJSONView._standardEscapes[standard] : String.fromCharCode(parseInt(unicode, 16)); + return standard ? WebInspector.JSONView._standardEscapes[standard] : String.fromCharCode(parseInt(unicode, 16)); } /** * @param {string} text * @return {string} */ -WebInspector.RequestJSONView._unescapeString = function(text) +WebInspector.JSONView._unescapeString = function(text) { - return text.indexOf("\\") === -1 ? text : text.replace(WebInspector.RequestJSONView._escapedUnicode, WebInspector.RequestJSONView._unescape); + return text.indexOf("\\") === -1 ? text : text.replace(WebInspector.JSONView._escapedUnicode, WebInspector.JSONView._unescape); } /** * @return {*} */ -WebInspector.RequestJSONView._buildObjectFromJSON = function(text) +WebInspector.JSONView._buildObjectFromJSON = function(text) { - var regExp = WebInspector.RequestJSONView._jsonToken; + var regExp = WebInspector.JSONView._jsonToken; regExp.lastIndex = 0; var result = []; var tip = result; @@ -103,7 +102,7 @@ if (Array.isArray(tip) && (lastToken === undefined || lastToken === "[" || lastToken === ",")) tip[tip.length] = undefined; } else if (code === 0x22) { // " - token = WebInspector.RequestJSONView._unescapeString(token.substring(1, token.length - 1)); + token = WebInspector.JSONView._unescapeString(token.substring(1, token.length - 1)); if (!key) { if (Array.isArray(tip)) { key = tip.length; @@ -134,13 +133,13 @@ * @param {string} text * @return {?WebInspector.ParsedJSON} */ -WebInspector.RequestJSONView.parseJSON = function(text) +WebInspector.JSONView.parseJSON = function(text) { // Do not treat HTML as JSON. if (text.startsWith("<")) return null; - var inner = WebInspector.RequestJSONView._findBrackets(text, "{", "}"); - var inner2 = WebInspector.RequestJSONView._findBrackets(text, "[", "]"); + var inner = WebInspector.JSONView._findBrackets(text, "{", "}"); + var inner2 = WebInspector.JSONView._findBrackets(text, "[", "]"); inner = inner2.length > inner.length ? inner2 : inner; // Return on blank payloads or on payloads significantly smaller than original text. @@ -156,7 +155,7 @@ return null; try { - return new WebInspector.ParsedJSON(WebInspector.RequestJSONView._buildObjectFromJSON(text), prefix, suffix); + return new WebInspector.ParsedJSON(WebInspector.JSONView._buildObjectFromJSON(text), prefix, suffix); } catch (e) { return null; } @@ -168,7 +167,7 @@ * @param {string} close * @return {{start: number, end: number, length: number}} */ -WebInspector.RequestJSONView._findBrackets = function(text, open, close) +WebInspector.JSONView._findBrackets = function(text, open, close) { var start = text.indexOf(open); var end = text.lastIndexOf(close); @@ -178,7 +177,7 @@ return {start: start, end: end, length: length}; } -WebInspector.RequestJSONView.prototype = { +WebInspector.JSONView.prototype = { wasShown: function() { this._initialize(); @@ -198,11 +197,14 @@ this.element.appendChild(section.element); }, - __proto__: WebInspector.RequestView.prototype + __proto__: WebInspector.VBox.prototype } /** * @constructor + * @param {*} data + * @param {string} prefix + * @param {string} suffix */ WebInspector.ParsedJSON = function(data, prefix, suffix) {
diff --git a/third_party/WebKit/Source/devtools/front_end/network/RequestPreviewView.js b/third_party/WebKit/Source/devtools/front_end/network/RequestPreviewView.js index 31b4571..47395a1b 100644 --- a/third_party/WebKit/Source/devtools/front_end/network/RequestPreviewView.js +++ b/third_party/WebKit/Source/devtools/front_end/network/RequestPreviewView.js
@@ -86,13 +86,12 @@ }, /** - * @return {?WebInspector.RequestJSONView} + * @return {?WebInspector.JSONView} */ _jsonView: function() { - var content = this._requestContent(); - var parsedJSON = WebInspector.RequestJSONView.parseJSON(content); - return parsedJSON ? new WebInspector.RequestJSONView(this.request, parsedJSON) : null; + var parsedJSON = WebInspector.JSONView.parseJSON(this._requestContent()); + return parsedJSON && new WebInspector.JSONView(parsedJSON); }, /**
diff --git a/third_party/WebKit/Source/devtools/front_end/network/ResourceWebSocketFrameView.js b/third_party/WebKit/Source/devtools/front_end/network/ResourceWebSocketFrameView.js index 63105e2..eac9d79 100644 --- a/third_party/WebKit/Source/devtools/front_end/network/ResourceWebSocketFrameView.js +++ b/third_party/WebKit/Source/devtools/front_end/network/ResourceWebSocketFrameView.js
@@ -51,8 +51,8 @@ dataGridWidget.appendDataGrid(this._dataGrid); this._splitWidget.setMainWidget(dataGridWidget); - this._messageView = new WebInspector.EmptyWidget("Select frame to browse its content."); - this._splitWidget.setSidebarWidget(this._messageView); + var view = new WebInspector.EmptyWidget("Select frame to browse its content."); + this._splitWidget.setSidebarWidget(view); } /** @enum {number} */ @@ -118,12 +118,12 @@ _onFrameSelected: function(event) { var selectedNode = /** @type {!WebInspector.ResourceWebSocketFrameNode} */ (event.target.selectedNode); - if (this._messageView) - this._messageView.detach(); - if (this._dataView) - this._dataView.detach(); - this._dataView = new WebInspector.ResourceSourceFrame(selectedNode.contentProvider()); - this._splitWidget.setSidebarWidget(this._dataView); + var contentProvider = selectedNode.contentProvider(); + contentProvider.requestContent(content => { + var parsedJSON = content ? WebInspector.JSONView.parseJSON(content) : null; + var view = parsedJSON ? new WebInspector.JSONView(parsedJSON) : new WebInspector.ResourceSourceFrame(contentProvider); + this._splitWidget.setSidebarWidget(view); + }); }, refresh: function()
diff --git a/third_party/WebKit/Source/devtools/front_end/network/module.json b/third_party/WebKit/Source/devtools/front_end/network/module.json index 014c1ea..f7db8b4e 100644 --- a/third_party/WebKit/Source/devtools/front_end/network/module.json +++ b/third_party/WebKit/Source/devtools/front_end/network/module.json
@@ -99,6 +99,7 @@ "EventSourceMessagesView.js", "FilterSuggestionBuilder.js", "HARWriter.js", + "JSONView.js", "RequestView.js", "NetworkConfigView.js", "NetworkDataGridNode.js", @@ -109,7 +110,6 @@ "RequestCookiesView.js", "RequestHeadersView.js", "RequestHTMLView.js", - "RequestJSONView.js", "RequestPreviewView.js", "RequestResponseView.js", "RequestTimingView.js",
diff --git a/third_party/WebKit/Source/devtools/front_end/network/networkPanel.css b/third_party/WebKit/Source/devtools/front_end/network/networkPanel.css index fc70603..4a64b7a 100644 --- a/third_party/WebKit/Source/devtools/front_end/network/networkPanel.css +++ b/third_party/WebKit/Source/devtools/front_end/network/networkPanel.css
@@ -215,8 +215,8 @@ z-index: 250; } -.request-view.json { - padding: 5px; +.json-view { + padding: 2px 6px; } .request-view.html iframe {
diff --git a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp index b14c4a7..e8d9ee84 100644 --- a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp +++ b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
@@ -702,7 +702,7 @@ void WebGL2RenderingContextBase::texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, DOMArrayBufferView* pixels) { if (isContextLost() || !validateTexImage3D("texImage3D", target, level, internalformat, width, height, depth, border, format, type) - || !validateTexFuncData("texImage3D", level, width, height, format, type, pixels, NullAllowed)) + || !validateTexFuncData("texImage3D", level, width, height, depth, format, type, pixels, NullAllowed)) return; void* data = pixels ? pixels->baseAddress() : 0; @@ -810,7 +810,7 @@ void WebGL2RenderingContextBase::texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, DOMArrayBufferView* pixels) { if (isContextLost() || !pixels || !validateTexSubImage3D("texSubImage3D", target, level, xoffset, yoffset, zoffset, format, type, width, height, depth) - || !validateTexFuncData("texSubImage3D", level, width, height, format, type, pixels, NullAllowed)) + || !validateTexFuncData("texSubImage3D", level, width, height, depth, format, type, pixels, NullAllowed)) return; // FIXME: Ensure pixels is large enough to contain the desired texture dimensions.
diff --git a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp index a9ecf18..3c91012 100644 --- a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp +++ b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
@@ -3841,7 +3841,7 @@ // Calculate array size, taking into consideration of PACK_ALIGNMENT. unsigned totalBytesRequired = 0; unsigned padding = 0; - GLenum error = WebGLImageConversion::computeImageSizeInBytes(format, type, width, height, m_packAlignment, &totalBytesRequired, &padding); + GLenum error = WebGLImageConversion::computeImageSizeInBytes(format, type, width, height, 1, m_packAlignment, &totalBytesRequired, &padding); if (error != GL_NO_ERROR) { synthesizeGLError(error, "readPixels", "invalid dimensions"); return false; @@ -4290,7 +4290,7 @@ GLenum format, GLenum type, DOMArrayBufferView* pixels) { if (isContextLost() || !validateTexFunc("texImage2D", NotTexSubImage2D, SourceArrayBufferView, target, level, internalformat, width, height, border, format, type, 0, 0) - || !validateTexFuncData("texImage2D", level, width, height, format, type, pixels, NullAllowed)) + || !validateTexFuncData("texImage2D", level, width, height, 1, format, type, pixels, NullAllowed)) return; void* data = pixels ? pixels->baseAddress() : 0; Vector<uint8_t> tempData; @@ -4614,7 +4614,7 @@ GLenum format, GLenum type, DOMArrayBufferView* pixels) { if (isContextLost() || !validateTexFunc("texSubImage2D", TexSubImage2D, SourceArrayBufferView, target, level, 0, width, height, 0, format, type, xoffset, yoffset) - || !validateTexFuncData("texSubImage2D", level, width, height, format, type, pixels, NullNotAllowed)) + || !validateTexFuncData("texSubImage2D", level, width, height, 1, format, type, pixels, NullNotAllowed)) return; void* data = pixels->baseAddress(); Vector<uint8_t> tempData; @@ -5714,7 +5714,7 @@ return true; } -bool WebGLRenderingContextBase::validateTexFuncData(const char* functionName, GLint level, GLsizei width, GLsizei height, GLenum format, GLenum type, DOMArrayBufferView* pixels, NullDisposition disposition) +bool WebGLRenderingContextBase::validateTexFuncData(const char* functionName, GLint level, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, DOMArrayBufferView* pixels, NullDisposition disposition) { // All calling functions check isContextLost, so a duplicate check is not needed here. if (!pixels) { @@ -5791,14 +5791,14 @@ } unsigned totalBytesRequired; - GLenum error = WebGLImageConversion::computeImageSizeInBytes(format, type, width, height, m_unpackAlignment, &totalBytesRequired, 0); + GLenum error = WebGLImageConversion::computeImageSizeInBytes(format, type, width, height, depth, m_unpackAlignment, &totalBytesRequired, 0); if (error != GL_NO_ERROR) { synthesizeGLError(error, functionName, "invalid texture dimensions"); return false; } if (pixels->byteLength() < totalBytesRequired) { if (m_unpackAlignment != 1) { - error = WebGLImageConversion::computeImageSizeInBytes(format, type, width, height, 1, &totalBytesRequired, 0); + error = WebGLImageConversion::computeImageSizeInBytes(format, type, width, height, depth, 1, &totalBytesRequired, 0); if (pixels->byteLength() == totalBytesRequired) { synthesizeGLError(GL_INVALID_OPERATION, functionName, "ArrayBufferView not big enough for request with UNPACK_ALIGNMENT > 1"); return false;
diff --git a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h index 748c4ed..201fc75 100644 --- a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h +++ b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h
@@ -934,7 +934,7 @@ // Helper function to validate that the given ArrayBufferView // is of the correct type and contains enough data for the texImage call. // Generates GL error and returns false if parameters are invalid. - bool validateTexFuncData(const char* functionName, GLint level, GLsizei width, GLsizei height, GLenum format, GLenum type, DOMArrayBufferView* pixels, NullDisposition); + bool validateTexFuncData(const char* functionName, GLint level, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, DOMArrayBufferView* pixels, NullDisposition); // Helper function to validate that a copyTexSubImage call is valid. bool validateCopyTexSubImage(const char* functionName, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
diff --git a/third_party/WebKit/Source/platform/PurgeableVectorTest.cpp b/third_party/WebKit/Source/platform/PurgeableVectorTest.cpp index 474cb70..258c36e 100644 --- a/third_party/WebKit/Source/platform/PurgeableVectorTest.cpp +++ b/third_party/WebKit/Source/platform/PurgeableVectorTest.cpp
@@ -31,7 +31,7 @@ #include "config.h" #include "platform/PurgeableVector.h" -#include "platform/testing/TestingPlatformSupport.h" +#include "platform/TestingPlatformSupport.h" #include "public/platform/WebDiscardableMemory.h" #include "testing/gtest/include/gtest/gtest.h" #include "wtf/Vector.h"
diff --git a/third_party/WebKit/Source/platform/SharedBufferTest.cpp b/third_party/WebKit/Source/platform/SharedBufferTest.cpp index fe3d239f..7f6696f 100644 --- a/third_party/WebKit/Source/platform/SharedBufferTest.cpp +++ b/third_party/WebKit/Source/platform/SharedBufferTest.cpp
@@ -31,7 +31,7 @@ #include "config.h" #include "platform/SharedBuffer.h" -#include "platform/testing/TestingPlatformSupport.h" +#include "platform/TestingPlatformSupport.h" #include "public/platform/WebDiscardableMemory.h" #include "testing/gtest/include/gtest/gtest.h" #include "wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/platform/testing/TestingPlatformSupport.cpp b/third_party/WebKit/Source/platform/TestingPlatformSupport.cpp similarity index 91% rename from third_party/WebKit/Source/platform/testing/TestingPlatformSupport.cpp rename to third_party/WebKit/Source/platform/TestingPlatformSupport.cpp index 8939238..fcb4dbb7 100644 --- a/third_party/WebKit/Source/platform/testing/TestingPlatformSupport.cpp +++ b/third_party/WebKit/Source/platform/TestingPlatformSupport.cpp
@@ -30,7 +30,7 @@ #include "config.h" -#include "platform/testing/TestingPlatformSupport.h" +#include "platform/TestingPlatformSupport.h" namespace blink { @@ -69,11 +69,6 @@ return nullptr; } -TestingPlatformSupport::TestingPlatformSupport() - : TestingPlatformSupport(TestingPlatformSupport::Config()) -{ -} - TestingPlatformSupport::TestingPlatformSupport(const Config& config) : m_config(config) , m_oldPlatform(Platform::current()) @@ -112,9 +107,4 @@ return m_config.compositorSupport; } -WebThread* TestingPlatformSupport::currentThread() -{ - return m_oldPlatform ? m_oldPlatform->currentThread() : nullptr; -} - } // namespace blink
diff --git a/third_party/WebKit/Source/platform/testing/TestingPlatformSupport.h b/third_party/WebKit/Source/platform/TestingPlatformSupport.h similarity index 94% rename from third_party/WebKit/Source/platform/testing/TestingPlatformSupport.h rename to third_party/WebKit/Source/platform/TestingPlatformSupport.h index e1d5a49e..cdb74e3e 100644 --- a/third_party/WebKit/Source/platform/testing/TestingPlatformSupport.h +++ b/third_party/WebKit/Source/platform/TestingPlatformSupport.h
@@ -31,16 +31,12 @@ #ifndef TestingPlatformSupport_h #define TestingPlatformSupport_h -#include "platform/PlatformExport.h" #include "public/platform/Platform.h" #include "public/platform/WebDiscardableMemory.h" #include "wtf/Vector.h" namespace blink { -class WebCompositorSupport; -class WebThread; - class TestingDiscardableMemory : public WebDiscardableMemory { public: explicit TestingDiscardableMemory(size_t); @@ -68,7 +64,6 @@ WebCompositorSupport* compositorSupport; }; - TestingPlatformSupport(); explicit TestingPlatformSupport(const Config&); ~TestingPlatformSupport() override; @@ -79,9 +74,8 @@ const unsigned char* getTraceCategoryEnabledFlag(const char* categoryName) override; WebString defaultLocale() override; WebCompositorSupport* compositorSupport() override; - WebThread* currentThread() override; -protected: +private: const Config m_config; Platform* const m_oldPlatform; };
diff --git a/third_party/WebKit/Source/platform/TimerTest.cpp b/third_party/WebKit/Source/platform/TimerTest.cpp index 4585d950..0b14918e 100644 --- a/third_party/WebKit/Source/platform/TimerTest.cpp +++ b/third_party/WebKit/Source/platform/TimerTest.cpp
@@ -5,7 +5,6 @@ #include "config.h" #include "platform/Timer.h" -#include "platform/testing/TestingPlatformSupport.h" #include "public/platform/Platform.h" #include "public/platform/WebScheduler.h" #include "public/platform/WebThread.h" @@ -237,7 +236,7 @@ OwnPtr<MockWebScheduler> m_webScheduler; }; -class TimerTestPlatform : public TestingPlatformSupport { +class TimerTestPlatform : public Platform { public: TimerTestPlatform() : m_webThread(adoptPtr(new FakeWebThread())) { } @@ -248,6 +247,17 @@ return m_webThread.get(); } + void cryptographicallyRandomValues(unsigned char*, size_t) override + { + ASSERT_NOT_REACHED(); + } + + const unsigned char* getTraceCategoryEnabledFlag(const char* categoryName) override + { + static const unsigned char enabled[] = {0}; + return enabled; + } + void runUntilIdle() { mockScheduler()->runUntilIdle(); @@ -286,6 +296,9 @@ public: void SetUp() override { + m_platform = adoptPtr(new TimerTestPlatform()); + m_oldPlatform = Platform::current(); + Platform::initialize(m_platform.get()); WTF::setMonotonicallyIncreasingTimeFunction(currentTime); m_runTimes.clear(); @@ -293,6 +306,11 @@ m_startTime = gCurrentTimeSecs; } + void TearDown() override + { + Platform::initialize(m_oldPlatform); + } + void countingTask(Timer<TimerTest>*) { m_runTimes.append(monotonicallyIncreasingTime()); @@ -310,27 +328,27 @@ void runUntilIdle() { - m_platform.runUntilIdle(); + m_platform->runUntilIdle(); } void runPendingTasks() { - m_platform.runPendingTasks(); + m_platform->runPendingTasks(); } void runUntilIdleOrDeadlinePassed(double deadline) { - m_platform.runUntilIdleOrDeadlinePassed(deadline); + m_platform->runUntilIdleOrDeadlinePassed(deadline); } bool hasOneTimerTask() const { - return m_platform.hasOneTimerTask(); + return m_platform->hasOneTimerTask(); } double nextTimerTaskDelaySecs() const { - return m_platform.nextTimerTaskDelaySecs(); + return m_platform->nextTimerTaskDelaySecs(); } protected: @@ -339,7 +357,8 @@ WTF::Vector<double> m_nextFireTimes; private: - TimerTestPlatform m_platform; + OwnPtr<TimerTestPlatform> m_platform; + Platform* m_oldPlatform; }; TEST_F(TimerTest, StartOneShot_Zero)
diff --git a/third_party/WebKit/Source/platform/blink_platform.gypi b/third_party/WebKit/Source/platform/blink_platform.gypi index f0dbfe7..4ef56a69 100644 --- a/third_party/WebKit/Source/platform/blink_platform.gypi +++ b/third_party/WebKit/Source/platform/blink_platform.gypi
@@ -973,6 +973,8 @@ 'PODRedBlackTreeTest.cpp', 'PurgeableVectorTest.cpp', 'SharedBufferTest.cpp', + 'TestingPlatformSupport.cpp', + 'TestingPlatformSupport.h', 'TimerTest.cpp', 'TracedValueTest.cpp', 'UUIDTest.cpp', @@ -1076,8 +1078,6 @@ 'testing/GeometryPrinters.h', 'testing/PaintPrinters.cpp', 'testing/PaintPrinters.h', - 'testing/TestingPlatformSupport.cpp', - 'testing/TestingPlatformSupport.h', 'testing/TransformPrinters.cpp', 'testing/TransformPrinters.h', ],
diff --git a/third_party/WebKit/Source/platform/blink_platform_tests.gyp b/third_party/WebKit/Source/platform/blink_platform_tests.gyp index 0eef2e6..785918f 100644 --- a/third_party/WebKit/Source/platform/blink_platform_tests.gyp +++ b/third_party/WebKit/Source/platform/blink_platform_tests.gyp
@@ -128,8 +128,6 @@ 'sources': [ '<@(platform_test_support_files)', ], - # Disable c4267 warnings until we fix size_t to int truncations. - 'msvs_disabled_warnings': [ 4267 ], }, ], 'conditions': [
diff --git a/third_party/WebKit/Source/platform/fonts/FontCacheTest.cpp b/third_party/WebKit/Source/platform/fonts/FontCacheTest.cpp index 706f1694..ae6b2c2 100644 --- a/third_party/WebKit/Source/platform/fonts/FontCacheTest.cpp +++ b/third_party/WebKit/Source/platform/fonts/FontCacheTest.cpp
@@ -7,16 +7,19 @@ #include "platform/fonts/FontDescription.h" #include "platform/fonts/SimpleFontData.h" -#include "platform/testing/TestingPlatformSupport.h" #include "public/platform/Platform.h" #include "testing/gtest/include/gtest/gtest.h" namespace blink { -class EmptyPlatform : public TestingPlatformSupport { +class EmptyPlatform : public Platform { public: EmptyPlatform() {} ~EmptyPlatform() override {} + void cryptographicallyRandomValues(unsigned char* buffer, size_t length) override + { + RELEASE_ASSERT_NOT_REACHED(); + } }; TEST(FontCache, getLastResortFallbackFont) @@ -24,7 +27,9 @@ FontCache* fontCache = FontCache::fontCache(); ASSERT_TRUE(fontCache); - EmptyPlatform platform; + Platform* oldPlatform = Platform::current(); + OwnPtr<EmptyPlatform> platform = adoptPtr(new EmptyPlatform); + Platform::initialize(platform.get()); FontDescription fontDescription; fontDescription.setGenericFamily(FontDescription::StandardFamily); @@ -34,6 +39,8 @@ fontDescription.setGenericFamily(FontDescription::SansSerifFamily); fontData = fontCache->getLastResortFallbackFont(fontDescription, Retain); EXPECT_TRUE(fontData); + + Platform::initialize(oldPlatform); } } // namespace blink
diff --git a/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurfaceTest.cpp b/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurfaceTest.cpp index e504997a..4187ec2b 100644 --- a/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurfaceTest.cpp +++ b/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurfaceTest.cpp
@@ -9,7 +9,6 @@ #include "platform/graphics/ImageBuffer.h" #include "platform/graphics/ImageBufferClient.h" #include "platform/graphics/UnacceleratedImageBufferSurface.h" -#include "platform/testing/TestingPlatformSupport.h" #include "public/platform/Platform.h" #include "public/platform/WebTaskRunner.h" #include "public/platform/WebThread.h" @@ -237,13 +236,24 @@ // for the current thread. The Mock thread is capable of queuing a single non-delayed task // and registering a single task observer. The run loop exits immediately after running // the single task. - -class CurrentThreadPlatformMock : public TestingPlatformSupport { +class AutoInstallCurrentThreadPlatformMock { public: - CurrentThreadPlatformMock() { } - WebThread* currentThread() override { return &m_currentThread; } + AutoInstallCurrentThreadPlatformMock() + { + m_oldPlatform = Platform::current(); + Platform::initialize(&m_mockPlatform); + } - void enterRunLoop() { m_currentThread.enterRunLoop(); } + ~AutoInstallCurrentThreadPlatformMock() + { + Platform::initialize(m_oldPlatform); + } + + void enterRunLoop() + { + m_mockPlatform.enterRunLoop(); + } + private: class MockWebTaskRunner : public WebTaskRunner { public: @@ -325,7 +335,22 @@ TaskObserver* m_taskObserver; }; - CurrentThreadMock m_currentThread; + class CurrentThreadPlatformMock : public Platform { + public: + CurrentThreadPlatformMock() { } + virtual void cryptographicallyRandomValues(unsigned char* buffer, size_t length) + { + RELEASE_ASSERT_NOT_REACHED(); + } + WebThread* currentThread() override { return &m_currentThread; } + + void enterRunLoop() { m_currentThread.enterRunLoop(); } + private: + CurrentThreadMock m_currentThread; + }; + + CurrentThreadPlatformMock m_mockPlatform; + Platform* m_oldPlatform; }; } // anonymous namespace @@ -341,7 +366,7 @@ #define CALL_TEST_TASK_WRAPPER(TEST_METHOD) \ { \ - CurrentThreadPlatformMock ctpm; \ + AutoInstallCurrentThreadPlatformMock ctpm; \ Platform::current()->currentThread()->taskRunner()->postTask(BLINK_FROM_HERE, new TestWrapperTask_ ## TEST_METHOD(this)); \ ctpm.enterRunLoop(); \ }
diff --git a/third_party/WebKit/Source/platform/graphics/gpu/WebGLImageConversion.cpp b/third_party/WebKit/Source/platform/graphics/gpu/WebGLImageConversion.cpp index 9a30edeb..764adbeb 100644 --- a/third_party/WebKit/Source/platform/graphics/gpu/WebGLImageConversion.cpp +++ b/third_party/WebKit/Source/platform/graphics/gpu/WebGLImageConversion.cpp
@@ -1976,16 +1976,16 @@ return true; } -GLenum WebGLImageConversion::computeImageSizeInBytes(GLenum format, GLenum type, GLsizei width, GLsizei height, GLint alignment, unsigned* imageSizeInBytes, unsigned* paddingInBytes) +GLenum WebGLImageConversion::computeImageSizeInBytes(GLenum format, GLenum type, GLsizei width, GLsizei height, GLsizei depth, GLint alignment, unsigned* imageSizeInBytes, unsigned* paddingInBytes) { ASSERT(imageSizeInBytes); ASSERT(alignment == 1 || alignment == 2 || alignment == 4 || alignment == 8); - if (width < 0 || height < 0) + if (width < 0 || height < 0 || depth < 0) return GL_INVALID_VALUE; unsigned bytesPerComponent, componentsPerPixel; if (!computeFormatAndTypeParameters(format, type, &bytesPerComponent, &componentsPerPixel)) return GL_INVALID_ENUM; - if (!width || !height) { + if (!width || !height || !depth) { *imageSizeInBytes = 0; if (paddingInBytes) *paddingInBytes = 0; @@ -2003,7 +2003,7 @@ checkedValue += padding; } // Last row needs no padding. - checkedValue *= (height - 1); + checkedValue *= (height * depth - 1); checkedValue += validRowSize; if (!checkedValue.isValid()) return GL_INVALID_VALUE; @@ -2206,7 +2206,7 @@ unsigned packedSize; // Output data is tightly packed (alignment == 1). - if (computeImageSizeInBytes(format, type, width, height, 1, &packedSize, 0) != GL_NO_ERROR) + if (computeImageSizeInBytes(format, type, width, height, 1, 1, &packedSize, 0) != GL_NO_ERROR) return false; data.resize(packedSize); @@ -2233,7 +2233,7 @@ unsigned packedSize; // Output data is tightly packed (alignment == 1). - if (computeImageSizeInBytes(format, type, width, height, 1, &packedSize, 0) != GL_NO_ERROR) + if (computeImageSizeInBytes(format, type, width, height, 1, 1, &packedSize, 0) != GL_NO_ERROR) return false; data.resize(packedSize);
diff --git a/third_party/WebKit/Source/platform/graphics/gpu/WebGLImageConversion.h b/third_party/WebKit/Source/platform/graphics/gpu/WebGLImageConversion.h index 8275f21..cd276ed 100644 --- a/third_party/WebKit/Source/platform/graphics/gpu/WebGLImageConversion.h +++ b/third_party/WebKit/Source/platform/graphics/gpu/WebGLImageConversion.h
@@ -148,9 +148,9 @@ // Computes the image size in bytes. If paddingInBytes is not null, padding // is also calculated in return. Returns NO_ERROR if succeed, otherwise // return the suggested GL error indicating the cause of the failure: - // INVALID_VALUE if width/height is negative or overflow happens. + // INVALID_VALUE if width/height/depth is negative or overflow happens. // INVALID_ENUM if format/type is illegal. - static GLenum computeImageSizeInBytes(GLenum format, GLenum type, GLsizei width, GLsizei height, GLint alignment, unsigned* imageSizeInBytes, unsigned* paddingInBytes); + static GLenum computeImageSizeInBytes(GLenum format, GLenum type, GLsizei width, GLsizei height, GLsizei depth, GLint alignment, unsigned* imageSizeInBytes, unsigned* paddingInBytes); // Check if the format is one of the formats from the ImageData or DOM elements. // The formats from ImageData is always RGBA8.
diff --git a/third_party/WebKit/Source/platform/scroll/ScrollableAreaTest.cpp b/third_party/WebKit/Source/platform/scroll/ScrollableAreaTest.cpp index 13487d83..c7800f7 100644 --- a/third_party/WebKit/Source/platform/scroll/ScrollableAreaTest.cpp +++ b/third_party/WebKit/Source/platform/scroll/ScrollableAreaTest.cpp
@@ -5,7 +5,7 @@ #include "config.h" #include "platform/scroll/ScrollableArea.h" -#include "platform/testing/TestingPlatformSupport.h" +#include "platform/TestingPlatformSupport.h" #include "public/platform/Platform.h" #include "public/platform/WebScheduler.h" #include "public/platform/WebThread.h" @@ -86,7 +86,7 @@ // We need just enough scaffolding for the Timer constructor to not segfault. class FakePlatform : public TestingPlatformSupport { public: - FakePlatform() { } + FakePlatform() : TestingPlatformSupport(TestingPlatformSupport::Config()) { } ~FakePlatform() override { } WebThread* currentThread() override
diff --git a/third_party/WebKit/Source/platform/testing/RunAllTests.cpp b/third_party/WebKit/Source/platform/testing/RunAllTests.cpp index 3cf424c..a3d9a40fe6 100644 --- a/third_party/WebKit/Source/platform/testing/RunAllTests.cpp +++ b/third_party/WebKit/Source/platform/testing/RunAllTests.cpp
@@ -31,8 +31,8 @@ #include "config.h" #include "platform/EventTracer.h" +#include "platform/TestingPlatformSupport.h" #include "platform/heap/Heap.h" -#include "platform/testing/TestingPlatformSupport.h" #include "wtf/CryptographicallyRandomNumber.h" #include "wtf/MainThread.h" #include "wtf/Partitions.h"
diff --git a/third_party/WebKit/Source/platform/text/LocaleMacTest.cpp b/third_party/WebKit/Source/platform/text/LocaleMacTest.cpp index 05469d8..d28c72b 100644 --- a/third_party/WebKit/Source/platform/text/LocaleMacTest.cpp +++ b/third_party/WebKit/Source/platform/text/LocaleMacTest.cpp
@@ -27,7 +27,7 @@ #include "platform/text/LocaleMac.h" #include "platform/DateComponents.h" -#include "platform/testing/TestingPlatformSupport.h" +#include "platform/TestingPlatformSupport.h" #include "public/platform/Platform.h" #include "testing/gtest/include/gtest/gtest.h" #include "wtf/DateMath.h" @@ -39,6 +39,8 @@ class LocalePlatformSupport : public TestingPlatformSupport { public: + LocalePlatformSupport() : TestingPlatformSupport(TestingPlatformSupport::Config()) { } + WebString queryLocalizedString(WebLocalizedString::Name /*name*/) override { return WebString::fromUTF8("Week $2, $1");
diff --git a/third_party/WebKit/Source/platform/weborigin/OriginAccessEntryTest.cpp b/third_party/WebKit/Source/platform/weborigin/OriginAccessEntryTest.cpp index 49ea30e7..549248e 100644 --- a/third_party/WebKit/Source/platform/weborigin/OriginAccessEntryTest.cpp +++ b/third_party/WebKit/Source/platform/weborigin/OriginAccessEntryTest.cpp
@@ -31,7 +31,6 @@ #include "config.h" #include "platform/weborigin/OriginAccessEntry.h" -#include "platform/testing/TestingPlatformSupport.h" #include "platform/weborigin/KURL.h" #include "platform/weborigin/SecurityOrigin.h" #include "public/platform/Platform.h" @@ -56,19 +55,43 @@ size_t m_length; }; -class OriginAccessEntryTestPlatform : public TestingPlatformSupport { +class OriginAccessEntryTestPlatform : public blink::Platform { public: + OriginAccessEntryTestPlatform() + : m_oldPlatform(Platform::current()) + { + Platform::initialize(this); + } + + ~OriginAccessEntryTestPlatform() + { + Platform::initialize(m_oldPlatform); + } + blink::WebPublicSuffixList* publicSuffixList() override { return &m_suffixList; } + // Stub for pure virtual method. + void cryptographicallyRandomValues(unsigned char*, size_t) override + { + RELEASE_ASSERT_NOT_REACHED(); + } + + const unsigned char* getTraceCategoryEnabledFlag(const char* categoryName) override + { + static const unsigned char tracingIsDisabled = 0; + return &tracingIsDisabled; + } + void setPublicSuffix(const blink::WebString& suffix) { m_suffixList.setPublicSuffix(suffix); } private: + blink::Platform* m_oldPlatform; OriginAccessEntryTestSuffixList m_suffixList; }; @@ -290,3 +313,4 @@ } } // namespace blink +
diff --git a/third_party/WebKit/Source/web/BUILD.gn b/third_party/WebKit/Source/web/BUILD.gn index f19d290..7bb2b71f 100644 --- a/third_party/WebKit/Source/web/BUILD.gn +++ b/third_party/WebKit/Source/web/BUILD.gn
@@ -111,7 +111,6 @@ "//testing/gmock", "//testing/gtest", "//third_party/WebKit/Source/platform:test_support", - "//third_party/WebKit/Source/wtf", "//third_party/WebKit/Source/wtf:test_support", "//third_party/libwebp", "//third_party/zlib",
diff --git a/third_party/WebKit/Source/web/ImageDecodeBench.cpp b/third_party/WebKit/Source/web/ImageDecodeBench.cpp index 41c3870..988f2e8f 100644 --- a/third_party/WebKit/Source/web/ImageDecodeBench.cpp +++ b/third_party/WebKit/Source/web/ImageDecodeBench.cpp
@@ -25,7 +25,6 @@ #include "platform/SharedBuffer.h" #include "platform/image-decoders/ImageDecoder.h" -#include "platform/testing/TestingPlatformSupport.h" #include "public/platform/Platform.h" #include "public/web/WebKit.h" #include "wtf/OwnPtr.h" @@ -361,8 +360,18 @@ // Create a web platform without V8. - class WebPlatform : public TestingPlatformSupport { + class WebPlatform : public blink::Platform { public: + const unsigned char* getTraceCategoryEnabledFlag(const char*) override + { + return reinterpret_cast<const unsigned char *>("nope-none-nada"); + } + + void cryptographicallyRandomValues(unsigned char*, size_t) override + { + RELEASE_ASSERT_NOT_REACHED(); + } + void screenColorProfile(WebVector<char>* profile) override { getScreenColorProfile(profile); // Returns a whacked color profile.
diff --git a/third_party/WebKit/Source/web/tests/TextFinderTest.cpp b/third_party/WebKit/Source/web/tests/TextFinderTest.cpp index d3260d1..a9ebd81 100644 --- a/third_party/WebKit/Source/web/tests/TextFinderTest.cpp +++ b/third_party/WebKit/Source/web/tests/TextFinderTest.cpp
@@ -14,7 +14,6 @@ #include "core/html/HTMLElement.h" #include "core/layout/TextAutosizer.h" #include "core/page/Page.h" -#include "platform/testing/TestingPlatformSupport.h" #include "platform/testing/UnitTestHelpers.h" #include "public/platform/Platform.h" #include "public/web/WebDocument.h" @@ -30,15 +29,7 @@ class TextFinderTest : public ::testing::Test { protected: - TextFinderTest() - { - m_webViewHelper.initialize(); - WebLocalFrameImpl& frameImpl = *m_webViewHelper.webViewImpl()->mainFrameImpl(); - frameImpl.viewImpl()->resize(WebSize(640, 480)); - frameImpl.viewImpl()->updateAllLifecyclePhases(); - m_document = PassRefPtrWillBeRawPtr<Document>(frameImpl.document()); - m_textFinder = &frameImpl.ensureTextFinder(); - } + void SetUp() override; Document& document() const; TextFinder& textFinder() const; @@ -51,6 +42,16 @@ RawPtrWillBePersistent<TextFinder> m_textFinder; }; +void TextFinderTest::SetUp() +{ + m_webViewHelper.initialize(); + WebLocalFrameImpl& frameImpl = *m_webViewHelper.webViewImpl()->mainFrameImpl(); + frameImpl.viewImpl()->resize(WebSize(640, 480)); + frameImpl.viewImpl()->updateAllLifecyclePhases(); + m_document = PassRefPtrWillBeRawPtr<Document>(frameImpl.document()); + m_textFinder = &frameImpl.ensureTextFinder(); +} + Document& TextFinderTest::document() const { return *m_document; @@ -397,19 +398,41 @@ class TextFinderFakeTimerTest : public TextFinderTest { protected: + void SetUp() override; + void TearDown() override; + // A simple platform that mocks out the clock. - class TimeProxyPlatform : public TestingPlatformSupport { + class TimeProxyPlatform : public Platform { public: TimeProxyPlatform() - : m_timeCounter(m_oldPlatform->currentTimeSeconds()) + : m_timeCounter(0.) + , m_fallbackPlatform(0) + { } + + void install() { + // Check that the proxy wasn't installed yet. + ASSERT_NE(Platform::current(), this); + m_fallbackPlatform = Platform::current(); + m_timeCounter = m_fallbackPlatform->currentTimeSeconds(); + Platform::initialize(this); + ASSERT_EQ(Platform::current(), this); + } + + void remove() + { + // Check that the proxy was installed. + ASSERT_EQ(Platform::current(), this); + Platform::initialize(m_fallbackPlatform); + ASSERT_EQ(Platform::current(), m_fallbackPlatform); + m_fallbackPlatform = 0; } private: Platform& ensureFallback() { - ASSERT(m_oldPlatform); - return *m_oldPlatform; + ASSERT(m_fallbackPlatform); + return *m_fallbackPlatform; } // From blink::Platform: @@ -418,22 +441,47 @@ return ++m_timeCounter; } + // These blink::Platform methods must be overriden to make a usable object. + void cryptographicallyRandomValues(unsigned char* buffer, size_t length) override + { + ensureFallback().cryptographicallyRandomValues(buffer, length); + } + + const unsigned char* getTraceCategoryEnabledFlag(const char* categoryName) override + { + return ensureFallback().getTraceCategoryEnabledFlag(categoryName); + } + // These two methods allow timers to work correctly. double monotonicallyIncreasingTimeSeconds() override { return ensureFallback().monotonicallyIncreasingTimeSeconds(); } + WebThread* currentThread() override { return ensureFallback().currentThread(); } WebUnitTestSupport* unitTestSupport() override { return ensureFallback().unitTestSupport(); } WebString defaultLocale() override { return ensureFallback().defaultLocale(); } WebCompositorSupport* compositorSupport() override { return ensureFallback().compositorSupport(); } double m_timeCounter; + Platform* m_fallbackPlatform; }; TimeProxyPlatform m_proxyTimePlatform; }; +void TextFinderFakeTimerTest::SetUp() +{ + TextFinderTest::SetUp(); + m_proxyTimePlatform.install(); +} + +void TextFinderFakeTimerTest::TearDown() +{ + m_proxyTimePlatform.remove(); + TextFinderTest::TearDown(); +} + TEST_F(TextFinderFakeTimerTest, ScopeWithTimeouts) { // Make a long string.
diff --git a/third_party/WebKit/Source/web/web_tests.gyp b/third_party/WebKit/Source/web/web_tests.gyp index acb59dc..98807e31 100644 --- a/third_party/WebKit/Source/web/web_tests.gyp +++ b/third_party/WebKit/Source/web/web_tests.gyp
@@ -49,7 +49,6 @@ '../../public/blink.gyp:blink', '../config.gyp:unittest_config', '../platform/blink_platform_tests.gyp:blink_platform_test_support', - '../wtf/wtf.gyp:wtf', '../wtf/wtf_tests.gyp:wtf_unittest_helpers', 'web.gyp:blink_web_test_support', '<(DEPTH)/base/base.gyp:base',
diff --git a/third_party/libjingle/README.chromium b/third_party/libjingle/README.chromium index 781d381f..012ba69 100644 --- a/third_party/libjingle/README.chromium +++ b/third_party/libjingle/README.chromium
@@ -1,7 +1,7 @@ Name: libjingle URL: http://www.webrtc.org Version: unknown -Revision: 10725 +Revision: 10735 License: BSD License File: source/talk/COPYING Security Critical: yes
diff --git a/tools/mb/mb_config.pyl b/tools/mb/mb_config.pyl index fa9dd82..14d6ae9 100644 --- a/tools/mb/mb_config.pyl +++ b/tools/mb/mb_config.pyl
@@ -52,7 +52,6 @@ 'gyp_official_goma_minimal_symbols_android_arm64': ['gyp', 'official', 'goma', 'minimal_symbols', 'android', 'arm64'], 'gyp_official_goma_minimal_symbols_x64': ['gyp', 'official', 'goma', 'minimal_symbols', 'x64'], 'gyp_official_goma_minimal_symbols_x86': ['gyp', 'official', 'goma', 'minimal_symbols', 'x86'], - 'gyp_release_bot_arm': ['gyp', 'release_bot', 'arm', 'crosscompile'], 'gyp_release_trybot': ['gyp', 'release_trybot'], 'gyp_release_trybot_x64': ['gyp', 'release_trybot', 'x64'], 'libfuzzer_upload_bot': ['gn', 'release', 'libfuzzer', 'asan', 'proprietary_codecs'], @@ -78,8 +77,8 @@ 'swarming_gyp_debug_bot_no_symbols_x86': ['swarming', 'gyp', 'debug_bot', 'no_symbols', 'x86'], 'swarming_gyp_debug_trybot_x86': ['swarming', 'gyp', 'debug_trybot', 'x86'], 'swarming_gyp_release_bot': ['swarming', 'gyp', 'release_bot'], + 'swarming_gyp_release_bot_arm': ['swarming', 'gyp', 'release_bot', 'arm', 'crosscompile'], 'swarming_gyp_release_trybot_arm': ['swarming', 'gyp', 'release_trybot', 'arm', 'crosscompile'], - 'swarming_gyp_release_trybot_arm_float': ['swarming', 'gyp', 'release_trybot', 'arm_float', 'crosscompile'], 'swarming_tsan_gyp_release_trybot': ['swarming', 'disable_nacl', 'tsan', 'gyp', 'release_trybot'], # clang/win doesn't work with goma yet, so this can't use debug_bot: @@ -127,11 +126,6 @@ 'gyp_defines': 'target_arch=arm64', }, - 'arm_float': { - 'gn_args': 'error', - 'gyp_defines': 'target_arch=arm arm_float_abi=hard', - }, - 'arm64': { 'gn_args': 'target_cpu="arm64"', 'gyp_defines': 'target_arch=arm64', @@ -387,11 +381,11 @@ }, 'chromium.linux': { 'Linux Builder': 'swarming_gn_release_bot', - 'Linux Tests': 'swarming_gn_release_bot', + 'Linux Tests': 'none', 'Linux Builder (dbg)(32)': 'swarming_gyp_debug_bot_no_symbols_x86', - 'Linux Tests (dbg)(1)(32)': 'swarming_gyp_debug_bot_no_symbols_x86', + 'Linux Tests (dbg)(1)(32)': 'none', 'Linux Builder (dbg)': 'swarming_gn_debug_bot', - 'Linux Tests (dbg)(1)': 'swarming_gn_debug_bot', + 'Linux Tests (dbg)(1)': 'none', 'Linux GN': 'gn_release_bot', 'Linux GN Clobber': 'gn_release_bot', 'Linux GN (dbg)': 'gn_debug_bot', @@ -445,7 +439,7 @@ 'Libfuzzer Upload Linux': 'libfuzzer_upload_bot', 'Site Isolation Linux': 'gn_release_trybot', 'Site Isolation Win': 'gyp_release_trybot_x64', - 'Linux ARM': 'gyp_release_bot_arm', + 'Linux ARM': 'swarming_gyp_release_bot_arm', }, 'chromium.webrtc.fyi': { 'Android GN': 'android_gn_release_bot', @@ -507,8 +501,6 @@ 'linux_chromium_tsan_rel_ng': 'swarming_tsan_gyp_release_trybot', 'linux_chromium_practice_rel_ng': 'gyp_release_trybot', 'linux_arm_compile': 'swarming_gyp_release_trybot_arm', - 'linux_arm': 'swarming_gyp_release_trybot_arm_float', - 'linux_arm_tester': 'none', 'linux_chromium_compile_dbg_32_ng': 'swarming_gyp_debug_trybot_x86', 'linux_chromium_dbg_32_ng': 'swarming_gyp_debug_trybot_x86', 'linux_chromium_archive_rel_ng': 'noswarming_gyp_release_bot_linux_dump_symbols',