Merge lp:~mterry/oxide/mirserver-1.5 into lp:~oxide-developers/oxide/oxide.trunk
- mirserver-1.5
- Merge into oxide.trunk
Status: | Superseded |
---|---|
Proposed branch: | lp:~mterry/oxide/mirserver-1.5 |
Merge into: | lp:~oxide-developers/oxide/oxide.trunk |
Diff against target: |
1603 lines (+1010/-3) (has conflicts) 22 files modified
CHROMIUM_VERSION (+4/-0) build/common.gypi (+15/-1) patches/allow-os-override-for-gpu-manager.patch (+216/-0) patches/allow-render-widget-compositor-settings-override.patch (+106/-0) patches/bug1423531.patch (+202/-0) patches/port/gl_implementation.patch (+49/-1) patches/series (+7/-0) patches/support-native-popup-menus.patch (+104/-0) patches/use-android-style-overlay-scrollbars.patch (+76/-0) qt/VERSION (+4/-0) qt/core/browser/oxide_qt_browser_startup.cc (+13/-0) qt/core/browser/oxide_qt_browser_startup.h (+5/-0) qt/core/glue/oxide_qt_init.cc (+5/-0) qt/quick/CMakeLists.txt (+8/-0) qt/quick/api/oxideqquickwebframe.cc (+19/-0) qt/quick/api/oxideqquickwebview.cc (+10/-0) qt/renderer/renderer.gyp (+6/-1) shared/browser/compositor/oxide_compositor_utils.cc (+107/-0) shared/browser/oxide_browser_process_main.cc (+8/-0) shared/browser/oxide_content_browser_client.cc (+15/-0) shared/browser/oxide_web_frame.cc (+7/-0) shared/renderer/oxide_content_renderer_client.cc (+24/-0) Text conflict in CHROMIUM_VERSION Text conflict in build/common.gypi Text conflict in patches/allow-os-override-for-gpu-manager.patch Text conflict in patches/allow-render-widget-compositor-settings-override.patch Text conflict in patches/port/gl_implementation.patch Text conflict in patches/series Text conflict in patches/support-native-popup-menus.patch Text conflict in patches/use-android-style-overlay-scrollbars.patch Text conflict in qt/VERSION Text conflict in qt/core/browser/oxide_qt_browser_startup.cc Text conflict in qt/core/browser/oxide_qt_browser_startup.h Text conflict in qt/core/glue/oxide_qt_init.cc Text conflict in qt/quick/CMakeLists.txt Text conflict in qt/quick/api/oxideqquickwebframe.cc Text conflict in qt/quick/api/oxideqquickwebview.cc Text conflict in qt/renderer/renderer.gyp Text conflict in shared/browser/compositor/oxide_compositor_utils.cc Text conflict in shared/browser/oxide_browser_process_main.cc Text conflict in shared/browser/oxide_content_browser_client.cc Text conflict in shared/browser/oxide_web_frame.cc Text conflict in shared/renderer/oxide_content_renderer_client.cc |
To merge this branch: | bzr merge lp:~mterry/oxide/mirserver-1.5 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Chris Coulson | Pending | ||
Review via email: mp+255818@code.launchpad.net |
This proposal has been superseded by a proposal from 2015-04-10.
Commit message
Recognize "mirserver" as a valid ubuntu platform type, and use the GLES2 implementation in that case.
Description of the change
Recognize "mirserver" as a valid ubuntu platform type, and use the GLES2 implementation in that case.
Same fix as https:/
Unmerged revisions
- 974. By Michael Terry
-
Support mirserver as a QPA platform, to fix a crash in the wizard
- 973. By Chris Coulson
-
Automatically bump qt revision to 1.5.7
- 972. By Chris Coulson
-
LP: #1431484
- 971. By Chris Coulson
-
Bump Chromium rev to 41.0.2272.118
- 970. By Chris Coulson
-
Bump Chromium rev to 41.0.2272.89
- 969. By Chris Coulson
-
r908 fixed builds with Qt5.4 but broke builds with < Qt5.3. However, this wasn't picked up because those builds were inadvertently fixed again by r949 which unfortunately landed after 1.5 was branched. Backport r949 from trunk, effectively dropping support for < Qt5.2 but fixing the build with Qt5.2 (trusty)
- 968. By Chris Coulson
-
Disable webcore debug symbols and link with --no-keep-
files-mapped on native x86 builds because of linker OOM - 967. By Chris Coulson
-
Automatically bump qt revision to 1.5.6
- 966. By Chris Coulson
-
Backport commit 7431bb2983db683
dcc4556e1918556 254c3d5589 from upstream chromium branch 42 and corresponding unit tests - 965. By Chris Coulson
-
Backport revisions from trunk to fix the scrollbar styling on mobile
Preview Diff
1 | === modified file 'CHROMIUM_VERSION' |
2 | --- CHROMIUM_VERSION 2015-04-06 21:26:49 +0000 |
3 | +++ CHROMIUM_VERSION 2015-04-10 12:47:19 +0000 |
4 | @@ -1,1 +1,5 @@ |
5 | +<<<<<<< TREE |
6 | 43.0.2357.2 |
7 | +======= |
8 | +41.0.2272.118 |
9 | +>>>>>>> MERGE-SOURCE |
10 | |
11 | === modified file 'build/common.gypi' |
12 | --- build/common.gypi 2015-03-05 16:07:04 +0000 |
13 | +++ build/common.gypi 2015-04-10 12:47:19 +0000 |
14 | @@ -51,7 +51,11 @@ |
15 | # Ubuntu-specific? |
16 | 'arm_float_abi': 'hard', |
17 | }], |
18 | +<<<<<<< TREE |
19 | ['(host_arch=="arm" or host_arch=="ia32") and component=="static_library"', { |
20 | +======= |
21 | + ['host_arch=="arm" or host_arch=="ia32"', { |
22 | +>>>>>>> MERGE-SOURCE |
23 | # This is desparate - we're trying to avoid linker OOM on native ARM |
24 | # and x86 builds. This is unnecessary on ARM cross builds, hence the |
25 | # test for "host_arch". |
26 | @@ -74,10 +78,20 @@ |
27 | '-Wl,--stats', |
28 | ], |
29 | }], |
30 | +<<<<<<< TREE |
31 | ['(host_arch=="arm" or host_arch=="ia32") and component=="static_library"', { |
32 | +======= |
33 | + ['host_arch=="arm" or host_arch=="ia32"', { |
34 | +>>>>>>> MERGE-SOURCE |
35 | 'ldflags': [ |
36 | # Try to work around linker OOM - we only want these on native |
37 | - # ARM and x86 builds though, hence the test for "host_arch" |
38 | +<<<<<<< TREE |
39 | + # ARM and x86 builds though, hence the test for "host_arch" |
40 | +======= |
41 | + # ARM and x86 builds though, hence the test for "host_arch" |
42 | + '-Wl,--no-map-whole-files', |
43 | + '-Wl,--no-keep-memory', |
44 | +>>>>>>> MERGE-SOURCE |
45 | '-Wl,--no-keep-files-mapped', |
46 | ], |
47 | }], |
48 | |
49 | === modified file 'patches/allow-os-override-for-gpu-manager.patch' |
50 | --- patches/allow-os-override-for-gpu-manager.patch 2015-04-03 21:58:38 +0000 |
51 | +++ patches/allow-os-override-for-gpu-manager.patch 2015-04-10 12:47:19 +0000 |
52 | @@ -52,6 +52,7 @@ |
53 | NotifyGpuInfoUpdate(); |
54 | } |
55 | |
56 | +<<<<<<< TREE |
57 | @@ -917,32 +918,37 @@ GpuDataManagerImplPrivate::GpuDataManage |
58 | use_warp_(false), |
59 | card_blacklisted_(false), |
60 | @@ -161,6 +162,117 @@ |
61 | |
62 | #endif // CONTENT_BROWSER_GPU_GPU_DATA_MANAGER_IMPL_PRIVATE_H_ |
63 | |
64 | +======= |
65 | +@@ -905,32 +906,37 @@ GpuDataManagerImplPrivate::GpuDataManage |
66 | + use_warp_(false), |
67 | + card_blacklisted_(false), |
68 | + update_histograms_(true), |
69 | + window_count_(0), |
70 | + domain_blocking_enabled_(true), |
71 | + owner_(owner), |
72 | + display_count_(0), |
73 | + gpu_process_accessible_(true), |
74 | +- finalized_(false) { |
75 | ++ finalized_(false), |
76 | ++ os_type_override_(gpu::GpuControlList::kOsAny) { |
77 | + DCHECK(owner_); |
78 | + const base::CommandLine* command_line = |
79 | + base::CommandLine::ForCurrentProcess(); |
80 | + if (command_line->HasSwitch(switches::kDisableGpu)) |
81 | + DisableHardwareAcceleration(); |
82 | + |
83 | + #if defined(OS_MACOSX) |
84 | + CGGetActiveDisplayList (0, NULL, &display_count_); |
85 | + CGDisplayRegisterReconfigurationCallback(DisplayReconfigCallback, owner_); |
86 | + #endif // OS_MACOSX |
87 | + |
88 | + // For testing only. |
89 | + if (command_line->HasSwitch(switches::kDisableDomainBlockingFor3DAPIs)) { |
90 | + domain_blocking_enabled_ = false; |
91 | + } |
92 | ++ |
93 | ++ os_type_override_ = |
94 | ++ GetContentClient()->browser()->GetOsTypeOverrideForGpuDataManager( |
95 | ++ &os_version_override_); |
96 | + } |
97 | + |
98 | + GpuDataManagerImplPrivate::~GpuDataManagerImplPrivate() { |
99 | + #if defined(OS_MACOSX) |
100 | + CGDisplayRemoveReconfigurationCallback(DisplayReconfigCallback, owner_); |
101 | + #endif |
102 | + } |
103 | + |
104 | +@@ -942,25 +948,27 @@ void GpuDataManagerImplPrivate::Initiali |
105 | + base::CommandLine::ForCurrentProcess()->HasSwitch( |
106 | + switches::kLogGpuControlListDecisions); |
107 | + |
108 | + if (!gpu_blacklist_json.empty()) { |
109 | + gpu_blacklist_.reset(gpu::GpuBlacklist::Create()); |
110 | + if (log_gpu_control_list_decisions) |
111 | + gpu_blacklist_->enable_control_list_logging("gpu_blacklist"); |
112 | + bool success = gpu_blacklist_->LoadList( |
113 | +- gpu_blacklist_json, gpu::GpuControlList::kCurrentOsOnly); |
114 | ++ gpu_blacklist_json, gpu::GpuControlList::kCurrentOsOnly, |
115 | ++ os_type_override_); |
116 | + DCHECK(success); |
117 | + } |
118 | + if (!gpu_driver_bug_list_json.empty()) { |
119 | + gpu_driver_bug_list_.reset(gpu::GpuDriverBugList::Create()); |
120 | + if (log_gpu_control_list_decisions) |
121 | + gpu_driver_bug_list_->enable_control_list_logging("gpu_driver_bug_list"); |
122 | + bool success = gpu_driver_bug_list_->LoadList( |
123 | +- gpu_driver_bug_list_json, gpu::GpuControlList::kCurrentOsOnly); |
124 | ++ gpu_driver_bug_list_json, gpu::GpuControlList::kCurrentOsOnly, |
125 | ++ os_type_override_); |
126 | + DCHECK(success); |
127 | + } |
128 | + |
129 | + gpu_info_ = gpu_info; |
130 | + UpdateGpuInfo(gpu_info); |
131 | + UpdateGpuSwitchingManager(gpu_info); |
132 | + UpdatePreliminaryBlacklistedFeatures(); |
133 | + } |
134 | +diff --git a/content/browser/gpu/gpu_data_manager_impl_private.h b/content/browser/gpu/gpu_data_manager_impl_private.h |
135 | +--- a/content/browser/gpu/gpu_data_manager_impl_private.h |
136 | ++++ b/content/browser/gpu/gpu_data_manager_impl_private.h |
137 | +@@ -11,16 +11,17 @@ |
138 | + #include <string> |
139 | + #include <vector> |
140 | + |
141 | + #include "base/memory/ref_counted.h" |
142 | + #include "base/memory/singleton.h" |
143 | + #include "base/observer_list_threadsafe.h" |
144 | + #include "content/browser/gpu/gpu_data_manager_impl.h" |
145 | + #include "gpu/config/gpu_blacklist.h" |
146 | ++#include "gpu/config/gpu_control_list.h" |
147 | + #include "gpu/config/gpu_driver_bug_list.h" |
148 | + |
149 | + namespace base { |
150 | + class CommandLine; |
151 | + } |
152 | + |
153 | + namespace content { |
154 | + |
155 | +@@ -265,15 +266,18 @@ class CONTENT_EXPORT GpuDataManagerImplP |
156 | + |
157 | + unsigned int display_count_; |
158 | + |
159 | + bool gpu_process_accessible_; |
160 | + |
161 | + // True if all future Initialize calls should be ignored. |
162 | + bool finalized_; |
163 | + |
164 | ++ gpu::GpuControlList::OsType os_type_override_; |
165 | ++ std::string os_version_override_; |
166 | ++ |
167 | + DISALLOW_COPY_AND_ASSIGN(GpuDataManagerImplPrivate); |
168 | + }; |
169 | + |
170 | + } // namespace content |
171 | + |
172 | + #endif // CONTENT_BROWSER_GPU_GPU_DATA_MANAGER_IMPL_PRIVATE_H_ |
173 | + |
174 | +>>>>>>> MERGE-SOURCE |
175 | diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc |
176 | --- a/content/public/browser/content_browser_client.cc |
177 | +++ b/content/public/browser/content_browser_client.cc |
178 | @@ -218,6 +330,7 @@ |
179 | } // namespace content |
180 | |
181 | #endif // CONTENT_PUBLIC_BROWSER_CONTENT_BROWSER_CLIENT_H_ |
182 | +<<<<<<< TREE |
183 | diff --git a/gpu/config/gpu_control_list.cc b/gpu/config/gpu_control_list.cc |
184 | --- a/gpu/config/gpu_control_list.cc |
185 | +++ b/gpu/config/gpu_control_list.cc |
186 | @@ -319,3 +432,106 @@ |
187 | std::string version_; |
188 | std::vector<ScopedGpuControlListEntry> entries_; |
189 | |
190 | +======= |
191 | +diff --git a/gpu/config/gpu_control_list.cc b/gpu/config/gpu_control_list.cc |
192 | +--- a/gpu/config/gpu_control_list.cc |
193 | ++++ b/gpu/config/gpu_control_list.cc |
194 | +@@ -1327,30 +1327,32 @@ GpuControlList::GpuControlList() |
195 | + } |
196 | + |
197 | + GpuControlList::~GpuControlList() { |
198 | + Clear(); |
199 | + } |
200 | + |
201 | + bool GpuControlList::LoadList( |
202 | + const std::string& json_context, |
203 | +- GpuControlList::OsFilter os_filter) { |
204 | ++ GpuControlList::OsFilter os_filter, |
205 | ++ GpuControlList::OsType os_override) { |
206 | + scoped_ptr<base::Value> root; |
207 | + root.reset(base::JSONReader::Read(json_context)); |
208 | + if (root.get() == NULL || !root->IsType(base::Value::TYPE_DICTIONARY)) |
209 | + return false; |
210 | + |
211 | + base::DictionaryValue* root_dictionary = |
212 | + static_cast<base::DictionaryValue*>(root.get()); |
213 | + DCHECK(root_dictionary); |
214 | +- return LoadList(*root_dictionary, os_filter); |
215 | ++ return LoadList(*root_dictionary, os_filter, os_override); |
216 | + } |
217 | + |
218 | + bool GpuControlList::LoadList(const base::DictionaryValue& parsed_json, |
219 | +- GpuControlList::OsFilter os_filter) { |
220 | ++ GpuControlList::OsFilter os_filter, |
221 | ++ GpuControlList::OsType os_override) { |
222 | + std::vector<ScopedGpuControlListEntry> entries; |
223 | + |
224 | + parsed_json.GetString("version", &version_); |
225 | + std::vector<std::string> pieces; |
226 | + if (!ProcessVersionString(version_, '.', &pieces)) |
227 | + return false; |
228 | + |
229 | + const base::ListValue* list = NULL; |
230 | +@@ -1368,17 +1370,19 @@ bool GpuControlList::LoadList(const base |
231 | + if (entry.get() == NULL) |
232 | + return false; |
233 | + if (entry->id() > max_entry_id) |
234 | + max_entry_id = entry->id(); |
235 | + entries.push_back(entry); |
236 | + } |
237 | + |
238 | + Clear(); |
239 | +- OsType my_os = GetOsType(); |
240 | ++ OsType my_os = os_override; |
241 | ++ if (my_os == kOsAny) |
242 | ++ my_os = GetOsType(); |
243 | + for (size_t i = 0; i < entries.size(); ++i) { |
244 | + OsType entry_os = entries[i]->GetOsType(); |
245 | + if (os_filter == GpuControlList::kAllOs || |
246 | + entry_os == kOsAny || entry_os == my_os) |
247 | + entries_.push_back(entries[i]); |
248 | + } |
249 | + max_entry_id_ = max_entry_id; |
250 | + return true; |
251 | +diff --git a/gpu/config/gpu_control_list.h b/gpu/config/gpu_control_list.h |
252 | +--- a/gpu/config/gpu_control_list.h |
253 | ++++ b/gpu/config/gpu_control_list.h |
254 | +@@ -40,17 +40,17 @@ class GPU_EXPORT GpuControlList { |
255 | + kAllOs |
256 | + }; |
257 | + |
258 | + GpuControlList(); |
259 | + virtual ~GpuControlList(); |
260 | + |
261 | + // Loads control list information from a json file. |
262 | + // If failed, the current GpuControlList is un-touched. |
263 | +- bool LoadList(const std::string& json_context, OsFilter os_filter); |
264 | ++ bool LoadList(const std::string& json_context, OsFilter os_filter, OsType os_override = kOsAny); |
265 | + |
266 | + // Collects system information and combines them with gpu_info and control |
267 | + // list information to decide which entries are applied to the current |
268 | + // system and returns the union of features specified in each entry. |
269 | + // If os is kOsAny, use the current OS; if os_version is empty, use the |
270 | + // current OS version. |
271 | + std::set<int> MakeDecision( |
272 | + OsType os, std::string os_version, const GPUInfo& gpu_info); |
273 | +@@ -451,17 +451,17 @@ class GPU_EXPORT GpuControlList { |
274 | + scoped_ptr<BoolInfo> direct_rendering_info_; |
275 | + std::set<int> features_; |
276 | + std::vector<ScopedGpuControlListEntry> exceptions_; |
277 | + }; |
278 | + |
279 | + // Gets the current OS type. |
280 | + static OsType GetOsType(); |
281 | + |
282 | +- bool LoadList(const base::DictionaryValue& parsed_json, OsFilter os_filter); |
283 | ++ bool LoadList(const base::DictionaryValue& parsed_json, OsFilter os_filter, OsType os_override); |
284 | + |
285 | + void Clear(); |
286 | + |
287 | + static NumericOp StringToNumericOp(const std::string& op); |
288 | + |
289 | + std::string version_; |
290 | + std::vector<ScopedGpuControlListEntry> entries_; |
291 | + |
292 | +>>>>>>> MERGE-SOURCE |
293 | |
294 | === modified file 'patches/allow-render-widget-compositor-settings-override.patch' |
295 | --- patches/allow-render-widget-compositor-settings-override.patch 2015-04-03 21:58:38 +0000 |
296 | +++ patches/allow-render-widget-compositor-settings-override.patch 2015-04-10 12:47:19 +0000 |
297 | @@ -1,3 +1,4 @@ |
298 | +<<<<<<< TREE |
299 | # Description: Allow the embedder to override the renderer compositor |
300 | # settings |
301 | # Author: Chris Coulson <chris.coulson@canonical.com> |
302 | @@ -101,3 +102,108 @@ |
303 | } else { |
304 | layer_tree_host_ = cc::LayerTreeHost::CreateSingleThreaded( |
305 | this, this, shared_bitmap_manager, gpu_memory_buffer_manager, |
306 | +======= |
307 | +# Description: Allow the embedder to override the renderer compositor |
308 | +# settings |
309 | +# Author: Chris Coulson <chris.coulson@canonical.com> |
310 | + |
311 | +diff --git a/content/public/renderer/content_renderer_client.cc b/content/public/renderer/content_renderer_client.cc |
312 | +--- a/content/public/renderer/content_renderer_client.cc |
313 | ++++ b/content/public/renderer/content_renderer_client.cc |
314 | +@@ -216,9 +216,12 @@ std::string ContentRendererClient::GetUs |
315 | + blink::WebMediaPlayer* ContentRendererClient::OverrideWebMediaPlayer( |
316 | + blink::WebFrame* frame, |
317 | + blink::WebMediaPlayerClient* client, |
318 | + base::WeakPtr<media::WebMediaPlayerDelegate> delegate, |
319 | + media::MediaLog* media_log) { |
320 | + return nullptr; |
321 | + } |
322 | + |
323 | ++void ContentRendererClient::OverrideCompositorSettings( |
324 | ++ cc::LayerTreeSettings* settings) {} |
325 | ++ |
326 | + } // namespace content |
327 | +diff --git a/content/public/renderer/content_renderer_client.h b/content/public/renderer/content_renderer_client.h |
328 | +--- a/content/public/renderer/content_renderer_client.h |
329 | ++++ b/content/public/renderer/content_renderer_client.h |
330 | +@@ -49,16 +49,20 @@ class WebSpeechSynthesizer; |
331 | + class WebSpeechSynthesizerClient; |
332 | + class WebThemeEngine; |
333 | + class WebURLRequest; |
334 | + class WebWorkerPermissionClientProxy; |
335 | + struct WebPluginParams; |
336 | + struct WebURLError; |
337 | + } |
338 | + |
339 | ++namespace cc { |
340 | ++class LayerTreeSettings; |
341 | ++} |
342 | ++ |
343 | + namespace media { |
344 | + class MediaLog; |
345 | + class RendererFactory; |
346 | + class WebMediaPlayerDelegate; |
347 | + struct KeySystemInfo; |
348 | + } |
349 | + |
350 | + namespace content { |
351 | +@@ -301,13 +305,16 @@ class CONTENT_EXPORT ContentRendererClie |
352 | + virtual std::string GetUserAgentOverrideForURL(const GURL& url); |
353 | + |
354 | + // Allow overriding default media player |
355 | + virtual blink::WebMediaPlayer* OverrideWebMediaPlayer( |
356 | + blink::WebFrame* frame, |
357 | + blink::WebMediaPlayerClient* client, |
358 | + base::WeakPtr<media::WebMediaPlayerDelegate> delegate, |
359 | + media::MediaLog* media_log); |
360 | ++ |
361 | ++ // Allow overriding the renderer compositor settings |
362 | ++ virtual void OverrideCompositorSettings(cc::LayerTreeSettings* settings); |
363 | + }; |
364 | + |
365 | + } // namespace content |
366 | + |
367 | + #endif // CONTENT_PUBLIC_RENDERER_CONTENT_RENDERER_CLIENT_H_ |
368 | +diff --git a/content/renderer/gpu/render_widget_compositor.cc b/content/renderer/gpu/render_widget_compositor.cc |
369 | +--- a/content/renderer/gpu/render_widget_compositor.cc |
370 | ++++ b/content/renderer/gpu/render_widget_compositor.cc |
371 | +@@ -26,17 +26,19 @@ |
372 | + #include "cc/output/begin_frame_args.h" |
373 | + #include "cc/output/copy_output_request.h" |
374 | + #include "cc/output/copy_output_result.h" |
375 | + #include "cc/resources/single_release_callback.h" |
376 | + #include "cc/scheduler/begin_frame_source.h" |
377 | + #include "cc/trees/layer_tree_host.h" |
378 | + #include "content/common/content_switches_internal.h" |
379 | + #include "content/common/gpu/client/context_provider_command_buffer.h" |
380 | ++#include "content/public/common/content_client.h" |
381 | + #include "content/public/common/content_switches.h" |
382 | ++#include "content/public/renderer/content_renderer_client.h" |
383 | + #include "content/renderer/input/input_handler_manager.h" |
384 | + #include "content/renderer/scheduler/renderer_scheduler.h" |
385 | + #include "gpu/command_buffer/client/gles2_interface.h" |
386 | + #include "third_party/WebKit/public/platform/WebCompositeAndReadbackAsyncCallback.h" |
387 | + #include "third_party/WebKit/public/platform/WebSelectionBound.h" |
388 | + #include "third_party/WebKit/public/platform/WebSize.h" |
389 | + #include "third_party/WebKit/public/web/WebKit.h" |
390 | + #include "third_party/WebKit/public/web/WebWidget.h" |
391 | +@@ -424,16 +426,18 @@ void RenderWidgetCompositor::Initialize( |
392 | + compositor_deps_->GetGpuMemoryBufferManager(); |
393 | + |
394 | + scoped_ptr<cc::BeginFrameSource> external_begin_frame_source; |
395 | + if (settings.use_external_begin_frame_source) { |
396 | + external_begin_frame_source = |
397 | + compositor_deps_->CreateExternalBeginFrameSource(widget_->routing_id()); |
398 | + } |
399 | + |
400 | ++ GetContentClient()->renderer()->OverrideCompositorSettings(&settings); |
401 | ++ |
402 | + if (compositor_thread_task_runner.get()) { |
403 | + layer_tree_host_ = cc::LayerTreeHost::CreateThreaded( |
404 | + this, shared_bitmap_manager, gpu_memory_buffer_manager, settings, |
405 | + main_thread_compositor_task_runner, compositor_thread_task_runner, |
406 | + external_begin_frame_source.Pass()); |
407 | + } else { |
408 | + layer_tree_host_ = cc::LayerTreeHost::CreateSingleThreaded( |
409 | + this, this, shared_bitmap_manager, gpu_memory_buffer_manager, settings, |
410 | +>>>>>>> MERGE-SOURCE |
411 | |
412 | === added file 'patches/bug1423531.patch' |
413 | --- patches/bug1423531.patch 1970-01-01 00:00:00 +0000 |
414 | +++ patches/bug1423531.patch 2015-04-10 12:47:19 +0000 |
415 | @@ -0,0 +1,202 @@ |
416 | +# Description: backport commit 7431bb2983db683dcc4556e1918556254c3d5589 |
417 | +# from the 42 branch to fix https://launchpad.net/bugs/1423531 |
418 | +# Author: Olivier Tilloy <olivier.tilloy@canonical.com> |
419 | + |
420 | +diff --git a/chrome/browser/ui/zoom/zoom_controller_browsertest.cc b/chrome/browser/ui/zoom/zoom_controller_browsertest.cc |
421 | +--- a/chrome/browser/ui/zoom/zoom_controller_browsertest.cc |
422 | ++++ b/chrome/browser/ui/zoom/zoom_controller_browsertest.cc |
423 | +@@ -8,6 +8,7 @@ |
424 | + #include "base/process/kill.h" |
425 | + #include "chrome/browser/profiles/profile.h" |
426 | + #include "chrome/browser/ui/browser.h" |
427 | ++#include "chrome/browser/ui/browser_commands.h" |
428 | + #include "chrome/browser/ui/tabs/tab_strip_model.h" |
429 | + #include "chrome/browser/ui/webui/signin/login_ui_test_utils.h" |
430 | + #include "chrome/browser/ui/zoom/chrome_zoom_level_prefs.h" |
431 | +@@ -140,6 +141,57 @@ |
432 | + EXPECT_FLOAT_EQ(new_zoom_level, zoom_controller->GetZoomLevel()); |
433 | + } |
434 | + |
435 | ++IN_PROC_BROWSER_TEST_F(ZoomControllerBrowserTest, |
436 | ++ ErrorPagesCanZoomAfterTabRestore) { |
437 | ++ // This url is meant to cause a network error page to be loaded. |
438 | ++ // Tests can't reach the network, so this test should continue |
439 | ++ // to work even if the domain listed is someday registered. |
440 | ++ GURL url("http://kjfhkjsdf.com"); |
441 | ++ |
442 | ++ TabStripModel* tab_strip = browser()->tab_strip_model(); |
443 | ++ ASSERT_TRUE(tab_strip); |
444 | ++ |
445 | ++ ui_test_utils::NavigateToURLWithDisposition( |
446 | ++ browser(), url, NEW_FOREGROUND_TAB, |
447 | ++ ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
448 | ++ { |
449 | ++ content::WebContents* web_contents = tab_strip->GetActiveWebContents(); |
450 | ++ |
451 | ++ EXPECT_EQ( |
452 | ++ content::PAGE_TYPE_ERROR, |
453 | ++ web_contents->GetController().GetLastCommittedEntry()->GetPageType()); |
454 | ++ |
455 | ++ content::WebContentsDestroyedWatcher destroyed_watcher(web_contents); |
456 | ++ tab_strip->CloseWebContentsAt(tab_strip->active_index(), |
457 | ++ TabStripModel::CLOSE_CREATE_HISTORICAL_TAB); |
458 | ++ destroyed_watcher.Wait(); |
459 | ++ } |
460 | ++ EXPECT_EQ(1, tab_strip->count()); |
461 | ++ |
462 | ++ content::WebContentsAddedObserver new_web_contents_observer; |
463 | ++ chrome::RestoreTab(browser()); |
464 | ++ content::WebContents* web_contents = |
465 | ++ new_web_contents_observer.GetWebContents(); |
466 | ++ content::WaitForLoadStop(web_contents); |
467 | ++ |
468 | ++ EXPECT_EQ(2, tab_strip->count()); |
469 | ++ |
470 | ++ EXPECT_EQ( |
471 | ++ content::PAGE_TYPE_ERROR, |
472 | ++ web_contents->GetController().GetLastCommittedEntry()->GetPageType()); |
473 | ++ |
474 | ++ ZoomController* zoom_controller = |
475 | ++ ZoomController::FromWebContents(web_contents); |
476 | ++ |
477 | ++ double old_zoom_level = zoom_controller->GetZoomLevel(); |
478 | ++ double new_zoom_level = old_zoom_level + 0.5; |
479 | ++ |
480 | ++ // The following attempt to change the zoom level for an error page should |
481 | ++ // fail. |
482 | ++ zoom_controller->SetZoomLevel(new_zoom_level); |
483 | ++ EXPECT_FLOAT_EQ(new_zoom_level, zoom_controller->GetZoomLevel()); |
484 | ++} |
485 | ++ |
486 | + IN_PROC_BROWSER_TEST_F(ZoomControllerBrowserTest, Observe) { |
487 | + content::WebContents* web_contents = |
488 | + browser()->tab_strip_model()->GetActiveWebContents(); |
489 | +diff --git a/content/browser/frame_host/navigation_controller_impl.cc b/content/browser/frame_host/navigation_controller_impl.cc |
490 | +--- a/content/browser/frame_host/navigation_controller_impl.cc |
491 | ++++ b/content/browser/frame_host/navigation_controller_impl.cc |
492 | +@@ -1050,10 +1050,6 @@ |
493 | + pending_entry_->site_instance() == rfh->GetSiteInstance())) { |
494 | + new_entry = new NavigationEntryImpl(*pending_entry_); |
495 | + |
496 | +- // Don't use the page type from the pending entry. Some interstitial page |
497 | +- // may have set the type to interstitial. Once we commit, however, the page |
498 | +- // type must always be normal. |
499 | +- new_entry->set_page_type(PAGE_TYPE_NORMAL); |
500 | + update_virtual_url = new_entry->update_virtual_url_with_url(); |
501 | + } else { |
502 | + new_entry = new NavigationEntryImpl; |
503 | +@@ -1074,8 +1070,12 @@ |
504 | + update_virtual_url = needs_update; |
505 | + } |
506 | + |
507 | +- if (params.url_is_unreachable) |
508 | +- new_entry->set_page_type(PAGE_TYPE_ERROR); |
509 | ++ // Don't use the page type from the pending entry. Some interstitial page |
510 | ++ // may have set the type to interstitial. Once we commit, however, the page |
511 | ++ // type must always be normal or error. |
512 | ++ new_entry->set_page_type(params.url_is_unreachable ? PAGE_TYPE_ERROR |
513 | ++ : PAGE_TYPE_NORMAL); |
514 | ++ |
515 | + new_entry->SetURL(params.url); |
516 | + if (update_virtual_url) |
517 | + UpdateVirtualURLToURL(new_entry, params.url); |
518 | +@@ -1126,6 +1126,8 @@ |
519 | + NavigationEntryImpl* entry = entries_[entry_index].get(); |
520 | + |
521 | + // The URL may have changed due to redirects. |
522 | ++ entry->set_page_type(params.url_is_unreachable ? PAGE_TYPE_ERROR |
523 | ++ : PAGE_TYPE_NORMAL); |
524 | + entry->SetURL(params.url); |
525 | + entry->SetReferrer(params.referrer); |
526 | + if (entry->update_virtual_url_with_url()) |
527 | +@@ -1178,6 +1180,8 @@ |
528 | + existing_entry->set_unique_id(pending_entry_->GetUniqueID()); |
529 | + |
530 | + // The URL may have changed due to redirects. |
531 | ++ existing_entry->set_page_type(params.url_is_unreachable ? PAGE_TYPE_ERROR |
532 | ++ : PAGE_TYPE_NORMAL); |
533 | + if (existing_entry->update_virtual_url_with_url()) |
534 | + UpdateVirtualURLToURL(existing_entry, params.url); |
535 | + existing_entry->SetURL(params.url); |
536 | +@@ -1204,6 +1208,8 @@ |
537 | + // entry and it will be the same page as the new navigation (minus the |
538 | + // reference fragments, of course). We'll update the URL of the existing |
539 | + // entry without pruning the forward history. |
540 | ++ existing_entry->set_page_type(params.url_is_unreachable ? PAGE_TYPE_ERROR |
541 | ++ : PAGE_TYPE_NORMAL); |
542 | + existing_entry->SetURL(params.url); |
543 | + if (existing_entry->update_virtual_url_with_url()) |
544 | + UpdateVirtualURLToURL(existing_entry, params.url); |
545 | +diff --git a/content/browser/frame_host/navigation_controller_impl_unittest.cc b/content/browser/frame_host/navigation_controller_impl_unittest.cc |
546 | +--- a/content/browser/frame_host/navigation_controller_impl_unittest.cc |
547 | ++++ b/content/browser/frame_host/navigation_controller_impl_unittest.cc |
548 | +@@ -28,6 +28,7 @@ |
549 | + #include "content/public/browser/web_contents_observer.h" |
550 | + #include "content/public/common/content_switches.h" |
551 | + #include "content/public/common/page_state.h" |
552 | ++#include "content/public/common/page_type.h" |
553 | + #include "content/public/common/url_constants.h" |
554 | + #include "content/public/test/mock_render_process_host.h" |
555 | + #include "content/public/test/test_notification_tracker.h" |
556 | +@@ -4456,4 +4457,61 @@ |
557 | + EXPECT_EQ(0, delegate->repost_form_warning_count()); |
558 | + } |
559 | + |
560 | ++TEST_F(NavigationControllerTest, UnreachableURLGivesErrorPage) { |
561 | ++ GURL url("http://foo"); |
562 | ++ FrameHostMsg_DidCommitProvisionalLoad_Params params; |
563 | ++ params.page_id = 1; |
564 | ++ params.url = url; |
565 | ++ params.transition = ui::PAGE_TRANSITION_LINK; |
566 | ++ params.gesture = NavigationGestureUser; |
567 | ++ params.page_state = PageState::CreateFromURL(url); |
568 | ++ params.was_within_same_page = false; |
569 | ++ params.is_post = true; |
570 | ++ params.post_id = 2; |
571 | ++ params.url_is_unreachable = true; |
572 | ++ // Navigate to new page |
573 | ++ { |
574 | ++ LoadCommittedDetails details; |
575 | ++ controller_impl().RendererDidNavigate(main_test_rfh(), params, &details); |
576 | ++ EXPECT_EQ(PAGE_TYPE_ERROR, |
577 | ++ controller_impl().GetLastCommittedEntry()->GetPageType()); |
578 | ++ EXPECT_EQ(NAVIGATION_TYPE_NEW_PAGE, details.type); |
579 | ++ } |
580 | ++ |
581 | ++ // Navigate to existing page. |
582 | ++ { |
583 | ++ LoadCommittedDetails details; |
584 | ++ controller_impl().RendererDidNavigate(main_test_rfh(), params, &details); |
585 | ++ EXPECT_EQ(PAGE_TYPE_ERROR, |
586 | ++ controller_impl().GetLastCommittedEntry()->GetPageType()); |
587 | ++ EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, details.type); |
588 | ++ } |
589 | ++ |
590 | ++ // Navigate to same page. |
591 | ++ // Note: The call to LoadURL() creates a pending entry in order to trigger the |
592 | ++ // same-page transition. |
593 | ++ controller_impl().LoadURL( |
594 | ++ url, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); |
595 | ++ params.transition = ui::PAGE_TRANSITION_TYPED; |
596 | ++ { |
597 | ++ LoadCommittedDetails details; |
598 | ++ controller_impl().RendererDidNavigate(main_test_rfh(), params, &details); |
599 | ++ EXPECT_EQ(PAGE_TYPE_ERROR, |
600 | ++ controller_impl().GetLastCommittedEntry()->GetPageType()); |
601 | ++ EXPECT_EQ(NAVIGATION_TYPE_SAME_PAGE, details.type); |
602 | ++ } |
603 | ++ |
604 | ++ // Navigate in page. |
605 | ++ params.url = GURL("http://foo#foo"); |
606 | ++ params.transition = ui::PAGE_TRANSITION_LINK; |
607 | ++ params.was_within_same_page = true; |
608 | ++ { |
609 | ++ LoadCommittedDetails details; |
610 | ++ controller_impl().RendererDidNavigate(main_test_rfh(), params, &details); |
611 | ++ EXPECT_EQ(PAGE_TYPE_ERROR, |
612 | ++ controller_impl().GetLastCommittedEntry()->GetPageType()); |
613 | ++ EXPECT_EQ(NAVIGATION_TYPE_IN_PAGE, details.type); |
614 | ++ } |
615 | ++} |
616 | ++ |
617 | + } // namespace content |
618 | |
619 | === modified file 'patches/port/gl_implementation.patch' |
620 | --- patches/port/gl_implementation.patch 2015-03-26 09:58:06 +0000 |
621 | +++ patches/port/gl_implementation.patch 2015-04-10 12:47:19 +0000 |
622 | @@ -102,11 +102,28 @@ |
623 | 'gl_context_stub.h', |
624 | 'gl_context_stub_with_extensions.cc', |
625 | 'gl_context_stub_with_extensions.h', |
626 | +<<<<<<< TREE |
627 | 'gl_context_win.cc', |
628 | 'gl_context_x11.cc', |
629 | 'gl_enums.cc', |
630 | 'gl_enums.h', |
631 | @@ -81,32 +82,32 @@ |
632 | +======= |
633 | +- 'gl_context_win.cc', |
634 | +- 'gl_context_x11.cc', |
635 | ++ #'gl_context_win.cc', |
636 | ++ #'gl_context_x11.cc', |
637 | + 'gl_export.h', |
638 | + 'gl_fence.cc', |
639 | + 'gl_fence.h', |
640 | + 'gl_fence_arb.cc', |
641 | + 'gl_fence_arb.h', |
642 | + 'gl_fence_nv.cc', |
643 | + 'gl_fence_nv.h', |
644 | + 'gl_gl_api_implementation.cc', |
645 | +@@ -81,52 +82,57 @@ |
646 | + 'gl_image_ref_counted_memory.h', |
647 | +>>>>>>> MERGE-SOURCE |
648 | 'gl_image_shared_memory.cc', |
649 | 'gl_image_shared_memory.h', |
650 | 'gl_image_stub.cc', |
651 | @@ -150,10 +167,16 @@ |
652 | 'scoped_make_current.h', |
653 | 'sync_control_vsync_provider.cc', |
654 | 'sync_control_vsync_provider.h', |
655 | +<<<<<<< TREE |
656 | +======= |
657 | + '<(gl_binding_output_dir)/gl_bindings_autogen_osmesa.cc', |
658 | + '<(gl_binding_output_dir)/gl_bindings_autogen_osmesa.h', |
659 | +>>>>>>> MERGE-SOURCE |
660 | + '<(DEPTH)/../../../shared/port/gl/gl_context_oxide_linux.cc', |
661 | + '<(DEPTH)/../../../shared/port/gl/gl_implementation_oxide_linux.cc', |
662 | + '<(DEPTH)/../../../shared/port/gl/gl_surface_oxide_linux.cc', |
663 | ], |
664 | +<<<<<<< TREE |
665 | 'conditions': [ |
666 | ['OS in ("win", "android", "linux")', { |
667 | 'sources': [ |
668 | @@ -162,6 +185,16 @@ |
669 | 'gl_bindings_autogen_egl.cc', |
670 | 'gl_bindings_autogen_egl.h', |
671 | @@ -151,28 +155,28 @@ |
672 | +======= |
673 | + # hard_dependency is necessary for this target because it has actions |
674 | + # that generate header files included by dependent targets. The header |
675 | + # files must be generated before the dependents are compiled. The usual |
676 | + # semantics are to allow the two targets to build concurrently. |
677 | + 'hard_dependency': 1, |
678 | + 'actions': [ |
679 | + { |
680 | +@@ -215,24 +221,24 @@ |
681 | +>>>>>>> MERGE-SOURCE |
682 | ], |
683 | }], |
684 | ['OS=="linux"', { |
685 | @@ -256,7 +289,11 @@ |
686 | #undef Bool |
687 | #undef None |
688 | #undef Status |
689 | +<<<<<<< TREE |
690 | @@ -314,16 +314,19 @@ typedef uint64 EGLuint64CHROMIUM; |
691 | +======= |
692 | +@@ -316,16 +316,19 @@ typedef uint64 EGLuint64CHROMIUM; |
693 | +>>>>>>> MERGE-SOURCE |
694 | #if defined(OS_WIN) |
695 | #include "gl_bindings_autogen_egl.h" |
696 | #include "gl_bindings_autogen_wgl.h" |
697 | @@ -269,14 +306,21 @@ |
698 | +#include "gl_bindings_autogen_glx.h" |
699 | +#endif |
700 | #elif defined(OS_ANDROID) |
701 | - #include "gl_bindings_autogen_egl.h" |
702 | + #include "gl_bindings_autogen_egl_android.h" |
703 | #endif |
704 | |
705 | namespace gfx { |
706 | |
707 | struct GL_EXPORT DriverGL { |
708 | void InitializeStaticBindings(); |
709 | +<<<<<<< TREE |
710 | @@ -383,17 +386,17 @@ struct GL_EXPORT DriverEGL { |
711 | +======= |
712 | +@@ -379,17 +382,17 @@ struct GL_EXPORT DriverEGL { |
713 | + void ClearBindings(); |
714 | + |
715 | + ProcsEGL fn; |
716 | +>>>>>>> MERGE-SOURCE |
717 | ProcsEGL debug_fn; |
718 | ExtensionsEGL ext; |
719 | |
720 | @@ -294,8 +338,12 @@ |
721 | |
722 | ProcsGLX fn; |
723 | ProcsGLX debug_fn; |
724 | +<<<<<<< TREE |
725 | ExtensionsGLX ext; |
726 | @@ -425,16 +428,23 @@ GL_EXPORT extern GLXApi* g_current_glx_c |
727 | +======= |
728 | +@@ -419,16 +422,23 @@ GL_EXPORT extern GLXApi* g_current_glx_c |
729 | +>>>>>>> MERGE-SOURCE |
730 | GL_EXPORT extern DriverEGL g_driver_egl; |
731 | GL_EXPORT extern DriverGLX g_driver_glx; |
732 | |
733 | |
734 | === modified file 'patches/series' |
735 | --- patches/series 2015-04-07 14:20:35 +0000 |
736 | +++ patches/series 2015-04-10 12:47:19 +0000 |
737 | @@ -27,9 +27,16 @@ |
738 | customize-gesture-fling-curve.patch |
739 | mediahub-support.patch |
740 | allow-os-override-for-gpu-manager.patch |
741 | +<<<<<<< TREE |
742 | use-android-style-overlay-scrollbars.patch |
743 | allow-render-widget-compositor-settings-override.patch |
744 | enable-accelerated-canvas-on-krillin.patch |
745 | pulse-audio-role.patch |
746 | enable-accelerated-canvas-on-arale.patch |
747 | fix-crbug-473891.patch |
748 | +======= |
749 | +viewport-min-width.patch |
750 | +use-android-style-overlay-scrollbars.patch |
751 | +allow-render-widget-compositor-settings-override.patch |
752 | +bug1423531.patch |
753 | +>>>>>>> MERGE-SOURCE |
754 | |
755 | === modified file 'patches/support-native-popup-menus.patch' |
756 | --- patches/support-native-popup-menus.patch 2015-04-06 21:26:49 +0000 |
757 | +++ patches/support-native-popup-menus.patch 2015-04-10 12:47:19 +0000 |
758 | @@ -26,6 +26,7 @@ |
759 | |
760 | void RenderFrameHostImpl::AccessibilitySetFocus(int object_id) { |
761 | Send(new AccessibilityMsg_SetFocus(routing_id_, object_id)); |
762 | +<<<<<<< TREE |
763 | @@ -1398,17 +1396,16 @@ void RenderFrameHostImpl::OnToggleFullsc |
764 | else |
765 | delegate_->ExitFullscreenMode(); |
766 | @@ -33,6 +34,15 @@ |
767 | // The previous call might change the fullscreen state. We need to make sure |
768 | // the renderer is aware of that, which is done via the resize message. |
769 | render_view_host_->WasResized(); |
770 | +======= |
771 | +@@ -1154,17 +1152,16 @@ void RenderFrameHostImpl::OnAccessibilit |
772 | + if (manager) { |
773 | + manager->OnFindInPageResult( |
774 | + params.request_id, params.match_index, params.start_id, |
775 | + params.start_offset, params.end_id, params.end_offset); |
776 | + } |
777 | + } |
778 | +>>>>>>> MERGE-SOURCE |
779 | } |
780 | |
781 | -#if defined(OS_MACOSX) || defined(OS_ANDROID) |
782 | @@ -44,7 +54,11 @@ |
783 | view->ShowPopupMenu(this, |
784 | params.bounds, |
785 | params.item_height, |
786 | +<<<<<<< TREE |
787 | @@ -1421,17 +1418,16 @@ void RenderFrameHostImpl::OnShowPopup( |
788 | +======= |
789 | +@@ -1177,17 +1174,16 @@ void RenderFrameHostImpl::OnShowPopup( |
790 | +>>>>>>> MERGE-SOURCE |
791 | } |
792 | |
793 | void RenderFrameHostImpl::OnHidePopup() { |
794 | @@ -55,6 +69,7 @@ |
795 | } |
796 | -#endif |
797 | |
798 | +<<<<<<< TREE |
799 | #if defined(ENABLE_MEDIA_MOJO_RENDERER) |
800 | static void CreateMediaRendererService( |
801 | mojo::InterfaceRequest<mojo::MediaRenderer> request) { |
802 | @@ -63,6 +78,16 @@ |
803 | } |
804 | #endif |
805 | @@ -1876,29 +1872,28 @@ RenderFrameHostImpl::GetParentNativeView |
806 | +======= |
807 | + void RenderFrameHostImpl::RegisterMojoServices() { |
808 | + GeolocationServiceContext* geolocation_service_context = |
809 | + delegate_ ? delegate_->GetGeolocationServiceContext() : NULL; |
810 | + if (geolocation_service_context) { |
811 | + // TODO(creis): Bind process ID here so that GeolocationServiceImpl |
812 | + // can perform permissions checks once site isolation is complete. |
813 | + // crbug.com/426384 |
814 | +@@ -1573,29 +1569,28 @@ RenderFrameHostImpl::GetParentNativeView |
815 | +>>>>>>> MERGE-SOURCE |
816 | void RenderFrameHostImpl::DidSelectPopupMenuItem(int selected_index) { |
817 | Send(new FrameMsg_SelectPopupMenuItem(routing_id_, selected_index)); |
818 | } |
819 | @@ -116,7 +141,11 @@ |
820 | |
821 | namespace content { |
822 | |
823 | +<<<<<<< TREE |
824 | @@ -398,20 +396,19 @@ class CONTENT_EXPORT RenderFrameHostImpl |
825 | +======= |
826 | +@@ -365,20 +363,19 @@ class CONTENT_EXPORT RenderFrameHostImpl |
827 | +>>>>>>> MERGE-SOURCE |
828 | #if defined(OS_WIN) |
829 | void SetParentNativeViewAccessible( |
830 | gfx::NativeViewAccessible accessible_parent); |
831 | @@ -138,7 +167,12 @@ |
832 | const CommonNavigationParams& common_params, |
833 | const RequestNavigationParams& request_params); |
834 | |
835 | +<<<<<<< TREE |
836 | @@ -508,20 +505,18 @@ class CONTENT_EXPORT RenderFrameHostImpl |
837 | +======= |
838 | +@@ -461,20 +458,18 @@ class CONTENT_EXPORT RenderFrameHostImpl |
839 | + void OnAccessibilityEvents( |
840 | +>>>>>>> MERGE-SOURCE |
841 | const std::vector<AccessibilityHostMsg_EventParams>& params, |
842 | int reset_token); |
843 | void OnAccessibilityLocationChanges( |
844 | @@ -198,6 +232,7 @@ |
845 | diff --git a/content/common/frame_messages.h b/content/common/frame_messages.h |
846 | --- a/content/common/frame_messages.h |
847 | +++ b/content/common/frame_messages.h |
848 | +<<<<<<< TREE |
849 | @@ -293,17 +293,16 @@ IPC_STRUCT_BEGIN(FrameMsg_TextTrackSetti |
850 | |
851 | // Text shadow (edge style) of the text track text. |
852 | @@ -205,6 +240,15 @@ |
853 | |
854 | // Size of the text track text. |
855 | IPC_STRUCT_MEMBER(std::string, text_track_text_size) |
856 | +======= |
857 | +@@ -321,17 +321,16 @@ IPC_STRUCT_BEGIN(FrameHostMsg_BeginNavig |
858 | + // Optional resource request body (may be null). |
859 | + IPC_STRUCT_MEMBER(scoped_refptr<content::ResourceRequestBody>, |
860 | + request_body) |
861 | + |
862 | + // True if the request was user initiated. |
863 | + IPC_STRUCT_MEMBER(bool, has_user_gesture) |
864 | +>>>>>>> MERGE-SOURCE |
865 | IPC_STRUCT_END() |
866 | |
867 | -#if defined(OS_MACOSX) || defined(OS_ANDROID) |
868 | @@ -216,7 +260,11 @@ |
869 | |
870 | // The height of each item in the menu. |
871 | IPC_STRUCT_MEMBER(int, item_height) |
872 | +<<<<<<< TREE |
873 | @@ -318,17 +317,16 @@ IPC_STRUCT_BEGIN(FrameHostMsg_ShowPopup_ |
874 | +======= |
875 | +@@ -346,17 +345,16 @@ IPC_STRUCT_BEGIN(FrameHostMsg_ShowPopup_ |
876 | +>>>>>>> MERGE-SOURCE |
877 | IPC_STRUCT_MEMBER(std::vector<content::MenuItem>, popup_items) |
878 | |
879 | // Whether items should be right-aligned. |
880 | @@ -234,9 +282,16 @@ |
881 | // presented. When the frame finishes presenting, a matching |
882 | // FrameHostMsg_CompositorFrameSwappedACK should be sent back to the |
883 | // RenderViewHost that was produced the CompositorFrame. |
884 | +<<<<<<< TREE |
885 | @@ -503,24 +501,22 @@ IPC_MESSAGE_ROUTED1(FrameMsg_DidUpdateSa |
886 | // changed in another process. |
887 | IPC_MESSAGE_ROUTED1(FrameMsg_DidUpdateName, std::string /* name */) |
888 | +======= |
889 | +@@ -505,24 +503,22 @@ IPC_MESSAGE_ROUTED1(FrameMsg_TextSurroun |
890 | + // Tells the renderer to insert a link to the specified stylesheet. This is |
891 | + // needed to support navigation transitions. |
892 | + IPC_MESSAGE_ROUTED1(FrameMsg_AddStyleSheetByURL, std::string) |
893 | +>>>>>>> MERGE-SOURCE |
894 | |
895 | // Send to the RenderFrame to set text track style settings. |
896 | // Sent for top-level frames. |
897 | @@ -260,10 +315,17 @@ |
898 | #endif |
899 | |
900 | // PlzNavigate |
901 | +<<<<<<< TREE |
902 | @@ -848,16 +844,12 @@ IPC_MESSAGE_ROUTED1(FrameHostMsg_VisualS |
903 | // Puts the browser into "tab fullscreen" mode for the sending renderer. |
904 | // See the comment in chrome/browser/ui/browser.h for more details. |
905 | IPC_MESSAGE_ROUTED1(FrameHostMsg_ToggleFullscreen, bool /* enter_fullscreen */) |
906 | +======= |
907 | +@@ -827,16 +823,12 @@ IPC_MESSAGE_CONTROL1(FrameHostMsg_AddNav |
908 | + IPC_MESSAGE_ROUTED2(FrameHostMsg_BeginNavigation, |
909 | + FrameHostMsg_BeginNavigation_Params, |
910 | + content::CommonNavigationParams) |
911 | +>>>>>>> MERGE-SOURCE |
912 | |
913 | // Dispatch a load event for this frame in the iframe element of an |
914 | // out-of-process parent frame. |
915 | @@ -375,7 +437,11 @@ |
916 | diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
917 | --- a/content/renderer/render_frame_impl.cc |
918 | +++ b/content/renderer/render_frame_impl.cc |
919 | +<<<<<<< TREE |
920 | @@ -958,23 +958,21 @@ bool RenderFrameImpl::Send(IPC::Message* |
921 | +======= |
922 | +@@ -891,23 +891,21 @@ bool RenderFrameImpl::Send(IPC::Message* |
923 | +>>>>>>> MERGE-SOURCE |
924 | delete message; |
925 | return false; |
926 | } |
927 | @@ -399,7 +465,13 @@ |
928 | return false; |
929 | |
930 | // TODO(kenrb): document() should not be null, but as a transitional step |
931 | +<<<<<<< TREE |
932 | @@ -1044,19 +1042,18 @@ bool RenderFrameImpl::OnMessageReceived( |
933 | +======= |
934 | +@@ -973,19 +971,18 @@ bool RenderFrameImpl::OnMessageReceived( |
935 | + OnTextSurroundingSelectionRequest) |
936 | + IPC_MESSAGE_HANDLER(FrameMsg_AddStyleSheetByURL, |
937 | +>>>>>>> MERGE-SOURCE |
938 | OnAddStyleSheetByURL) |
939 | IPC_MESSAGE_HANDLER(FrameMsg_SetAccessibilityMode, |
940 | OnSetAccessibilityMode) |
941 | @@ -420,6 +492,7 @@ |
942 | return handled; |
943 | } |
944 | |
945 | +<<<<<<< TREE |
946 | @@ -1597,31 +1594,29 @@ void RenderFrameImpl::OnTextTrackSetting |
947 | render_view_->webview()->settings()->setTextTrackTextColor( |
948 | WebString::fromUTF8(params.text_track_text_color)); |
949 | @@ -427,6 +500,15 @@ |
950 | WebString::fromUTF8(params.text_track_text_shadow)); |
951 | render_view_->webview()->settings()->setTextTrackTextSize( |
952 | WebString::fromUTF8(params.text_track_text_size)); |
953 | +======= |
954 | +@@ -1478,31 +1475,29 @@ void RenderFrameImpl::OnDisownOpener() { |
955 | + // disowning the opener on subframes, we will need to move WebContentsImpl's |
956 | + // opener_ to FrameTreeNode. |
957 | + CHECK(!frame_->parent()); |
958 | + |
959 | + if (frame_->opener()) |
960 | + frame_->setOpener(NULL); |
961 | +>>>>>>> MERGE-SOURCE |
962 | } |
963 | |
964 | -#if defined(OS_ANDROID) |
965 | @@ -452,7 +534,11 @@ |
966 | external_popup_menu_->DidSelectItem(selected_index); |
967 | external_popup_menu_.reset(); |
968 | } |
969 | +<<<<<<< TREE |
970 | @@ -2003,17 +1998,17 @@ RenderFrameImpl::createWorkerContentSett |
971 | +======= |
972 | +@@ -1909,17 +1904,17 @@ RenderFrameImpl::createWorkerPermissionC |
973 | +>>>>>>> MERGE-SOURCE |
974 | DCHECK(!frame_ || frame_ == frame); |
975 | return GetContentClient()->renderer()->CreateWorkerContentSettingsClientProxy( |
976 | this, frame); |
977 | @@ -513,10 +599,16 @@ |
978 | #endif |
979 | |
980 | void OnCommitNavigation(const ResourceResponseHead& response, |
981 | +<<<<<<< TREE |
982 | const GURL& stream_url, |
983 | const CommonNavigationParams& common_params, |
984 | const RequestNavigationParams& request_params); |
985 | @@ -910,20 +907,18 @@ class CONTENT_EXPORT RenderFrameImpl |
986 | +======= |
987 | +@@ -828,20 +825,18 @@ class CONTENT_EXPORT RenderFrameImpl |
988 | + |
989 | + // The current accessibility mode. |
990 | +>>>>>>> MERGE-SOURCE |
991 | AccessibilityMode accessibility_mode_; |
992 | |
993 | // Only valid if |accessibility_mode_| is anything other than |
994 | @@ -540,7 +632,11 @@ |
995 | diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc |
996 | --- a/content/renderer/render_thread_impl.cc |
997 | +++ b/content/renderer/render_thread_impl.cc |
998 | +<<<<<<< TREE |
999 | @@ -465,20 +465,18 @@ RenderThreadImpl::RenderThreadImpl( |
1000 | +======= |
1001 | +@@ -437,20 +437,18 @@ RenderThreadImpl::RenderThreadImpl( |
1002 | +>>>>>>> MERGE-SOURCE |
1003 | |
1004 | void RenderThreadImpl::Init() { |
1005 | TRACE_EVENT_BEGIN_ETW("RenderThreadImpl::Init", 0, ""); |
1006 | @@ -564,8 +660,12 @@ |
1007 | diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc |
1008 | --- a/content/renderer/render_widget.cc |
1009 | +++ b/content/renderer/render_widget.cc |
1010 | +<<<<<<< TREE |
1011 | @@ -678,23 +678,21 @@ gfx::Rect RenderWidget::AdjustValidation |
1012 | |
1013 | +======= |
1014 | +@@ -650,23 +650,21 @@ gfx::Rect RenderWidget::AdjustValidation |
1015 | +>>>>>>> MERGE-SOURCE |
1016 | void RenderWidget::SetScreenMetricsEmulationParameters( |
1017 | bool enabled, |
1018 | const blink::WebDeviceEmulationParams& params) { |
1019 | @@ -591,10 +691,14 @@ |
1020 | diff --git a/content/renderer/render_widget.h b/content/renderer/render_widget.h |
1021 | --- a/content/renderer/render_widget.h |
1022 | +++ b/content/renderer/render_widget.h |
1023 | +<<<<<<< TREE |
1024 | @@ -390,20 +390,18 @@ class CONTENT_EXPORT RenderWidget |
1025 | const gfx::Rect& resizer_rect, |
1026 | bool is_fullscreen, |
1027 | ResizeAck resize_ack); |
1028 | +======= |
1029 | +@@ -378,20 +378,18 @@ class CONTENT_EXPORT RenderWidget |
1030 | +>>>>>>> MERGE-SOURCE |
1031 | // Used to force the size of a window when running layout tests. |
1032 | void SetWindowRectSynchronously(const gfx::Rect& new_window_rect); |
1033 | virtual void SetScreenMetricsEmulationParameters( |
1034 | |
1035 | === modified file 'patches/use-android-style-overlay-scrollbars.patch' |
1036 | --- patches/use-android-style-overlay-scrollbars.patch 2015-03-25 21:56:29 +0000 |
1037 | +++ patches/use-android-style-overlay-scrollbars.patch 2015-04-10 12:47:19 +0000 |
1038 | @@ -1,3 +1,4 @@ |
1039 | +<<<<<<< TREE |
1040 | # Description: Use Android-style overlay and pinch-viewport scrollbars, and |
1041 | # disable scrollbars for the main frame when pinch-viewport is enabled (the |
1042 | # pinch-viewport scrollbars will be used there). This makes an assumption |
1043 | @@ -104,3 +105,78 @@ |
1044 | } |
1045 | |
1046 | int ScrollbarThemeAura::scrollbarThickness(ScrollbarControlSize controlSize) |
1047 | +======= |
1048 | +# Description: Use Android-style overlay and pinch-viewport scrollbars, and |
1049 | +# disable scrollbars for the main frame when pinch-viewport is enabled (the |
1050 | +# pinch-viewport scrollbars will be used there). This makes an assumption |
1051 | +# that overlay scrollbars and pinch-viewport are mobile-only. If we want to |
1052 | +# support these on desktop in the future, then we'll need to rethink this |
1053 | +# Author: Chris Coulson <chris.coulson@canonical.com> |
1054 | + |
1055 | +diff --git a/third_party/WebKit/Source/core/frame/FrameView.cpp b/third_party/WebKit/Source/core/frame/FrameView.cpp |
1056 | +--- a/third_party/WebKit/Source/core/frame/FrameView.cpp |
1057 | ++++ b/third_party/WebKit/Source/core/frame/FrameView.cpp |
1058 | +@@ -3017,17 +3017,17 @@ bool FrameView::scrollbarsDisabled() con |
1059 | + { |
1060 | + if (!m_frame->settings() || !m_frame->settings()->pinchVirtualViewportEnabled()) |
1061 | + return false; |
1062 | + |
1063 | + // FIXME: This decision should be made based on whether or not to use |
1064 | + // viewport scrollbars for the main frame. This is implicitly just Android, |
1065 | + // but should be made explicit. |
1066 | + // http://crbug.com/434533 |
1067 | +-#if !OS(ANDROID) |
1068 | ++#if 0 |
1069 | + return false; |
1070 | + #else |
1071 | + return m_frame->isMainFrame(); |
1072 | + #endif |
1073 | + } |
1074 | + |
1075 | + AXObjectCache* FrameView::axObjectCache() const |
1076 | + { |
1077 | +diff --git a/third_party/WebKit/Source/core/frame/PinchViewport.cpp b/third_party/WebKit/Source/core/frame/PinchViewport.cpp |
1078 | +--- a/third_party/WebKit/Source/core/frame/PinchViewport.cpp |
1079 | ++++ b/third_party/WebKit/Source/core/frame/PinchViewport.cpp |
1080 | +@@ -341,17 +341,17 @@ void PinchViewport::setupScrollbar(WebSc |
1081 | + m_webOverlayScrollbarHorizontal : m_webOverlayScrollbarVertical; |
1082 | + |
1083 | + int thumbThickness = frameHost().settings().pinchOverlayScrollbarThickness(); |
1084 | + int scrollbarThickness = thumbThickness; |
1085 | + int scrollbarMargin = scrollbarThickness; |
1086 | + |
1087 | + // FIXME: Rather than manually creating scrollbar layers, we should create |
1088 | + // real scrollbars so we can reuse all the machinery from ScrollbarTheme. |
1089 | +-#if OS(ANDROID) |
1090 | ++#if 1 |
1091 | + thumbThickness = ScrollbarTheme::theme()->thumbThickness(0); |
1092 | + scrollbarThickness = ScrollbarTheme::theme()->scrollbarThickness(RegularScrollbar); |
1093 | + scrollbarMargin = ScrollbarTheme::theme()->scrollbarMargin(); |
1094 | + #endif |
1095 | + |
1096 | + if (!webScrollbarLayer) { |
1097 | + ScrollingCoordinator* coordinator = frameHost().page().scrollingCoordinator(); |
1098 | + ASSERT(coordinator); |
1099 | +diff --git a/third_party/WebKit/Source/platform/scroll/ScrollbarThemeAura.cpp b/third_party/WebKit/Source/platform/scroll/ScrollbarThemeAura.cpp |
1100 | +--- a/third_party/WebKit/Source/platform/scroll/ScrollbarThemeAura.cpp |
1101 | ++++ b/third_party/WebKit/Source/platform/scroll/ScrollbarThemeAura.cpp |
1102 | +@@ -46,17 +46,17 @@ namespace blink { |
1103 | + static bool useMockTheme() |
1104 | + { |
1105 | + return LayoutTestSupport::isRunningLayoutTest(); |
1106 | + } |
1107 | + |
1108 | + ScrollbarTheme* ScrollbarTheme::nativeTheme() |
1109 | + { |
1110 | + if (RuntimeEnabledFeatures::overlayScrollbarsEnabled()) { |
1111 | +- DEFINE_STATIC_LOCAL(ScrollbarThemeOverlay, theme, (10, 0, ScrollbarThemeOverlay::AllowHitTest)); |
1112 | ++ DEFINE_STATIC_LOCAL(ScrollbarThemeOverlay, theme, (3, 3, ScrollbarThemeOverlay::DisallowHitTest, Color(128, 128, 128, 128))); |
1113 | + return &theme; |
1114 | + } |
1115 | + |
1116 | + DEFINE_STATIC_LOCAL(ScrollbarThemeAura, theme, ()); |
1117 | + return &theme; |
1118 | + } |
1119 | + |
1120 | + int ScrollbarThemeAura::scrollbarThickness(ScrollbarControlSize controlSize) |
1121 | +>>>>>>> MERGE-SOURCE |
1122 | |
1123 | === modified file 'qt/CMakeLists.txt' |
1124 | === modified file 'qt/VERSION' |
1125 | --- qt/VERSION 2015-02-23 23:37:56 +0000 |
1126 | +++ qt/VERSION 2015-04-10 12:47:19 +0000 |
1127 | @@ -1,3 +1,7 @@ |
1128 | MAJOR=1 |
1129 | +<<<<<<< TREE |
1130 | MINOR=7 |
1131 | PATCH=0 |
1132 | +======= |
1133 | +MINOR=5 |
1134 | +PATCH=7>>>>>>> MERGE-SOURCE |
1135 | |
1136 | === modified file 'qt/core/browser/oxide_qt_browser_startup.cc' |
1137 | --- qt/core/browser/oxide_qt_browser_startup.cc 2015-04-03 17:31:03 +0000 |
1138 | +++ qt/core/browser/oxide_qt_browser_startup.cc 2015-04-10 12:47:19 +0000 |
1139 | @@ -115,8 +115,13 @@ |
1140 | process_model_ = model; |
1141 | } |
1142 | |
1143 | +<<<<<<< TREE |
1144 | #if QT_VERSION < QT_VERSION_CHECK(5, 3, 0) |
1145 | void BrowserStartup::SetSharedGLContext(GLContextDependent* context) { |
1146 | +======= |
1147 | +#if QT_VERSION < QT_VERSION_CHECK(5, 3, 0) |
1148 | +void BrowserStartup::SetSharedGLContext(GLContextAdopted* context) { |
1149 | +>>>>>>> MERGE-SOURCE |
1150 | DCHECK(!oxide::BrowserProcessMain::GetInstance()->IsRunning()); |
1151 | shared_gl_context_ = context; |
1152 | } |
1153 | @@ -150,6 +155,7 @@ |
1154 | gl_impl = shared_gl_context_->implementation(); |
1155 | } else { |
1156 | QString platform = QGuiApplication::platformName(); |
1157 | +<<<<<<< TREE |
1158 | if (QGuiApplication::platformNativeInterface()) { |
1159 | if (platform == QLatin1String("xcb")) { |
1160 | gl_impl = gfx::kGLImplementationDesktopGL; |
1161 | @@ -160,6 +166,13 @@ |
1162 | << "Cannot determine GL implementation to use - " |
1163 | << "unrecognized Qt platform: " << qPrintable(platform); |
1164 | } |
1165 | +======= |
1166 | + if (platform == QLatin1String("xcb")) { |
1167 | + supported_gl_impls |= oxide::SUPPORTED_GL_IMPL_DESKTOP_GL; |
1168 | + supported_gl_impls |= oxide::SUPPORTED_GL_IMPL_EGL_GLES2; |
1169 | + } else if (platform.startsWith("ubuntu") || platform == QLatin1String("mirserver")) { |
1170 | + supported_gl_impls |= oxide::SUPPORTED_GL_IMPL_EGL_GLES2; |
1171 | +>>>>>>> MERGE-SOURCE |
1172 | } else { |
1173 | LOG(WARNING) |
1174 | << "Unable to use GL - No QPlatformNativeInterface for " |
1175 | |
1176 | === modified file 'qt/core/browser/oxide_qt_browser_startup.h' |
1177 | --- qt/core/browser/oxide_qt_browser_startup.h 2015-03-24 17:06:40 +0000 |
1178 | +++ qt/core/browser/oxide_qt_browser_startup.h 2015-04-10 12:47:19 +0000 |
1179 | @@ -44,11 +44,16 @@ |
1180 | oxide::ProcessModel GetProcessModel(); |
1181 | void SetProcessModel(oxide::ProcessModel model); |
1182 | |
1183 | +<<<<<<< TREE |
1184 | GLContextDependent* shared_gl_context() const { |
1185 | return shared_gl_context_.get(); |
1186 | } |
1187 | #if QT_VERSION < QT_VERSION_CHECK(5, 3, 0) |
1188 | void SetSharedGLContext(GLContextDependent* context); |
1189 | +======= |
1190 | +#if QT_VERSION < QT_VERSION_CHECK(5, 3, 0) |
1191 | + void SetSharedGLContext(GLContextAdopted* context); |
1192 | +>>>>>>> MERGE-SOURCE |
1193 | #endif |
1194 | |
1195 | bool DidSelectProcessModelFromEnv() const; |
1196 | |
1197 | === modified file 'qt/core/glue/oxide_qt_init.cc' |
1198 | --- qt/core/glue/oxide_qt_init.cc 2015-04-02 12:13:31 +0000 |
1199 | +++ qt/core/glue/oxide_qt_init.cc 2015-04-10 12:47:19 +0000 |
1200 | @@ -18,8 +18,13 @@ |
1201 | #include "oxide_qt_init.h" |
1202 | |
1203 | #include "qt/core/browser/oxide_qt_browser_startup.h" |
1204 | +<<<<<<< TREE |
1205 | #if QT_VERSION < QT_VERSION_CHECK(5, 3, 0) |
1206 | #include "qt/core/gpu/oxide_qt_gl_context_dependent.h" |
1207 | +======= |
1208 | +#if QT_VERSION < QT_VERSION_CHECK(5, 3, 0) |
1209 | +#include "qt/core/gpu/oxide_qt_gl_context_adopted.h" |
1210 | +>>>>>>> MERGE-SOURCE |
1211 | #endif |
1212 | |
1213 | namespace oxide { |
1214 | |
1215 | === modified file 'qt/quick/CMakeLists.txt' |
1216 | --- qt/quick/CMakeLists.txt 2015-04-09 16:41:51 +0000 |
1217 | +++ qt/quick/CMakeLists.txt 2015-04-10 12:47:19 +0000 |
1218 | @@ -35,12 +35,20 @@ |
1219 | api/oxideqquickwebframe.cc |
1220 | api/oxideqquickwebview.cc |
1221 | api/oxidequseragentoverriderequest.cc |
1222 | +<<<<<<< TREE |
1223 | oxide_qquick_accelerated_frame_node.cc |
1224 | oxide_qquick_alert_dialog.cc |
1225 | oxide_qquick_before_unload_dialog.cc |
1226 | oxide_qquick_confirm_dialog.cc |
1227 | oxide_qquick_file_picker.cc |
1228 | oxide_qquick_image_frame_node.cc |
1229 | +======= |
1230 | + oxide_qquick_accelerated_frame_node.cc |
1231 | + oxide_qquick_alert_dialog_delegate.cc |
1232 | + oxide_qquick_before_unload_dialog_delegate.cc |
1233 | + oxide_qquick_confirm_dialog_delegate.cc |
1234 | + oxide_qquick_file_picker_delegate.cc |
1235 | +>>>>>>> MERGE-SOURCE |
1236 | oxide_qquick_init.cc |
1237 | oxide_qquick_javascript_dialog.cc |
1238 | oxide_qquick_prompt_dialog.cc |
1239 | |
1240 | === modified file 'qt/quick/api/oxideqquickwebframe.cc' |
1241 | --- qt/quick/api/oxideqquickwebframe.cc 2015-04-07 17:42:38 +0000 |
1242 | +++ qt/quick/api/oxideqquickwebframe.cc 2015-04-10 12:47:19 +0000 |
1243 | @@ -211,6 +211,7 @@ |
1244 | OxideQQuickScriptMessageRequest* request = |
1245 | new OxideQQuickScriptMessageRequest(); |
1246 | |
1247 | +<<<<<<< TREE |
1248 | QVariant aux = args; |
1249 | if (aux.userType() == qMetaTypeId<QJSValue>()) { |
1250 | aux = aux.value<QJSValue>().toVariant(); |
1251 | @@ -219,6 +220,15 @@ |
1252 | if (!d->proxy()->sendMessage( |
1253 | context, msg_id, aux, |
1254 | OxideQQuickScriptMessageRequestPrivate::get(request))) { |
1255 | +======= |
1256 | + QVariant aux = args; |
1257 | + if (aux.userType() == qMetaTypeId<QJSValue>()) { |
1258 | + aux = aux.value<QJSValue>().toVariant(); |
1259 | + } |
1260 | + |
1261 | + if (!d->sendMessage(context, msg_id, aux, |
1262 | + OxideQQuickScriptMessageRequestPrivate::get(request))) { |
1263 | +>>>>>>> MERGE-SOURCE |
1264 | delete request; |
1265 | return nullptr; |
1266 | } |
1267 | @@ -231,10 +241,19 @@ |
1268 | const QVariant& args) { |
1269 | Q_D(OxideQQuickWebFrame); |
1270 | |
1271 | +<<<<<<< TREE |
1272 | QVariant aux = args; |
1273 | if (aux.userType() == qMetaTypeId<QJSValue>()) { |
1274 | aux = aux.value<QJSValue>().toVariant(); |
1275 | } |
1276 | |
1277 | d->proxy()->sendMessageNoReply(context, msg_id, aux); |
1278 | +======= |
1279 | + QVariant aux = args; |
1280 | + if (aux.userType() == qMetaTypeId<QJSValue>()) { |
1281 | + aux = aux.value<QJSValue>().toVariant(); |
1282 | + } |
1283 | + |
1284 | + d->sendMessageNoReply(context, msg_id, aux); |
1285 | +>>>>>>> MERGE-SOURCE |
1286 | } |
1287 | |
1288 | === modified file 'qt/quick/api/oxideqquickwebview.cc' |
1289 | --- qt/quick/api/oxideqquickwebview.cc 2015-04-09 16:41:51 +0000 |
1290 | +++ qt/quick/api/oxideqquickwebview.cc 2015-04-10 12:47:19 +0000 |
1291 | @@ -46,11 +46,18 @@ |
1292 | #include "qt/core/api/oxideqnewviewrequest.h" |
1293 | #include "qt/core/api/oxideqpermissionrequest.h" |
1294 | #include "qt/quick/oxide_qquick_accelerated_frame_node.h" |
1295 | +<<<<<<< TREE |
1296 | #include "qt/quick/oxide_qquick_alert_dialog.h" |
1297 | #include "qt/quick/oxide_qquick_before_unload_dialog.h" |
1298 | #include "qt/quick/oxide_qquick_confirm_dialog.h" |
1299 | #include "qt/quick/oxide_qquick_file_picker.h" |
1300 | #include "qt/quick/oxide_qquick_image_frame_node.h" |
1301 | +======= |
1302 | +#include "qt/quick/oxide_qquick_alert_dialog_delegate.h" |
1303 | +#include "qt/quick/oxide_qquick_before_unload_dialog_delegate.h" |
1304 | +#include "qt/quick/oxide_qquick_confirm_dialog_delegate.h" |
1305 | +#include "qt/quick/oxide_qquick_file_picker_delegate.h" |
1306 | +>>>>>>> MERGE-SOURCE |
1307 | #include "qt/quick/oxide_qquick_init.h" |
1308 | #include "qt/quick/oxide_qquick_prompt_dialog.h" |
1309 | #include "qt/quick/oxide_qquick_software_frame_node.h" |
1310 | @@ -990,6 +997,7 @@ |
1311 | |
1312 | return node; |
1313 | } |
1314 | +<<<<<<< TREE |
1315 | |
1316 | if (handle->GetType() == |
1317 | oxide::qt::CompositorFrameHandle::TYPE_IMAGE) { |
1318 | @@ -1004,6 +1012,8 @@ |
1319 | |
1320 | return node; |
1321 | } |
1322 | +======= |
1323 | +>>>>>>> MERGE-SOURCE |
1324 | |
1325 | if (handle->GetType() == |
1326 | oxide::qt::CompositorFrameHandle::TYPE_SOFTWARE) { |
1327 | |
1328 | === modified file 'qt/renderer/renderer.gyp' |
1329 | --- qt/renderer/renderer.gyp 2015-02-19 22:53:17 +0000 |
1330 | +++ qt/renderer/renderer.gyp 2015-04-10 12:47:19 +0000 |
1331 | @@ -36,7 +36,12 @@ |
1332 | ['enable_tcmalloc==1', { |
1333 | 'defines': ['ENABLE_TCMALLOC'], |
1334 | 'dependencies': [ |
1335 | - '../../shared/allocator.gyp:allocator', |
1336 | +<<<<<<< TREE |
1337 | + '../../shared/allocator.gyp:allocator', |
1338 | +======= |
1339 | + '<(DEPTH)/base/base.gyp:base', |
1340 | + '../../shared/allocator.gyp:allocator', |
1341 | +>>>>>>> MERGE-SOURCE |
1342 | ], |
1343 | }], |
1344 | ['component=="shared_library"', { |
1345 | |
1346 | === modified file 'qt/tests/qmltests/api/tst_WebView_loading.qml' |
1347 | === modified file 'shared/browser/compositor/oxide_compositor_utils.cc' |
1348 | --- shared/browser/compositor/oxide_compositor_utils.cc 2015-03-24 17:06:40 +0000 |
1349 | +++ shared/browser/compositor/oxide_compositor_utils.cc 2015-04-10 12:47:19 +0000 |
1350 | @@ -78,11 +78,45 @@ |
1351 | : command_buffer_id_(client_id, route_id), |
1352 | mailbox_(mailbox), |
1353 | sync_point_(sync_point), |
1354 | +<<<<<<< TREE |
1355 | task_runner_(task_runner) {} |
1356 | +======= |
1357 | + callback_(callback), |
1358 | + task_runner_(task_runner), |
1359 | + gpu_thread_checker_(gpu_thread_checker), |
1360 | + response_posted_(false) { |
1361 | + DCHECK(task_runner_.get()); |
1362 | + DCHECK(!callback_.is_null()); |
1363 | + DCHECK(context_provider_.get()); |
1364 | + |
1365 | + route_id_ = content::oxide_gpu_shim::GetContextProviderRouteID( |
1366 | + static_cast<content::ContextProviderCommandBuffer*>( |
1367 | + context_provider_.get())); |
1368 | + } |
1369 | + |
1370 | + virtual ~FetchTextureResourcesTask() { |
1371 | + if (response_posted_ && context_provider_) { |
1372 | + // XXX: This is a bit of a hack - basically if we arrive here, it means |
1373 | + // that the task posted to the main thread never ran and we're now |
1374 | + // being destroyed as part of the main loop teardown. |
1375 | + // As cc::ContextProvider owns lots of classes with non-trivial |
1376 | + // destructors, we deliberately leak it here in order to avoid shut- |
1377 | + // down crashes. This is a workaround for the 1.5 branch. The full fix |
1378 | + // is http://bazaar.launchpad.net/~oxide-developers/oxide/oxide.trunk/revision/1003 |
1379 | + LOG(ERROR) << |
1380 | + "Leaking cc::ContextProvider to avoid a shutdown crash. You should only see " |
1381 | + "this message during application shutdown"; |
1382 | + context_provider_->AddRef(); |
1383 | + } |
1384 | + } |
1385 | + |
1386 | + void FetchTextureResourcesOnGpuThread(); |
1387 | +>>>>>>> MERGE-SOURCE |
1388 | |
1389 | private: |
1390 | CommandBufferID command_buffer_id_; |
1391 | gpu::Mailbox mailbox_; |
1392 | +<<<<<<< TREE |
1393 | uint32_t sync_point_; |
1394 | scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
1395 | }; |
1396 | @@ -137,6 +171,14 @@ |
1397 | private: |
1398 | CompositorUtils::CreateEGLImageFromMailboxCallback callback_; |
1399 | EGLImageKHR egl_image_; |
1400 | +======= |
1401 | + uint32 sync_point_; |
1402 | + CompositorUtils::CreateGLFrameHandleCallback callback_; |
1403 | + scoped_refptr<base::TaskRunner> task_runner_; |
1404 | + base::ThreadChecker gpu_thread_checker_; |
1405 | + |
1406 | + bool response_posted_; |
1407 | +>>>>>>> MERGE-SOURCE |
1408 | }; |
1409 | |
1410 | class CompositorThread : public base::Thread { |
1411 | @@ -245,6 +287,7 @@ |
1412 | DISALLOW_COPY_AND_ASSIGN(CompositorUtilsImpl); |
1413 | }; |
1414 | |
1415 | +<<<<<<< TREE |
1416 | FetchTextureResourcesTaskInfo::~FetchTextureResourcesTaskInfo() { |
1417 | DCHECK(CompositorUtilsImpl::GetInstance()->CalledOnMainOrCompositorThread()); |
1418 | } |
1419 | @@ -281,6 +324,70 @@ |
1420 | DCHECK(task_runner()->RunsTasksOnCurrentThread()); |
1421 | callback_.Run(egl_image_); |
1422 | egl_image_ = EGL_NO_IMAGE_KHR; |
1423 | +======= |
1424 | +GLFrameHandle::~GLFrameHandle() { |
1425 | + content::GpuChildThread::GetTaskRunner()->PostTask( |
1426 | + FROM_HERE, |
1427 | + base::Bind(&CompositorUtilsImpl::RemoveTextureRef, |
1428 | + base::Unretained(CompositorUtilsImpl::GetInstance()), |
1429 | + mailbox())); |
1430 | +} |
1431 | + |
1432 | +void FetchTextureResourcesTask::OnSyncPointRetired() { |
1433 | + DCHECK(gpu_thread_checker_.CalledOnValidThread()); |
1434 | + |
1435 | + GLuint service_id = 0; |
1436 | + TextureRefHolder ref = |
1437 | + content::oxide_gpu_shim::CreateTextureRef(client_id_, |
1438 | + route_id_, |
1439 | + mailbox_); |
1440 | + if (ref.IsValid() && |
1441 | + CompositorUtilsImpl::GetInstance()->AddTextureRef(mailbox_, ref)) { |
1442 | + service_id = ref.GetServiceID(); |
1443 | + } |
1444 | + |
1445 | + response_posted_ = true; |
1446 | + |
1447 | + task_runner_->PostTask( |
1448 | + FROM_HERE, |
1449 | + base::Bind(&FetchTextureResourcesTask::SendResponseOnDestinationThread, |
1450 | + this, service_id)); |
1451 | +} |
1452 | + |
1453 | +void FetchTextureResourcesTask::SendResponseOnDestinationThread( |
1454 | + GLuint service_id) { |
1455 | + DCHECK(task_runner_->RunsTasksOnCurrentThread()); |
1456 | + |
1457 | + if (service_id == 0) { |
1458 | + callback_.Run(scoped_ptr<GLFrameData>()); |
1459 | + return; |
1460 | + } |
1461 | + |
1462 | + scoped_ptr<GLFrameHandle> handle( |
1463 | + new GLFrameHandle(mailbox_, |
1464 | + service_id, |
1465 | + context_provider_)); |
1466 | + callback_.Run(handle.Pass()); |
1467 | + |
1468 | + callback_.Reset(); |
1469 | + context_provider_ = nullptr; |
1470 | +} |
1471 | + |
1472 | +void FetchTextureResourcesTask::FetchTextureResourcesOnGpuThread() { |
1473 | + DCHECK(gpu_thread_checker_.CalledOnValidThread()); |
1474 | + |
1475 | + gpu::SyncPointManager* sync_point_manager = |
1476 | + content::GpuChildThread::GetChannelManager()->sync_point_manager(); |
1477 | + if (sync_point_manager->IsSyncPointRetired(sync_point_)) { |
1478 | + OnSyncPointRetired(); |
1479 | + return; |
1480 | + } |
1481 | + |
1482 | + sync_point_manager->AddSyncPointCallback( |
1483 | + sync_point_, |
1484 | + base::Bind(&FetchTextureResourcesTask::OnSyncPointRetired, |
1485 | + this)); |
1486 | +>>>>>>> MERGE-SOURCE |
1487 | } |
1488 | |
1489 | void CompositorThread::Init() { |
1490 | |
1491 | === modified file 'shared/browser/oxide_browser_process_main.cc' |
1492 | --- shared/browser/oxide_browser_process_main.cc 2015-03-25 21:56:29 +0000 |
1493 | +++ shared/browser/oxide_browser_process_main.cc 2015-04-10 12:47:19 +0000 |
1494 | @@ -322,7 +322,15 @@ |
1495 | |
1496 | FormFactor form_factor = GetFormFactorHint(); |
1497 | |
1498 | +<<<<<<< TREE |
1499 | if (form_factor != FORM_FACTOR_DESKTOP) { |
1500 | +======= |
1501 | + if (form_factor == FORM_FACTOR_DESKTOP) { |
1502 | + // Pinch-viewport is not supported on desktop yet |
1503 | + // see https://launchpad.net/bugs/1426567 and https://launchpad.net/bugs/1408686 |
1504 | + command_line->AppendSwitch(cc::switches::kDisablePinchVirtualViewport); |
1505 | + } else { |
1506 | +>>>>>>> MERGE-SOURCE |
1507 | command_line->AppendSwitch(switches::kEnableViewport); |
1508 | command_line->AppendSwitch(switches::kEnableViewportMeta); |
1509 | command_line->AppendSwitch(switches::kMainFrameResizesAreOrientationChanges); |
1510 | |
1511 | === modified file 'shared/browser/oxide_content_browser_client.cc' |
1512 | --- shared/browser/oxide_content_browser_client.cc 2015-04-07 14:20:35 +0000 |
1513 | +++ shared/browser/oxide_content_browser_client.cc 2015-04-10 12:47:19 +0000 |
1514 | @@ -64,6 +64,21 @@ |
1515 | |
1516 | namespace oxide { |
1517 | |
1518 | +<<<<<<< TREE |
1519 | +======= |
1520 | +namespace { |
1521 | + |
1522 | +void RespondToGeolocationPermissionRequest( |
1523 | + const base::Callback<void(bool)>& callback, |
1524 | + bool result) { |
1525 | + content::GeolocationProvider::GetInstance() |
1526 | + ->UserDidOptIntoLocationServices(); |
1527 | + callback.Run(result); |
1528 | +} |
1529 | + |
1530 | +} |
1531 | + |
1532 | +>>>>>>> MERGE-SOURCE |
1533 | ContentBrowserClient::ContentBrowserClient() {} |
1534 | |
1535 | ContentBrowserClient::~ContentBrowserClient() {} |
1536 | |
1537 | === modified file 'shared/browser/oxide_gesture_provider.cc' |
1538 | === modified file 'shared/browser/oxide_web_frame.cc' |
1539 | --- shared/browser/oxide_web_frame.cc 2015-04-07 15:22:49 +0000 |
1540 | +++ shared/browser/oxide_web_frame.cc 2015-04-10 12:47:19 +0000 |
1541 | @@ -231,10 +231,17 @@ |
1542 | std::find(current_script_message_requests_.begin(), |
1543 | current_script_message_requests_.end(), |
1544 | req); |
1545 | +<<<<<<< TREE |
1546 | if (it == current_script_message_requests_.end()) { |
1547 | // can happen for non "persisted" requests e.g. SendMessageNoReply |
1548 | return; |
1549 | } |
1550 | +======= |
1551 | + if (it == current_script_message_requests_.end()) { |
1552 | + // can happen for non lasting requests e.g. SendMessageNoReply |
1553 | + return; |
1554 | + } |
1555 | +>>>>>>> MERGE-SOURCE |
1556 | |
1557 | if (!destroyed_) { |
1558 | current_script_message_requests_.erase(it); |
1559 | |
1560 | === modified file 'shared/browser/oxide_web_view.cc' |
1561 | === modified file 'shared/common/oxide_event_utils.cc' |
1562 | === modified file 'shared/renderer/oxide_content_renderer_client.cc' |
1563 | --- shared/renderer/oxide_content_renderer_client.cc 2015-04-02 08:05:08 +0000 |
1564 | +++ shared/renderer/oxide_content_renderer_client.cc 2015-04-10 12:47:19 +0000 |
1565 | @@ -158,6 +158,7 @@ |
1566 | } |
1567 | #endif |
1568 | |
1569 | +<<<<<<< TREE |
1570 | void ContentRendererClient::OverrideCompositorSettings( |
1571 | cc::LayerTreeSettings* settings) { |
1572 | // XXX: If we support overlay scrollbars on desktop, then we'll want to |
1573 | @@ -184,4 +185,27 @@ |
1574 | } |
1575 | } |
1576 | |
1577 | +======= |
1578 | +void ContentRendererClient::OverrideCompositorSettings( |
1579 | + cc::LayerTreeSettings* settings) { |
1580 | + // XXX: If we support overlay scrollbars on desktop, then we'll want to |
1581 | + // use THINNING here, change the other settings and modify Blink to |
1582 | + // be able to have 2 different overlay scrollbar styles (a small |
1583 | + // non-hit-tested style for mobile and a much larger hit-tested style |
1584 | + // for desktop) |
1585 | + if (ui::IsOverlayScrollbarEnabled()) { |
1586 | + // XXX: This will need updating if we support overlay scrollbars on |
1587 | + // desktop. See https://launchpad.net/bugs/1426567 |
1588 | + settings->scrollbar_animator = cc::LayerTreeSettings::LinearFade; |
1589 | + settings->scrollbar_fade_delay_ms = 300; |
1590 | + settings->scrollbar_fade_resize_delay_ms = 2000; |
1591 | + settings->scrollbar_fade_duration_ms = 300; |
1592 | + } |
1593 | + |
1594 | + // XXX: This will need changing if we support pinch-viewport on desktop |
1595 | + // with normal scrollbars. See https://launchpad.net/bugs/1426567 |
1596 | + settings->scrollbar_show_scale_threshold = 1.f; |
1597 | +} |
1598 | + |
1599 | +>>>>>>> MERGE-SOURCE |
1600 | } // namespace oxide |
1601 | |
1602 | === modified file 'shared/renderer/oxide_content_renderer_client.h' |
1603 | === modified file 'shared/shared.gyp' |