Update to Chromium revision 304f01a1 (#358063)

- Improve ordering of CefLoadHandler callbacks. OnLoadingStateChange will
  be called before and after all calls to OnLoadStart and OnLoadEnd.
  OnLoadStart/OnLoadEnd calls will occur as matching pairs
  (see http://crbug.com/539952#c2).
- Remove the |requesting_url| argument to CefGeolocationHandler::
  OnCancelGeolocationPermission. Clients can use the |request_id| argument
  to track this information themselves.
- Fix a crash when loading the PDF extension in multiple browsers with a
  custom CefRequestContext (issue #1757).
This commit is contained in:
Marshall Greenblatt
2015-11-10 15:18:16 -05:00
parent e0974ea64d
commit c6111d5947
92 changed files with 1918 additions and 902 deletions

View File

@ -1,5 +1,5 @@
diff --git render_widget_host_view_guest.cc render_widget_host_view_guest.cc
index ecda893d..446c6e6 100644
index b389e40..c3b5d3e 100644
--- render_widget_host_view_guest.cc
+++ render_widget_host_view_guest.cc
@@ -191,6 +191,9 @@ void RenderWidgetHostViewGuest::Destroy() {

View File

@ -1,5 +1,5 @@
diff --git browser/browser_plugin/browser_plugin_guest.cc browser/browser_plugin/browser_plugin_guest.cc
index 00529ff..57ccf08 100644
index cef0842..d79092d 100644
--- browser/browser_plugin/browser_plugin_guest.cc
+++ browser/browser_plugin/browser_plugin_guest.cc
@@ -23,7 +23,7 @@
@ -11,7 +11,7 @@ index 00529ff..57ccf08 100644
#include "content/common/browser_plugin/browser_plugin_constants.h"
#include "content/common/browser_plugin/browser_plugin_messages.h"
#include "content/common/content_constants_internal.h"
@@ -289,20 +289,19 @@ void BrowserPluginGuest::InitInternal(
@@ -290,20 +290,19 @@ void BrowserPluginGuest::InitInternal(
guest_window_rect_ = params.view_rect;
if (owner_web_contents_ != owner_web_contents) {
@ -36,24 +36,23 @@ index 00529ff..57ccf08 100644
}
RendererPreferences* renderer_prefs =
@@ -748,12 +747,9 @@ void BrowserPluginGuest::OnWillAttachComplete(
@@ -792,11 +791,10 @@ void BrowserPluginGuest::OnWillAttachComplete(
// This will trigger a callback to RenderViewReady after a round-trip IPC.
static_cast<RenderViewHostImpl*>(
GetWebContents()->GetRenderViewHost())->Init();
- WebContentsViewGuest* web_contents_view =
- static_cast<WebContentsViewGuest*>(GetWebContents()->GetView());
- if (!web_contents()->GetRenderViewHost()->GetView()) {
if (!web_contents()->GetRenderViewHost()->GetWidget()->GetView()) {
- web_contents_view->CreateViewForWidget(
- web_contents()->GetRenderViewHost(), true);
- }
+ if (!web_contents()->GetRenderViewHost()->GetView())
+ delegate_->CreateViewForWidget(GetWebContents()->GetView(),
+ web_contents()->GetRenderViewHost());
- web_contents()->GetRenderViewHost()->GetWidget(), true);
+ delegate_->CreateViewForWidget(
+ GetWebContents()->GetView(),
+ web_contents()->GetRenderViewHost()->GetWidget());
}
}
InitInternal(params, embedder_web_contents);
diff --git public/browser/browser_plugin_guest_delegate.cc public/browser/browser_plugin_guest_delegate.cc
index fd7dec4..49d4f99 100644
index bfa19e4..d788495 100644
--- public/browser/browser_plugin_guest_delegate.cc
+++ public/browser/browser_plugin_guest_delegate.cc
@@ -4,6 +4,8 @@
@ -65,7 +64,7 @@ index fd7dec4..49d4f99 100644
namespace content {
bool BrowserPluginGuestDelegate::CanRunInDetachedState() const {
@@ -30,4 +32,23 @@ bool BrowserPluginGuestDelegate::StopFinding(StopFindAction action) {
@@ -32,4 +34,23 @@ bool BrowserPluginGuestDelegate::HandleStopFindingForEmbedder(
return false;
}
@ -90,7 +89,7 @@ index fd7dec4..49d4f99 100644
+
} // namespace content
diff --git public/browser/browser_plugin_guest_delegate.h public/browser/browser_plugin_guest_delegate.h
index aabe27b..8ff46f4 100644
index 4dd1a4c..b299190 100644
--- public/browser/browser_plugin_guest_delegate.h
+++ public/browser/browser_plugin_guest_delegate.h
@@ -21,6 +21,8 @@ class Size;

View File

@ -1,9 +1,9 @@
diff --git web_contents_impl.cc web_contents_impl.cc
index 7c84d90..2aaace4 100644
index bf45da9..19ef2c7 100644
--- web_contents_impl.cc
+++ web_contents_impl.cc
@@ -1353,23 +1353,30 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
MSG_ROUTING_NONE);
@@ -1351,23 +1351,30 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
main_frame_widget_routing_id);
frame_tree_.root()->SetFrameName(params.main_frame_name);
- WebContentsViewDelegate* delegate =
@ -50,7 +50,7 @@ index 7c84d90..2aaace4 100644
}
CHECK(render_view_host_delegate_view_);
CHECK(view_.get());
@@ -1715,6 +1722,9 @@ void WebContentsImpl::CreateNewWindow(
@@ -1719,11 +1726,14 @@ void WebContentsImpl::CreateNewWindow(
static_cast<SessionStorageNamespaceImpl*>(session_storage_namespace);
CHECK(session_storage_namespace_impl->IsFromContext(dom_storage_context));
@ -58,20 +58,15 @@ index 7c84d90..2aaace4 100644
+ content::RenderViewHostDelegateView* delegate_view = NULL;
+
if (delegate_ &&
!delegate_->ShouldCreateWebContents(this,
route_id,
@@ -1723,7 +1733,9 @@ void WebContentsImpl::CreateNewWindow(
params.frame_name,
params.target_url,
partition_id,
- session_storage_namespace)) {
+ session_storage_namespace,
+ &view,
+ &delegate_view)) {
!delegate_->ShouldCreateWebContents(
this, route_id, main_frame_route_id, main_frame_widget_route_id,
params.window_container_type, params.frame_name, params.target_url,
- partition_id, session_storage_namespace)) {
+ partition_id, session_storage_namespace, &view, &delegate_view)) {
if (route_id != MSG_ROUTING_NONE &&
!RenderViewHost::FromID(render_process_id, route_id)) {
// If the embedder didn't create a WebContents for this route, we need to
@@ -1745,6 +1757,8 @@ void WebContentsImpl::CreateNewWindow(
@@ -1748,6 +1758,8 @@ void WebContentsImpl::CreateNewWindow(
create_params.opener_render_process_id = render_process_id;
create_params.opener_render_frame_id = params.opener_render_frame_id;
create_params.opener_suppressed = params.opener_suppressed;

View File

@ -1,5 +1,5 @@
diff --git common.gypi common.gypi
index cce7b3c..84a702a 100644
index 780f43d..409a018 100644
--- common.gypi
+++ common.gypi
@@ -9,6 +9,9 @@

View File

@ -1,8 +1,8 @@
diff --git ui/browser.cc ui/browser.cc
index 36d24b6..bbc5075 100644
index d6a2493..c352fd6a 100644
--- ui/browser.cc
+++ ui/browser.cc
@@ -1669,7 +1669,9 @@ bool Browser::ShouldCreateWebContents(
@@ -1673,7 +1673,9 @@ bool Browser::ShouldCreateWebContents(
const std::string& frame_name,
const GURL& target_url,
const std::string& partition_id,
@ -12,9 +12,9 @@ index 36d24b6..bbc5075 100644
+ content::RenderViewHostDelegateView** delegate_view) {
if (window_container_type == WINDOW_CONTAINER_TYPE_BACKGROUND) {
// If a BackgroundContents is created, suppress the normal WebContents.
return !MaybeCreateBackgroundContents(route_id,
return !MaybeCreateBackgroundContents(
diff --git ui/browser.h ui/browser.h
index e296569..bf03785 100644
index 1511788..23ffe53 100644
--- ui/browser.h
+++ ui/browser.h
@@ -591,7 +591,9 @@ class Browser : public TabStripModelObserver,

View File

@ -1,8 +1,8 @@
diff --git content/browser/compositor/gpu_process_transport_factory.cc content/browser/compositor/gpu_process_transport_factory.cc
index b7ed844..c6ec2a9 100644
index b74845f..4ac77c3 100644
--- content/browser/compositor/gpu_process_transport_factory.cc
+++ content/browser/compositor/gpu_process_transport_factory.cc
@@ -142,6 +142,13 @@ GpuProcessTransportFactory::CreateOffscreenCommandBufferContext() {
@@ -143,6 +143,13 @@ GpuProcessTransportFactory::CreateOffscreenCommandBufferContext() {
scoped_ptr<cc::SoftwareOutputDevice>
GpuProcessTransportFactory::CreateSoftwareOutputDevice(
ui::Compositor* compositor) {
@ -17,10 +17,10 @@ index b7ed844..c6ec2a9 100644
return scoped_ptr<cc::SoftwareOutputDevice>(
new SoftwareOutputDeviceWin(software_backing_.get(), compositor));
diff --git ui/compositor/compositor.h ui/compositor/compositor.h
index fe2a033..b6cd7c9 100644
index 1602d30..3dd3e3e 100644
--- ui/compositor/compositor.h
+++ ui/compositor/compositor.h
@@ -15,6 +15,7 @@
@@ -14,6 +14,7 @@
#include "base/single_thread_task_runner.h"
#include "base/time/time.h"
#include "cc/output/begin_frame_args.h"
@ -28,7 +28,7 @@ index fe2a033..b6cd7c9 100644
#include "cc/surfaces/surface_sequence.h"
#include "cc/trees/layer_tree_host_client.h"
#include "cc/trees/layer_tree_host_single_thread_client.h"
@@ -149,6 +150,17 @@ class COMPOSITOR_EXPORT CompositorBeginFrameObserver {
@@ -148,6 +149,17 @@ class COMPOSITOR_EXPORT CompositorBeginFrameObserver {
virtual void OnSendBeginFrame(const cc::BeginFrameArgs& args) = 0;
};
@ -46,7 +46,7 @@ index fe2a033..b6cd7c9 100644
// Compositor object to take care of GPU painting.
// A Browser compositor object is responsible for generating the final
// displayable form of pixels comprising a single widget's contents. It draws an
@@ -169,6 +181,9 @@ class COMPOSITOR_EXPORT Compositor
@@ -168,6 +180,9 @@ class COMPOSITOR_EXPORT Compositor
// Schedules a redraw of the layer tree associated with this compositor.
void ScheduleDraw();
@ -56,7 +56,7 @@ index fe2a033..b6cd7c9 100644
// Sets the root of the layer tree drawn by this Compositor. The root layer
// must have no parent. The compositor's root layer is reset if the root layer
// is destroyed. NULL can be passed to reset the root layer, in which case the
@@ -335,6 +350,8 @@ class COMPOSITOR_EXPORT Compositor
@@ -338,6 +353,8 @@ class COMPOSITOR_EXPORT Compositor
ui::ContextFactory* context_factory_;

View File

@ -1,78 +1,60 @@
diff --git public/renderer/content_renderer_client.cc public/renderer/content_renderer_client.cc
index e09e803..ff26996 100644
index 3d0316f..ccd1f58 100644
--- public/renderer/content_renderer_client.cc
+++ public/renderer/content_renderer_client.cc
@@ -98,6 +98,18 @@ bool ContentRendererClient::AllowPopup() {
@@ -98,7 +98,6 @@ bool ContentRendererClient::AllowPopup() {
return false;
}
+bool ContentRendererClient::HandleNavigation(
+ RenderFrame* render_frame,
+ DocumentState* document_state,
+ int opener_id,
+ blink::WebFrame* frame,
+ const blink::WebURLRequest& request,
+ blink::WebNavigationType type,
+ blink::WebNavigationPolicy default_policy,
+ bool is_redirect) {
+ return false;
+}
+
-#ifdef OS_ANDROID
bool ContentRendererClient::HandleNavigation(
RenderFrame* render_frame,
bool is_content_initiated,
@@ -110,7 +109,6 @@ bool ContentRendererClient::HandleNavigation(
bool is_redirect) {
return false;
}
-#endif
bool ContentRendererClient::ShouldFork(blink::WebLocalFrame* frame,
const GURL& url,
const std::string& http_method,
diff --git public/renderer/content_renderer_client.h public/renderer/content_renderer_client.h
index df8d501..f3a2068 100644
index f55c691..0aeb1b24 100644
--- public/renderer/content_renderer_client.h
+++ public/renderer/content_renderer_client.h
@@ -16,6 +16,8 @@
#include "base/strings/string16.h"
#include "content/public/common/content_client.h"
#include "third_party/WebKit/public/platform/WebPageVisibilityState.h"
+#include "third_party/WebKit/public/web/WebNavigationPolicy.h"
+#include "third_party/WebKit/public/web/WebNavigationType.h"
#include "ui/base/page_transition_types.h"
#include "v8/include/v8.h"
@@ -191,6 +193,17 @@ class CONTENT_EXPORT ContentRendererClient {
@@ -192,7 +192,6 @@ class CONTENT_EXPORT ContentRendererClient {
// Returns true if a popup window should be allowed.
virtual bool AllowPopup();
+ // Returns true if the navigation was handled by the embedder and should be
+ // ignored by WebKit. This method is used by CEF and android_webview.
+ virtual bool HandleNavigation(RenderFrame* render_frame,
+ DocumentState* document_state,
+ int opener_id,
+ blink::WebFrame* frame,
+ const blink::WebURLRequest& request,
+ blink::WebNavigationType type,
+ blink::WebNavigationPolicy default_policy,
+ bool is_redirect);
+
-#ifdef OS_ANDROID
// TODO(sgurun) This callback is deprecated and will be removed as soon
// as android webview completes implementation of a resource throttle based
// shouldoverrideurl implementation. See crbug.com/325351
@@ -207,7 +206,6 @@ class CONTENT_EXPORT ContentRendererClient {
blink::WebNavigationType type,
blink::WebNavigationPolicy default_policy,
bool is_redirect);
-#endif
// Returns true if we should fork a new process for the given navigation.
// If |send_referrer| is set to false (which is the default), no referrer
// header will be send for the navigation. Otherwise, the referrer header is
diff --git renderer/render_frame_impl.cc renderer/render_frame_impl.cc
index ff5d269..6ca4948 100644
index 33219e5..f6aac25 100644
--- renderer/render_frame_impl.cc
+++ renderer/render_frame_impl.cc
@@ -4274,6 +4274,19 @@ void RenderFrameImpl::OnFailedNavigation(
WebNavigationPolicy RenderFrameImpl::DecidePolicyForNavigation(
RenderFrame* render_frame,
const NavigationPolicyInfo& info) {
+ if (info.urlRequest.url() != GURL(kSwappedOutURL) &&
+ GetContentClient()->renderer()->HandleNavigation(
+ render_frame,
+ static_cast<DocumentState*>(info.extraData),
+ render_view_->opener_id_,
+ info.frame,
+ info.urlRequest,
+ info.navigationType,
+ info.defaultPolicy,
+ info.isRedirect)) {
+ return blink::WebNavigationPolicyIgnore;
+ }
+
Referrer referrer(RenderViewImpl::GetReferrerFromRequest(info.frame,
info.urlRequest));
@@ -4395,7 +4395,6 @@ WebNavigationPolicy RenderFrameImpl::decidePolicyForNavigation(
(pending_navigation_params_ &&
!pending_navigation_params_->request_params.redirects.empty());
-#ifdef OS_ANDROID
// The handlenavigation API is deprecated and will be removed once
// crbug.com/325351 is resolved.
if (info.urlRequest.url() != GURL(kSwappedOutURL) &&
@@ -4405,7 +4404,6 @@ WebNavigationPolicy RenderFrameImpl::decidePolicyForNavigation(
is_redirect)) {
return blink::WebNavigationPolicyIgnore;
}
-#endif
Referrer referrer(
RenderViewImpl::GetReferrerFromRequest(frame_, info.urlRequest));

View File

@ -1,18 +0,0 @@
diff --git extension_process_policy.h extension_process_policy.h
index 7231c0f..2323483 100644
--- extension_process_policy.h
+++ extension_process_policy.h
@@ -5,12 +5,12 @@
#ifndef CHROME_COMMON_EXTENSIONS_EXTENSION_PROCESS_POLICY_H_
#define CHROME_COMMON_EXTENSIONS_EXTENSION_PROCESS_POLICY_H_
-class ExtensionSet;
class GURL;
namespace extensions {
class Extension;
+class ExtensionSet;
// Returns the extension for the given URL. Excludes extension objects for
// bookmark apps, which do not use the app process model.

View File

@ -1,8 +1,8 @@
diff --git browser/guest_view/extension_options/extension_options_guest.cc browser/guest_view/extension_options/extension_options_guest.cc
index cfdb5cf..5a4749d 100644
index 6a34aa0..1743907 100644
--- browser/guest_view/extension_options/extension_options_guest.cc
+++ browser/guest_view/extension_options/extension_options_guest.cc
@@ -196,7 +196,9 @@ bool ExtensionOptionsGuest::ShouldCreateWebContents(
@@ -197,7 +197,9 @@ bool ExtensionOptionsGuest::ShouldCreateWebContents(
const std::string& frame_name,
const GURL& target_url,
const std::string& partition_id,
@ -14,17 +14,17 @@ index cfdb5cf..5a4749d 100644
// view is used for displaying embedded extension options, we want any
// external links to be opened in a new tab, not in a new guest view.
diff --git browser/guest_view/extension_options/extension_options_guest.h browser/guest_view/extension_options/extension_options_guest.h
index 9cf37d2..19e3b6d 100644
index 922d670..cb19e4e 100644
--- browser/guest_view/extension_options/extension_options_guest.h
+++ browser/guest_view/extension_options/extension_options_guest.h
@@ -49,7 +49,9 @@ class ExtensionOptionsGuest
@@ -54,7 +54,9 @@ class ExtensionOptionsGuest
const std::string& frame_name,
const GURL& target_url,
const std::string& partition_id,
- content::SessionStorageNamespace* session_storage_namespace) override;
- content::SessionStorageNamespace* session_storage_namespace) final;
+ content::SessionStorageNamespace* session_storage_namespace,
+ content::WebContentsView** view,
+ content::RenderViewHostDelegateView** delegate_view) override;
+ content::RenderViewHostDelegateView** delegate_view) final;
// content::WebContentsObserver implementation.
void DidNavigateMainFrame(
void DidNavigateMainFrame(const content::LoadCommittedDetails& details,

View File

@ -1,5 +1,5 @@
diff --git resource_ids resource_ids
index 92456c8..9fa9ce3 100644
index a5bcffe..6b897df 100644
--- resource_ids
+++ resource_ids
@@ -14,6 +14,12 @@

View File

@ -1,8 +1,8 @@
diff --git gyp/generator/ninja.py gyp/generator/ninja.py
index 51c288b..d996bbd 100644
index 58be3bf..4dcb2a6 100644
--- gyp/generator/ninja.py
+++ gyp/generator/ninja.py
@@ -741,7 +741,16 @@ class NinjaWriter(object):
@@ -745,7 +745,16 @@ class NinjaWriter(object):
for path in copy['files']:
# Normalize the path so trailing slashes don't confuse us.
path = os.path.normpath(path)

View File

@ -1,5 +1,5 @@
diff --git hwnd_message_handler.cc hwnd_message_handler.cc
index 5348080..4f9bec5 100644
index 035df76..d1517b4 100644
--- hwnd_message_handler.cc
+++ hwnd_message_handler.cc
@@ -2364,8 +2364,12 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,

View File

@ -1,8 +1,8 @@
diff --git input_method_win.cc input_method_win.cc
index df75bb2..a688138 100644
index ef500a7..5454067 100644
--- input_method_win.cc
+++ input_method_win.cc
@@ -548,8 +548,9 @@ bool InputMethodWin::IsWindowFocused(const TextInputClient* client) const {
@@ -586,8 +586,9 @@ bool InputMethodWin::IsWindowFocused(const TextInputClient* client) const {
// receiving keyboard input as long as it is an active window. This works well
// even when the |attached_window_handle| becomes active but has not received
// WM_FOCUS yet.

View File

@ -1,8 +1,8 @@
diff --git mime_handler_view_guest.cc mime_handler_view_guest.cc
index aee7d72..951d0cc 100644
index 55b2426..bea8823 100644
--- mime_handler_view_guest.cc
+++ mime_handler_view_guest.cc
@@ -131,6 +131,8 @@ void MimeHandlerViewGuest::CreateWebContents(
@@ -132,6 +132,8 @@ void MimeHandlerViewGuest::CreateWebContents(
WebContents::CreateParams params(browser_context(),
guest_site_instance.get());
params.guest_delegate = this;
@ -11,7 +11,7 @@ index aee7d72..951d0cc 100644
callback.Run(WebContents::Create(params));
}
@@ -155,6 +157,30 @@ bool MimeHandlerViewGuest::ZoomPropagatesFromEmbedderToGuest() const {
@@ -156,6 +158,30 @@ bool MimeHandlerViewGuest::ZoomPropagatesFromEmbedderToGuest() const {
return false;
}
@ -43,12 +43,12 @@ index aee7d72..951d0cc 100644
WebContents* source,
const content::OpenURLParams& params) {
diff --git mime_handler_view_guest.h mime_handler_view_guest.h
index 26c0e11..a568b45 100644
index a876f6a..4808aa3 100644
--- mime_handler_view_guest.h
+++ mime_handler_view_guest.h
@@ -67,6 +67,15 @@ class MimeHandlerViewGuest :
bool ShouldHandleFindRequestsForEmbedder() const override;
bool ZoomPropagatesFromEmbedderToGuest() const override;
@@ -74,6 +74,15 @@ class MimeHandlerViewGuest :
bool ShouldHandleFindRequestsForEmbedder() const final;
bool ZoomPropagatesFromEmbedderToGuest() const final;
+ // content::BrowserPluginGuestDelegate implementation
+ void OnGuestAttached(content::WebContentsView* guest_view,

View File

@ -1,8 +1,8 @@
diff --git url_request.h url_request.h
index 9209697..a2f73f8 100644
index f685cf7..d01faaee 100644
--- url_request.h
+++ url_request.h
@@ -640,10 +640,10 @@ class NET_EXPORT URLRequest : NON_EXPORTED_BASE(public base::NonThreadSafe),
@@ -645,10 +645,10 @@ class NET_EXPORT URLRequest : NON_EXPORTED_BASE(public base::NonThreadSafe),
// or after the response headers are received.
void GetConnectionAttempts(ConnectionAttempts* out) const;

View File

@ -0,0 +1,103 @@
diff --git pdf.cc pdf.cc
index 1f580e4..9521fdf 100644
--- pdf.cc
+++ pdf.cc
@@ -10,8 +10,6 @@
#include "base/command_line.h"
#include "base/logging.h"
-#include "gin/array_buffer.h"
-#include "gin/public/isolate_holder.h"
#include "pdf/out_of_process_instance.h"
#include "ppapi/c/ppp.h"
#include "ppapi/cpp/private/internal_module.h"
@@ -24,14 +22,6 @@ namespace {
bool g_sdk_initialized_via_pepper = false;
-gin::IsolateHolder* g_isolate_holder = nullptr;
-
-void TearDownV8() {
- g_isolate_holder->isolate()->Exit();
- delete g_isolate_holder;
- g_isolate_holder = nullptr;
-}
-
} // namespace
PDFModule::PDFModule() {
@@ -39,7 +29,6 @@ PDFModule::PDFModule() {
PDFModule::~PDFModule() {
if (g_sdk_initialized_via_pepper) {
- TearDownV8();
chrome_pdf::ShutdownSDK();
g_sdk_initialized_via_pepper = false;
}
@@ -60,15 +49,8 @@ pp::Instance* PDFModule::CreateInstance(PP_Instance instance) {
v8::V8::SetNativesDataBlob(&natives);
v8::V8::SetSnapshotDataBlob(&snapshot);
}
- gin::IsolateHolder::Initialize(gin::IsolateHolder::kNonStrictMode,
- gin::ArrayBufferAllocator::SharedInstance());
- g_isolate_holder =
- new gin::IsolateHolder(gin::IsolateHolder::kSingleThread);
- g_isolate_holder->isolate()->Enter();
- if (!chrome_pdf::InitializeSDK()) {
- TearDownV8();
+ if (!chrome_pdf::InitializeSDK())
return NULL;
- }
g_sdk_initialized_via_pepper = true;
}
diff --git pdfium/pdfium_engine.cc pdfium/pdfium_engine.cc
index 8631088..d23c141 100644
--- pdfium/pdfium_engine.cc
+++ pdfium/pdfium_engine.cc
@@ -18,7 +18,9 @@
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
+#include "gin/array_buffer.h"
#include "gin/public/gin_embedders.h"
+#include "gin/public/isolate_holder.h"
#include "pdf/draw_utils.h"
#include "pdf/pdfium/pdfium_api_string_buffer_adapter.h"
#include "pdf/pdfium/pdfium_mem_buffer_file_read.h"
@@ -449,9 +451,27 @@ std::string GetDocumentMetadata(FPDF_DOCUMENT doc, const std::string& key) {
return base::UTF16ToUTF8(value);
}
+gin::IsolateHolder* g_isolate_holder = nullptr;
+
+void SetUpV8() {
+ gin::IsolateHolder::Initialize(gin::IsolateHolder::kNonStrictMode,
+ gin::ArrayBufferAllocator::SharedInstance());
+ g_isolate_holder =
+ new gin::IsolateHolder(gin::IsolateHolder::kSingleThread);
+ g_isolate_holder->isolate()->Enter();
+}
+
+void TearDownV8() {
+ g_isolate_holder->isolate()->Exit();
+ delete g_isolate_holder;
+ g_isolate_holder = nullptr;
+}
+
} // namespace
bool InitializeSDK() {
+ SetUpV8();
+
FPDF_LIBRARY_CONFIG config;
config.version = 2;
config.m_pUserFontPaths = nullptr;
@@ -470,6 +490,7 @@ bool InitializeSDK() {
}
void ShutdownSDK() {
+ TearDownV8();
FPDF_DestroyLibrary();
}

View File

@ -0,0 +1,20 @@
diff --git fpdfsdk/src/fpdfview.cpp fpdfsdk/src/fpdfview.cpp
index 97da89e..0484d93 100644
--- fpdfsdk/src/fpdfview.cpp
+++ fpdfsdk/src/fpdfview.cpp
@@ -6,6 +6,7 @@
#include "../../core/include/fxcodec/fx_codec.h"
#include "../../core/include/fxcrt/fx_safe_types.h"
+#include "../../fpdfsdk/include/jsapi/fxjs_v8.h"
#include "../../public/fpdf_ext.h"
#include "../../public/fpdf_progressive.h"
#include "../../public/fpdfview.h"
@@ -105,6 +106,7 @@ DLLEXPORT void STDCALL FPDF_InitLibraryWithConfig(
DLLEXPORT void STDCALL FPDF_DestroyLibrary() {
CPDF_ModuleMgr::Destroy();
CFX_GEModule::Destroy();
+ FXJS_Release();
delete g_pCodecModule;
g_pCodecModule = nullptr;

View File

@ -1,8 +1,8 @@
diff --git public/common/common_param_traits_macros.h public/common/common_param_traits_macros.h
index a308f84..bbbe950 100644
index 48ba994..039d8fe 100644
--- public/common/common_param_traits_macros.h
+++ public/common/common_param_traits_macros.h
@@ -196,6 +196,7 @@ IPC_STRUCT_TRAITS_BEGIN(content::WebPreferences)
@@ -195,6 +195,7 @@ IPC_STRUCT_TRAITS_BEGIN(content::WebPreferences)
IPC_STRUCT_TRAITS_MEMBER(main_frame_resizes_are_orientation_changes)
IPC_STRUCT_TRAITS_MEMBER(initialize_at_minimum_page_scale)
IPC_STRUCT_TRAITS_MEMBER(smart_insert_delete_enabled)
@ -11,7 +11,7 @@ index a308f84..bbbe950 100644
IPC_STRUCT_TRAITS_MEMBER(navigate_on_drag_drop)
IPC_STRUCT_TRAITS_MEMBER(spatial_navigation_enabled)
diff --git public/common/web_preferences.cc public/common/web_preferences.cc
index deb82db..2da2957 100644
index 6b599c0..d2ff454 100644
--- public/common/web_preferences.cc
+++ public/common/web_preferences.cc
@@ -176,6 +176,7 @@ WebPreferences::WebPreferences()
@ -21,9 +21,9 @@ index deb82db..2da2957 100644
+ base_background_color(0xFFFFFFFF), // Color::white
v8_cache_options(V8_CACHE_OPTIONS_DEFAULT),
slimming_paint_v2_enabled(false),
inert_visual_viewport(false),
cookie_enabled(true),
diff --git public/common/web_preferences.h public/common/web_preferences.h
index 75012d1..8da71be 100644
index 0378cd7..484342b 100644
--- public/common/web_preferences.h
+++ public/common/web_preferences.h
@@ -173,6 +173,7 @@ struct CONTENT_EXPORT WebPreferences {
@ -33,12 +33,12 @@ index 75012d1..8da71be 100644
+ uint32_t base_background_color;
V8CacheOptions v8_cache_options;
bool slimming_paint_v2_enabled;
bool inert_visual_viewport;
diff --git renderer/render_view_impl.cc renderer/render_view_impl.cc
index d6d5d6e..82b499e 100644
index 3fd5464..4bf3639 100644
--- renderer/render_view_impl.cc
+++ renderer/render_view_impl.cc
@@ -949,6 +949,8 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs,
@@ -953,6 +953,8 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs,
settings->setCookieEnabled(prefs.cookie_enabled);
settings->setNavigateOnDragDrop(prefs.navigate_on_drag_drop);

View File

@ -1,8 +1,8 @@
diff --git printing/renderer/print_web_view_helper.cc printing/renderer/print_web_view_helper.cc
index 27419d6..0a6757b 100644
index f2dc502..c0049d0 100644
--- printing/renderer/print_web_view_helper.cc
+++ printing/renderer/print_web_view_helper.cc
@@ -73,6 +73,9 @@ const double kMinDpi = 1.0;
@@ -74,6 +74,9 @@ const double kMinDpi = 1.0;
#if defined(ENABLE_PRINT_PREVIEW)
bool g_is_preview_enabled = true;
@ -12,7 +12,7 @@ index 27419d6..0a6757b 100644
const char kPageLoadScriptFormat[] =
"document.open(); document.write(%s); document.close();";
@@ -87,9 +90,6 @@ void ExecuteScript(blink::WebFrame* frame,
@@ -88,9 +91,6 @@ void ExecuteScript(blink::WebFrame* frame,
std::string script = base::StringPrintf(script_format, json.c_str());
frame->executeScript(blink::WebString(base::UTF8ToUTF16(script)));
}
@ -22,7 +22,7 @@ index 27419d6..0a6757b 100644
int GetDPI(const PrintMsg_Print_Params* print_params) {
#if defined(OS_MACOSX)
@@ -480,7 +480,6 @@ blink::WebView* FrameReference::view() {
@@ -481,7 +481,6 @@ blink::WebView* FrameReference::view() {
return view_;
}
@ -30,7 +30,7 @@ index 27419d6..0a6757b 100644
// static - Not anonymous so that platform implementations can use it.
void PrintWebViewHelper::PrintHeaderAndFooter(
blink::WebCanvas* canvas,
@@ -536,7 +535,6 @@ void PrintWebViewHelper::PrintHeaderAndFooter(
@@ -537,7 +536,6 @@ void PrintWebViewHelper::PrintHeaderAndFooter(
web_view->close();
frame->close();
}
@ -38,7 +38,7 @@ index 27419d6..0a6757b 100644
// static - Not anonymous so that platform implementations can use it.
float PrintWebViewHelper::RenderPageContent(blink::WebFrame* frame,
@@ -807,6 +805,7 @@ PrintWebViewHelper::PrintWebViewHelper(content::RenderView* render_view,
@@ -810,6 +808,7 @@ PrintWebViewHelper::PrintWebViewHelper(content::RenderView* render_view,
print_for_preview_(false),
delegate_(delegate.Pass()),
print_node_in_progress_(false),
@ -46,7 +46,7 @@ index 27419d6..0a6757b 100644
is_loading_(false),
is_scripted_preview_delayed_(false),
ipc_nesting_level_(0),
@@ -1246,7 +1245,9 @@ void PrintWebViewHelper::OnInitiatePrintPreview(bool selection_only) {
@@ -1249,7 +1248,9 @@ void PrintWebViewHelper::OnInitiatePrintPreview(bool selection_only) {
// that instead.
auto plugin = delegate_->GetPdfElement(frame);
if (!plugin.isNull()) {
@ -56,7 +56,7 @@ index 27419d6..0a6757b 100644
return;
}
print_preview_context_.InitWithFrame(frame);
@@ -1279,7 +1280,7 @@ void PrintWebViewHelper::PrintNode(const blink::WebNode& node) {
@@ -1282,7 +1283,7 @@ void PrintWebViewHelper::PrintNode(const blink::WebNode& node) {
// Make a copy of the node, in case RenderView::OnContextMenuClosed resets
// its |context_menu_node_|.

View File

@ -1,19 +1,8 @@
diff --git web_contents.cc web_contents.cc
index 887f242..a7cc318 100644
index 1b6d8a6..b606a30 100644
--- web_contents.cc
+++ web_contents.cc
@@ -21,7 +21,9 @@ WebContents::CreateParams::CreateParams(BrowserContext* context)
initially_hidden(false),
guest_delegate(nullptr),
context(nullptr),
- renderer_initiated_creation(false) {}
+ renderer_initiated_creation(false),
+ view(nullptr),
+ delegate_view(nullptr) {}
WebContents::CreateParams::CreateParams(
BrowserContext* context, SiteInstance* site)
@@ -36,7 +38,9 @@ WebContents::CreateParams::CreateParams(
@@ -26,7 +26,9 @@ WebContents::CreateParams::CreateParams(BrowserContext* context,
initially_hidden(false),
guest_delegate(nullptr),
context(nullptr),
@ -25,7 +14,7 @@ index 887f242..a7cc318 100644
WebContents::CreateParams::~CreateParams() {
}
diff --git web_contents.h web_contents.h
index 08c5ba9..459fe19 100644
index cda6487..6a84ed1 100644
--- web_contents.h
+++ web_contents.h
@@ -52,9 +52,11 @@ class PageState;
@ -40,7 +29,7 @@ index 08c5ba9..459fe19 100644
struct CustomContextMenuContext;
struct DropData;
struct Manifest;
@@ -142,6 +144,10 @@ class WebContents : public PageNavigator,
@@ -144,6 +146,10 @@ class WebContents : public PageNavigator,
// RenderFrame, have already been created on the renderer side, and
// WebContents construction should take this into account.
bool renderer_initiated_creation;
@ -52,10 +41,10 @@ index 08c5ba9..459fe19 100644
// Creates a new WebContents.
diff --git web_contents_delegate.cc web_contents_delegate.cc
index b3d2d70..727401c 100644
index b39436d..bf257a7 100644
--- web_contents_delegate.cc
+++ web_contents_delegate.cc
@@ -138,7 +138,9 @@ bool WebContentsDelegate::ShouldCreateWebContents(
@@ -139,7 +139,9 @@ bool WebContentsDelegate::ShouldCreateWebContents(
const std::string& frame_name,
const GURL& target_url,
const std::string& partition_id,
@ -67,7 +56,7 @@ index b3d2d70..727401c 100644
}
diff --git web_contents_delegate.h web_contents_delegate.h
index 76dfd36..f3bec13 100644
index 40a4904..e857dee 100644
--- web_contents_delegate.h
+++ web_contents_delegate.h
@@ -39,9 +39,11 @@ class DownloadItem;
@ -82,7 +71,7 @@ index 76dfd36..f3bec13 100644
struct ColorSuggestion;
struct ContextMenuParams;
struct DropData;
@@ -299,7 +301,9 @@ class CONTENT_EXPORT WebContentsDelegate {
@@ -296,7 +298,9 @@ class CONTENT_EXPORT WebContentsDelegate {
const std::string& frame_name,
const GURL& target_url,
const std::string& partition_id,

View File

@ -1,8 +1,8 @@
diff --git render_widget_host_view_mac.mm render_widget_host_view_mac.mm
index 8db1f59..41157952 100644
index fb89516..6edca6e 100644
--- render_widget_host_view_mac.mm
+++ render_widget_host_view_mac.mm
@@ -590,9 +590,6 @@ RenderWidgetHostViewMac::RenderWidgetHostViewMac(RenderWidgetHost* widget,
@@ -529,9 +529,6 @@ RenderWidgetHostViewMac::RenderWidgetHostViewMac(RenderWidgetHost* widget,
// Paint this view host with |background_color_| when there is no content
// ready to draw.
background_layer_.reset([[CALayer alloc] init]);

View File

@ -1,5 +1,5 @@
diff --git os_exchange_data_provider_aurax11.cc os_exchange_data_provider_aurax11.cc
index 73ec4bf..9023835 100644
index e2bba47..ea698fa3 100644
--- os_exchange_data_provider_aurax11.cc
+++ os_exchange_data_provider_aurax11.cc
@@ -159,7 +159,8 @@ void OSExchangeDataProviderAuraX11::SetURL(const GURL& url,

View File

@ -1,8 +1,8 @@
diff --git web_dialog_view.cc web_dialog_view.cc
index 4b5e8b2..1501d0b 100644
index c5a2b03..0594c4a 100644
--- web_dialog_view.cc
+++ web_dialog_view.cc
@@ -340,7 +340,9 @@ bool WebDialogView::ShouldCreateWebContents(
@@ -341,7 +341,9 @@ bool WebDialogView::ShouldCreateWebContents(
const std::string& frame_name,
const GURL& target_url,
const std::string& partition_id,
@ -14,10 +14,10 @@ index 4b5e8b2..1501d0b 100644
return delegate_->HandleShouldCreateWebContents();
return true;
diff --git web_dialog_view.h web_dialog_view.h
index dc6598d..ce2616c 100644
index d897dbf..92bb481 100644
--- web_dialog_view.h
+++ web_dialog_view.h
@@ -119,7 +119,9 @@ class WEBVIEW_EXPORT WebDialogView : public views::ClientView,
@@ -120,7 +120,9 @@ class WEBVIEW_EXPORT WebDialogView : public views::ClientView,
const std::string& frame_name,
const GURL& target_url,
const std::string& partition_id,

View File

@ -1,5 +1,5 @@
diff --git content/browser/renderer_host/render_widget_host_view_aura.cc content/browser/renderer_host/render_widget_host_view_aura.cc
index c7aac43..ae08073 100644
index bbb79c9..bf9a924 100644
--- content/browser/renderer_host/render_widget_host_view_aura.cc
+++ content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -758,6 +758,13 @@ void RenderWidgetHostViewAura::SetKeyboardFocus() {
@ -40,7 +40,7 @@ index 1b40705..52599e5 100644
return renderer_frame_number_;
}
diff --git content/browser/renderer_host/render_widget_host_view_base.h content/browser/renderer_host/render_widget_host_view_base.h
index 2fbfb1e..33aa009 100644
index bf3b8e1..351c601 100644
--- content/browser/renderer_host/render_widget_host_view_base.h
+++ content/browser/renderer_host/render_widget_host_view_base.h
@@ -78,6 +78,7 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView,
@ -51,7 +51,7 @@ index 2fbfb1e..33aa009 100644
// IPC::Listener implementation:
bool OnMessageReceived(const IPC::Message& msg) override;
@@ -416,6 +417,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView,
@@ -414,6 +415,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView,
// renderer.
bool pinch_zoom_enabled_;
@ -91,7 +91,7 @@ index a8e088c..838b6a0 100644
return host ? host->GetAcceleratedWidget() : NULL;
}
diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
index 270bd54..53d979b 100644
index 48368f9..6a566ba 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
@@ -85,6 +85,7 @@ DesktopWindowTreeHostWin::DesktopWindowTreeHostWin(
@ -150,7 +150,7 @@ index 363c019..97ada1d 100644
// a reference.
corewm::TooltipWin* tooltip_;
diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
index ed0cb1d..d4a2221 100644
index 298c92b..393a5dc 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
@@ -165,6 +165,7 @@ DesktopWindowTreeHostX11::DesktopWindowTreeHostX11(
@ -161,17 +161,17 @@ index ed0cb1d..d4a2221 100644
drag_drop_client_(NULL),
native_widget_delegate_(native_widget_delegate),
desktop_native_widget_aura_(desktop_native_widget_aura),
@@ -172,7 +173,8 @@ DesktopWindowTreeHostX11::DesktopWindowTreeHostX11(
window_parent_(NULL),
@@ -173,7 +174,8 @@ DesktopWindowTreeHostX11::DesktopWindowTreeHostX11(
custom_window_shape_(false),
urgency_hint_set_(false),
activatable_(true),
- close_widget_factory_(this) {
+ close_widget_factory_(this),
+ xwindow_destroyed_(false) {
}
DesktopWindowTreeHostX11::~DesktopWindowTreeHostX11() {
@@ -382,7 +384,8 @@ void DesktopWindowTreeHostX11::CloseNow() {
@@ -384,7 +386,8 @@ void DesktopWindowTreeHostX11::CloseNow() {
// Actually free our native resources.
if (ui::PlatformEventSource::GetInstance())
ui::PlatformEventSource::GetInstance()->RemovePlatformEventDispatcher(this);
@ -181,7 +181,7 @@ index ed0cb1d..d4a2221 100644
xwindow_ = None;
desktop_native_widget_aura_->OnHostClosed();
@@ -526,6 +529,8 @@ void DesktopWindowTreeHostX11::GetWindowPlacement(
@@ -533,6 +536,8 @@ void DesktopWindowTreeHostX11::GetWindowPlacement(
}
gfx::Rect DesktopWindowTreeHostX11::GetWindowBoundsInScreen() const {
@ -190,7 +190,7 @@ index ed0cb1d..d4a2221 100644
return ToDIPRect(bounds_in_pixels_);
}
@@ -963,6 +968,8 @@ void DesktopWindowTreeHostX11::HideImpl() {
@@ -970,6 +975,8 @@ void DesktopWindowTreeHostX11::HideImpl() {
}
gfx::Rect DesktopWindowTreeHostX11::GetBounds() const {
@ -199,7 +199,7 @@ index ed0cb1d..d4a2221 100644
return bounds_in_pixels_;
}
@@ -1020,6 +1027,8 @@ void DesktopWindowTreeHostX11::SetBounds(
@@ -1027,6 +1034,8 @@ void DesktopWindowTreeHostX11::SetBounds(
}
gfx::Point DesktopWindowTreeHostX11::GetLocationOnNativeScreen() const {
@ -208,7 +208,7 @@ index ed0cb1d..d4a2221 100644
return bounds_in_pixels_.origin();
}
@@ -1133,9 +1142,15 @@ void DesktopWindowTreeHostX11::InitX11Window(
@@ -1140,9 +1149,15 @@ void DesktopWindowTreeHostX11::InitX11Window(
}
}
@ -225,7 +225,7 @@ index ed0cb1d..d4a2221 100644
bounds_in_pixels_.y(), bounds_in_pixels_.width(),
bounds_in_pixels_.height(),
0, // border width
@@ -1789,6 +1804,10 @@ uint32_t DesktopWindowTreeHostX11::DispatchEvent(
@@ -1797,6 +1812,10 @@ uint32_t DesktopWindowTreeHostX11::DispatchEvent(
}
break;
}
@ -237,7 +237,7 @@ index ed0cb1d..d4a2221 100644
if (xev->xfocus.mode != NotifyGrab) {
ReleaseCapture();
diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h
index 73e9e3e6..8c2f0f7 100644
index 09b5993..db1b2bc 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h
@@ -85,6 +85,12 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11
@ -274,7 +274,7 @@ index 73e9e3e6..8c2f0f7 100644
DesktopDragDropClientAuraX11* drag_drop_client_;
scoped_ptr<ui::EventHandler> x11_non_client_event_filter_;
@@ -351,6 +364,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11
@@ -353,6 +366,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11
base::WeakPtrFactory<DesktopWindowTreeHostX11> close_widget_factory_;
@ -346,10 +346,10 @@ index 5ab84f9..c4095fa 100644
x_active_window_ = None;
}
diff --git ui/views/widget/widget.cc ui/views/widget/widget.cc
index 154d107..cf276b1 100644
index 6c0168d..fbcfbfc 100644
--- ui/views/widget/widget.cc
+++ ui/views/widget/widget.cc
@@ -119,6 +119,7 @@ Widget::InitParams::InitParams()
@@ -124,6 +124,7 @@ Widget::InitParams::InitParams()
use_system_default_icon(false),
show_state(ui::SHOW_STATE_DEFAULT),
parent(NULL),
@ -357,7 +357,7 @@ index 154d107..cf276b1 100644
native_widget(NULL),
desktop_window_tree_host(NULL),
layer_type(ui::LAYER_TEXTURED),
@@ -142,6 +143,7 @@ Widget::InitParams::InitParams(Type type)
@@ -148,6 +149,7 @@ Widget::InitParams::InitParams(Type type)
use_system_default_icon(false),
show_state(ui::SHOW_STATE_DEFAULT),
parent(NULL),
@ -365,7 +365,7 @@ index 154d107..cf276b1 100644
native_widget(NULL),
desktop_window_tree_host(NULL),
layer_type(ui::LAYER_TEXTURED),
@@ -316,7 +318,7 @@ void Widget::Init(const InitParams& in_params) {
@@ -323,7 +325,7 @@ void Widget::Init(const InitParams& in_params) {
InitParams params = in_params;
params.child |= (params.type == InitParams::TYPE_CONTROL);
@ -374,7 +374,7 @@ index 154d107..cf276b1 100644
if (params.opacity == views::Widget::InitParams::INFER_OPACITY &&
params.type != views::Widget::InitParams::TYPE_WINDOW &&
@@ -379,7 +381,12 @@ void Widget::Init(const InitParams& in_params) {
@@ -386,7 +388,12 @@ void Widget::Init(const InitParams& in_params) {
Minimize();
} else if (params.delegate) {
SetContentsView(params.delegate->GetContentsView());
@ -389,7 +389,7 @@ index 154d107..cf276b1 100644
// This must come after SetContentsView() or it might not be able to find
// the correct NativeTheme (on Linux). See http://crbug.com/384492
diff --git ui/views/widget/widget.h ui/views/widget/widget.h
index 1342625..7fbc24c 100644
index 301c0af..de63108 100644
--- ui/views/widget/widget.h
+++ ui/views/widget/widget.h
@@ -232,6 +232,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,

View File

@ -1,8 +1,8 @@
diff --git Source/web/ChromeClientImpl.cpp Source/web/ChromeClientImpl.cpp
index 5577228..74ccf53 100644
index 499991c..b5d6d32 100644
--- Source/web/ChromeClientImpl.cpp
+++ Source/web/ChromeClientImpl.cpp
@@ -814,7 +814,7 @@ bool ChromeClientImpl::hasOpenedPopup() const
@@ -809,7 +809,7 @@ bool ChromeClientImpl::hasOpenedPopup() const
PassRefPtrWillBeRawPtr<PopupMenu> ChromeClientImpl::openPopupMenu(LocalFrame& frame, HTMLSelectElement& select)
{
notifyPopupOpeningObservers();
@ -12,10 +12,10 @@ index 5577228..74ccf53 100644
ASSERT(RuntimeEnabledFeatures::pagePopupEnabled());
diff --git Source/web/WebViewImpl.cpp Source/web/WebViewImpl.cpp
index b708684..769c127 100644
index c97a89c..6d2fb40 100644
--- Source/web/WebViewImpl.cpp
+++ Source/web/WebViewImpl.cpp
@@ -421,6 +421,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client)
@@ -418,6 +418,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client)
, m_enableFakePageScaleAnimationForTesting(false)
, m_fakePageScaleAnimationPageScaleFactor(0)
, m_fakePageScaleAnimationUseAnchor(false)
@ -40,10 +40,10 @@ index b708684..769c127 100644
void WebViewImpl::startDragging(LocalFrame* frame,
diff --git Source/web/WebViewImpl.h Source/web/WebViewImpl.h
index a1f3e54..24f60a9 100644
index 09b718d..a1bc2ffc 100644
--- Source/web/WebViewImpl.h
+++ Source/web/WebViewImpl.h
@@ -393,7 +393,8 @@ public:
@@ -389,7 +389,8 @@ public:
// Returns true if popup menus should be rendered by the browser, false if
// they should be rendered by WebKit (which is the default).
@ -53,7 +53,7 @@ index a1f3e54..24f60a9 100644
bool shouldAutoResize() const
{
@@ -671,6 +672,8 @@ private:
@@ -670,6 +671,8 @@ private:
float m_fakePageScaleAnimationPageScaleFactor;
bool m_fakePageScaleAnimationUseAnchor;
@ -63,7 +63,7 @@ index a1f3e54..24f60a9 100644
bool m_ignoreInputEvents;
diff --git public/web/WebView.h public/web/WebView.h
index 1bce1b2..3ea51c1 100644
index 83d8c13..350bca4 100644
--- public/web/WebView.h
+++ public/web/WebView.h
@@ -400,6 +400,7 @@ public: